我们最常用的要求是取得某个技术指标在指定序号K线上对应的数值。
下面的例子里,我们沿用MQL4的序号排列概念(序号0代表最新的K线),来获得相应的技术指标数值。
自定义函数及EA完整源代码:
复制代码 - double MaBuffer[];
- int OnInit()
- {
- ArraySetAsSeries(MaBuffer,true);
- return(0);
- }
- void OnTick()
- {
- printf(GetData(1));
- }
- double GetData(int Index)
- {
- int Handle=iMA(Symbol(),0,1,0,MODE_SMA,PRICE_CLOSE);
- int Cnt=CopyBuffer(Handle,0,0,Index+1,MaBuffer);
- if(Cnt!=-1)return(MaBuffer[Index]);
- else {
- printf("Error in copying");
- return(0);
- }
- }
注意:
ArraySetAsSeries(MaBuffer,true);
这句话让数组按照我们熟识的MQL4中的排列方式进行数据存储。 |