Einzelnen Beitrag anzeigen
  #10 (permalink)  
Alt 29.07.21
MarkusWilhelm89 MarkusWilhelm89 ist offline
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 64
MarkusWilhelm89 befindet sich auf einem aufstrebenden Ast
Standard

Anbei der Code

Code:
input int Grid_Abstand = 200;
input int MagicNumber  = 1234;


// GRID_START_TICKET() ist die zu letzt eröffnete Pending-Order bzw. neueste Market-Order
   double PREISLEVEL()
     {
      double PreisLevel = 0;

      if(OrderSelect( GRID_START_TICKET() , SELECT_BY_TICKET , MODE_TRADES ) == false )
        {
         PreisLevel = NormalizeDouble( ( Ask + Bid ) / 2 , Digits );
        };
      if(OrderSelect( GRID_START_TICKET() , SELECT_BY_TICKET , MODE_TRADES ) == true )
        {
         PreisLevel = NormalizeDouble( OrderOpenPrice() , Digits );
        };
      return(PreisLevel);
     };


// GRID-Bereiche (Ober-/Untergrenze) ermitteln
   double GRID_UPPER_1_HIGH()
     {
      double Grid_Upper_1_High = PREISLEVEL() + ( 1 * Grid_Abstand * Point ) + ( Grid_Abstand / 2 ) * Point;
      return( Grid_Upper_1_High );
     };

   double GRID_UPPER_1_LOW()
     {
      double Grid_Upper_1_Low  = PREISLEVEL() + ( 1 * Grid_Abstand * Point )-( Grid_Abstand / 2 ) * Point;
      return( Grid_Upper_1_Low );
     };


   double GRID_CURRENT_HIGH()
     {
      double Grid_Current_High = PREISLEVEL() + ( Grid_Abstand / 2 ) * Point;
      return( Grid_Current_High );
     };
   double GRID_CURRENT_LOW()
     {
      double Grid_Current_Low  = PREISLEVEL() - ( Grid_Abstand / 2 ) * Point;
      return( Grid_Current_Low );
     };


   double GRID_LOWER_1_HIGH()
     {
      double Grid_Lower_1_High = PREISLEVEL() - ( 1 * Grid_Abstand * Point ) + ( Grid_Abstand / 2 ) * Point;
      return( Grid_Lower_1_High );
     };
   double GRID_LOWER_1_LOW()
     {
      double Grid_Lower_1_Low  = PREISLEVEL() - ( 1 * Grid_Abstand * Point ) - ( Grid_Abstand / 2 ) * Point;
      return( Grid_Lower_1_Low );
     };


      // Beispiel der zusammenhängenden Prüfung
      bool GRID_LOWER_1_BUYLIMIT()
        {
         bool Grid_Lower_1_Buylimit = false;

         for(int i = OrdersTotal()-1; i >= 0; i--)
           {
            if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
              {
               if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
                 {
                  if(OrderType() == OP_BUYLIMIT)
                    {
                     if(OrderOpenPrice() < GRID_LOWER_1_HIGH() && OrderOpenPrice() > GRID_LOWER_1_LOW())
                       {
                        Grid_Lower_1_Buylimit = true;
                       }
                    }
                 }
              }
           }

         return (Grid_Lower_1_Buylimit);
        };