以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  用U1记录不同的开多条件  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=175487)

--  作者:AK之王
--  发布时间:2020/4/12 17:01:15
--  用U1记录不同的开多条件
//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!!

//适用模式:“走完一根K线以后”
//若用户模式选为“固定时间间隔”,请将"交易条件"中的CLOSE改为OPEN,避免信号闪烁。
//
//中间变量
MA1:=MA(CLOSE,10);
MA2:=MA(CLOSE,40);

手数:=1;
//交易条件


平多条件:=CROSS(MA2,MA1);//开空平多条件
KD1:=MA2>REF(MA2,1) and HOLDING=0;
KD2:=c>ref(hhv(c,10),1) and HOLDING=0;;


//全局变量/
VARIABLE:u1=0;
if kd1 and u1=0 and holding=0 then begin
buy(kd1 and HOLDING=0,1,THISCLOSE);
u1:=1;
end

if kd2 and u1=0 and holding=0 then begin
buy(kd2 and HOLDING=0,1,THISCLOSE);
u1:=2;
end

//交易系统

平多:SELL(平多条件,手数,MARKET);u1=0;
开多:BUY(kd1 or kd2,手数,MARKET);
kk:u1,LINETHICK0;

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;

//注意交易系统先开后平的原则




老师,这公式哪里有问题呢,我本意想用U1记录不同的开多条件的,U1的值不对,不能实现我的目的


--  作者:FireScript
--  发布时间:2020/4/13 9:00:03
--  
平仓时候重置 下面这种方式才行。
if 平多条件 and holding>0 then
begin
平多:SELL(平多条件,手数,MARKET);
u1:=0;    
end