您好老师,求助个问题。我的想法是要求是J在上穿某个数值的时候一定开多仓平空。当J和F,G线任意两条线上穿K1的时候开仓做多平空。当J上穿另一个极限数值的时候一定开空平多。当J和F,G任意两线下穿D1的时候平多开空。所有的开仓,在利润达到20%的时候执行移动止损,以10%为利润最低点。譬如在利润达到30%的时候,移动止损店就是原来盈利20%的那条线。在选择方向错误的时候止损就是本金的8%。麻烦老师看看给个答复
X1:40;
X2:80;
cd1:CROSS(J,X1);
cd2:CROSS(J,K1);
cd3:CROSS(F,K1);
cd4:CROSS(G,K1);
cd5:CROSS(J,X2);
cd6:CROSS(D1,J);
cd7:CROSS(D1,F);
cd8:CROSS(D1,G);
if cd1 then //上穿某个数值 平空开多
begin
sellshort(holding<0,holding,market);
buy(holding=0,1,market);
end
if cd5 then //上穿某个极值 平多开空
begin
sell(holding>0,holding,market);
buyshort(holding=0,1,market);
end
if (cd2 + cd3 + cd4)>=2 then //三个上穿条件 满足其二 平空开多
begin
sellshort(holding<0,holding,market);
buy(holding=0,1,market);
end
if (cd6 + cd7 + cd8)>=2 then //三个下穿条件 满足其二 平多开空
begin
sell(holding>0,holding,market);
buyshort(holding=0,1,market);
end
maxProfit1:HHV(H,ENTERBARS+1)-AVGENTERPRICE;//最大盈利,以持仓阶段最高价位置计算最大盈利
maxProfit2:AVGENTERPRICE-llv(l,ENTERBARS+1);
currentProfit1:AVGENTERPRICE-c;//多头当前盈利
currentProfit2:c-AVGENTERPRICE;
DTYDZS:=(maxProfit1-currentProfit1)/maxProfit1>=0.1 and maxProfit1>=0.2;//从最高盈利回落 且最高盈利大于20%
KTYDZS:=(maxProfit2-currentProfit2)/maxProfit2>=0.1 and maxProfit2>=0.2;
多头止损:SELL(DTYDZS,0,MARKET);
空头止损:SELLSHORT(KTYDZS,0,MARKET);
仅供参考。你提到的那些线啊 ,指标值啥的你自己自行补全下。
[此贴子已经被作者于2020/10/26 10:01:18编辑过]