int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE) OrderSend函数里面有个 takeprofit 参数,可以用作主动止盈。 假设 做多欧元,开仓价格是1.4600, 那么 takeprofit可以设置成1.4610.
你的系统,绝对止损应该挂一个,哪怕离市价很远,200点,300点都可以。防止黑天鹅事件的发生。 在OrderSend函数里面还有一个 stoploss, 可以用来挂止损的。 MT强大之处就在于订单管理,这是我所看见的任何软件都难以比拟的。 然而,最强之处也是最弱之处,真实市场订单无法如此管理,只有做市商对赌盘才可以做到这点。 所以,用MT做交易系统开发是非常方便的一个工具,作为交易平台,特别是对大资金,很不合适。
资金管理我用 Fix Percent Risk . 每次开仓根据止损金额和止损点数动态调整开仓数量。 欧元我发现一个很奇怪的现象,多个系统表现2008年市场特征和前两年发生明显变化。具体表现在2008年盈利的系统,无论是趋势型还是震荡型的,在2006年和2007年的数据测试中,全部表现为稳定的亏损,资金曲线一个反弹都没有。 我分析下来是市场波动幅度发生了巨大的变化, 2006年市场平均波幅为100点左右, 2007年市场平均波幅为80点左右, 而2008年市场平均波幅为130点左右, 而2008年8.12--9.12的波动幅度达到170点。 市场环境发生了巨大变化,所以止损,止盈都要相应调整。 在60分钟以上的系统中,相同的参数设置 很难适应欧元这两年波动幅度巨大变化。所以对市场环境的变动,系统作出相应优化是必须的。
这就对了,要调整下基准比例的,可能需要用波动率来调整下,2006\2007\2008年欧元/美元比价分别上了不同的台阶,从8x到现在的14x多,我觉得系统是可行的,就是需要准备波动性或比价绝对值做些调整。