打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
[转载]Dual Thrust日内模型的源代码
原文地址:Dual Thrust日内模型的源代码作者:

    DualThrustR-Breaker一样,曾长期排名 FutureTrust杂志最赚钱的策略。该策略在形式上和开盘区间突破策略类似。不同点主要体现在两方面:DualThrust在Range(代码中的浮动区间)的设置上,引入前N日的四个价位,使得一定时期内的Range相对稳定,可以适用于日间的趋势跟踪;DualThrust对于多头和空头的触发条件,考虑了非对称的幅度,做多和做空参考的Range可以选择不同的周期数,也可以通过参数K1和K2来确定。

  当K1时,多头相对容易被触发,当K1>K2时,空头相对容易被触发。因此,投资者在使用该策略时,一方面可以参考历史数据测试的最优参数,另一方面,则可以根据自己对后势的判断,或从其他大周期的技术指标入手,阶段性地动态调整K1和K2的值。



文化财经模型

 

//算法: 

//1.计算昨日的,(最高价-收盘价)和(收盘价-最低价)较大的值乘以某个数字(0.7或0.5,等),把结果称

为触发值。

//2. 今日,在价格超过(开盘+触发值)时买入,或者价格低于(开盘-触发值)时卖出。

//3. 没有明确止损。

//应用五分钟周期

//M为参数,代表几日

 

K1:=0.5;

K2:=0.5;

N:=BARSLAST(DATE<>REF(DATE,1))+1;//今日开盘到目前为止

OO:=VALUEWHEN(DATE<>REF(DATE,1),O);//今日开盘价

HH1:=REF(HHV(H,45*M),N);//M=45,因为5分钟周期,一日交易有45根K线,代表一天

LL1:=REF(LLV(L,45*M),N);

HC1:=REF(HHV(C,45*M),N);

LC1:=REF(LLV(C,45*M),N);

SELLR:=IFELSE((HH1-LC1)>=(HC1-LL1),HH1-LC1,HC1-LL1);//波动区间

BT:=K1*SELLR;

ST:=K2*SELLR;

BUYP:=OO+BT;

SELLP:=OO-ST;

H>=BUYP&&C>=MAX(O,BUYP),BPK;

L<=SELLP&&C<=MIN(O,SELLP),SPK;


 

代码(金字塔语言)1(昨日):

//策略:Dual Thrust
//类型:日内

//中间变量
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,100,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
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 andcyc>1,手数,market);
收盘平多:sell(t2,手数,market);
收盘平空:sellshort(t2,手数,market);


这个策略已有很多个版本,这个版本——引入了N日的四个价位,以及K1K2参数。默认参数设置与现有策略一致,为前一日,K1=k2=0.7.
  
代码(金字塔语言)2(前几日):
   
input:K1(0.5,0,2,0.1);//多头突破波动比例
input:K2(0.5,0,2,0.1);//多头突破波动比例
input:Mday(1,0,9,1);//M日期最大价差
input:Nday(1,0,9,1);//N日前最大价差
input:LOTS(1,0,9,1);


       HighD:=callstock(stklabel,vthigh,6,-1);
       LowD:=callstock(stklabel,vtlow,6,-1);
      CloseD:=callstock(stklabel,vtclose,6,-1); 
       CYC:=barslast(date<>ref(date,1))+1;      
       OpenD:=valuewhen(cyc=1,open);
       
       HH:= HHV(HighD,Mday);
       HC:= HHV(CloseD,Mday);
       LL:= LLV(LowD,Mday);
       LC:= LLV(CloseD,Mday);

       SellRange:=Max(HH - LC,HC - LL);
      // www.cxh99.com
       HH:=HHV(HighD,Nday);
       HC:=HHV(CloseD,Nday);
       LL:=LLV(LowD,Nday);
       LC:=LLV(CloseD,Nday);

       BuyRange:=Max(HH - LC,HC - LL);
     
       
       UpperBand: OpenD + K1*BuyRange;
       LowerBand: OpenD - K2*SellRange;


       If   (HOLDING=0) THEN BEGIN
              If   (High>=UpperBand) THEN
                    Buy(HOLDING=0,lots,LIMITR,Max(Open,UpperBand));
             
              If   (Low<=LowerBand) THEN
                    BuyShort(HOLDING=0,lots,LIMITR,Min(Open,LowerBand));
       END

       If   (HOLDING<0) THEN BEGIN
              If   (High>=UpperBand) THEN BEGIN
                    SELLSHORT(HOLDING<0,lots,LIMITR,Max(Open,UpperBand));
                    Buy(HOLDING=0,lots,LIMITR,Max(Open,UpperBand));
              END
       END

       If   (HOLDING>0) THEN BEGIN
              If   (Low<=LowerBand) THEN BEGIN
                     Sell(holding>0,lots,limitr,Min(Open,LowerBand));
                    BuyShort(holding=0,lots,limitr,Min(Open,LowerBand));
              END
       END
       

持仓:holding,noaxis ,linethick0 ;
盈亏:asset-1000000,noaxis,coloryellow,linethick2;

     开拓者TB源码: 
Inputs: K1(.5),K2(.5),Mday(1),Nday(1); 
Vars: BuyRange(0), SellRange(0); 
Vars: BuyTrig(0),SellTrig(0); 
Vars: HH(0),LL(0),HC(0),LC(0); 
//程序化交易 www.cxh99.com 
If CurrentBar > 1 Then Begin 
HH = Highest(High,Mday); 
HC = Highest(Close,Mday); 
LL = Lowest(Low,Mday); 
LC = Lowest(Close,Mday); 
  
If (HH - LC) >= (HC - LL) ThenBegin 
SellRange = HH - LC; 
End Else Begin 
SellRange = HC - LL; 
End; 
  
HH = Highest(High,Nday); 
HC = Highest(Close,Nday); 
LL = Lowest(Low,Nday); 
LC = Lowest(Close,Nday); 
  
If (HH - LC) >= (HC - LL) ThenBegin 
BuyRange = HH - LC; 
End Else Begin 
BuyRange = HC - LL; 
End; 
  
BuyTrig = K1*BuyRange; 
SellTrig = K2*SellRange; 
  
If MarketPosition = 0 Then Begin 
Buy at Open of next bar + BuyTrigStop; 
Sell at Open of next bar - SellTrigStop; 
End; 
  
If MarketPosition = -1 Then Begin 
Buy at Open of next bar + BuytrigStop; 
End; 
  
If MarketPosition = 1 Then Begin 
Sell at Open of next bar - SellTrigStop; 
End; 
  
End; 


 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
文华与开拓者通用的dual thrust系统策略源码
国外知名策略-dual thrust
手机通达信缠论指标源码
通达信结构紧凑形态公式的编写思路
【图】精品公式(飞狐指标)
突破箱体选股公式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服