错误、漏洞、问题 - 页 42

 
Kos:
如果编译这样的结构会导致无法加载MQL5程序,那还有什么意义?

谢谢你的帖子。condit操作符 的NULL解析错误已被修复
 

一个指标中动态数 组的最大数量是多少?

Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 
dentraf:

一个指标中动态数 组的最大数量是多少?

限制是由你的硬件资源决定的。

有多少内存可用。

 
dentraf:

一个指标中动态数 组的最大数量是多少?

指示器阵列不超过512个。一般来说,任何数组--只要有足够的内存,就有很多。
 

写了这个脚本来检查这个功能

OrderCalcMargin()

它返回错误4002,我做错了什么?

void OnStart()
  {
   int total=SymbolsTotal(false);
   double marginbay;
   double marginsell;
   MqlTick pr;
   for(int i=0;i<=total;i++)
     {
      if(OrderCalcMargin(ORDER_TYPE_BUY,SymbolName(i,false),1.0,pr.ask,marginbay))
         Print("Маржа для покупки "+SymbolName(i,false)+" = ",DoubleToString(marginbay));
      else Print("Ошибка  № - ",GetLastError());

      if(OrderCalcMargin(ORDER_TYPE_SELL,SymbolName(i,false),1.0,pr.bid,marginsell))
         Print("Маржа для продажи "+SymbolName(i,false)+" = ",DoubleToString(marginsell));
      else Print("Ошибка  № - ",GetLastError());

     }
  }
 

奇怪的是,如果你不使用当前价格 的请求结构,那么一切都会被计算出来,除了像#AA这样的工具,在这种情况下,它的回报是零,我想知道为什么? 那么如何计算这种工具的保证金?

void OnStart()
  {
   int total=SymbolsTotal(false);
   double marginbay;
   double marginsell;
   //MqlTick pr;
   for(int i=0;i<=total;i++)
     {
      if(OrderCalcMargin(ORDER_TYPE_BUY,SymbolName(i,false),1.0,SymbolInfoDouble(SymbolName(i,false),SYMBOL_ASK),marginbay))
         Print("Маржа для покупки "+SymbolName(i,false)+" = ",DoubleToString(marginbay));
      else Print("Ошибка  № - ",GetLastError());

      if(OrderCalcMargin(ORDER_TYPE_SELL,SymbolName(i,false),1.0,SymbolInfoDouble(SymbolName(i,false),SYMBOL_BID),marginsell))
         Print("Маржа для продажи "+SymbolName(i,false)+" = ",DoubleToString(marginsell));
      else Print("Ошибка  № - ",GetLastError());

     }
  }
Документация по MQL5: Получение рыночной информации / SymbolInfoTick
Документация по MQL5: Получение рыночной информации / SymbolInfoTick
  • www.mql5.com
Получение рыночной информации / SymbolInfoTick - Документация по MQL5
 
我想明白了为什么第一个选项不起作用了,我应该写成这样的函数
SymbolInfoTick(SymbolName(i,false),pr);
循环体中,以获得所请求的符号的报价。
void OnStart()
  {
   int total=SymbolsTotal(false);
   double marginbay;
   double marginsell;
   MqlTick pr;
   for(int i=0;i<=total;i++)
     {
      SymbolInfoTick(SymbolName(i,false),pr);
      if(OrderCalcMargin(ORDER_TYPE_BUY,SymbolName(i,false),1.0,pr.ask,marginbay))
         Print("Маржа для покупки "+SymbolName(i,false)+" = ",DoubleToString(marginbay));
      else Print("Ошибка  № - ",GetLastError());

      if(OrderCalcMargin(ORDER_TYPE_SELL,SymbolName(i,false),1.0,pr.bid,marginsell))
         Print("Маржа для продажи "+SymbolName(i,false)+" = ",DoubleToString(marginsell));
      else Print("Ошибка  № - ",GetLastError());

     }
  }
关于#AA类型的工具的空值问题仍然是相关的
 
sergey1294:

写了这个脚本来检查这个功能

返回错误4002,我做错了什么?


sergey1294:
我想明白了为什么第一个版本不工作了,我应该在循环体中写函数,以获得所要求的符号的引号。

你只是决定帮助...:)

PS

我不知道其他人的情况,但对于#AA 来说,市场是有点封闭的......

 
我是否正确地理解,以下类型的代码
AccountInfoDouble(ACCOUNT_FREEMARGIN) - OrderCalcMargin();
是一个类似于MT4的函数
AccountFreeMarginCheck()
 
sergey1294:
我还有一个问题,我的理解是否正确,这种类型的代码是MT4功能的一个类似物?

如果没有空缺的职位,这个说法可能是正确的,如果有空缺的职位,情况就有点不同了......