Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 340

 
evolutiv:


Es gibt eine SRC-Schaltfläche in der Bearbeitungsleiste, der Code wird dort automatisch eingefärbt ;)

Was den Code angeht, wenn er if (OrderSymbol() == Symbol()...) then if (OrderSymbol()!= Symbol()) continue verwendet, brauchen wir weder das eine noch das andere.

for (int k = 0; k < OrdersTotal(); k++) sollten Sie dies ersetzen durch

for (int k = OrdersTotal()-1; k >=0 ; k--), ist es sicherer



Ich habe es so geschrieben


if(NumberOfPositionsSell(Symbol())==1 &&  NumberOfPositionsBay_otl(Symbol())==1  &&GetOrderLotsOtlBay(Symbol())==start_Lot*2  &&GetOrderLotsSell(Symbol())==start_Lot)
{
 
     for (int kk = OrdersTotal()-1; kk >=0 ; kk--) 
      {
      
       if (OrderSelect(kk,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:
      
      if (OrderSymbol() == Symbol() && OrderType() == OP_BUYSTOP ) {
      

      tp_buy_otl=NormalizeDouble(b+((((2*Point)+spred+(b+Point+spred-GetOrderPriceSell(Symbol()))/Point)/2)*Point), Digits);
      sl_buy_otl=NormalizeDouble(GetOrderPriceSell(Symbol()), Digits);
      OrderModify(OrderTicket(), NormalizeDouble(b+Point+spred, Digits),sl_buy_otl,tp_buy_otl,0);
     
       Alert("tp_buy_otl = ",DoubleToStr(tp_buy_otl, Digits)+"\n"+"sl_buy_otl =  ",DoubleToStr(sl_buy_otl, Digits)+"\n"+" цена открытия бай стоп = ",  DoubleToStr(b+Point+spred, Digits)+"\n"+"OrderSymbol() =  ",OrderSymbol()+"\n"+"OrderType() = ",OrderType());
     
      
     }
      
      
      if (OrderSymbol() == Symbol() && OrderType() == OP_SELL ) {
      
      sl_sell_otl=NormalizeDouble(b+spred+Point, Digits);
      OrderModify(OrderTicket(),OrderOpenPrice(), sl_sell_otl,OrderTakeProfit(),0);
       
      }
      }
      }
      
} 

а в алерте почемуто OrderSymbol()==GBPUSD посмотрите на скин
да и открытый селл он модифицировал а отложенный нет


Sobald ich die schwebende Order für gbpusd entfernt habe und den EA davon entfernt habe, wurde die Order für euro sofort geändert


 
max020780:

Sobald ich die schwebende Order auf gbpusd entfernt und den EA davon entfernt habe, wurde die Order auf euro sofort geändert

Verwenden Sie Magicky, um die Aufträge zu filtern. Außerdem gibt es keine Prüfung auf wiederholte Änderung von Haltestellen (was zu Änderungsfehler 1 führt).
 

Hallo zusammen. Leute, könnt ihr mir sagen, ob dieses Testen eines EA über 5 Jahre als erfolgreich angesehen werden kann. Oder ist die Rentabilität gering und der Drawdown groß. Ich würde gerne meine Meinung hören, unterscheiden sich die Daten des Testers sehr stark vom echten Konto (ich habe es im Alpari-Terminal getestet)? Ich zeige die Ergebnisse:

Zeitraum Betrag Rentabilität Inanspruchnahme Transaktionsbetrag
01.06.2012-30.05.2013 1490.63 1.7 37.08% (389.71)
213
01.06.2011-30.05.2012
1242.23 1.48 25.82% (448.34) 231
01.06.2010-30.05.2011 1677.66 1.62 53.26% (880.57)
213
01.06.2009-30.05.2010 1664.33 1.68 32.16% (560.68) 208
01.06.2008-30.05.2009 1817.72 1.48 43.73% (472.15) 233
 
alexey1979621:

Hallo zusammen. Leute, könnt ihr mir sagen, ob dieses Testen eines EA über 5 Jahre als erfolgreich angesehen werden kann. Oder ist die Rentabilität gering und der Drawdown groß. Ich würde gerne meine Meinung hören, unterscheiden sich die Daten des Testers sehr stark vom echten Konto (ich habe es im Alpari-Terminal getestet)? Ich zeige die Ergebnisse:

Zeitraum Betrag Rentabilität Inanspruchnahme Transaktionsbetrag
01.06.2012-30.05.2013 1490.63 1.7 37.08% (389.71)
213
01.06.2011-30.05.2012
1242.23 1.48 25.82% (448.34) 231
01.06.2010-30.05.2011 1677.66 1.62 53.26% (880.57)
213
01.06.2009-30.05.2010 1664.33 1.68 32.16% (560.68) 208
01.06.2008-30.05.2009 1817.72 1.48 43.73% (472.15) 233

Das ist ein enormer Rückschlag, und Rentabilität ist nicht genug... Wie hoch ist die Inanspruchnahme der Mittel?

Oder es könnte sein:

Abs. Absenkung: 2 ,40 USD
Höchstbetrag: 9 ,08 USD

Relativ: 0 ,78%)

Max Money: 97,81% )))

 
evillive:

Es ist ein großer Drawdown, und die Rentabilität ist ein bisschen niedrig... Wie hoch ist die Inanspruchnahme der Mittel?

Das mag so sein:

Abs. Absenkung: 2,40 USD.
Höchstbetrag: 9,08 USD

Relativ: 0,78 %.

Höchstbetrag der Mittel: 97,81% )))

