以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp)
-- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4)
---- 先平仓后开仓的测试问题 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=87011)
|
-- 作者:agq198394
-- 发布时间:2015/11/5 21:51:48
-- 先平仓后开仓的测试问题
如图所示,我的系统开仓限制条件有holding=0,但是在椭圆内,本来不应该开仓的,因为平仓是在k线收盘,但是图表交易信号显示本根k线holding=0,所以又开了新仓,请问这种情况如何解决?
此主题相关图片如下:5.jpg
![dvubb 图片点击可在新窗口打开查看](UploadFile/2015-11/201511521514797443.jpg)
|
-- 作者:agq198394
-- 发布时间:2015/11/6 0:24:55
--
已解决
|
-- 作者:jinzhe
-- 发布时间:2015/11/6 8:51:24
--
在代码里面,从上倒下,先满足平仓条件后平仓,之后又满足开仓条件开仓
|
-- 作者:agq198394
-- 发布时间:2015/11/6 9:52:38
--
我的程序是先平后开,但是不管用,还是出现这种情况,后来在论坛找了这么一段代码就可以了,具体是什么原理我也不清楚。
if holding=0 and 开多条件 and bj=0 then begin buy(1,1,LIMITR,上轨2); bj:=1; end if holding=0 and 开空条件 and bj=0 then begin buyshort(1,1,LIMITR,下轨2); bj:=1; end if holding=0 and 开多条件 and bj=1 and exitbars>0 then buy(1,1,LIMITR,上轨2); if holding=0 and 开空条件 and bj=1 and exitbars>0 then buyshort(1,1,LIMITR,下轨2);
|
-- 作者:jinzhe
-- 发布时间:2015/11/6 10:08:23
--
还是你喜欢把holding的判断条件写先了?
|
-- 作者:agq198394
-- 发布时间:2015/11/6 10:50:03
--
我的开平顺序是这样写的,总是出现上一次平仓的那根k线就开仓了。
开多条件:=h>=上轨2 AND M5>M10 ;/ 开空条件:=l<=下轨2 AND M5<M10 ;//
平多条件1:= L<=下轨1 ;
平空条件1:=h>=上轨1 ;
SELL(DTYDZS ,1,MARKET); SELLSHORT(KTYDZS ,1,MARKET);
平多1:sell(平多条件1 ,PosNum,LIMITR,SELLPRICE1);
平空1:sellshort(平空条件1 ,PosNum,LIMITR,BUYPRICE1);
开多:buy(开多条件 and holding=0 AND BOFU<0.03 AND TOTALDAYTRADE<2 and t1 and cyc>1,PosNum,LIMITR,上轨2); 开空:buyshort(开空条件 and holding=0 AND BOFU<0.03 AND TOTALDAYTRADE<2 and t1 and cyc>1,PosNum,LIMITR,下轨2);
此主题相关图片如下:1.jpg
![dvubb 图片点击可在新窗口打开查看](UploadFile/2015-11/201511610494694308.jpg)
|
-- 作者:jinzhe
-- 发布时间:2015/11/6 10:53:42
--
你这样写出这样的信号是正常的,先平后开
|
-- 作者:agq198394
-- 发布时间:2015/11/6 11:59:21
--
上边的不行,把holding放在前边才行。
开多条件:=h>=上轨2 AND M5>M10 and holding=0 ; 开空条件:=l<=下轨2 AND M5<M10 and holding=0 ;
平多条件1:= L<=下轨1 ;
平空条件1:=h>=上轨1 ;
SELL(DTYDZS ,1,MARKET); SELLSHORT(KTYDZS ,1,MARKET);
平多1:sell(平多条件1 ,PosNum,LIMITR,SELLPRICE1);
平空1:sellshort(平空条件1 ,PosNum,LIMITR,BUYPRICE1);
开多:buy(开多条件 AND BOFU<0.03 AND TOTALDAYTRADE<2 and t1 and cyc>1,PosNum,LIMITR,上轨2); 开空:buyshort(开空条件 AND BOFU<0.03 AND TOTALDAYTRADE<2 and t1 and cyc>1,PosNum,LIMITR,下轨2);
|
-- 作者:jinzhe
-- 发布时间:2015/11/6 13:09:11
--
写前面之后,后面的开仓所产生的holding不会被前面的holding判断所获取,所以不会对平仓条件的持仓判断结果产生影响
|