Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 164

 
Sepulca:

Secondo me, MQL4 e MQL5 hanno diviso le persone in commercianti e programmatori. In MQL5 , si possono fare un sacco di cose e poi venderle sul MERCATO. Mentre un trader regolare ha bisogno solo di MQL4 . Per non parlare di quelli che commerciano a mano. L'ho provato io stesso, e mi sono anche fatto un'idea dell'OOP. Prova e impara. Ti ripagherà)).

Penso che mql5 abbia un tester di strategie molto potente, senza il quale non è possibile controllare a fondo i test in avanti. Ottimizzo gli Expert Advisors su mql4 e inizio l'analisi in avanti, ogni esecuzione utile richiede molto tempo, ma mql5 ha appena lanciato l'ottimizzazione e mi permette di controllare tutti gli avanzamenti redditizi. La domanda è se questa analisi approfondita aiuterà a rendere stabile un EA redditizio. Sarebbe un peccato perdere tempo a studiare mql5 e poi scoprire che è tutto inutile.
 
Forexman77:
Penso che mql5 abbia un tester di strategie molto potente, senza di esso è impossibile controllare i test in avanti nei dettagli. Ottimizzo Expert Advisors su mql4 e inizio l'analisi in avanti, ogni esecuzione redditizia richiede molto tempo, ma in mql5 imposto l'ottimizzazione e vedo tutti gli avanzamenti redditizi. La domanda è se questa analisi approfondita aiuterà a rendere stabile un EA redditizio. Sarebbe un peccato perdere tempo a studiare mql5 e poi scoprire che è tutto inutile.

Se si impara mql5 solo per l'ottimizzazione, non ha senso...

No, non lo è.

 
Forexman77:
Penso che mql5 abbia un tester di strategie molto potente, senza di esso è impossibile controllare i test in avanti nei dettagli. Ottimizzo Expert Advisors su mql4 e inizio l'analisi in avanti, ogni esecuzione redditizia richiede molto tempo, ma in mql5 imposto l'ottimizzazione e vedo tutti gli avanzamenti redditizi. La domanda è se questa analisi approfondita aiuterà a rendere stabile un EA redditizio. Sarebbe un peccato perdere tempo a studiare mql5 e poi scoprire che è tutto inutile.

Sono completamente d'accordo, il tester è potente, soprattutto se si usano le nuvole e non si lesina nel pagare un po' di soldi, sarà ancora più veloce)). In ogni caso, imparare qualcosa di nuovo non farà male. Ho provato il MERCATO MQL5 per scaricare le versioni demo degli EAs più costosi, e con i parametri dati, essi perdono nel tester anche come)))). Porca miseria, scrivere un EA di base, modificare il rapporto in Photoshop e vendere)))))
 
Ho fatto un semplice Expert Advisor basato sull'indicatore Ichimoku. Ho bisogno di aprire una sola operazione con un solo segnale. cioè quando facciamo un'operazione di vendita, la candela nera chiude sotto la nuvola - apriamo un'operazione di vendita. La prossima operazione di vendita è possibile solo se il prezzo entra di nuovo nella nuvola e la candela nera chiude sotto la nuvola. Attualmente, un trade si apre se la candela nera chiude sotto la nuvola e a
   double Red_Line = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_TENKANSEN,1); // красная линия 
   double Blue_Line = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_KIJUNSEN,1); // синяя линия 
   double UpO = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_SENKOUSPANA,1); // верхняя граница облака 
   double DounO = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_SENKOUSPANB,1); // нижняя граница облака 

     
   if(Volume[0]>1) return;

    // продажа
   if (Open[1]>Close[1] && Close[1] < DounO && Close[1] < Red_Line && Close[1] < Blue_Line) // продажа
   {
     Price = NormalizeDouble(Bid, Digits); // округляем до нужного нам числа цифр после запятой
     if(StopLoss >= STOPLEVEL)
      {
       SL = iHigh(Symbol(),0,1)+200*Point; // вычисляем стоплос
       SL = NormalizeDouble(SL, Digits); // округляем до нужного нам числа цифр после запятой
      }
       else SL = 0;
      if(TakeProfit > 0)
      {
       TP = Price - TakeProfit*Point;
       TP = NormalizeDouble(TP, Digits); 
      }
       else TP = 0;

      { 
      ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL,TP,"Pattern_1",Magic,0,Red);
      return;
      }
    }

Viene effettuata un'altra transazione di vendita. È necessario implementare il principio: un segnale - un trade.

Vi sono grato in anticipo per l'aiuto.

 

Guardate le faq, è lì.

 
Ho guardato le faq ma non le ho trovate, se non ti dispiace un link.
 

Professionisti, per favore consigliatemi, c'è un codice come questo

   double MA_M15_1 = iMA(NULL, PERIOD_M15, 14, 0, 0, 0, 1);
   double MA_M15_2 = iMA(NULL, PERIOD_M15, 28, 0, 0, 0, 1);
   
   int CmdType = -1;
   if (MA_M15_1 < MA_M15_2){
      CmdType = OP_BUY;
   }
   if (MA_M15_1 < MA_M15_2){
      CmdType = OP_SELL;
   }
   
   if (CmdType >= OP_BUY){
      
      for (i_try = 1; i_try <= 3; i_try++) {
            if (CmdType == OP_BUY) CurrPriceForOpen = NormalizeDouble(Ask, Digits);
            if (CmdType == OP_SELL) CurrPriceForOpen = NormalizeDouble(Bid, Digits);

            iTicket = _OrderSend(Symbol(), CmdType, LotOpen, CurrPriceForOpen, Slippage * (iDigitPoint / Point), 0, 0, EA_Comment, Magic, 0, CLR_NONE);

            if (iTicket >= 0) break;
            Sleep(1000);

         }
   }

Periodicamente dà errore 4008 - cosa potrebbe essere?

 
T-G:

Pro mi dica, c'è un codice come questo

Periodicamente dà errore 4008 - cosa potrebbe essere?



ERR_NOT_INITIALIZED_STRING 4008 Stringa non inizializzata. Ad essere onesti, non ho incontrato un tale errore. EA_Comment è dichiarato in qualche modo? L'unica linea nel codice...

Allora, cos'è questo ????

 iTicket = _OrderSend(Symbol(), CmdType, LotOpen
 
Sepulca:


ERR_NOT_INITIALIZED_STRING 4008 Stringa non inizializzata. Ad essere onesti, non ho incontrato un tale errore. EA_Comment è dichiarato in qualche modo? L'unica linea nel codice...

Allora, cos'è questo ????


Questa variabile è impostata all'inizio e non la tocco più.

extern string EA_Comment = "";

 
T-G:

Questa variabile è impostata all'inizio e non la tocco più.

extern string EA_Comment = "";


Se l'errore si verifica periodicamente, potrebbe essere che il vostro DC attribuisca qualcosa di anormale alla stringa. Il DC può e ha il diritto di farlo.

Cosa mi dice?