Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
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;