[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 1034

 
Techno:
Sie können. der übliche Experte/Skript

Vielleicht gibt es bereits etwas Ähnliches, können Sie mir sagen, wo ich es finden kann? Oder kennen Sie jemanden, der einen schreiben kann?

 

Hilfe bitte pro

Der folgende Code funktioniert nicht.

MA-Werte werden berechnet und der MA-Variablen zugewiesen

korrekt, aber sie werden nicht einem Array zugewiesen. Das Array ist definiert als double

dynamisch. Die Print-Prozedur gibt Nullwerte des Arrays aus.

i=i_max; // ...die gegebene Zahl berechnen.

if (flag_NewBar==true) // Neuberechnung nur bei Ankunft des ersten Ticks

{

while(i>=0) // Schleife über ungelesene Balken

MA=iMA(g_ext_smb,g_ext_TameFrame,g_ext_Period_MA,0,g_ext_Method,g_ext_PRICE,i);

MA=NormalizeDouble(MA,Digits);

mas_MA[i]=MA;

i--; }

 

Ich verstehe nicht, warum es einen Fehler 130 gibt? Bitte um Hilfe.

Hier ist der Code:

   double myPrice      = NormalizeDouble(Bid - 10*Pnt*10,Digits);
   double myTakeProfit = NormalizeDouble(myPrice + TakeProfit * Pnt*10,Digits);                                                     //
   if (RAVI0_2_24_D1 > 1 && RAVI0_2_24_D1 < 5 && RAVI0_2_24_D1_1 < RAVI0_2_24_D1 && RAVI0_2_24_D1_2 < RAVI0_2_24_D1_1 && RAVI0_2_24_D1_3 < RAVI0_2_24_D1_2) myTakeProfit = myTakeProfit + 25 * Pnt*10;
   double myStopLoss   = NormalizeDouble(myPrice - StopLoss * Pnt*10,Digits);
   datetime myTimeEnd  = TimeCurrent() + wait*60;
   Alert("OP_BUYLIMIT: Spread=",MarketInfo(Symbol(),MODE_SPREAD)," Stop=",DoubleToStr(MarketInfo(Symbol(), MODE_STOPLEVEL), 2)," lot=",DoubleToStr(lotMM,3)," Pr=",DoubleToStr(myPrice,6)," SL=",DoubleToStr(myStopLoss,6)," TP=",DoubleToStr(myTakeProfit,6));
   ticket=OrderSend(Symbol(),OP_BUYLIMIT,lotMM,myPrice,Slippage,myStopLoss,myTakeProfit,ExpertName, MagicNumber,myTimeEnd,myColor);

Ich habe absichtlich Alert eingefügt, um das Problem zu sehen, aber ich kann es nicht finden.

Hier ist die Botschaft von Alert:

2010.12.13 12:39:36 2010.09.01 11:35 DVD 100-50 Cent iK EURUSD,M1: OrderSend Fehler 130

2010.12.13 12:39:36 2010.09.01 11:35 DVD 100-50 cent iK EURUSD,M1: Alert: OP_SELLLIMIT: Spread=1 Stop=10.00 lot=0.010 Pr=1.280300 SL=1.320300 TP=1.240300

 
VNG:

Hilfe bitte pro

Der folgende Code funktioniert nicht.

MA-Werte werden berechnet und der MA-Variablen zugewiesen

korrekt, aber sie werden nicht einem Array zugewiesen. Das Array ist definiert als double

dynamisch. Die Print-Prozedur gibt Nullwerte des Arrays aus.

i=i_max; // ...die gegebene Zahl berechnen.

if (flag_NewBar==true) // Neuberechnung nur bei Ankunft des ersten Ticks

{

while(i>=0) // Schleife über ungelesene Takte

MA=iMA(g_ext_smb,g_ext_TameFrame,g_ext_Period_MA,0,g_ext_Method,g_ext_PRICE,i);

MA=NormalizeDouble(MA,Digits);

mas_MA[i]=MA;

i--; }

IMHO sollten Arrays eine bestimmte Größe haben, außer für Arrays in Indikatoren, die zum "Zeichnen" gedacht sind. Ich denke, sie sollte eingefügt werden:
ArrayResize(mas_MA,i_max);
 
globad:

Leute, bitte um Rat! Ist es möglich, ein Programm zu erstellen, das einen Signalton ausgibt, wenn der Preis innerhalb von 0,1-0,4 Sekunden 10-11 Pence überschreitet?

Ich schlage einen anderen Weg vor, 0,1-0,4s ist etwa ein Tick, Änderung asc die gesamte Marktübersicht pro Tick.
Dateien:
temp_4.mq4  4 kb
 
ikatsko:

Ich verstehe nicht, warum es einen Fehler 130? Bitte um Hilfe.

Hier ist der Code:

Ich habe absichtlich Alert eingefügt, um das Problem zu sehen, aber ich kann es nicht finden.

Hier ist die Botschaft von Alert:

2010.12.13 12:39:36 2010.09.01 11:35 DVD 100-50 Cent iK EURUSD,M1: OrderSend Fehler 130

2010.12.13 12:39:36 2010.09.01 11:35 DVD 100-50 cent iK EURUSD,M1: Alert: OP_SELLLIMIT: Spread=1 Stop=10.00 lot=0.010 Pr=1.280300 SL=1.320300 TP=1.240300


Schritt für Schritt, ändern Sie stoppt nehmen überschießende Eröffnung Preis (weil das Pendel ist niedriger aus dem Preis) zu Konstanten, finden Sie fast, wo der Fehler ist.

Aus der Hilfe: "Wenn der Eröffnungskurs des schwebenden Auftrags nicht korrekt ist, wird der Fehler 130 (ERR_INVALID_STOPS) erzeugt".

ticket=OrderSend(Symbol(),OP_BUYLIMIT,1,Close[0]+DoubleToStr(MarketInfo(Symbol(), MODE_STOPLEVEL), 2)*2,15,0,0,ExpertName, MagicNumber,myTimeEnd,myColor);
 
VNG:

Hilfe bitte pro

Der folgende Code funktioniert nicht.

MA-Werte werden berechnet und der MA-Variablen zugewiesen

korrekt, aber sie werden nicht einem Array zugewiesen. Das Array ist definiert als double

dynamisch. Die Druckprozedur gibt Nullwerte für das Array aus.

i=i_max; // ...eine bestimmte Zahl berechnen.

if (flag_NewBar==true) // Neuberechnung nur bei Ankunft des ersten Ticks

{

while(i>=0) // Schleife über ungelesene Takte

MA=iMA(g_ext_smb,g_ext_TameFrame,g_ext_Period_MA,0,g_ext_Method,g_ext_PRICE,i);

MA=NormalizeDouble(MA,Digits);

mas_MA[i]=MA;

i--; }

Lesen Sie es

https://book.mql4.com/ru/operators/while

https://docs.mql4.com/ru/series/iBarShift

Ich würde wie folgt vorgehen

if (flag_NewBar) // пересчитываем только во время прихода первого тика
 for(i=i_max;i>=0;i--) // Цикл по непосчитанным барам
    mas_MA[i]=NormalizeDouble(iMA(g_ext_smb,g_ext_TameFrame,g_ext_Period_MA,0,g_ext_Method,g_ext_PRICE,
                                                             iBarShift(g_ext_smb,g_ext_TameFrame,Time[i],false)),Digits);
if (flag_NewBar==true) // пересчитываем только во время прихода первого тика
while(i>=0){ // Цикл по непосчитанным барам
mas_MA[i]=NormalizeDouble(iMA(g_ext_smb,g_ext_TameFrame,g_ext_Period_MA,0,g_ext_Method,g_ext_PRICE,i),Digits);
i--; 
} 
 
wie viele eibars weniger als null können verwendet werden, um Objekte zu zeichnen? was ist das Minimum?
 
costy_:

Ändern Sie Schritt für Schritt die Stopps, nehmen Sie den überschießenden Eröffnungskurs (da das Pendel unter dem Kurs höher ist), um Konstanten zu ermitteln, wo praktisch der Fehler liegt.

Aus der Hilfe: " Fehler 130 (ERR_INVALID_STOPS) wird generiert, wenn der Eröffnungskurs einer schwebenden Order falsch ist".

Ja, UZH :) Der Fehler besteht nämlich darin, dass der Eröffnungspreis des Anhängers nahe am aktuellen Preis liegt. Ich habe es repariert, es funktioniert jetzt. DANKESCHÖN

 
eddy:
wie viele eibarshifts weniger als null können verwendet werden, um Objekte zu zeichnen? was ist das Minimum?

ebarshift ist die Suche nach einem Takt nach Zeit (nichts funktioniert).

im Terminal ist der letzte Balken 0, die Zeit ist mit den Balken verknüpft, d.h. nur so geht es über Strings in die Zukunft

ObjectCreate("ff",OBJ_VLINE,0,StrToTime("2010.12.13 20:00"),0); //