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

 

Ich lerne es gerade.

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && ? );

Anstelle des Fragezeichens sollten Sie schreiben, dass der Gewinn für das betreffende Instrument größer als Null ist.

 
cashnewmoney:

Ich lerne es gerade.

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && ? );

Anstelle des Fragezeichens sollten Sie schreiben, dass der Gewinn für das betreffende Instrument größer als Null ist.

Das hängt von Ihrem eigenen Wunsch ab.
 
Alexey Viktorov:
Das hängt von Ihrem eigenen Willen ab.

Zum Beispiel mit den Händen schließen.

Das ist nicht gut, man muss es automatisieren.

 
cashnewmoney:

Zum Beispiel mit den Händen schließen.

Das ist nicht gut, man muss es automatisieren.

Nein, nicht von Hand. Ich meinte, dass Sie nach eigenem Ermessen schreiben können. Aber anscheinend habe ich die Frage beim ersten Mal missverstanden. Um die Bedingung des Gewinns auf das Instrument größer als Null zu setzen, sollte dieser Gewinn berechnet werden.

  double profit = 0;
  for(int i = 0; i < OrdersTotal(); i++)
   {
    if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)
     {
      if(OrderType() < 2)
        profit += OrderProfit()+OrderCommission()+OrderSwap();
     }
   }
 
Alexey Viktorov:

Nein, nicht von Hand. Ich meinte, dass Sie sie nach eigenem Ermessen eintragen können. Aber ich muss die Frage beim ersten Mal missverstanden haben. Dieser Gewinn sollte so berechnet werden, dass die Bedingung für einen Gewinn durch das Instrument größer als Null ist.

Sollte es so gemacht werden?

double profit = 0;

for(int i = 0; i < OrdersTotal(); i++)

{

if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)

{

if(Auftragsart() < 2)

Gewinn += OrderProfit()+OrderCommission()+OrderSwap();

}

}

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && profit + );

 
cashnewmoney:

Sollte es so gemacht werden?

double profit = 0;

for(int i = 0; i < OrdersTotal(); i++)

{

if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)

{

if(Auftragsart() < 2)

Gewinn += OrderProfit()+OrderCommission()+OrderSwap();

}

}

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && profit + );

Wollen Sie mich auf den Arm nehmen?

double profit = 0;
  for(int i = 0; i < OrdersTotal(); i++)
   {
    if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)
     {
      if(OrderType() < 2)
        profit += OrderProfit()+OrderCommission()+OrderSwap();
     }
   }

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && profit > 0 );
 
Vitaly Muzichenko:

Wollen Sie mich auf den Arm nehmen?

Vielen Dank, es funktioniert.

 
cashnewmoney:

Vielen Dank, es funktioniert alles.

Vielen Dank an dieser Stelle,Alexey Viktorov

 

Der Expert Advisor platziert nur eine Order pro Algorithmus, siehe Verkaufen:

SellOpen = (AC<0.0 && RSI<30 && Close[2]>Open[2] && Close[1]>Open[1] && Low[2]<Low[1] );

Wie kann man den Code so schreiben, dass er weiterhin Aufträge erteilt, bis die Bedingung AC<0,0 erfüllt ist?

 
Alexey Viktorov:

Nein, nicht von Hand. Ich meinte, dass Sie sie nach eigenem Ermessen eintragen können. Aber ich muss die Frage beim ersten Mal missverstanden haben. Damit der Gewinn aus einem Instrument größer als Null ist, muss dieser Gewinn berechnet werden.

Ich danke Ihnen vielmals. Alles funktioniert.

Grund der Beschwerde: