从零开始学MT4编程(七)

avatar
· Views 5,435

    程序化系统是指设计人员将交易策略的逻辑与参数在电脑程序运算后,并将交易策略系统化。程序化交易起源于美国1975年出现的“股票组合转让与交易”,即经纪人和专业投资经理可以通过计算机与证券交易所直接联机来实现股票组合的一次性买卖交易,股票市场的订单实现了电脑化。同时,电子信息网络(ECN)在20世纪70年代迅速兴起,极大地提高了交易速度。一方面,科学技术进步推动金融市场发展;另一方面,金融市场发展反过来要求进行金融市场基础制度变革,规范技术在金融市场的运用。

    程序化交易及程序化交易其实是这几十年来交易电子化的必然过程。2000年国际证券交易所(ISE)建立了第一个完全电子化的美国期权交易所。到2008年中期,已有7个交易所提供完全的电子化,或者是电子化与交易大厅相结合的期权交易平台。截至2014年,全球许多交易所实现了电子化交易。

    目前华尔街大型投行绝大部分的利润和交易量都是由程序化交易完成的,程序化交易相对于手动交易有着极大的优点,有逐渐取代手动交易的趋势,是未来金融市场的发展方向。未来的交易员之间的竞争,将会是程序代码之间的竞争,是智能交易系统之间的竞争,谁的程序技高一筹,谁就可以战胜市场,获得额外的盈利。

    截止至2016年,全球已有超过81%的金融经纪公司和全世界四十多个国家的银行选择了迈达克软件作为网络化交易平台;全球超过90%的零售交易量是通过迈达克软件成交的,而这其中大部分又是由EA成交。

    EA编程,可以从现在开始:

3.4.2 新单开仓

    读者也许很奇怪,系统中一条命令就能搞定,怎么还需要做这个函数呢?作者总结程序编写经验得出使用这个这个自定义函数能大大提高编程速度和质量。

    在有些 ECN 平台上,利用 EA 新开仓是不允许设置止损止盈价的,在这里提醒读者,使用本函数尽量不要带止盈止损价格。

【函数代码】

从零开始学MT4编程(七)

【调用语句说明】

    iOpenOrders("Sell",0.1,25,40);

    新单开仓只需要在函数后面跟 4 个参数,分别是交易类型( Buy 和 Sell )、开仓量、止损点数、止盈点数,四个参数的数据类型分别为 string、double、int、int。

    例句中参数 ”Sell”表示开空头订单, 0.1 表示开仓量为 0.1 , 25 为止损点数40 为止盈点数。

    如果止损、止盈点数都设置为 0 ,结果是新开订单不设置止损止盈。

3.4.3 持仓单平仓

    在编程中,经常需要重复编写平仓代码,作者特意编写这个函数,只需要一条命令,就能实现多头订单、空头订单、盈利订单、亏损订单以及全部订单的平仓动作,大量减少了重复工作。

【函数代码】

从零开始学MT4编程(七)

从零开始学MT4编程(七)

【调用语句说明】

    iCloseOrders("All");

    持仓单平仓只需要在函数后面跟一个参数,参数类型为 String 。

参数规定如下:

    Buy -多头订单、Sell -空头订单、Profit -盈利订单、Loss -亏损订单、All -全部订单

3.4.4 追踪止损

【函数代码】

从零开始学MT4编程(七)

从零开始学MT4编程(七)

【调用语句说明】

    iMoveStopLoss(25);

    止损点为 25 ,当订单盈利超 25 点,函数自动修改持仓订单的止损价位。该函数将对所有的持仓订单进行操作。

【温馨提示】

    对赌平台的常用手法之一就是:如果你在持仓订单上设置了止损价,他们就会通过服务器发出瞬间的数据导致你亏损平仓,然后再恢复正常的价格传送。因此,作者建议尽量不要对持仓订单设置止损价格,而是用程序计算平仓。

3.4.5 定时交易

【函数代码】

从零开始学MT4编程(七)

从零开始学MT4编程(七)

【调用语句说明】

    iTimeControl(15,00,17,30);//从系统时间15:00~17:30 开始自动交易,函数返回true

在程序中就可以这么使用:

    If (iTimeControl(15,00,17,30))

     {

     //规定时间段内自动交易的程序代码

    }

3.4.6 在屏幕上显示文字

【函数代码】

从零开始学MT4编程(七)

【调用语句说明】

iSetLable("信息栏1","当前价格:"+DoubleToStr(Close0,4),5,20,10,"Verdana",Olive);

从零开始学MT4编程(七)

    注意在要显示的内容中使用了DoubleToStr()命令,控制显示小数点后 4 位,否则会显示小数点后面 8 位数字。  

【显示效果】

从零开始学MT4编程(七)

    这个函数与 MQL4 内置的 print 和 comment 不同,能自定义显示的位置、大小、颜色,对于美化界面,实时追踪数据很有帮助。

3.4.7 两点之间画线

【函数代码】

从零开始学MT4编程(七)

【调用语句说明】

    iDrawLine (13,close[13],6,close6);//从第 13 个蜡烛的收盘价到第 6 个蜡烛的收盘间画一个绿色虚线。

以上观点仅供参考。祝福大家程序化交易顺利。

إخلاء المسؤولية: الآراء الواردة هنا تعبر فقط عن رأي الكاتب، ولا تمثل الموقف الرسمي لـ Followme. لا تتحمل Followme مسؤولية دقة أو اكتمال أو موثوقية المعلومات المُقدمة، ولا تتحمل مسؤولية أي إجراءات تُتخذ بناءً على المحتوى، ما لم يُنص على ذلك صراحةً كتابيًا.

هل أعجبك هذا المقال؟ عبّر عن امتنانك بإرسال نصيحة للكاتب.
الرد 7

اترك رسالتك الآن

  • tradingContest