Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1347

Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich kann den Expert Advisor nicht beenden. Das Prinzip ist einfach - zuerst zeichne ich ein Rechteck, das ein Kaufauslöser ist, falls der Preis in seinen Bereich kommt, dann zeichne ich das zweite - wenn der Preis dort ankommt, sollte das Geschäft geschlossen werden.
Aber das Gegenteil ist der Fall - der Preis beginnt sich innerhalb des Bereichs zu öffnen und zu schließen. Was mache ich falsch?
//+------------------------------------------------------------------+
//| RECTANGLES OP_BUY.mq4 |
//+------------------------------------------------------------------+
#eigenschaft copyright ""
#property link ""
#Eigenschaft Version "1.00"
#Eigenschaft streng
extern int Magic = 777701;
extern double Lot = 0,01;
extern int Schlupf = 3;
int-Ticket;
int OrderOfSymbol;
//+------------------------------------------------------------------+
Experteninitialisierungsfunktion //|
//+------------------------------------------------------------------+
int OnInit()
{
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Experten-Tick-Funktion |
//+------------------------------------------------------------------+
void OnTick()
{
//---
//Prüfen auf ein Rechteck:
if(ObjectsTotal(OBJ_RECTANGLE)==0)
{Kommentar("Zeichnen Sie ein Rechteck, um ein Kaufgeschäft zu eröffnen!");}
//Gibt den NAME des Rechtecks an:
for(int n=0;n<ObjectsTotal();n++)
{
string name=Objektname(n);
if(ObjectType(name)==OBJ_RECTANGLE)
{
datetime t1a = (datetime) ObjectGet(name,OBJPROP_TIME1);
datetime t2a = (datetime) ObjectGet(name,OBJPROP_TIME2);
double p1a=NormalizeDouble(ObjectGet(name,OBJPROP_PRICE1),Digits);
double p2a=NormalizeDouble(ObjectGet(name,OBJPROP_PRICE2),Digits);
OrderOfSymbol=CounterOrderTradeType(-1);
if (Reihenfolge des Symbols<1)
wenn (Schließen[1]>Öffnen[1])
if(TimeCurrent()>t1a && TimeCurrent()< t2a &&
Gebot < p1a && Gebot > p2a )
{
ticket = OrderSend(Symbol(),OP_BUY, Lot, Ask, Slippage, 0, 0, "open buy order", Magic, 0, Blue);
}
}
}
//Prüfen, ob es bereits ein zweitesRechteck gibt:
if(ObjectsTotal(OBJ_RECTANGLE)==1)
{Kommentar("Ziehen Sie ein zweites Rechteck, um den Kauf zu schließen!");}
//Gibt den NAME des Rechtecks an:
for(int n=0;n<ObjectsTotal();n++)
{
string name=Objektname(n);
if(ObjectType(name)==OBJ_RECTANGLE)
{
datetime t1b = (datetime) ObjectGet(name,OBJPROP_TIME1);
datetime t2b = (datetime) ObjectGet(name,OBJPROP_TIME2);
double p1b=NormalizeDouble(ObjectGet(name,OBJPROP_PRICE1),Digits);
double p2b=NormalizeDouble(ObjectGet(name,OBJPROP_PRICE2),Digits);
if(TimeCurrent()>t1b && TimeCurrent()< t2b &&
Gebot < p1b && Gebot > p2b )
CloseBuyPositions1();
}
}
//Prüfen, ob bereits ein 2. Rechteck vorhanden ist:
if(ObjectsTotal(OBJ_CHANNEL)==2)
{Kommentar("Eröffnungs- und Schlussbereich der Kauforder sind festgelegt - der Handel ist eröffnet!");}
}
//+------------------------------------------------------------------+
void CloseBuyPositions1()
{
for(int i = OrdersTotal() - 1; i >= 0; i--)
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
if(OrderMagicNumber() == Magic)
if(OrderSymbol() == Symbol())
{
if(Auftragsart()==OP_BUY)
{
if(OrderClose(OrderTicket(), OrderLots(), Bid, 3, NULL)){Drucken("Order Close");}
}
}
}
//+------------------------------------------------------------------+
//| Auftragszählung |
//+------------------------------------------------------------------+
int CounterOrderTradeType(ENUM_ORDER_TYPE order_type)
{
int cnt=0;
//----
for(int pos=OrdersTotal()-1;pos>=0;pos--)
{
if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)==false) weiter;
if(OrderSymbol()!=_Symbol) weiter;
if(order_type == OrderType() || order_type == -1) cnt++;
}
//----
zurück(cnt);
}
Es gibt eine Funktion, mit der man solchen Code posten kann. Das macht es für alle einfacher, Ihren Code zu lesen und zu helfen.
Es gibt eine Funktion, mit der man solchen Code posten kann. Das würde es für alle einfacher machen, Ihren Code zu lesen und zu helfen.
Das wird ihm nicht helfen. Leere Zeilen werden nur von Leuten wie ihm gelesen.
Порт-моне тв:
Was mache ich falsch?
Es gibt keine Einzigartigkeit im Namen des Platzes, Sie haben jeden Platz als Bedingung zu kaufen und zu verkaufen
Dies wird Ihnen auch helfen
Bitte teilen Sie uns mit, wie der Fehler behoben werden kann
Hier ist der Fehler
'CornerInfo' - constant cannot be modified Wa.mq4 22 1 'CornerInfo1' - constant cannot be modified Wa.mq4 23 1 2 errors, 0 warnings 3 1
Ich danke Ihnen!
Gern geschehen )
Können Sie mir bitte sagen, wie ich den Fehler beheben kann?
Hier ist ein Fehler
Eingabevariablen können nicht geändert werden.
Sie können das so machen:
Gern geschehen )
Eingabevariablen können nicht geändert werden.
Sie können das so machen:
Danke, ich hab's.
Das wird auch Ihnen helfen.
Das war nicht der Fall. Und ich habe festgestellt, dass die quadratischen Werte nicht, wie es sein sollte, von zwei, sondern von dem letzten genommen werden. Ich weiß nicht, wie man das übertreffen kann. Hätte ich das nicht selbst herausfinden können? Ich spreche nicht fließend mql, deshalb frage ich Sie hier und Sie bieten mir Kämme an.
hat nicht geholfen. Und ich habe festgestellt, dass die quadratischen Werte nicht, wie es sein sollte, von zwei, sondern von dem letzten genommen werden. Ich weiß nicht, wie man das übertreffen kann. Das hätte ich selbst nicht vermutet. Ich spreche nicht fließend mql, deshalb frage ich Sie, und Sie bieten mir Kämme an.
Ich biete Ihnen Kämme an, um Ihren Code für diejenigen, die Sie ansprechen, leicht lesbar zu machen (keine Böswilligkeit hier).
Um Ihre Quadrate richtig zu identifizieren, müssen Sie wissen, woher sie stammen, d. h. ob Sie sie gezeichnet haben oder ein Berater