Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 695

 
jekk:

Guten Tag, bitte helfen Sie mir bei der Bearbeitung ausstehender Aufträge. Zum Beispiel sollte ich eine Pending Order durch den Indikator platzieren. Wie kann ich sie schreiben?

Preis = NormalizeDouble (iMA(Symbol(),TimeFrame_D1, EMA_Period_21,0,MODE_EMA,PRICE_MEDIAN,0)+1*Point,Digits);// wie kann man das korrigieren?

SL = NormalizeDouble (Ask- StopLoss*Point,Digits);

TP = NormalizeDouble (Level_plus_1500_D1,Digits); // dies für den Gewinn - Level_plus_1500_D1 - EMA Level?

OrderSend(Symbol(),OP_BUYLIMIT,Lots,Price,Slippage, SL,TP,NULL,Magic,0,clrLime);


Price =  NormalizeDouble (iMA(Symbol(),PERIOD_D1, EMA_Period_ 21,0,MODE_EMA,PRICE_MEDIAN,0)+1*Point,Digits);// как правильно прописать эту строчку? 
 TP = NormalizeDouble (Level_plus_1500_D1-iMA(Symbol(),PERIOD_D1, 21,0,MODE_EMA,PRICE_MEDIAN,0),Digits); // и эту для профита -  Level_plus_1500_D1 - уровень ЕМА  ?

Lesen Sie die Hilfe, da steht alles drin und ist sehr verständlich.

Und SL und TP sollten besser vom Preis der Order (Price) gesetzt werden, nicht vom Markt, das macht irgendwie mehr Sinn.

 
evillive:

Lesen Sie die Hilfe, da steht alles drin und ist ziemlich klar.

Und es ist besser, SL und TP aus dem Preis der Bestellung (Preis ) zu setzen, anstatt aus dem Marktpreis, es macht mehr Sinn.

Ich danke Ihnen!
 

Ich habe versucht, die in diesem Artikel https://www.mql5.com/ru/articles/1357 beschriebene Funktion zu verwenden. Ich beschloss zu prüfen, wie die Aufträge durch die Signale dieser Funktion geöffnet werden und schrieb einen einfachen Code:

Metatrader zeigt mir dies an:

Ich weiß nicht, was ich tun soll. Ich weiß nicht, ob etwas mit den Anführungszeichen oder dem Funktionscode nicht stimmt.

Der Funktionscode ist beigefügt.

Dateien:
func_ad.mqh  33 kb
 
LBatters:

Hallo an alle, können Sie mir bitte mit diesem Problem helfen. Ich habe mit der Funktion in diesem Artikel https://www.mql5.com/ru/articles/1357 geschrieben gearbeitet. Ich beschloss zu überprüfen, wie die Aufträge durch die Signale von dieser Funktion geöffnet werden und schrieb einige einfache Code:

Metatrader gibt dies aus:

Ich weiß nicht, was ich damit anfangen soll.

Ich habe den Code der Funktion beigefügt.


Wahrscheinlich ist es nicht dieselbe Funktion wie im Trailer, denn in diesem steht in Zeile 59 nichts mit Arrays, und der Fehler liegt eindeutig außerhalb des Arrays, in Zeile 59 im zweiten Screenshot.
 
evillive:

Wahrscheinlich ist es nicht die gleiche Funktion wie im Trailer, denn in diesem steht in Zeile 59 nichts mit Arrays, und der Fehler liegt eindeutig außerhalb des Arrays, in Zeile 59, wie im zweiten Screenshot zu sehen ist.

Nein, ich habe nur kommentiert, deshalb haben sich die Zeilen verschoben.

Hier ist die Liste, die ich zusammengestellt habe.

Dateien:
func_ad1.mqh  63 kb
 
LBatters:

Nein, ich habe nur kommentiert, deshalb haben sich die Zeilen verschoben.

Hier ist die Liste, die ich zusammengestellt habe.


Versuchen Sie
for (i=2; i<=nBars-2; i++)
 
evillive:

Versuchen Sie
for (i=2; i<=nBars-2; i++)


Ha! Jetzt wird ein Handel eröffnet und das ist das Ende des Tests, ich verstehe nicht, warum 2 abgezogen werden?
 
LBatters:

Ha! Jetzt wird ein Handel eröffnet und dort endet der Test, ich verstehe nicht, warum 2 abgezogen werden?


Es gibt noch mehr Arrays in der Inline, wahrscheinlich stolpert er schon über sie. Oder beschwert er sich immer noch über Zeile 59?

Und Subtraktion - Arithmetik ist einfach - wenn es 100 Elemente, ihre Nummerierung ist 0...99 (weil nBars=100, so 99 ist, dass sehr nBars-1), und daher können Sie in Ihrem Algorithmus zählen von 1 (Vergleich mit 0 und 2 Bars) bis 98 (Vergleich mit 97 und 99 Bars), bei 99 wird es bereits verlassen das Array.

 
evillive:


Es gibt noch mehr Arrays in der Inline, wahrscheinlich stolpert er schon über sie. Oder beschwert er sich immer noch über Zeile 59?

Und Subtraktion - Arithmetik ist einfach - wenn es 100 Elemente, ihre Nummerierung ist 0...99 (99 ist Ihre sehr nBars-1), so können Sie von 1 (Vergleich mit 0 und 2 Bars) bis 98 (Vergleich mit 97 und 99 Bars) in Ihrem Algorithmus zu zählen, bei 99 werden Sie aus Array gehen.


Aber es ist weniger oder gleich, d. h. 99 ist inbegriffen, nicht wahr? Bei der Auftragseröffnung wird der Fehler 130 angezeigt.

 
LBatters:


Sie ist entweder kleiner oder gleich, d.h. 99 ist enthalten. Ist es nicht so? Bei der Auftragseröffnung erscheint die Fehlermeldung 130.


Wir haben i=99 erreicht, dies ist das letzte Element.

if (TempIND[i]<TempIND[i-1] && TempIND[i+1]>=TempIND[i])

Wo liegt[i+1]?