Discussion de l'article "Migration de MQL4 vers MQL5" - page 8

 

Comment se présente la chaîne MQL4 de la forme suivante ?

spread_ =MarketInfo(Symbol(), MODE_SPREAD)*Point ;

en MQL5 ?

Merci d'avance !

 
piv_:

Comment se présente la chaîne MQL4 de la forme suivante ?

spread_ =MarketInfo(Symbol(), MODE_SPREAD)*Point ;

en MQL5 ?

Merci d'avance !

à peu près comme ceci :

spread=SymbolInfoInteger(symbol,SYMBOL_SPREAD)*Point();
 
iStdOnArray() est manquant :) Il semble que MT5 soit la première plateforme de trading automatique qui ne dispose pas de statistiques de base :) J'essaie de faire quelque chose avec MQL5 depuis quelques jours, mais jusqu'à présent, je n'ai rencontré que des problèmes divers, comme si je devais créer un entrepôt complet d'ingénierie financière.
 
Je ne comprends toujours pas comment remplacer les variables prédéfinies comme High. Low, Ask, Cose, Open.... Dans quelle fonction spéciale doivent-elles être déclarées ?
[Supprimé]  
buh400:
Je ne comprends toujours pas comment remplacer les variables prédéfinies comme High. Low, Ask, Cose, Open.... Dans quelle fonction spéciale doivent-elles être déclarées ?
High, low, open, close - via CopyHigh(), CopyLow(), etc. Bid et ask - via SymbolInfoDouble(). - Il s'agit d'une récupération de données. Vous devez déclarer des tableaux dans lesquels vous recevrez des données (pour les fonctions Copy...) et des variables pour les valeurs bid et ask. Déclarez-les dans les fonctions où vous voulez obtenir ces données (vous ne devez pas les déclarer au niveau global, bien que vous puissiez le faire). Par exemple, si vous souhaitez recevoir des données à chaque tick - dans la fonction OnTick(). Si c'est à l'initialisation - OnInit(), etc. Lisez la documentation.
 
Je l'ai lu, pas d'enthousiasme pour apprendre mcl5 ! Je pense que les courtiers n'abandonneront pas MT4 ! Oui, et pour toute ma vie ce sera suffisant ! Mais ne compliquez pas mcl4 ! S'il vous plaît !
 
Lors de la compilation du code de la section 17, c'est-à-dire là où nous déclarons des constantes, nous obtenons une erreur - 'MODE_MAIN' - enumerator identifier already defined.

 
buh400:
lors de la compilation du code de la section 17,
Donner le lien de la version en ligne de l'aide - https://docs.mql4.com/ru
Справочник MQL4 - Документация на MQL4
  • docs.mql4.com
Справочник MQL4 - Документация на MQL4
 
Rashid Umarov:
Donnez un lien vers la version en ligne de l'aide - https://docs.mql4.com/ru

ce code provient de l'article - migration de MQL4 à MQL5.

17. Технические индикаторы
Получение значений технических индикаторов в своих экспертах очень подробно рассмотрено в одноимённой статье. В этом справочнике представлен краткий способ обращения к стандартным индикаторам, которого вполне достаточно для получения результата расчёта в одной точке. Для реализации такого механизма, нам потребуется вспомогательная функция:

double CopyBufferMQL4(int handle,int index,int shift)
  {
   double buf[];
   switch(index)
     {
      case 0: if(CopyBuffer(handle,0,shift,1,buf)>0)
         return(buf[0]); break;
      case 1: if(CopyBuffer(handle,1,shift,1,buf)>0)
         return(buf[0]); break;
      case 2: if(CopyBuffer(handle,2,shift,1,buf)>0)
         return(buf[0]); break;
      case 3: if(CopyBuffer(handle,3,shift,1,buf)>0)
         return(buf[0]); break;
      case 4: if(CopyBuffer(handle,4,shift,1,buf)>0)
         return(buf[0]); break;
      default: break;
     }
   return(EMPTY_VALUE);
  }
и объявим следующие константы:
ENUM_MA_METHOD MethodMigrate(int method)
  {
   switch(method)
     {
      case 0: return(MODE_SMA);
      case 1: return(MODE_EMA);
      case 2: return(MODE_SMMA);
      case 3: return(MODE_LWMA);
      default: return(MODE_SMA);
     }
  }
ENUM_APPLIED_PRICE PriceMigrate(int price)
  {
   switch(price)
     {
      case 1: return(PRICE_CLOSE);
      case 2: return(PRICE_OPEN);
      case 3: return(PRICE_HIGH);
      case 4: return(PRICE_LOW);
      case 5: return(PRICE_MEDIAN);
      case 6: return(PRICE_TYPICAL);
      case 7: return(PRICE_WEIGHTED);
      default: return(PRICE_CLOSE);
     }
  }
ENUM_STO_PRICE StoFieldMigrate(int field)
  {
   switch(field)
     {
      case 0: return(STO_LOWHIGH);
      case 1: return(STO_CLOSECLOSE);
      default: return(STO_LOWHIGH);
     }
  }
//+------------------------------------------------------------------+
enum ALLIGATOR_MODE  { MODE_GATORJAW=1,   MODE_GATORTEETH, MODE_GATORLIPS };
enum ADX_MODE        { MODE_MAIN,         MODE_PLUSDI, MODE_MINUSDI };
enum UP_LOW_MODE     { MODE_BASE,         MODE_UPPER,      MODE_LOWER };
enum ICHIMOKU_MODE   { MODE_TENKANSEN=1,  MODE_KIJUNSEN, MODE_SENKOUSPANA, MODE_SENKOUSPANB, MODE_CHINKOUSPAN };
enum MAIN_SIGNAL_MODE{ MODE_MAIN,         MODE_SIGNAL };
 
Je me suis rendu compte que cette question a déjà été soulevée et je dois lire un autre article :) Mes messages peuvent être supprimés