这样转换策略有什么问题呢~~ [金字塔]
-
咨询内容:
////////////////////////////
原来的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;
ENDIF ( 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呢 -
金字塔客服:
补充好需要的数据后,在回测看下、、
本地测试有信号
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容