和中国电费一样,一档档的上。
完整EA:Nerve Knife.ex4黄金交易策略_黄金趋势ea-CSDN博客
mql4代码节选如下:
//第一张单上涨2500,开始SL跟踪300点
if (count == 1 && !follow_p_3)
{
double ctp = calcTotalProfit(0, "buy", 888);
if (!follow_p_1 && ctp / Point > order1_profit_point_trigger * multiple)
{
follow_p_1 = true;
followPrice_p_1 = ctp ;
printfPro("第1档综合盈利开始追踪:" + ctp, true);
}
if(follow_p_1)
{
followPrice_p_1 = ctp > followPrice_p_1 ? ctp : followPrice_p_1;
}
if (follow_p_1 && (followPrice_p_1 - ctp) / Point > order1_SL * multiple)
{
//平仓
Close_All_Order_DeadLine(Symbol(),"EA","B",888);
printfPro("第1档综合盈利全平:" + ctp, true);
reset(open_time);
}
}
第一档的默认参数,触发线是500,回调线是200,一个特别限制条件是,只有一张趋势单。也就是说,当一轮做单开始后,成功开仓了1单,当盈利达到0.5刀(1000本金时)就开始追踪止盈,一直追涨(空),直到盈利在当前最大值回撤0.2刀,止盈。
//1到5笔订单,综合获利1500微点后(可调整、显示SL线),通过综合利润SL跟踪500微点(可调整),触碰跟踪止赢即全部平仓(需要在天图中显示SL线)
if (count >= 1)
{
double totalProfit = calcTotalProfit(0, "buy", 888);//当前盈亏
if (!follow_p_3 && totalProfit / Point > order1_5_profit_point_trigger * multiple)
{
//进入第2档时,取消第1档追踪
follow_p_1 = false;
followPrice_p_1 = 0;
follow_p_3 = true;
followPrice_p_3 = totalProfit;
printfPro("第2档综合盈利开始追踪:" + totalProfit, true);
}
if(follow_p_3)
{
followPrice_p_3 = totalProfit > followPrice_p_3 ? totalProfit : followPrice_p_3;
}
if (follow_p_3 && (followPrice_p_3 - totalProfit) / Point > order1_5_SL * multiple)
{
//全部平仓
Close_All_Order_DeadLine(Symbol(),"EA","B",888);
printfPro("第2档综合盈利全平:" + totalProfit, true);
reset(open_time);
}
}
第2档移动止盈的默认参数是:2300和700,5张单内也适用。
//第3档综合移动止赢
if (!follow_p_2 && calcTotalProfit(0, m15_down ? "sell" : "buy", 888) / Point > m15_m30_order_all_profit_point_trigger * multiple)
{
//进入第3档时,取消第1,2档追踪
follow_p_1 = false;
followPrice_p_1 = 0;
follow_p_3 = false;
followPrice_p_3 = 0;
follow_p_2 =true;
followPrice_p_2 = calcTotalProfit(0, m15_down ? "sell" : "buy", 888);
printfPro("第3档综合盈利止赢开始追踪:" + calcTotalProfit(0, m15_down ? "sell" : "buy", 888));
}
if(follow_p_2)
{
followPrice_p_2 = calcTotalProfit(0, m15_down ? "sell" : "buy", 888) > followPrice_p_2 ? calcTotalProfit(0, m15_down ? "sell" : "buy", 888) : followPrice_p_2;
}
if (follow_p_2 && (followPrice_p_2 - calcTotalProfit(0, m15_down ? "sell" : "buy", 888)) / Point > m15_m30_order_all_SL * multiple)
{
printfPro("第3档综合盈利全平:" + calcTotalProfit(0, m15_down ? "sell" : "buy", 888));
//全平
if(m15_down)
{
Close_All_Order_DeadLine(Symbol(),"EA","S",888);
}else
{
Close_All_Order_DeadLine(Symbol(),"EA","B",888);
}
reset(open_time);
}
第3档默认参数是:3400和1400。
第1、2档容易达到,也容易回调止盈,在趋势不稳定时可以尽甲安全离场,但盈利能力非常有限。正常情况下,1、2、3档会阶梯式递增,但我们其实还设计了一个开关,直达第3档,1、2档没有反向趋势时不启用,代码如下: