@zmaibbs7
2019-03-09 14:02
字数 2993
阅读 252
MQL
//多单情况1[收盘判断]
条件A:当前EA无订单
条件B:当前不在[参数:每天不交易时段]内
条件C:收盘价[1柱] >= MA1均线[1柱]
条件D:最高价[1柱] - MA1均线[1柱] <= 120点[参数:正均高1]
条件E:1柱为阳线
条件F:如果无历史开仓多单,则前10根K线包含当前K线[10:参数:开仓]中任何一根K线最低价格 <= MALOW则条件满足
如果有历史开仓多单,则距离上次多单平仓[包括上次多单平仓的K线]之后任何一根K线最低价格[包含当前K线] <= MALOW则条件满足
同时满足以上条件,则在最高价[1柱] + 40点处[参数:正挂点],开多单BuyStop挂单。
止损:
第1步: 比较【1柱最低价】和【1柱之前的阳K线最低价】哪个最低价低用哪个。 再 - 40点[参数:正损1]
第2步:刚才确定的止损K线,之前3根K线内(含止损线是4根K线)有十字星K线(最低价 < 开盘价和收盘价 同时 最高价 > 开盘价和 收盘价 同时 开收盘价差小于等于20点就可算十字星),且该十字星K线最低价比止损K线低,则修改止损为十字星线最低价下方40点[参数:正损1]
止盈:模式1: 固定点数止盈 模式2:信号出场
手数:[参数:下单手数]
//多单情况2[即时卖价Bid判断]
条件A:当前EA无订单
条件B:当前不在[参数:每天不交易时段]内
条件C:当前卖价[Bid] - MA1均线[1柱] >= 120点[参数:正均高2]
条件D:1柱为阳线
条件E:如果无历史开仓多单,则前10根K线包含当前K线[10:参数:开仓]中任何一根K线最低价格 <= MALOW则条件满足
如果有历史开仓多单,则距离上次多单平仓[包括上次多单平仓的K线]之后任何一根K线最低价格[包含当前K线] <= MALOW则条件满足
同时满足以上条件,则立刻开多单
手数止损止损[同情况1]
//空单情况1[收盘判断]
条件A:当前EA无订单
条件B:当前不在[参数:每天不交易时段]内
条件C:收盘价[1柱] <= MA2均线[1柱]
条件D:MA2均线[1柱] - 最低价[1柱] <= 120点[参数:正均高1]
条件E:1柱为阴柱
条件F:如果无历史开仓空单,则前10根K线包含当前K线[10:参数:开仓]中任何一根K线最高价格 >= MAHIGH则条件满足
如果有历史开仓空单,则距离上次空单平仓[包括上次空单平仓的K线]之后任何一根K线最高价格[包含当前K线] >= MAHIGH则条件满足
同时满足以上条件,则在最低价[1柱] - 40点处[参数:正挂点],开空单SellStop挂单。
止损:
第1步: 比较【1柱最高价】和【1柱之前的阴K线最高价】哪个最高价高用哪个。 再 + 40点[参数:正损1]
第2步:刚才确定的止损K线,之前3根K线内(含止损线是4根K线)有十字星K线(最低价 < 开盘价和收盘价 同时 最高价 > 开盘价和 收盘价 同时 开收盘价差小于等于20点就可算十字星),且该十字星K线最高价比止损K线高,则修改止损为十字星线最高价上方40点[参数:正损1]
止盈:模式1: 固定点数止盈 模式2:信号出场
手数:[参数:下单手数]
//空单情况2[即时卖价Bid判断]
条件A:当前EA无订单
条件B:当前不在[参数:每天不交易时段]内
条件C:MA2均线[1柱] - 当前卖价[Bid] >= 120点[参数:正均高2]
条件D:1柱为阴线
条件E:如果无历史开仓空单,则前10根K线包含当前K线[10:参数:开仓]中任何一根K线最高价格 >= MAHIGH则条件满足
如果有历史开仓空单,则距离上次空单平仓[包括上次空单平仓的K线]之后任何一根K线最高价格[包含当前K线] >= MAHIGH则条件满足
同时满足以上条件,则立刻开多单
手数止损止损[同情况1]
//多单出场情况1:阴线吃阳线
条件A:当前EA有多单
条件B:1柱为阴线
条件C:一根阴线连吃两根阳线[阳线与阳线间允许有阴线,但此两阳线比较有更高的最高价也有更低的最低价,且最后一阳线的收盘价必须大于前一根阳线的收盘价]
1、判断2根阳线 , 从2柱开始包括2柱往前找2根阳线,阳线递增,即根据时间顺序为a,b两根阳线。
2、b的最高价 > a的最高价
b的最低价 > a的最低价
b的收盘价 > a的收盘价
3、1柱阴线开盘价 >= b的收盘价
1柱阴线收盘价 <= a的收盘价
同时满足以上条件,则多单全部平仓
//多单出场情况2:倒锤头线
条件A:当前EA有多单
条件B:阳柱[1柱]的[最高价 - 收盘价]是[收盘价-最低价]距离3倍以上
或
阴柱[1柱]的[最高价 - 开盘价]是[开盘价-最低价]距离3倍以上
同时满足以上条件,则修改止损为最低价[1柱] - 40[参数:正损2]
//特殊出场:多单情况2出场
条件A:当前EA有多单情况2市价单
条件B:多单情况2市价单开仓时间K线已经收盘 且 收盘价 小于 开仓价格 50[参数:正均收]
同时满足以上条件,则该多单平仓
//空单出场情况1:阳线吃阴线
条件A:当前EA有空单
条件B:1柱为阳线
条件C:一根阳线连吃两根阴线[阴线与阴线间允许有阳线..逻辑如下]
1、判断2根阴线 , 从2柱开始包括2柱往前找2根阴线,阴线递减,即根据时间顺序为a,b两根阴线。
2、b的最高价 < a的最高价
b的最低价 < a的最低价
b的收盘价 < a的收盘价
3、1柱阳线开盘价 <= b的收盘价
1柱阳线收盘价 >= a的收盘价
同时满足以上条件,则空单全部平仓
//空单出场情况2:倒锤头线
条件A:当前EA有空单
条件B:阳柱[1柱]的[最高价 - 收盘价]是[收盘价-最低价]距离3倍以上
或
阴柱[1柱]的[最高价 - 开盘价]是[开盘价-最低价]距离3倍以上
同时满足以上条件,则修改止损为最高价[1柱] + 40[参数:正损2]
//特殊出场:空单情况2出场
条件A:当前EA有空单情况2市价单
条件B:空单情况2市价单开仓时间K线已经收盘 且 收盘价 大于 开仓价格 50[参数:正均收]
同时满足以上条件,则该空单平仓
不保存您的思路文档和代码,请务必自己管理备份好
需要演示可重复
EA下单、止盈、止损,只是我们的EA程序提交请求给服务器,在历史测试中,往往是百分之百成交。
但是在实际实盘中,可能会存在漏单,穿仓,滑点,过了止损止盈价格不平仓,这都是服务器的问题。不属于我们程序的问题。
举简单例子来说,您在MT4手动下单,也不是每次都能成交或立刻成交,特别是在非农的时候,所以,我们只是提交请求到服务器,具体成不成交,什么时候成交是根据您的平台服务器而定。
所以我们最终验收是根据测试历史数据为准,实盘以上这种问题不是我们的责任【有些特别思路不能历史测试的,再另行沟通验收办法】
只对以上思路和功能负责。
由于上次提交的思路文档,里面很多地方没有说清楚,经过我们QQ沟通之后,我重新帮您整理了一下您的思路文档。您看下,如果没有问题,那就用我给您的这份思路文档代替您原来的思路文档。
根据这份思路文档,我们作为验收的依据。
如果您同意就付款,如果您以后做的任何修改思路或者添加功能,我们不保证一定能改,如果可以修改,也需要重新报价