以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  代码编写求助  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=182673)

--  作者:337666422
--  发布时间:2020/10/25 13:24:35
--  代码编写求助
您好老师,求助个问题。我的想法是要求是J在上穿某个数值的时候一定开多仓平空。当J和F,G线任意两条线上穿K1的时候开仓做多平空。当J上穿另一个极限数值的时候一定开空平多。当J和F,G任意两线下穿D1的时候平多开空。所有的开仓,在利润达到20%的时候执行移动止损,以10%为利润最低点。譬如在利润达到30%的时候,移动止损店就是原来盈利20%的那条线。在选择方向错误的时候止损就是本金的8%。麻烦老师看看给个答复


--  作者:FireScript
--  发布时间:2020/10/26 9:56:11
--  
 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编辑过]

--  作者:337666422
--  发布时间:2020/10/26 17:12:28
--  
谢谢老师