Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 467

 
haron312:

Hallo, bitte helfen Sie mir mit dem Fehler, der im Tester auftritt, wenn ich versuche, eine Order zu ändern (Übertragung auf Breakeven): Ich habe die Funktion OrderOpenPrice() anstelle von SL eingesetzt, aber der Tester zeigt error1 an (laut Dokumentation bedeutet dies, dass versucht wird,unveränderte Werte als Parameter an die Funktion zu übergeben).Ich füge den Code bei! Vielen Dank im Voraus!

void DeleteOrderFunction2() //Funktion, die den zweiten ausstehenden Auftrag löscht und den zweiten Auftrag an einem bestimmten Abend zum Breakeven speichert

{

bool flag = false;

if (FlagDeleteSecondOrder2 == true)

{

if(DayOfWeek() == DAYOFWEEK && //wenn ein Wochentag ausgewählt ist

Stunde() == 22 //wenn Abend

)

{

if(BuyCount() == 1 && if(es liegt eine offene Kauforder vor

SellStopCount() == 1 //und es liegt ein schwebender Verkaufsauftrag vor

)

{

for( int i = 0; i < OrdersTotal(); i++) //Aufträge erstellen

{

OrderSelectX(i, SELECT_BY_POS, MODE_TRADES;)

switch(Auftragsart())

{

case OP_BUY: if(OrderProfit() > 0 &&

Bid > OrderOpenPrice()

)

{

OrderModifyX(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0,Arrow_Color);

flag =true;

}

Pause;

case OP_SELLSTOP: if(flag==true)

{

OrderDeleteX(OrderTicket(), Arrow_Color);

}

Pause;

}

}

}

if(SellCount() == 1 && // wenn ein offener Verkaufsauftrag vorhanden ist

BuyStopCount() == 1 //und es liegt ein schwebender Kaufauftrag vor

)

{ Print("IS!!!!");

for( int i = 0; i < OrdersTotal(); i++) //Aufträge erstellen

{

OrderSelectX(i, SELECT_BY_POS, MODE_TRADES;)

switch(Auftragsart())

{

case OP_SELL: if (OrderProfit() > 0 &&

Ask < OrderOpenPrice()

)

{

OrderModifyX(OrderTicket(), OrderOpenPrice(),OrderTakeProfit(),0, Arrow_Color);

flag = true;Print("flag =", flag);

}

Pause;

case OP_BUYSTOP: if(flag == true)

{

Print("flag =", flag);

OrderDeleteX(OrderTicket(), Arrow_Color);

}

Pause;

}

}

}


}


}

}

Nehmen Sie an, dass OP_BUY als erstes unter den Aufträgen auftaucht, ändern Sie es und setzen Sie das Flag =true und wenn es auftaucht, wird der schwebende Auftrag gelöscht. Und sehen Sie, was passiert, wenn der schwebende Auftrag zuerst auftaucht...
 

Helfen Sie mir, den Indikator in ein Skript umzuwandeln!

double buf_1[];
double buf_2[];
//+------------------------------------------------------------------+
//| Функция инициализации, запускается один раз                      |
//+------------------------------------------------------------------+
int init() 
  {
   SetIndexBuffer(0,buf_1);
   SetIndexBuffer(1,buf_2);

   SetIndexStyle (0,DRAW_ARROW, STYLE_SOLID, 1);
   SetIndexStyle (1,DRAW_ARROW, STYLE_SOLID, 1);
   SetIndexArrow (0,233);
   SetIndexArrow (1,234);

   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   
   return(0);
  }
//+------------------------------------------------------------------+
//| Основная Функция, запускается на каждом тике                     |
//+------------------------------------------------------------------+
int start() 
  {
   if (Bars <= 100) return(0);
   int ExtCountedBars = IndicatorCounted();
   if (ExtCountedBars < 0) return(-1);
   if (ExtCountedBars > 0) ExtCountedBars--;
   for (int i=Bars-ExtCountedBars-1; i>=0; i--)
     { 
      if (High [i+2] == High[i+3])
      bool DOWN   = High[i+1]== High[i+2]; 
                                               
                    
      if (Low [i+2] == Low [i+3])             
     bool UP =  Low[i+1]==Low[i+2] ;
      
       
      if (UP)   buf_1[i+1] = Low[i+1]-3*Point;
      if (DOWN) buf_2[i+1] = High[i+1]+3*Point;
     }
   return(0);
 }
  //  ---- end

Wenn iHigh(NULL,PERIOD_H1,[i+2]) und iLow(NULL,PERIOD_H1,[i+2]) anstelle vonHigh [i+2] undLow[i+1] geschrieben werden, können Sie dann den Zeitrahmen kontrollieren?

Wenn Hai passt, VERKAUFEN, wenn Loh KAUFEN!

 
Rewerpool:

Helfen Sie mir, den Indikator in ein Skript umzuwandeln!

Wenn iHigh(NULL,PERIOD_H1,[i+2]) und iLow(NULL,PERIOD_H1,[i+2]) anstelle vonHigh [i+2] undLow[i+1] geschrieben werden, können Sie dann den Zeitrahmen kontrollieren?

Wenn Hai passt, VERKAUFEN, wenn Loh KAUFEN!

drei Zufälle werden lange warten müssen

 
STARIJ:

Drei Treffer werden lange auf sich warten lassen.

Ich bin kein Scalper, ich warte. Wir können auf die 4 Ziffern normalisieren.

 

in mql5 haben wir offene Positionen, ich finde alle Geschäfte in dieser Position und stelle fest, ob sie durch Market oder Pending Orders eröffnet wurden

Wie kann ich in mql4 herausfinden, ob die offenen Aufträge durch Markt- oder Pending-Aufträge geöffnet wurden und ihre Ticker sich ändern, wenn ein Pending-Auftrag ausgelöst wird?

 
Rewerpool: Ich bin kein Scalper, ich warte. Wir können auf die 4 Ziffern normalisieren.

Ja, und das Ergebnis ist schwach ...

5 hai's übereinstimmen und der Preis ist gestiegen.

 
Pavel Kolchin:

in mql5 haben wir offene Positionen, ich finde alle Geschäfte in dieser Position und stelle fest, ob sie durch Market oder Pending Orders eröffnet wurden

Wie kann ich in mql4 herausfinden, ob eine offene Position durch Market oder Pending Orders eröffnet wurde und sich die Ticker ändern, wenn eine Pending Order ausgelöst wird?

ihnen unterschiedliche Magie geben

 
STARIJ:

ihnen unterschiedliche Magie geben

Aufträge werden von einem Benutzer geöffnet, ich muss ihren Typ definieren, wenn sie geöffnet werden

 
Die Frage ist, was wird "mehr laden": bei jeder definierten InChartEvent neu definieren Indikator-Handle oder definieren alle möglichen Handles als ein Array zuvor in OnInit?
 
Roman Sharanov:
Die Frage ist, was wird "mehr laden": bei jeder definierten InChartEvent neu definieren die Indikator-Handle oder definieren alle möglichen Handles als ein Array zuvor in OnInit?
Anders.
Grund der Beschwerde: