文章 "从 MQL4 迁移到 MQL5" - 页 8

 

以下形式的 MQL4 字符串听起来如何?

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

在 MQL5 中如何?

预先致谢!

 
piv_:

以下形式的 MQL4 字符串听起来如何?

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

在 MQL5 中如何?

预先致谢!

大致如下

spread=SymbolInfoInteger(symbol,SYMBOL_SPREAD)*Point();
 
缺少 iStdOnArray() :)看来 MT5 是第一个没有基本统计数据的自动交易平台:)这几天我一直在尝试用 MQL5 做一些事情,但到现在为止只遇到了各种问题,就像我要创建整个金融工程仓库一样。
 
我仍然不明白如何替换预定义变量,如 High.Low、Ask、Cose、Open.... 等预定义变量。它们应该在哪个特殊函数中声明?
[删除]  
buh400:
我仍然不明白如何替换预定义变量,如 High.Low、Ask、Cose、Open.... 等预定义变量。它们应该在哪个特殊函数中声明?
High、low、open、close - 通过 CopyHigh()、CopyLow() 等函数。买入价和卖出价 - 通过 SymbolInfoDouble()。- 这是数据检索。您应声明数组,以便接收数据(用于复制...函数),并声明买入价和卖出价变量。在要获取这些数据的函数中声明它们(尽管可以,但不应在全局级别声明)。例如,如果要在每个刻度点接收数据--在 OnTick() 函数中。如果在初始化时--OnInit(),等等。请阅读文档。
 
我读了它,没有学习 mcl5 的热情!我认为经纪人不会放弃 MT4!是的,在我有生之年,这就足够了!不要让 mcl4 变得复杂!拜托了
 
在编译第 17 节代码(即我们声明常量的地方)时,我们遇到了一个错误--"MODE_MAIN" - 枚举标识符已定义。

 
buh400:
编译第 17 节代码时、
提供帮助在线版的链接 -https://docs.mql4.com/ru
Справочник MQL4 - Документация на MQL4
  • docs.mql4.com
Справочник MQL4 - Документация на MQL4
 
Rashid Umarov:
提供帮助在线版本的链接 -https://docs.mql4.com/ru

此代码来自文章 - 从 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 };
 
我意识到这个问题已经被提出来了,我需要阅读另一篇文章:)我的帖子可以删除