Die relative Absenkung wird angezeigt. Der absolute Drawdown ist prozentual und finanziell ungefähr gleich. Unterscheiden sich die Daten der Tester stark von denen des echten Kontos? Also, was sollte ich mit dem Expert Advisor tun - sollte ich es auf dem realen Konto (es scheint zu funktionieren gut für 3 Wochen auf dem Demo-Konto) oder legen Sie es auf dem Regal, bis es neue Ideen für seine Verbesserung?
 
Lassen Sie ihn mindestens ein halbes Jahr lang an der Demo arbeiten. Das Testgerät zeigt den Drawdown nicht an, aber Sie können ihn in Echtzeit sehen. Was ich gezeigt habe - Arbeit ohne Stops, überschwellige Drawdowns. Die Lebensdauer früherer Konten - 2-3 Monate, dieses ist seit August am Leben, ich werde sehen, wie lange es dauern wird )))
 
Wenn Sie Erfahrung haben, welche Parameter sollten Sie als Ausgangspunkt verwenden - Mindestrentabilität und Drawdown? Wenn die Rentabilität weniger als 1,5 % beträgt und der Drawdown in 5 Jahren mehr als 50 % beträgt, sollte mein Expert Advisor bis zu besseren Zeiten in die Schublade gelegt werden.
 
Forexman77:

Ich verwende meinen eigenen Indikator in der EA, ich sehe visuell während des Testens, dass es wächst und nach den Bedingungen sollte es Kauf öffnen, aber es passiert nicht.

Ich sehe die folgenden Fehler im Protokoll (ich habe zwei Typen und zeige sie nacheinander):

TestGenerator: Fehler bei nicht übereinstimmenden Daten (Volumengrenze 372 am 2013.12.11 21:00 überschritten)

TestGenerator: Nicht übereinstimmende Datenfehler (Tiefstwert 1.33097 am 2013.09.12 19:45 wird nicht vom niedrigsten Zeitrahmen erreicht, Tiefstpreis 1.33105 stimmt nicht überein)

Vielleicht gibt es einige Besonderheiten bei der Verwendung von benutzerdefinierten Indikatoren? Ich spiele schon seit zwei Monaten mit diesem EA herum und schiebe ihn auf unbestimmte Zeit hinaus.

Laden Sie den gesamten Verlauf für das zu prüfende Symbol herunter. Der Fehler liegt nicht am EA, sondern an der "krummen" Geschichte.
 
Forexman77:

Die Fehler 129 und 138 treten von Zeit zu Zeit bei einem EA auf. Das Problem ist erst nach einem Neustart des Terminals gelöst.

Ich möchte eine Marktinformationsfunktion hinzufügen, um Geld- und Briefkurs zu aktualisieren und dann zu überprüfen.

Ist es möglich, die Fehler 129,138 künstlich zu erzeugen?

Fehler 129 - falscher Preis

Fehler 138 - neue Preise (Neuberechnung)

Bevor Sie eine Handelsanfrage senden, holen Sie sich die neuesten Preise, indem Sie entweder die Handelsumgebung mit RefreshRates() aktualisieren oder direkt von MarketInfo()

Vergessen Sie das nicht:

Expert Advisors und Skripte arbeiten mit ihrer eigenen Kopie der historischen Daten. Die Kopie der Daten des aktuellen Symbols wird beim ersten Start des Expert Advisors oder Skripts erstellt.

Jedes Mal, wenn der Expert Advisor oder das Skript das nächste Mal ausgeführt wird, wird die ursprünglich erstellte Kopie aktualisiert. Während der Expert Advisor oder das Skript läuft, können ein oder mehrere neue Ticks eintreffen, so dass die Daten veraltet sein können.

 
artmedia70:

Fehler 129 - falscher Preis

Fehler 138 - neue Preise (Neuberechnung)

Bevor Sie eine Handelsanfrage senden, erhalten Sie die neuesten Preise entweder durch Aktualisierung der Handelsumgebung mit RefreshRates() oder direkt von MarketInfo()

Vergessen Sie das nicht:

Expert Advisors und Skripte arbeiten mit ihrer eigenen Kopie der historischen Daten. Die Kopie der Daten des aktuellen Symbols wird beim ersten Start des Expert Advisors oder Skripts erstellt.

Jedes Mal, wenn der Expert Advisor oder das Skript das nächste Mal ausgeführt wird, wird die ursprünglich erstellte Kopie aktualisiert. Während der Expert Advisor oder das Skript läuft, können ein oder mehrere neue Ticks eintreffen, so dass die Daten veraltet sein können.


Herzlichen Dank!

Jetzt weiß ich, wo das Problem liegt.

Ich habe es für den Kauf verwendet:

if  (iClose(Symbol(),Period(),0) <= MA_6_t) 
          {                                          
          Opn_B=true;                    
          }

Soweit ich weiß, erfolgt der Kauf zum Briefkurs, aber iClose(Symbol(),Periode(),0) nimmt die Preise vom Geldkurs. Dies kann der Grund für den Fehler sein.

Jetzt verwende ich die folgende Kombination:

double pa=MarketInfo(Symbol(),MODE_ASK);
if  (pa <= MA_6_t) 
          {                                          
          Opn_B=true;                    
          }
Aber dann habe ich eine Frage, weil der EA ist nicht ein Pips-basierte EA, der Preis war in der Kauf-Zone für eine lange Zeit und aktualisiert mit jedem Tick.

Warum wird der Handel nicht eröffnet? Es stellt sich heraus, dass der EA auf den Fehler hängt und nicht sehen, weitere Preisbewegung?

Ich habe die Vorlage für meinen Expert Advisor von https://c.mql5.com/mql4/book/mq4/experts/tradingexpert.mq4 übernommen.

Sollte ich Ihrer Meinung nach der Fehlerbehandlungsfunktion in diesem EA eine Prüfung auf 129 und 138 Fehler hinzufügen?

Wenn ja, wie kann man das tun?