Scriverò un EA gratuitamente - pagina 17

 
Ciao, ho iniziato a imparare MQL4 e ho iniziato con il MACD Sample Expert Advisor. Ho sistemato tutto. Penso di aver capito tutto, ma non riesco a farlo funzionare sul mio Demo per diverse coppie di valute contemporaneamente. Se c'è già una posizione aperta nel terminale (manualmente o tramite Expert Advisor) non funzionerà. Non ho abbastanza conoscenze, per favore consigliatemi cosa dovrei aggiungere o correggere.
 
igor.malish:
Ciao, ho iniziato ad imparare MQL4 e ho iniziato ad usare il MACD Sample Expert Advisor. L'ho analizzato. Penso di aver capito tutto, ma non riesco a farlo funzionare come Expert Advisor demo su diverse coppie di valute allo stesso tempo. Se c'è già una posizione aperta nel terminale (manualmente o tramite Expert Advisor) non funziona. Ho provato tutto quello che so. Non ho abbastanza conoscenze, per favore consigliatemi cosa aggiungere o correggere.

MACD Sample non è progettato per fare trading su più strumenti

total=OrdersTotal();

   if(total<1)

     {...
Se non sapete cosa farne, non dovreste aprire operazioni, se almeno una posizione è già stata aperta per qualsiasi strumento.
 
dimeon:

MACD Sample non è progettato per fare trading su più strumenti

Questa condizione proibisce praticamente l'apertura di operazioni se almeno una, per qualsiasi strumento, è già aperta.
Ho avuto un problema simile, ma per uno scambio al giorno. Cioè la condizione non è solo OrdersTotal(), ma anche dalla storia di quelli chiusi.
 
C'è un modo per collegare OrdersTotal, OrderSymbol e OrderMagicNumber?
 
igor.malish:
C'è un modo per collegare OrdersTotal, OrderSymbol e OrderMagicNumber?
Domanda sciocca.
 
Saluti. Qualcuno può adattare il mio EA al nuovo mql? (#property strict) Si sta sviluppando e la sua funzionalità sta migliorando, ma il linguaggio in cui è scritto è superato. Questo Expert Advisor è una modifica successiva di ZigZaHod v1.1 e ha bisogno di cambiamenti minimi per poterlo padroneggiare e modificare. Sono pronto ad essere profondamente coinvolto in esso. Mi manca la comprensione di ciò che deve essere rifatto.
 

Aiutate a risolvere il bug: l'idea è che l'EA dovrebbe lavorare una volta al giorno, quando inizia il nuovo giorno. all'1 del mattino dovrebbe aprire due ordini pendenti sul massimo e sul minimo

Intendo la candela che ha chiuso alle 00:00. Non dovrei fare nient'altro fino al giorno successivo. Cosa sto facendo di sbagliato?


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:

Aiuta a risolvere il bug: l'idea è che l'EA dovrebbe funzionare una volta al giorno, quando inizia il nuovo giorno. 1am. dovrebbe aprire due ordini pendenti su un alto e basso

Intendo la candela che ha chiuso alle 00:00. Non dovrei fare nient'altro fino al giorno successivo. Cosa sto facendo di sbagliato?


Quando si incolla il codice, si prega di utilizzare le funzionalità incorporate del forum:incollare il codice correttamente sul forum
 
barabashkakvn:
Quando si incolla il codice, si prega di utilizzare le funzioni integrate del forum:Inserire correttamente il codice nel forum
Capito.
 
MIR_KAZAN:

Aiutate a risolvere il bug: l'idea è che l'EA dovrebbe lavorare una volta al giorno, quando inizia il nuovo giorno. all'1 del mattino dovrebbe aprire due ordini pendenti sul massimo e sul minimo

Cioè, una candela che ha chiuso alle 00:00. Non dovrebbe fare altro fino al giorno successivo. Cosa sto sbagliando?


C'è un errore:

      IsFirstTick - false;

Dovrebbe essere =

Motivazione: