以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 没有空头交易结果怎么处理 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=95736) |
-- 作者:ma9453 -- 发布时间:2016/4/1 11:27:54 -- 没有空头交易结果怎么处理 我自己在一个简单的策略上做了一些非常简单的修改,测试的时候发现单独测多头或者空头都没问题,如果双向测试的话,就只有多头的开仓,没有空头的开仓,代码应该没有什么问题,只是增加了一些标志位,请问我是不是哪里设置的有问题? |
-- 作者:jinzhe -- 发布时间:2016/4/1 11:29:07 -- 用户讲的有些抽象,请贴出代码,我们根据实际的代码做分析 |
-- 作者:ma9453 -- 发布时间:2016/4/1 11:33:35 -- //该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!! variable:highest = 0; variable:lowest = 0; variable:CrossPrice = 0; variable:Position = 0; //适用模式:“走完一根K线以后” //若用户模式选为“固定时间间隔”,请将"交易条件"中的CLOSE改为OPEN,避免信号闪烁。 // //中间变量 MA1:=MA(CLOSE,A); MA2:=MA(CLOSE,B); PP:=Position; 手数:=ss; //交易条件 开多平空条件:=CROSS(MA1,MA2);//开多平空条件 开空平多条件:=CROSS(MA2,MA1);//开空平多条件 if 开多平空条件 or 开空平多条件 then begin CrossPrice := CLOSE; end //交易系统 BUY(开多平空条件,手数,MARKET); BUYSHORT(开空平多条件,手数,MARKET); if Position<>0 and (开多平空条件 or 开空平多条件) THEN begin SELLSHORT(开多平空条件,手数,MARKET); SELL(开空平多条件,手数,MARKET); Position := 0 ; end if 开多平空条件 then begin highest := CLOSE; Position := 1; end if Position=1 and highest<HIGH then begin highest:=MAX(highest,HIGH); end if 开空平多条件 then begin lowest := CLOSE ; Position := 2 ; end if Position=2 and lowest>LOW then begin lowest:=MIN(lowest,LOW); end 当前持仓:HOLDING,COLORGRAY,LINETHICK0; 当前资产:ASSET,NOAXIS,COLORGRAY; //注意交易系统先开后平的原则
|
-- 作者:ma9453 -- 发布时间:2016/4/1 11:33:46 -- 这个是代码 |
-- 作者:jinzhe -- 发布时间:2016/4/1 13:17:20 -- variable:highest = 0;
SELLSHORT(开多平空条件,手数,MARKET);
Position := 0 ;
类似于这样反手的,要按照 平空--开多---平多---开空的顺序写 |