以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  请高手帮改一下DUAL THRUST策略  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=80115)

--  作者:wawjjxkh
--  发布时间:2015/6/25 10:53:50
--  请高手帮改一下DUAL THRUST策略

请高手帮一下忙,修改一下金字塔内置的DUAL THRUST策略。

     1、设置盈利增仓的防止爆仓。

     2、设置浮动亏损止损占浮动资产的15%或者20%后强制平仓。

 

 

金字塔内置的DUAL THRUST策略:

//策略:DUAL THRUST
//简介:Dual Thrust与R-Breaker一样,曾长期排名 Future Trust杂志最赚钱的策略。
//类型:日内
//周期:
//使用市场:
//详情介绍网址:http://www.weistock.com/bbs/dispbbs.asp?boardid=10&Id=30283
//修订时间:2012.11.1
//DESIGNED BY ROGARZ

//中间变量
INPUT:N(1,1,100,1),K1(0.7,0.1,1,0.1),K2(0.7,0.1,1,0.1),NMIN(10,1,100,1),SS(1,1,10000,1);
CYC:=BARSLAST(DATE<>REF(DATE,1))+1;
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);
开盘价:=VALUEWHEN(CYC=1,OPEN);
HH:=HHV(昨高,N);//N日HIGH的最高价
HC:=HHV(昨收,N);//N日CLOSE的最高价
LC:=LLV(昨收,N);//N日CLOSE的最低价
LL:=LLV(昨低,N);//N日LOW的最低价
浮动区间:=MAX(HH-LL,HC-LL);//RANGE
上轨:开盘价+K1*浮动区间;
下轨:开盘价-K2*浮动区间;
T1:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-NMIN*100;
T2:=TIME>=CLOSETIME(0)-NMIN*100;
手数:=SS;
//交易条件
开多条件:=C>上轨 AND HOLDING=0;
开空条件:=C<下轨 AND HOLDING=0;
//交易系统
开多:BUY(开多条件 AND T1 AND CYC>1,手数,MARKET);
开空:BUYSHORT(开空条件 AND T1 AND CYC>1,手数,MARKET);
收盘平多:SELL(T2,手数,MARKET);
收盘平空:SELLSHORT(T2,手数,MARKET);

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值


--  作者:yukizzc
--  发布时间:2015/6/25 11:20:37
--  
您好,请稍等
--  作者:wawjjxkh
--  发布时间:2015/6/25 11:34:48
--  
谢谢!
--  作者:wenarm
--  发布时间:2015/6/25 12:20:25
--  

你的条件1中,是什么意思,没看明白。


--  作者:wenarm
--  发布时间:2015/6/25 12:30:40
--  

在你的程序中加上下面的代码。

你所说的浮动资产,我理解的是浮动盈亏。

浮动盈亏:OPENPROFIT;
DTYDZS:=(HHV(H,ENTERBARS)-CLOSE)/OPENPROFIT>=0.2;
KTYDZS:=(CLOSE-LLV(L,ENTERBARS))/OPENPROFIT>=0.2;
SELL(DTYDZS,HOLDING=0,MARKET);
SELLSHORT(KTYDZS,HOLDING=0,MARKET);


--  作者:yukizzc
--  发布时间:2015/6/25 14:21:03
--  

if -OPENPROFIT>asset*0.15 then   //当浮动盈亏是负的,并且大于资产的15%。平仓

begin

sell();

sellshort();

end


--  作者:wawjjxkh
--  发布时间:2015/6/25 18:26:34
--  

谢谢,辛苦了。


--  作者:wawjjxkh
--  发布时间:2015/6/25 18:32:09
--  

我的条件1:DUAL THRUST策略中好像是随着资金的增减来调整仓位的大小,测试的时候发现,差不多在全仓的条件下,很容易就爆仓了。

所以我想请高手帮设置一个条件,大概仓位在85%就行了。


--  作者:yukizzc
--  发布时间:2015/6/25 22:14:00
--  

和资金没有关系的,代码没有限制不允许加仓,所以会出现一直开。

cash(0)*0.85>TACCOUNT(41)*c*MULTIPLIER*holding             //在开仓条件中加个条件,保证金占用小于可用资金的85%