Universal MA Kreuz EA - Seite 105

 

Lieber Mrtools/Mladen

können Sie den Parameter max distance so einstellen, dass er den Abstand des Schlusskurses eines Balkens vom slow ma

die aktuelle Einstellung ist imho bedeutungslos

Danke

Sachin

 
sachin_syd:
Lieber Mrtools/Mladen

Cud u plz setze den Parameter max distance auf den Abstand des Schlusskurses eines Bar von der slow ma

die aktuelle Einstellung ist imho bedeutungslos

Danke

Sachin

Sachin

Suchen Sie einfach die Zeile, die wie folgt lautet:

MaxDistance = MathFloor(MathAbs((FastMACurrent-SlowMACurrent)/pPoint));

und ersetzen Sie FastMACurrent entweder durch Close[1] (für den Schluss des ersten geschlossenen Balkens) oder Close[0] (für den Schluss des noch offenen Balkens)

 

Ok, ich habe das jetzt getestet... Danke

Kannst du mir auch hier helfen: https: //www.mql5.com/en/forum/general

mladen:
Sachin

Suchen Sie einfach die Zeile, die wie folgt lautet :

MaxDistance = MathFloor(MathAbs((FastMACurrent-SlowMACurrent)/pPoint));

und ersetzen Sie FastMACurrent entweder durch Close[1] (für den Abschluss des ersten geschlossenen Balkens) oder Close[0] (für den Abschluss des noch offenen Balkens)
 

Lieber Mladen cud u bitte überprüfen Sie, warum der Zeitfilter nicht funktioniert. sehen Sie rote vertikale Linien auf dem Diagramm, wo es nicht zu handeln, aber gehandelt wird. In Ea habe ich den Handel nur für bestimmte Stunden eingestellt. Vielen Dank

mladen:
Sachin

Suchen Sie einfach die Linie, die wie folgt verläuft:

MaxDistance = MathFloor(MathAbs((FastMACurrent-SlowMACurrent)/pPoint));

und ersetzen Sie FastMACurrent entweder durch Close[1] (für den Schluss des ersten geschlossenen Balkens) oder Close[0] (für den Schluss des noch offenen Balkens)
Dateien:
untitled.png  28 kb
untitled_1.png  29 kb
 

Hallo Mladen,

ich konnte den mql4-Code wegen folgender Fehler nicht kompilieren:

extern string Pivot.Setting = "---------- Pivot Filter Setting";

extern bool Use.Pivot.Filter = false;

==> '.' - Semikolon erwartet MACrossEAV1.5.mq4 77 28 if(Use.Pivot.Filter==true)

==> 'Use' - nicht deklarierter Bezeichner MACrossEAV1.5.mq4 458 7

Pivot' - Struktur- oder Klassentyp erwartet MACrossEAV1.5.mq4 458 11

Filter' - struct oder class type erwartet MACrossEAV1.5.mq4 458 17

Was habe ich falsch gemacht?

Vielen Dank für Ihre Hilfe

 
StephFX:
Hallo Mladen,

Ich konnte den mql4-Code wegen folgender Fehler nicht kompilieren:

extern string Pivot.Setting = "---------- Pivot Filter Setting";

extern bool Use.Pivot.Filter = false;

==> '.' - Semikolon erwartet MACrossEAV1.5.mq4 77 28 if(Use.Pivot.Filter==true)

==> 'Use' - nicht deklarierter Bezeichner MACrossEAV1.5.mq4 458 7

Pivot' - Struktur- oder Klassentyp erwartet MACrossEAV1.5.mq4 458 11

Filter' - struct oder class type erwartet MACrossEAV1.5.mq4 458 17

Was habe ich falsch gemacht?

Vielen Dank für Ihre Hilfe

StephFX

Entfernen Sie das "." aus dem Variablennamen

Sie können es z.B. durch "_" ersetzen und dann haben Sie :

extern string Pivot_Setting = "---------- Pivot Filter Setting";

extern bool Use_Pivot_Filter = false;

und dies

if(Use_Pivot_Filter==true)

und dann wird alles OK kompiliert

 

Hallo zusammen,

Da ich eine Martingale-Strategie ausprobiere, habe ich versucht, sie so zu gestalten, dass "STOP AND REVERSE" nur funktioniert, wenn der letzte Handel ein Gewinn war.

int histotal=OrdersHistoryTotal(); if (histotal>0)

{

for(int count=histotal-1;count>=0;count--)

{

if(OrderSelect(count,SELECT_BY_POS,MODE_HISTORY))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

if(OrderProfit()>0)

{

if(StopAndReverse==true && subTotalTrade()>0)

{

if((LastTrade=="BUY" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true))

{

subCloseOrder();

if(subTotalTrade()>0) subCloseOrder();

if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("STOP UND REVERSE !");

}

}

}

}

}

}

}

Es scheint jedoch nicht zu funktionieren. Er stoppt und kehrt um, auch wenn der letzte Handel ein Verlustgeschäft war. Irgendwelche Vorschläge?

Vielen Dank!

 
BlackCoq:
Hallo zusammen,

Da ich eine Martingale-Strategie ausprobiere, habe ich versucht, die Funktion "STOP AND REVERSE" nur dann zu aktivieren, wenn der letzte Handel ein Gewinn war.

Es scheint jedoch nicht zu funktionieren. Es wird gestoppt und umgedreht, auch wenn der letzte Handel ein Verlust war. Haben Sie irgendwelche Vorschläge?

vielen Dank!

Sie überprüfen nicht den Zeitpunkt des Auftrags. Sie müssen auch die Schlusszeit der Order prüfen, und die Order mit der größten Schlusszeit ist diejenige, die Sie auf Gewinn prüfen wollen.

 
mladen:
Sie prüfen nicht den Zeitpunkt des Auftrags. Sie müssen auch die Schlusszeit der Order prüfen, und die Order mit der größten Schlusszeit ist diejenige, die Sie auf Gewinn prüfen wollen

Die Sache ist, dass ich einen sehr ähnlichen Code für das Martingale-System verwende, der perfekt funktioniert:

//|---------martingale

int martingalefactor()

{

int histotal=OrdersHistoryTotal();

if (histotal>0)

{

for(int cnt=histotal-1;cnt>=0;cnt--)

{

if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))

{

if(BestellSymbol()==Symbol() && BestellMagischeZahl()==MagischeZahl)

{

if(OrderProfit()<0)

{

lotsfactor=lotsfactor*multiplier;

return(lotsfactor);

}

sonst

{

lotsfactor=initiallotsfactor;

if(lotsfactor<=0)

{

lotsfactor=1;

}

return(lotsfactor);

}

}

}

}

}

return(lotsfactor);

}

Da es für Martingale funktioniert, sollte es jetzt auch funktionieren.

 
BlackCoq:
Die Sache ist, dass ich einen sehr ähnlichen Code für das Martingale-System verwende, der perfekt funktioniert: Da es für Martingale funktioniert, sollte es jetzt nicht auch funktionieren?

Versuchen Sie, etwas wie dies zu verwenden:

double GetLastPL()

{

double TempLastOrderProfit = 0;

datetime CloseTime = 0;

for(int i=OrdersHistoryTotal()-1;i>=0;i--)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))

if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)

{

CloseTime = OrderCloseTime();

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

}

}

return(TempLastOrderProfit);

}

Es wird Ihnen den genauen Betrag des Gewinns (oder Verlusts) des letzten Auftrags zurückgeben