[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 424

 
Legeo777:

Bitte helfen Sie mir zu verstehen, was los ist:

//+------------------------------------------------------------------+

//| AAAA.mq4 |

//| |

//| |

//+------------------------------------------------------------------+

#eigenschaft copyright ""

#property link ""


extern string TimeStart = "00:00"; //Uhrzeit des Beginns des Kontrollzeitraums

extern string TimeEnd = "00:00"; //Zeitpunkt für das Ende des Kontrollzeitraums.


extern double LOT = 0.01; // Los

extern int Magic = 777; // Magie



double marga,Lot,SL,TP; // eingegebene Marge, Lot, Stop Loss und Take Profit Variablen

int Total,Orders,tipOrders,TradeDey; // Variablen Typ,Ordertyp,Handelstag.


//+---------------------------------------------------------------------------------------------------------------------------------------+

//| Funktion des Expert Advisors |

//+---------------------------------------------------------------------------------------------------------------------------------------+

int start() // Funktion der Initialisierung start

{

datetime Time_Start = StrToTime(StringConcatenate(Day(),".",Month(),".",Year()," ",TimeStart, ":00")); // Startparameter //

datetime Time_End = StrToTime(StringConcatenate(Day(),".",Month(),".",Year(),",TimeEnd, ":00")); // Endparameter//



Total=0; // Wenn es keine Aufträge gibt

for(int i=1; i<=OrdersTotal(); i++) // Auftragsschleife

{

if (OrderSelect(i-1,SELECT_BY_POS)==false) // Wenn es keine Marktaufträge gibt

{

if //If: - entfernen
{

int BarStart = iBarShift(NULL,PERIOD_M1,Time_Start,false); // Suche nach dem Takt am Anfang der Prüfperiode auf m1

int BarEnd = iBarShift(NULL,PERIOD_M1,Time_End,false); //Balkenende der Prüfperiode bei m1 suchen

double Max_Price=iHigh(NULL,0,iHighest(NULL,PERIOD_M1,MODE_HIGH,BarStart-BarEnd,BarEnd)); //der höchste Preiswert innerhalb der Periode

double Min_Price=iLow (NULL,0,iLowest (NULL,PERIOD_M1,MODE_LOW,BarStart-BarEnd,BarEnd)); //der niedrigste Preiswert innerhalb der Periode

}

if (TimeCurrent()>Time_End && ObjectFind("bar0"+Time_End)==-1) // Grafische Anzeigeeinstellungen

{

ObjectCreate("bar0"+Time_End, OBJ_RECTANGLE, 0, 0,0, 0,0);

ObjectSet("bar0"+Time_End, OBJPROP_STYLE, STYLE_SOLID);

ObjectSet ("bar0"+Time_End, OBJPROP_COLOR, Blue);

ObjectSet ("bar0"+Time_End, OBJPROP_BACK, true);

ObjectSet ("bar0"+Time_End, OBJPROP_TIME1,Time_Start);

ObjectSet ("bar0"+Time_End, OBJPROP_PRICE1,Max_Price);

ObjectSet ("bar0"+Time_End, OBJPROP_TIME2,Time_End);

ObjectSet ("bar0"+Time_End, OBJPROP_PRICE2,Min_Price);

}

if (Bid<Max_Price) OrderSend(Symbol(),OP_BUYSTOP,LOT,Ask,3,Min_Price, //Bedingungen für die Platzierung einer schwebenden BUY-Order - schwebende Orders können nicht nach Ask oder Bid platziert werden

NormalizeDouble(Ask + Max_Price - Min_Price,Digits), "UPDD",Magic,Blue);

wenn (Gebot>Max_Preis)

Comment("Pending order cannot be placed on Bid");

if (Bid>Min_Price) OrderSend(Symbol(),OP_SELLSTOP,LOT,Bid,3,Min_Price, //Bedingungen für die Platzierung von SELL pending order - gleich

NormalizeDouble(Ask + Max_Price-Min_Price,Digits), "UPDD",Magic,Blue);

if (Bid<Max_Price) - hier muss ein Fehler vorliegen

Comment("Pending order cannot be placed on SELL");

}

} - hinzufügen

Rückkehr;

}

Ich kann es nicht kompilieren. Eigentlich sollte es zwei schwebende Aufträge nach oben und unten aus dem Bereich platzieren.

Nach den Korrekturen sollte es kompiliert werden, aber es wird wahrscheinlich nicht funktionieren - falsch gesetzte Zeiten, nicht normalisierte Preise, keine Prüfung der Nähe von Stopps zu offenen Preisen.
 
Wenn Sie sich damit auskennen, könnten Sie uns bitte sagen, wie wir die Existenzzeit für ausstehende Aufträge auf 23.59 Uhr setzen können, d.h. wenn der Auftrag von einem EA erteilt wird, würde er bis 23.59 Uhr des aktuellen Tages existieren.
 
stater:
Wenn Sie sich damit auskennen, könnten Sie uns bitte sagen, wie wir die Existenzzeit für ausstehende Aufträge auf 23.59 Uhr setzen können, d.h. wenn der Auftrag von einem EA erteilt wird, würde er bis 23.59 Uhr des aktuellen Tages existieren.
datime exp=iTime(Symbol(),PERIOD_D1,0)+23*60*60+59*60;
 
Sepulca:


Vielen Dank! Können Sie mir sagen, wie viele EAs in einem Terminal arbeiten können, ich habe 5 Charts EURUSD geöffnet, ich habe 5 verschiedene EAs auf sie geworfen, aber das Journal zeigt nur den ersten, der funktioniert...obwohl alle meine Gesichter lächeln

 

Was ist der klügste Weg, um ein MM zu machen, unter der Bedingung von 0,1 Lot für jede 1000 Balance.

Was ist sinnvoller zu verwenden, AccountBalance oder AccountEquity?

 

Guten Tag,

Gibt es einen Befehl, der dem Skript (dessen Code "OrderSend(Symbol(),OP_BUYSTOP..." lautet) hinzugefügt werden könnte, damit das Skript auf allen offenen Charts ausgeführt wird?

 
sss2019:

Was ist der klügste Weg, um ein MM zu machen, unter der Bedingung von 0,1 Lot für jede 1000 Balance.

Was ist sinnvoller zu verwenden, AccountBalance oder AccountEquity?


Es macht keinen Unterschied: Wenn Sie eine Bestellung aufgeben, sind sie zum Zeitpunkt der Auftragseröffnung gleich, aber wenn Sie viele Bestellungen haben, reicht eine Formel nicht aus.
 
stater:

Vielen Dank! Können Sie mir sagen, wie viele EAs in einem Terminal arbeiten können, ich habe 5 Charts EURUSD geöffnet, ich habe 5 verschiedene EAs auf sie geworfen, aber das Journal zeigt nur den ersten, der funktioniert...obwohl alle meine Gesichter lächeln



Auf verschiedenen Währungspaaren funktionieren, auch wenn es der gleiche Expert Advisor ist. In einem Diagramm funktioniert nur eines. Aber auf verschiedenen Charts desselben Währungspaares weiß ich nicht einmal.....
 
Roger:

Es macht keinen Unterschied, wenn Sie einen Auftrag eröffnen, sind sie im Moment der Eröffnung gleich, und wenn Sie viele haben, dann ist eine Formel nicht genug.


Ich dachte nur, dass, wenn ich bereits mehrere Aufträge offen haben und sie sind in Drawdown, dann Los sollte mit Eigenkapital berechnet werden, sonst, wenn Sie es mit Gleichgewicht zu berechnen, dann Los kann zu groß sein und nicht genug Geld zu öffnen.

Bitte zeigen Sie mir ein Beispiel für eine derartige Berechnung für eine Einlage von 1000 Lots zu 0,1 Lots.

 
Roger Vielen Dank!!!!!