Verdammter Fehler 130 zur Hölle

 

Jemand weiß, warum ich die 130 Fehler, ich habe sichergestellt, dass meine SL breit genug ist und dass es auf der rechten Seite des Marktes (dh unter für einen Kauf) ist. Jede Hilfe wäre sehr willkommen und eine große Erleichterung* Seufzer

if(KAUFEN)
{
if(stoploss > 0) //SL wird auf 35 gesetzt
realSL = Ask - (stoploss * Point);
if(Gewinnmitnahme > 0)
realTP = Ask + takeprofit * Point;
//BUYING!!
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, slippage, realSL, realTP, nameEA, 887722,0,Red);

if(ticket < 0)
Print("OrderSend (",nameEA,") schlug mit Fehler #", GetLastError()) fehl;
Alert("CODE_TEST: BUY BUY BUY");

Vielen Dank an alle,

Pat

 
FXpipclash:

Jemand weiß, warum ich die 130 Fehler, ich habe sichergestellt, dass meine SL ist breit genug und dass es auf der rechten Seite des Marktes (dh unter für einen Kauf) ist. Jede Hilfe wäre sehr willkommen und eine große Erleichterung* Seufzer

if(BUYING)
{
if(stoploss > 0) //SL wird auf 35 gesetzt
realSL = Ask - (stoploss * Point);
if(Gewinnmitnahme > 0)
realTP = Ask + takeprofit * Point;
//BUYING!!
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, slippage, realSL, realTP, nameEA, 887722,0,Red);

if(ticket < 0)
Print("OrderSend (",nameEA,") fehlgeschlagen mit Fehler #", GetLastError());
Alert("CODE_TEST: BUY BUY BUY");

Vielen Dank an alle,

Pat

Versuchen Sie dies... Ich glaube, Sie verwechseln Bid und Ask.


if(KAUFEN)
{
if(stoploss > 0) //SL wird auf 35 gesetzt
realSL = Bid-(stoploss * Point);
if(Gewinnmitnahme > 0)
realTP = Bid+ takeprofit * Point;
//BUYING!!
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, slippage, realSL, realTP, nameEA, 887722,0,Red);

if(ticket < 0)
Print("OrderSend (",nameEA,") fehlgeschlagen mit Fehler #", GetLastError());
Alert("CODE_TEST: BUY BUY BUY");



************************************

Faustregel... wenn Sie auf Ask einsteigen, steigen Sie mit Bid aus, wenn Sie auf Bid einsteigen, steigen Sie mit Ask aus


LongStop = Bid-(stoploss*Point)

LongLimit =Geld+(Limit*Punkt)

LongEntry= ASK

LongTrail = Bid-(stoploss*Point)



ShortStop = Ask+(stoploss*Point)

ShortLimit =Ask-(Grenze*Punkt)

ShortEintrag= BID

ShortTrail = Ask+(stoploss*Point)




Seewolf

 
seawolf wrote >>

Versuchen Sie dies... Ich glaube, Sie verwechseln die Begriffe Bid und Ask

if(KAUFEN)
{
if(stoploss > 0) //SL wird auf 35 gesetzt
realSL = Bid-(stoploss * Point);
if(Gewinnmitnahme > 0)
realTP = Bid+ takeprofit * Point;
//BUYING!!
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, slippage, realSL, realTP, nameEA, 887722,0,Red);

if(ticket < 0)
Print("OrderSend (",nameEA,") fehlgeschlagen mit Fehler #", GetLastError());
Alert("CODE_TEST: BUY BUY BUY");

************************************

Faustregel... wenn Sie zum Ask einsteigen, steigen Sie mit Bid aus, wenn Sie zum Bid einsteigen, steigen Sie mit Ask aus

LongStop = Bid-(stoploss*Point)

LongLimit =Geld+(Limit*Punkt)

LongEinstieg= ASK

LongTrail = Bid-(stoploss*Point)

ShortStop = Ask+(stoploss*Point)

ShortLimit =Ask-(Grenze*Punkt)

ShortEintrag= BID

ShortTrail = Ask+(stoploss*Point)

Seewolf

Danke für Ihre Antwort, Seawolf. Wenn ich also in meinem ursprünglichen Code kaufe, sollte ich dann nicht den Briefkurs für meine Berechnung verwenden, weil das der Preis ist, den ich zahlen muss?

 
Wer ist Ihr Makler?
 

Es ist der Preis, den Sie bezahlen, wenn Sie einsteigen, aber Sie müssen den Spread decken, so dass Sie den anderen Preis bezahlen, wenn Sie aussteigen... die Tatsache, dass Sie den Ask für Einstiege UND Ausstiege verwenden, ist absolut falsch.


Befolgen Sie die Faustregel, die ich Ihnen gegeben habe, und alles wird gut funktionieren... Ich weiß, dass es sehr verwirrend sein kann, deshalb habe ich es auf meine weiße Tafel geschrieben und nach vielen Jahren des Handels und der Programmierung, beziehe ich mich immer noch fast täglich darauf. Ich habe viele Artikel gefunden, in denen es nicht einmal richtig steht, also fühlen Sie sich nicht schlecht.

 

Hallo

Obwohl der ursprüngliche Code falsch ist, weil Sie Bid anstelle von Ask zum Kauf verwenden, sollte er dennoch funktionieren, wenn der Stoploss wirklich 35 Punkte beträgt. Vergewissern Sie sich, dass das System, auf dem Sie laufen, nicht auf 5 Dezimalstellen umgestellt wurde, sonst sollte der Stoploss bei 350 Punkten liegen. Bei Interbank wurden in der Demo 5 Dezimalstellen verwendet, im Live-System waren es 4.

 
FXpipclash

Jemand weiß, warum ich die 130 Fehler, ich habe sichergestellt, dass meine SL breit genug ist und dass es auf der rechten Seite des Marktes (dh unter für einen Kauf) ist. Jede Hilfe wäre sehr willkommen und eine große Erleichterung* Seufzer

if(BUYING)
{
if(stoploss > 0) //SL ist auf 35 gesetzt
realSL = Ask - (stoploss * Point);
if(takeprofit > 0)
realTP = Ask + takeprofit * Point;
//BUYING!!
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, slippage, realSL, realTP, nameEA, 887722,0,Red);

if(ticket < 0)
Print("OrderSend (",nameEA,") failed with error #", GetLastError());
Alert("CODE_TEST: BUY BUY BUY");

Vielen Dank an alle,

Pat

Nun, ich kann kategorisch feststellen, dass Seawolf und Ruptor aus ihrem kollektiven Hintern sprechen.

Bei einer OP_BUY-Order ist es absolut richtig, den Ask-Kurs zu verwenden, um den Einstiegskurs und die Stopps zu generieren.

Sie müssen jedoch die Werte in Ihren Stops überprüfen, indem Sie eine Print("realSL =, "DoubleToStr(realSL,Digits)," realTP=",DoubleToStr(realTP,Digits)) Anweisung direkt vor dem Senden Ihrer Order verwenden, um sicherzustellen, dass die Werte Ihren Erwartungen entsprechen. Wenn sie Ihren Erwartungen entsprechen, sollten Sie die akzeptablen Werte mit Hilfe der Funktion MarketInfo() mit der Kennung MODE_STOPLEVEL überprüfen.

 
Verwenden Sie einen 5-stelligen Broker? Wenn ja, wird Ihre "Point"-Variable alle Ihre SL/TP's 1/10 des tatsächlichen Wertes machen.
 
cloudbreaker wrote >>

Nun, ich kann kategorisch sagen, dass Seawolf und Ruptor aus ihrem kollektiven Hintern sprechen.

Für eine OP_BUY-Order ist es absolut richtig, den Ask-Kurs zu verwenden, um den Einstiegskurs und die Stopps zu generieren.

Sie müssen jedoch die Werte in Ihren Stops überprüfen, indem Sie eine Print("realSL =, "DoubleToStr(realSL,Digits)," realTP=",DoubleToStr(realTP,Digits)) Anweisung direkt vor dem Senden Ihrer Order verwenden, um sicherzustellen, dass die Werte Ihren Erwartungen entsprechen. Wenn sie Ihren Erwartungen entsprechen, sollten Sie die akzeptablen Werte mit der Funktion MarketInfo() mit der Kennung MODE_STOPLEVEL überprüfen.

Danke Cloudbreaker, ich wusste, dass ich mit dem Bezahlen des Ask richtig lag, ich habe nirgendwo angegeben, dass ich auch den Ask bezahle, wenn ich aus dem Trade herauskomme, den SL-Wert auszudrucken ist eine großartige Idee, vielen Dank für all Ihre Anregungen.

 
eacoder wrote >>
Benutzen Sie einen 5-stelligen Broker? Wenn ja, wird Ihre "Point"-Variable alle Ihre SL/TP's zu 1/10 des tatsächlichen Wertes machen.

Nein, ich benutze FXDD, das ist ein 4-stelliger Broker, die ganze Sache ist mir ziemlich rätselhaft, ich werde es versuchen

 
FXpipclash wrote >>

Vielen Dank Cloudbreaker, ich wusste, ich war richtig mit der Zahlung der Nachfrage, nirgends habe ich jemals angeben, dass ich auch zahlen die Nachfrage aus dem Handel, Drucken der SL-Wert ist eine tolle Idee, ich danke Ihnen für alle Ihre Eingabe.

Allright Cloud, dies war ein Lauf für mein Geld, aber ich denke, ich habe es gelöst, aus irgendeinem Grund sowohl die TP & SL wurden retruned als 1,0 (viel zu klein), so habe ich meine Variablen durch den gesamten Prozess und bemerken, ich deklariert die takeprofit und stoploss Werte als Doppel-und teh realSL realTP Werte als Integer, Ändern realTP & realSL zu verdoppeln das Problem behoben, noch einmal danke.

Grund der Beschwerde: