iATR函数疑问

 
MT4中  iATR(NULL, PERIOD_D1, 14, nshift ) 改写MT5时,发现MT5中

iATR(
   string           symbol,                     // 交易品种名称
   ENUM_TIMEFRAMES  period,        // 周期
   int              ma_period                 // 平均周期 
   );


 请问朋友们,nshift该怎么处理??
 
xiaoqiang Wang:
MT4中  iATR(NULL, PERIOD_D1, 14, nshift ) 改写MT5时,发现MT5中

iATR(
   string           symbol,                     // 交易品种名称
   ENUM_TIMEFRAMES  period,        // 周期
   int              ma_period                 // 平均周期 
   );


 请问朋友们,nshift该怎么处理??

意思就是要提取前面第n根柱子的ATR值  怎么提取

 

在 MT5 中,iATR 返回的是指标句柄,如果要取值,就需要调用 CopyBuffer 函数来做,具体可以查查帮助文档的实例。

貌似比原来麻烦了一些,但是更为通用一些。

 
Jian Chen:

在 MT5 中,iATR 返回的是指标句柄,如果要取值,就需要调用 CopyBuffer 函数来做,具体可以查查帮助文档的实例。

貌似比原来麻烦了一些,但是更为通用一些。


谢谢   我已中年  根本没学过编程知识   MT4中完全是看多了潜移默化懂了一些    估计以后我还是不会写  以后也许得请您改写     

 
xiaoqiang Wang:

谢谢   我已中年  根本没学过编程知识   MT4中完全是看多了潜移默化懂了一些    估计以后我还是不会写  以后也许得请您改写     


很多时候   即使看了参考文档   也一下子领悟不了   比如我定义这个shift时  看到Bars函数中是D'2017.11.14 11:09‘的格式   以为非得把时间用这样的格式,搞成StringSubstr(TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES),0,-1)还加上D字符单引号的代码......弄得一塌糊涂,结果发现直接引用TimeCurrent()函数就成了。

 
xiaoqiang Wang:

很多时候   即使看了参考文档   也一下子领悟不了   比如我定义这个shift时  看到Bars函数中是D'2017.11.14 11:09‘的格式   以为非得把时间用这样的格式,搞成StringSubstr(TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES),0,-1)还加上D字符单引号的代码......弄得一塌糊涂,结果发现直接引用TimeCurrent()函数就成了。


参考文档其实也是针对编程人员  对于我这类没学过编程专业的   需要用到什么函数   如何调用  还是糊里糊涂的

 
xiaoqiang Wang:

参考文档其实也是针对编程人员  对于我这类没学过编程专业的   需要用到什么函数   如何调用  还是糊里糊涂的

你应该先去学习下C/C++语法。

网络上有很多这样的视频。现在是知识付费时代,很多人都出了视频,基础的部分都是免费的。

像你这种没有基础的,学下C/C++语法,有了基本概念就可以应付MQL编程了。

csdn.net上有,ke.qq.com上有。

double GetATR(int index)
{
   double v[1]={0.0};
   int handle = iATR(Symbol(),Period(),14);   
   if(handle==-1)return(0.0);
   if(CopyBuffer(handle,0,index,1,v)==1)return(v[0]);   
   return(0.0);  
   
}
 
Ziheng Zhuang:

你应该先去学习下C/C++语法。

网络上有很多这样的视频。现在是知识付费时代,很多人都出了视频,基础的部分都是免费的。

像你这种没有基础的,学下C/C++语法,有了基本概念就可以应付MQL编程了。

csdn.net上有,ke.qq.com上有。


谢谢

原因: