หน้าแรก > ข้อมูล > รายละเอียดข่าว
EA编程:新增一个抛物线指标
2022-11-01 09:55:41
more 
1199

  在EA交易中,如何新增一个抛物线指标。给EA设定一个下单条件,也就是抛物线指标转向的时候,下单,去掉之前的挂上就买入一单。

  具体是,抛物线从k线下面转到k线上面去之后,第二根k线开盘价卖出,如图中标记5处。

  反之,抛物线从k线上面转到k线下面去之后,第二根k线开盘价买入,如图中标记1处。

  一、引入抛物线指标函数iSAR函数

  这个函数有5个参数,前面4个看字面意思就知道其意思了,其中最后一个比较难以理解,涉及到MT4平台的K线位移。

  什么是K线位移呢?

  MT4平台,对于k线图上每一个k线,都设置了个位置编号,这个编号就是位移。从右往左,从0开始。

  0号k线的开盘价就是Open[0];

  1号K线的最高价就是High[1]。

  如果要获取3号k线对应的抛物线的值就是iSAR(NULL,0,0.02,0.2,3)。

  二、根据上面的知识,我们现在来写一个函数Signal(),用来定义本EA的信号,返回值为1表示买入信号,返回值为-1表示卖出信号。

  三、现在,我们来开始编程写EA了。

  1.在程序OnTick()函数的开始,我们定义两个变量,用来记录EA的持仓状态。顺便也定义一个变量,从信号函数中返回信号值。

  int buys=0;//多单持仓有几笔

  int sells=0;//空单持仓有几笔

  int signal=signal();

  2.然后通过for循环遍历持仓单,分别找到多单持仓几笔和空单持仓几笔,并分别赋值给变量buys和sells。

  3.然后加入开仓代码,当多单持仓数为0并且买入信号出现的时候,下多单;反之,当空单持仓数为0并且卖出信号出现的时候,下空单。

  4.下单解决了,再就是加入平仓代码。

  平仓代码加入到之前的for循环里面去,这样,整个程序在每次tick里就只有一次遍历订单,让程序运行更加高效。

  为了节省篇幅,顺便把修改订单止损止盈也加入进去。

  这里面需要注意一点的就是,多单的止损价是开盘价-点数*Point,多单止盈价是开盘价+点数*Point;

  反之,空单的止损价是开盘价+点数*Point,空单的止盈价是开盘价-点数*Point。

  四、到此,整个程序就完全修改好了,用历史数据测试下,正常交易。

  完整代码如下:


คำสั่ง:
เนื้อหาของบทความนี้ไม่ได้แสดงถึงมุมมองของเว็บไซต์ FxGecko เนื้อหามีไว้เพื่อการอ้างอิงเท่านั้นและไม่ถือเป็นคำแนะนำในการลงทุน การลงทุนมีความเสี่ยง เลือกอย่างระมัดระวัง! หากมีปัญหาใด ๆ ที่เกี่ยวข้องกับเนื้อหา ลิขสิทธิ์ ฯลฯ โปรดติดต่อเราและเราจะทำการปรับเปลี่ยนโดยเร็วที่สุด!

บทความที่เกี่ยวข้อง

您正在访问的是FxGecko网站。 FxGecko互联网及其移动端产品是中国香港特别行政区成立的Hitorank Co.,LIMITED旗下运营和管理的一款面向全球发行的企业资讯査询工具。

您的IP为 中国大陆地区,抱歉的通知您,不能为您提供查询服务,还请谅解。请遵守当地地法律。