初学者的问题 MQL5 MT5 MetaTrader 5 - 页 626

 
Alexey Viktorov:


你太聪明了,而且如此简洁。谢谢你。

 
Karputov Vladimir:
这是一个返回PositionGetDouble 函数的检查。如果它失败了,就会返回0--即是一个错误。

而我在《五》中使用第二种形式,对我来说似乎更可靠。

 
Alexey Volchanskiy:

而我在五人中使用第二种形式,我认为它更可靠。

而且是在一个循环中。

do while(!PositiobGetDouble(POSITION_VOLUME, double_var);
我相信它不会滑过...
 

愚蠢的...:-)

如何在专家中通过iCustom(),参考变量的值

double _Volume

и

int High_Low

本指标的。

#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {  
    long  Vol0 = iVolume(NULL,0,0);
    long  Vol1 = iVolume(NULL,0,1);
    long  Vol2 = iVolume(NULL,0,2);
    long  Vol3 = iVolume(NULL,0,3);
    long  Vol4 = iVolume(NULL,0,4);
    long  Vol5 = iVolume(NULL,0,5);
    long  Vol6 = iVolume(NULL,0,6);
    long  Vol7 = iVolume(NULL,0,7);
    long  Vol8 = iVolume(NULL,0,8);
    long  Vol9 = iVolume(NULL,0,9);
    long  Vol10= iVolume(NULL,0,10);

    double high1 = iHigh(NULL, 0, 1);
    double low1 =  iLow (NULL, 0, 1);    
    double high2 = iHigh(NULL, 0, 2);    
    double low2 =  iLow (NULL, 0, 2);
    double high3 = iHigh(NULL, 0, 3);    
    double low3 =  iLow (NULL, 0, 3);
    double high4 = iHigh(NULL, 0, 4);
    double low4 =  iLow (NULL, 0, 4);    
    double high5 = iHigh(NULL, 0, 5);    
    double low5 =  iLow (NULL, 0, 5);
    double high6 = iHigh(NULL, 0, 6);    
    double low6 =  iLow (NULL, 0, 6);
    double high7 = iHigh(NULL, 0, 7);
    double low7 =  iLow (NULL, 0, 7);    
    double high8 = iHigh(NULL, 0, 8);    
    double low8 =  iLow (NULL, 0, 8);
    double high9 = iHigh(NULL, 0, 9);    
    double low9 =  iLow (NULL, 0, 9);
    double high10 =iHigh(NULL, 0, 10);
    double low10 = iLow (NULL, 0, 10);    
    
    double _Volume = NormalizeDouble((Vol1+Vol2+Vol3+Vol4+Vol5+Vol6+Vol7+
                     Vol8+Vol9+Vol10)/10, _Digits);
    int High_Low = (int)((MathAbs(high1-low1)+MathAbs(high2-low2)+MathAbs(high3-low3)+
              MathAbs(high4-low4)+MathAbs(high5-low5)+MathAbs(high6-low6)+
              MathAbs(high7-low7)+MathAbs(high8-low8)+MathAbs(high9-low9)+
              MathAbs(high10-low10))/(10*Point));
   
   
   Alert(" Vol0 = ",Vol0,", Voll = ",Vol1,", Vol2 = ",Vol2,", Vol3 = ",Vol3,
     ", Vol4 = ",Vol4, ", Vol5 = ",Vol5, ", Vol6 = ",Vol6);
   Alert (" Vol7 = ",Vol7,", Vol8 = ",Vol8, ", Vol9 = ",Vol9, ", Vol10 = ",Vol10); 
   Alert("Cредний минутный объём за 10 мин. _Volume = ",_Volume);
   
   Alert("Среднее поминутное движение за 10 мин. High_Low = ",High_Low);  
   
  
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Roman Shiredchenko:

愚蠢的...:-)

如何在专家中通过iCustom(),参考变量的值

и

本指标的。

你不能直接这样做。你应该在指标缓冲区中写入变量值,并通过iCustom从那里获取。
 
Andrey Barinov:
你不能直接这样做。你必须将变量的值写入指标缓冲区,并通过iCustom从那里获取。

这是可以理解的...也许是一个变量的简短例子,仅此而已......虽然看起来我自己会在那里的帮助中找到一些东西......。

谢谢你。如何将它们写入缓冲区,我的意思是要组织什么类型的缓冲区....。在这个指标中你不需要线条...

 
我如何在MQL4中修改市场订单的神奇数字?
 
Alexey Volchanskiy:

还有一个明确的类型转换

谢谢你!我们会考虑这个问题。
 
new-rena:
我如何在MQL4中修改市场订单的神奇数字?
绝对没有,评论 也是如此。只用一个不同的神奇数字重开
 
mila.com:

你好。

请告知如何解决以下问题。

一个EA试图建立一个头寸,而服务器返回一个重新报价。

由于没有EA代码,我们需要从外部发现有一个重新报价,并不惜一切代价打开相同的位置。

只分析日志文件,如 \logs\20160922.log。但我们不能从MQL4/5中得到它们,只有MQL5\Files文件夹可供读/写。

因此,我们需要编写一个外部脚本,它将读取日志,分析它并通知MQL4/5是否需要开仓。

或者它只是每秒复制一次日志到Files文件夹,从那里可以使用MQL工具读取和分析。