欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 这样转换策略有什么问题呢~~

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2461人关注过本帖树形打印复制链接

主题:这样转换策略有什么问题呢~~

帅哥哟,离线,有人找我吗?
TomRidder716
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2016/8/8 9:03:02
这样转换策略有什么问题呢~~  发帖心情 Post By:2017/5/6 23:45:39    Post IP:222.79.245.86[只看该作者]

////////////////////////////
原来的TB的策略
 
策略说明: 基于通道突破的判断
// 系统要素:
// 1. 计算50根k线最高价的区间
// 2. 计算30根k线最低价的区间
//
// 入场条件:
//     1.价格高于50根K线最高价的区间入场
// 出场条件:
// 1. 当前价格低于30根K线最低价的区间出场
// 2. 当前价格低于入场价一定ATR波动率幅度出场
//
//----------------------------------------------------------------------//
Params
Numeric Length1(50); //长周期区间参数
Numeric Length2(30); //短周期区间参数
Numeric IPS(4); //保护止损波动率参数
Numeric AtrVal(10); //波动率参数
Vars 
NumericSeries ProtectStopL;
NumericSeries ATR;
NumericSeries Upperband;
NumericSeries Lowerband; 
NumericSeries Exitlong;
NumericSeries Exitshort;
Numeric L2;
Numeric L1;
Numeric Minpoint;
Begin

// 集合竞价和小节休息过滤
If(BarStatus == 2 And IsCallAuctionTime) Return;

Minpoint = Minmove*PriceScale;
    ATR = AvgTrueRange(AtrVal);       //定义ATR
L1 = Max(Length1,Length2);       //出场周期选择较大的区间参数
L2 = Min(Length1,Length2);       //出场周期选择较小的区间参数
Upperband = Highest(High, L1);       //长周期最高价区间
Lowerband = lowest(Low,L1);           //长周期最低价区间
Exitlong = Lowest(Low,L2);       //短周期最低价区间
Exitshort = Highest(high,L2);       //短周期最高价区间

//系统入场 
If(Marketposition == 0 and High >= Upperband[1] + Minpoint And Vol > 0)      //价格大于长周期最高价区间入场做多
{
Buy(0, Max(Open, Upperband[1] + Minpoint));
ProtectStopL = Entryprice - IPS*ATR[1];
}

//系统出场
If(MarketPosition == 1 and BarsSinceEntry >0 And Vol > 0)
{
If( Low <= ProtectStopL[1] and ProtectStopL[1] >= Exitlong[1])  //价格低于入场价以下一定ATR幅度止损
{
Sell (0,Min(Open,ProtectStopL[1]));
}
Else if (Low <= Exitlong[1] - Minpoint)                    //价格低于短周期最低价区间出场
{
Sell(0, Min( Open, Exitlong[1] - Minpoint));
}
}

End
//////////////////////////////////////////////////////////////////
 
///////////////////////////////////////////////////////////////////
我自己转换的PEL策略

INPUT:LENGTH1(50,1,100,5),LENGTH2(30,1,100,5),IPS(4,1,100,5),ATRVAL(10,1,100,5);
SS:=2;
MINPOINT:=MINDIFF()*MULTIPLIER();
ATR:=MA(TR,ATRVAL);
L1:=MAX(LENGTH1,LENGTH2);
L2:=MIN(LENGTH1,LENGTH2);
UPPERBAND:=HHV(H,L1);
LOWERBAND:=LLV(L,L1);
EXITLONGING:=LLV(L,L2);
EXITSHORTING:=HHV(H,L2);
UPPERBAND1:=REF(UPPERBAND,1);
ATR1:=REF(ATR,1);
PROTECTSTOPL :=ENTERPRICE()-IPS*ATR1;
PROTECTSTOPL1:=REF(PROTECTSTOPL,1);
EXITLONGING1:=REF(EXITLONGING,1);
IF HOLDING =0 AND H>(UPPERBAND1 +MINPOINT) AND VOL>0  THEN BEGIN
  BUY(1,SS,MAX(OPEN,UPPERBAND1+MINPOINT));
  PROTECTSTOPL :=ENTERPRICE()-IPS*ATR1;
END

IF ( HOLDING>0 AND ENTERBARS>0 AND VOL>0 ) THEN BEGIN
  IF ( LOW <PROTECTSTOPL1 AND PROTECTSTOPL1>=EXITLONGING1 ) THEN BEGIN
  SELL(1,SS,MIN(OPEN,PROTECTSTOPL1));
  END
  IF ( LOW<=EXITLONGING1-MINPOINT ) THEN BEGIN
  SELL(1,SS,MIN(OPEN,EXITLONGING1-MINPOINT));
  END
END

////////////////////////////////////////////////////


但是为什么转出来的策略回测数据都是0呢

 
 
 

 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2017/5/8 8:15:42    Post IP:180.169.30.6[只看该作者]

补充好需要的数据后,在回测看下、、

本地测试有信号



编程无捷径,技巧靠积累。
 回到顶部