Ich schreibe kostenlos einen Ratgeber - Seite 17

 
Hallo, ich habe begonnen, MQL4 zu lernen und begann mit dem MACD Sample Expert Advisor. Ich habe alles im Griff. Ich glaube, ich habe alles verstanden, aber ich schaffe es nicht, dass es auf meiner Demo für mehrere Währungspaare auf einmal funktioniert. Wenn es bereits eine offene Position im Terminal gibt (manuell oder durch Expert Advisor), wird es nicht funktionieren. Ich habe nicht genug Wissen, bitte beraten Sie mich, was ich hinzufügen oder korrigieren sollte.
 
igor.malish:
Hallo, ich habe begonnen, MQL4 zu lernen und begann mit dem MACD Sample Expert Advisor. Ich habe es ausgewertet. Ich glaube, ich habe alles in den Griff bekommen, aber ich kann es nicht als Demo-Expert Advisor auf mehr als ein Symbol zur gleichen Zeit arbeiten lassen. Wenn es bereits eine offene Position im Terminal gibt (manuell oder per Expert Advisor), funktioniert es nicht. Ich habe alles versucht, was ich weiß. Ich habe nicht genug Wissen, bitte beraten Sie mich, was ich hinzufügen oder korrigieren soll.

MACD Sample ist nicht für den Handel mit mehreren Instrumenten geeignet

total=OrdersTotal();

   if(total<1)

     {...
Unter diesen Bedingungen ist es praktisch verboten, Geschäfte zu eröffnen, wenn bereits mindestens ein Geschäft für ein beliebiges Instrument eröffnet wurde.
 
dimeon:

MACD Sample ist nicht für den Handel mit mehreren Instrumenten geeignet

Diese Bedingung verbietet praktisch die Eröffnung von Geschäften, wenn mindestens ein Geschäft für ein beliebiges Instrument bereits geöffnet ist.
Ich hatte ein ähnliches Problem, allerdings für einen Handel pro Tag. D.h. die Bedingung ist nicht nur OrdersTotal(), sondern auch aus der Historie der abgeschlossenen.
 
Gibt es eine Möglichkeit, OrdersTotal, OrderSymbol und OrderMagicNumber zu verknüpfen?
 
igor.malish:
Gibt es eine Möglichkeit, OrdersTotal, OrderSymbol und OrderMagicNumber zu verknüpfen?
Dumme Frage.
 
Grüße. Kann jemand meinen EA an das neue mql anpassen? (#property strict) Es entwickelt sich weiter und seine Funktionalität wird verbessert, aber die Sprache, in der es geschrieben ist, ist veraltet. Dieser Expert Advisor ist eine spätere Modifikation von ZigZaHod v1.1 und benötigt nur minimale Änderungen, damit ich ihn beherrschen und modifizieren kann. Ich bin bereit, mich intensiv damit zu befassen. Mir fehlt das Verständnis dafür, was neu gemacht werden muss.
 

Helfen Sie, den Fehler zu beheben: Die Idee ist, dass der EA sollte einmal am Tag arbeiten, wenn der neue Tag beginnt. 1am. sollte zwei schwebende Aufträge auf ein Hoch und Tief öffnen

Ich meine den Candlestick, der um 00:00 Uhr geschlossen hat. Ich sollte bis zum nächsten Tag nichts anderes tun. Was mache ich falsch?


extern string Times = "Time";
extern int StartHour    = 1;
extern int TakeProfit   = 50;
extern int StopLoss     = 50;
extern int Lots         = 1;

void OnTick()
{ 
   static bool IsFirstTick = true;
   static int ticket = 0;
   int h=TimeHour(TimeCurrent());
   Alert("TimeHor: ", h);
   if(Hour() == StartHour)
   {
    if (IsFirstTick == true)
      IsFirstTick - false;
      
      bool res;
      res= OrderSelect(ticket, SELECT_BY_TICKET);
      if(res == true)
      { 
         if(OrderCloseTime() == 0)
         {
            bool res2;
            res2 = OrderClose(ticket, Lots, OrderClosePrice(), 10);
            
            if(res2 == false)
            {
               Alert("Error Closing Order #", ticket);
               }
         }   
      }
       if(Open[0] < Open[StartHour])
      {
         ticket = OrderSend(Symbol(), OP_BUYLIMIT, Lots, High[1],10, Low[1]-StopLoss*Point, High[1]+TakeProfit*Point,"Set bu ForexRobot");
         if(ticket < 0)
         {
           Alert("Error Sending Order!");
         }  
       }
       else
       {
         ticket = OrderSend(Symbol(), OP_SELLLIMIT, Lots, Low[1],10, High[1]+StopLoss*Point, Low[1]+TakeProfit*Point,"Set bu ForexRobot");
         if(ticket < 0)
         {
           Alert("Error Sending Order!");
         } 
    }   
}
 
MIR_KAZAN:

Helfen Sie, den Fehler zu beheben: Die Idee ist, dass der EA sollte einmal am Tag arbeiten, wenn der neue Tag beginnt. 1am. sollte zwei schwebende Aufträge auf ein Hoch und Tief öffnen

Ich meine den Candlestick, der um 00:00 Uhr geschlossen hat. Ich sollte bis zum nächsten Tag nichts anderes tun. Was mache ich falsch?


Wenn Sie Code einfügen, nutzen Sie bitte die eingebetteten Funktionen des Forums:Code korrekt im Forum einfügen
 
barabashkakvn:
Wenn Sie Code einfügen, benutzen Sie bitte die eingebauten Funktionen des Forums:Code korrekt in das Forum einfügen
Ich hab's.
 
MIR_KAZAN:

Helfen Sie, den Fehler zu beheben: Die Idee ist, dass der EA sollte einmal am Tag arbeiten, wenn der neue Tag beginnt. 1am. sollte zwei schwebende Aufträge auf ein Hoch und Tief öffnen

Das heißt, eine Kerze, die um 00:00 Uhr geschlossen hat, sollte bis zum nächsten Tag nichts anderes tun. Was mache ich falsch?


Es liegt ein Fehler vor:

      IsFirstTick - false;

Es sollte sein =