向各位老师请教:关于iCustom()调用第三方指标的使用细节问题

 

各位老师好!

我的EA稍微庞大了一点,多处多次使用了  iCustom(NULL, 0, "指标名称", 1000, "参数1", "参数2", "参数3",  0, i) 函数来调用第三方指标,并且是把它放在循环里调用的,每个循环至少有50次以上。

指标的第4个参数“1000”,是载入过往1000个蜡烛的意思。

比如:

for(int i=0; i<=1000; i++)

{

我需要的数据 = iCustom(NULL, 0, "指标名称", 1000, "参数1", "参数2", "参数3",  0, i);

if( 我需要的数据  > 0)

{

…………

}

}

如果我打开超过4个品种窗口,全部都载入EA之后,电脑的CPU和内存很快就被吃光了。按说不应该这样,我记得从哪里看到的材料是如果有大量计算,MQL4会进行缓存还是什么以避免反复对历史蜡烛进行重复运算。

目前来看,我还没有受到这种优待。

所以我想,是不是我的逻辑出现了问题?还是代码顺序出现了问题?就在刚才我突然想到是不是应该把iCustom放在循环之上才是对的,才能避免反复大量计算?

可是当我打开编辑器的时候,却无从下手。

各位老师,我上面的代码逻辑正确吗?

如果正确,要如何才能优化它,让他更节省资源呢?

如果错误,正确的使用方法是什么呢?

谢谢各位大咖

 

我沒這樣操作過 但是我猜如果單純使用自帶的指標 我猜"應該"也不會有太大問題

主要是看第三方指標的編輯 對硬件的負載有多大 

有很多第三方的指標 無效循環過多 光一個指標就可以讓CPU滿載

我建議你要優化你的指標調用頻率 還有第三方指標的代碼

至於該如何優化 也需要知道代碼的結構 才能給出建議

你可以試試使用自帶的指標調用1000次的結果跟使用第三方指標調用1000次的結果來比較對硬件的負載

就可以知道是不是第三方指標的問題

 
Hung Wen Lin #:

我沒這樣操作過 但是我猜如果單純使用自帶的指標 我猜"應該"也不會有太大問題

主要是看第三方指標的編輯 對硬件的負載有多大 

有很多第三方的指標 無效循環過多 光一個指標就可以讓CPU滿載

我建議你要優化你的指標調用頻率 還有第三方指標的代碼

至於該如何優化 也需要知道代碼的結構 才能給出建議

你可以試試使用自帶的指標調用1000次的結果跟使用第三方指標調用1000次的結果來比較對硬件的負載

就可以知道是不是第三方指標的問題

谢谢老师。如您所说, 确实是该指标内部逻辑混乱,资源占用太高。今天我找了一个替代指标,完美解决。谢谢您的帮助!

 
Gui Lei Han #:

谢谢老师。如您所说, 确实是该指标内部逻辑混乱,资源占用太高。今天我找了一个替代指标,完美解决。谢谢您的帮助!

不客氣 祝你早日完成屬於自己的交易EA

 
使用数组可能对资源占用能优化一点