Hilfe bei der Codierung - Seite 18

 

Fehler in EA erhalten Hilfe benötigt

Nur 1 Trade erhalten

Ich brauche alle Trades, die in icustom ARROW generiert werden

aber

extern string Symbol_1 = "EURUSD";

int magic=9503;

return(0);

int deinit()

{

return(0);

}

datetime newbar;

int start()

{

if(newbar==Time[0])return(0); //

sonst newbar=Time[0];

double ArrowUp = iCustom(NULL,0, "NBO-System_v1",2,1,10000,2,1);

double ArrowDown = iCustom(NULL,0, "NBO-System_v1",2,1,10000,3,1);//PERIOD_M5

if (ArrowDown >0 && ArrowDown!=2147483647 && OrdersTotal()==0)//!= EMPTY_VALUE )

{

OrderSend(Symbol_1,OP_BUY,0.1, MarketInfo(Symbol_1,MODE_ASK), 2, NULL, NULL, "RapidFire", magic, NULL, FireBrick);

}

if (ArrowUp >0 && ArrowUp!=2147483647 && OrdersTotal()==0)

{

OrderSend(Symbol_1,OP_SELL,0.1, MarketInfo(Symbol_1,MODE_BID), 2, NULL, NULL, "RapidFire", magic, NULL,LimeGreen );

}

return(0);

}

Dateien:
ea.png  22 kb
 
 
In Ihrem EA ist diese Bedingung

OrdersTotal()==0

Wenn Sie mehr als eine Order öffnen wollen, entfernen Sie diese Bedingung, aber Sie müssen einen Code hinzufügen, um zu verhindern, dass mehrere Orders zum gleichen Zeitpunkt geöffnet werden (sonst haben Sie am Ende eine Zillion geöffneter Orders). Sie können eine Funktion verwenden, die etwa so aussehen würde:

int countOpenedOnACurrentBar()

{

int openedAtBar = 0;

datetime startTime = Time[0];

datetime endTime = Time[0]+Period()*60;

for(int i=0; i < OrdersTotal(); i++)

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) break;

if(OrderMagicNumber() != MagicNumber) continue;

if(OrderSymbol() != Symbol()) continue;

if(OrderOpenTime()=endTime) continue;

openedAtBar++;

break;

}

return(openedAtBar);

}

[/PHP]

und dann würde Ihre vollständige Bedingung (für den Kauf) wie folgt aussehen:

[PHP]if (ArrowDown >0 && ArrowDown!=2147483647 && countOpenedOnACurrentBar()==0)

Es würde verhindern, dass mehrere Orders auf demselben Balken geöffnet werden (dieser Code prüft nicht den Typ der Order, die bereits auf dem aktuellen Balken geöffnet ist; wenn Sie auch das prüfen möchten, müssen Sie weitere Bedingungen hinzufügen

vegadigitalco:
Nur 1 Trade erhalten

Ich brauche alle Trades, die in icustom ARROW generiert werden

aber

extern string Symbol_1 = "EURUSD";

int magic=9503;

return(0);

int deinit()

{

return(0);

}

datetime newbar;

int start()

{

if(newbar==Time[0])return(0); //

sonst newbar=Time[0];

double ArrowUp = iCustom(NULL,0, "NBO-System_v1",2,1,10000,2,1);

double ArrowDown = iCustom(NULL,0, "NBO-System_v1",2,1,10000,3,1);//PERIOD_M5

if (ArrowDown >0 && ArrowDown!=2147483647 && OrdersTotal()==0)//!= EMPTY_VALUE )

{

OrderSend(Symbol_1,OP_BUY,0.1, MarketInfo(Symbol_1,MODE_ASK), 2, NULL, NULL, "RapidFire", magic, NULL, FireBrick);

}

if (ArrowUp >0 && ArrowUp!=2147483647 && OrdersTotal()==0)

{

OrderSend(Symbol_1,OP_SELL,0.1, MarketInfo(Symbol_1,MODE_BID), 2, NULL, NULL, "RapidFire", magic, NULL,LimeGreen );

}

return(0);

}
 

Sehr Sehr Vielen Dank für HELPPPPPPPPPPPPPPPP

Sehr Sehr ThanX für HELPPPPPPPPPPPPPPPP

Sehr Sehr ThanX für HELPPPPPPPPPPPPPPPPP

Sehr viel mehr alsX für HELPPPPPPPPPPPPPPP

Sehr Sehr ThanX für HELPPPPPPPPPPPPPPP

mladen:
In Ihrem EA verhindert diese Bedingung

AufträgeGesamt()==0

Wenn Sie mehr als eine Order öffnen wollen, entfernen Sie diese Bedingung, aber Sie müssen einen Code hinzufügen, um zu verhindern, dass mehrere Orders auf demselben Balken geöffnet werden (sonst haben Sie am Ende zig geöffnete Orders). Sie können eine Funktion verwenden, die in etwa wie folgt aussehen würde:
int countOpenedOnACurrentBar()

{

int openedAtBar = 0;

datetime startTime = Time[0];

datetime endTime = Time[0]+Period()*60;

for(int i=0; i < OrdersTotal(); i++)

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) break;

if(OrderMagicNumber() != MagicNumber) continue;

if(OrderSymbol() != Symbol()) continue;

if(OrderOpenTime()=endTime) continue;

openedAtBar++;

break;

}

return(openedAtBar);

}

[/PHP]

und dann würde Ihre vollständige Bedingung (für buy) wie folgt aussehen:

[PHP]if (ArrowDown >0 && ArrowDown!=2147483647 && countOpenedOnACurrentBar()==0)
Es würde verhindern, dass mehrere Orders auf demselben Balken geöffnet werden (dieser Code prüft nicht die Art der Order, die bereits auf einem aktuellen Balken geöffnet wurde; wenn Sie auch das prüfen möchten, müssen Sie weitere Bedingungen hinzufügen).
Dateien:
 

die Bilanz ist Backtest, Live-Demo-Testing oder Real-Money-Trading-Bilanz

EA kam mir nie in den Sinn, da halbautomatische Eingaben gut und cool genug sind (halbautomatisch bedeutet eine zusätzliche Hürde, wenn Sie eine Order aufgeben, wie Fly-by-Wire, der Computer kann Ihre Eingaben für ungültig erklären)

aber die Tick-Ease ist wie ein Feuerring in einem Videospiel, es gibt immer nur wenige Stellen im Ring, in die man sich hineinstellen kann, die anderen verbrennen einen ganz leicht --- das ist aber nicht der Marktzustand der letzten 5 bis 10 Monate, die Dinge werden einfacher

Ich möchte die Codes im obigen EA lesen - aber diese Codes übersteigen meine Verständnisgrenze

 

Ich brauche eine Warnung in dem oben kodierten Handel

Hallo mladen,

danke für deine einzigartige Unterstützung für mich

1more Sache, wie kann ich Alert-Code auf Kauf oder Verkauf in obigen Code generiert u haben vorgeschlagen, hinzufügen.

in Live-Markt es dosnt schließen kaufen oder verkaufen, seine nur die Schaffung neuer Handel.

ThanX im Voraus

 

...

Versuchen Sie etwas wie dieses (dies ist ein Beispiel nur für den Kauf)
if (ArrowDown >0 && ArrowDown!=2147483647 &&countOpenedOnACurrentBar()==0)

{

OrderSend(Symbol_1,OP_BUY,0.1, MarketInfo(Symbol_1,MODE_ASK), 2, NULL, NULL, "RapidFire", magic, NULL, FireBrick);

if (!IsTesting()) Alert(Symbol_1+" BUY ordere opened at "+TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS));

}

vegadigitalco:
Hallo mladen,

danke für Ihre einzigartige Unterstützung für mich

1more Sache, wie kann ich hinzufügen, Alarm-Code auf Kauf oder Verkauf in obigen Code generiert u vorgeschlagen haben.

in Live-Markt es dosnt schließen kaufen oder verkaufen, seine nur die Schaffung neuer Handel.

ThanX im Voraus
 

Mind teilen Sie ea hier? Ich mag wirklich, wie die ea nimmt den Handel.

 

Hallo, mLaden,

danke nochmal für deine tolle Hilfe:)

nur 1 Problem bleibt

Im Live-Markt wird die vorherige Kauf- oder Verkaufsposition nicht geschlossen, es wird nur ein neuer Handel erstellt. ???

Vielen Dank in ADV

mladen:
Versuchen Sie etwas wie dies (dies ist ein Beispiel für nur kaufen)
if (ArrowDown >0 && ArrowDown!=2147483647 &&countOpenedOnACurrentBar()==0)

{

OrderSend(Symbol_1,OP_BUY,0.1, MarketInfo(Symbol_1,MODE_ASK), 2, NULL, NULL, "RapidFire", magic, NULL, FireBrick);

if (!IsTesting()) Alert(Symbol_1+" BUY ordere opened at "+TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS));

}

 

...

vegadigitalco

Dafür müssen Sie eine Schließungslogik in Ihren EA einbauen. Entweder Sie verwenden Take Profit und Stop Loss, oder Sie verwenden explizit OrderClose() basierend auf einigen Exit-Regeln dafür.

vegadigitalco:
Hallo, mLaden,

Nochmals vielen Dank für deine großartige Hilfe:)

Nur 1 Problem bleibt

Im Live-Markt schließt der EA nicht die vorherige Kauf- oder Verkaufsposition, sondern erstellt einfach einen neuen Handel. ???

Vielen Dank in ADV