Gibt es ein Testsystem für die EA-Programmierung, das Ihnen Schritt für Schritt zeigt, was passiert, wenn dieser EA läuft?
Nein, es gibt kein Schritt-für-Schritt-System zum Testen; verwenden Sie Print, um Werte zur Überprüfung und verschiedene Teile Ihrer Programme anzuzeigen
Die Funktion "CalculateCurrentOrders" wird nicht referenziert und wird aus der exp-Datei entfernt
Ignorieren Sie einfach diesen Fehler; alles, was es sagt, ist, dass Sie eine Funktion namens CalculateCurrentOrders haben, die Sie nicht verwenden; also entweder löschen Sie sie oder levea; es wird keinen Schaden verursachen; das System sagt, dass es diese Funktion aus Ihrer kompilierten Datei ex4 entfernen wird
Ändern Sie unter der Funktion LotOptimization Ihren Code in etwa wie folgt
Los=Los*MulltiplyingFactor*Verluste
wobei MulitplyFactor = 2 oder 3 oder 4 usw. ist, ähnlich wie Ihr DecreaseFactor, der dazu dient, Ihre Losgrößen zu verringern, wenn die Verluste steigen
Allerdings ist die Erhöhung der Losgröße bei steigenden Verlusten für den EA gefährlich, also mit Vorsicht zu genießen.
Meinen Sie etwas wie dies
//+------------------------------------------------------------------+ //| Berechnung der optimalen Losgröße | //+------------------------------------------------------------------+ double LotsOptimized() { double lot=Lose*Multiplikation*Verluste; int orders=HistoryTotal(); // Summe der historischen Aufträge int losses=0; // Anzahl der Verlustaufträge ohne Pause //---- Losgröße auswählen lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1); //---- berechnet die Anzahl der Verlustaufträge ohne Unterbrechung if(DecreaseFactor>0) { for(int i=Orders-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Fehler in der Historie!"); break; } if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue; //---- if(OrderProfit()>0) break; if(OrderGewinn()<0) Verluste++; } if(Verluste>1) lot=NormalizeDouble(lot-lot*Verluste/DecreaseFactor,1); } //---- return lot size if(lot<0.1) lot=0.1; return(lot); }
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Gibt es ein Testsystem für die EA-Programmierung, das Ihnen Schritt für Schritt zeigt, was passiert, wenn dieser EA läuft?
Nein, es gibt kein Schritt-für-Schritt-System zum Testen; verwenden Sie Print, um Werte zur Überprüfung und verschiedene Teile Ihrer Programme anzuzeigen
Mir gefällt Ihr Code für die Lots-Optimierung; ich habe ihn so verändert, dass das Lot-Volumen mit zunehmenden Verlusten steigt
Ich mag Ihren Code für die Lots-Optimierung; ich habe ihn so verändert, dass das Lot-Volumen mit zunehmenden Verlusten steigt
Bitte zeigen Sie mir
oder senden Sie mir Ihren EA
Bitte zeigen Sie mir
oder senden Sie mir Ihren EA
er gibt mir einen Fehler
Funktion "CalculateCurrentOrders" ist nicht referenziert und wird aus der exp-Datei entferntIch erhalte eine Fehlermeldung
Die Funktion "CalculateCurrentOrders" wird nicht referenziert und wird aus der exp-Datei entferntIgnorieren Sie einfach diesen Fehler; alles, was es sagt, ist, dass Sie eine Funktion namens CalculateCurrentOrders haben, die Sie nicht verwenden; also entweder löschen Sie sie oder levea; es wird keinen Schaden verursachen; das System sagt, dass es diese Funktion aus Ihrer kompilierten Datei ex4 entfernen wird
Bitte zeigen Sie mir
oder senden Sie mir Ihren EA
unter der Funktion LotOptimization ändern Sie Ihren Code in etwas wie dieses
Lot=Lot*MulltiplyingFactor*Verluste
wobei MulitplyFactor = 2 oder 3 oder 4 usw. ist, ähnlich wie Ihr DecreaseFactor, der Ihre Losgrößen bei steigenden Verlusten verringert.
Allerdings ist das Erhöhen der Losgröße bei steigenden Verlusten gefährlich für den EA, daher ist Vorsicht geboten
Ändern Sie unter der Funktion LotOptimization Ihren Code in etwa wie folgt
Los=Los*MulltiplyingFactor*Verluste
wobei MulitplyFactor = 2 oder 3 oder 4 usw. ist, ähnlich wie Ihr DecreaseFactor, der dazu dient, Ihre Losgrößen zu verringern, wenn die Verluste steigen
Allerdings ist die Erhöhung der Losgröße bei steigenden Verlusten für den EA gefährlich, also mit Vorsicht zu genießen.
Meinen Sie etwas wie dies
//+------------------------------------------------------------------+//| Berechnung der optimalen Losgröße |
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=Lose*Multiplikation*Verluste;
int orders=HistoryTotal(); // Summe der historischen Aufträge
int losses=0; // Anzahl der Verlustaufträge ohne Pause
//---- Losgröße auswählen
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- berechnet die Anzahl der Verlustaufträge ohne Unterbrechung
if(DecreaseFactor>0)
{
for(int i=Orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Fehler in der Historie!"); break; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
//----
if(OrderProfit()>0) break;
if(OrderGewinn()<0) Verluste++;
}
if(Verluste>1) lot=NormalizeDouble(lot-lot*Verluste/DecreaseFactor,1);
}
//---- return lot size
if(lot<0.1) lot=0.1;
return(lot);
}
Meinen Sie etwas wie dies
//+------------------------------------------------------------------+
Optimale Losgröße berechnen //|
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=Lose*Multiplikation*Verluste;
int orders=HistoryTotal(); // Summe der historischen Aufträge
int losses=0; // Anzahl der Verlustaufträge ohne Pause
//---- Losgröße auswählen
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- berechnet die Anzahl der Verlustaufträge ohne Unterbrechung
if(DecreaseFactor>0)
{
for(int i=Orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Fehler in der Historie!"); break; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
//----
if(OrderProfit()>0) break;
if(OrderGewinn()<0) Verluste++;
}
if(Verluste>1) lot=NormalizeDouble(Lots*Multiplikation*Verluste;,1);}
//---- return lot size
if(lot<0.1) lot=0.1;
return(lot);
}
Nein, setzen Sie es nach dem if(Verluste>1)
nein, setzen Sie es nach dem if(Verluste>1)
erhalte ich eine Fehlermeldung
'Multiplying' - Variable nicht definiert C:\Programmdateien\Interbank FX Trader 4\experts\jbtest4.mq4 (57, 44)
Wo kann ich sie definieren?
Ich erhalte eine Fehlermeldung
'Multiplying' - Variable nicht definiert C:\Programmdateien\Interbank FX Trader 4\experts\jbtest4.mq4 (57, 44)
wo habe ich sie definiert
ok ich habe int multiplying=2;