ARMANI-MT4EA自动交易制作 第三课 国际变数 可修改参数

avatar
· 閱讀量 680

大家好,我是ARMANI。为了帮助投资者,一有时间将EA编程的一些知识和精华尽可能的通过笔记让大家分段来学习。

因为文章是ARMANI自己编写,所以如恶意转发或抄袭,将追究到底。


延续第二课[Int init部分功能解说]之后,我们来了解以下在MT4 EA编写过程中,尤为重要的国际变数以及可修改参数的指示 <- 后期可以通过参数的修改,来优化ea的界面


进入主题

国际变数 可设置参数

国际变数的特徴

1 有记忆力(不会根据价格变动而重置默认值)

2 可以同时被适用于多个函数

Start()函数的话是在每次履行完后被重置,然后再重新计算。

而国际变数,则是写在#property link …..的下方,写在该下方后,则不会受到start重新计算的影响,一直保持同一个值进行ea的执行。

-------------------------------------

举例

Int start()

{

 Int count;

 Count = count + 1;  // 这里count++ 也是一个意思

Comment(count);

Return(0);

}

如上的情况,每一次count计算完后,count会再重新被计算一次 也就是始终都会显示一个值

但如果将这个函数放在 #property link 下方的话,则被调整为グローバル変数,履行一次后,将直到ea停止会一直记住结果。

#property link ….

Int count;  //将count宣言在上方,则就是国际变数

Int start()  //而这时,start才刚开始,所以国际变数不会受到start的影响

{

Count = count++;

Comment(count);

Return(0);

}

-------------------------------------

以上,我们可以做到的效果就是,根据每一次的价格变动在图标上显示+1,同时这个结果会被累计不断+1,而不会受到start的影响被重置清0.

-------------------------------------

再举个例子:达到的效果在桌面显示价格变动一次增加1

#property link …..

 Int count;


 Int init()

{

 count = 10

 Return(0);

}


 Int start()

{

 Count = count++; //这里++ 就是+1 的意思

 Comment(count);

 Return(0);

}

-------------------------------------


如要未来想要在放入ea后,可以添加修改参数的设置,则需要在国际变数前添加extern

举例: count = 10 设置成可以调整数值的参数

#property link …;

externint count;  //添加了extern的变数,未来当载入ea时,就可以选择修改count的值


int init()

{

 Count = initialcount;

 Return(0);

}


Int start()

{

 Count = count++;

 Comment(count);

 Return(0);

}

-------------------------------------


综上,国际变数是存在记忆的变数,它可以做到将计算结果被保存而不会重置,

而可设置参数更为重要,未来的ea我们会添加RSI指标 MACD iMA指标来进行编写,这时将以上指标设置为可设置参数,那么在ea运行时就可以根据不同的周期值来随时调整ea的回测结果。


下一节课:如果在ea中,让代码取得图表报价?

See u!

#EA交易#

風險提示:本文所述僅代表作者個人觀點,不代表 Followme 的官方立場。Followme 不對內容的準確性、完整性或可靠性作出任何保證,對於基於該內容所採取的任何行為,不承擔任何責任,除非另有書面明確說明。

喜歡的話,讚賞支持一下
回覆 0

暫無評論,立馬搶沙發

  • tradingContest