Hilfe fineturn EA - Seite 2

 
delcor wrote >>

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

 
ronaldosim:

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

 
delcor:

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 entfernt
 
delcor wrote >>

Ich erhalte eine Fehlermeldung

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

 
delcor wrote >>

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

 
ronaldosim:

Ä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);
}
 
delcor wrote >>

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)

 
ronaldosim:

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?

 
delcor:

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;