用TB写了个均线交易系统 附玻璃上的测试结果
本帖最后由 ctmd110 于 2013-6-3 23:44 编辑初始资金3万, 2小时K线,突破35日均线0.3倍ATR则建仓,止损幅度一个ATR,止赢:反突破35MA 0.5倍ATR(最新K线前一个K线的ATR值)平仓,每次使用总权益的70%资金建仓。
下面是玻璃1309的测试结果:
下面是 09年3月以来螺纹钢指数的测试:
在Y1309的测试上,自2012年10月到2013年2月的这段震荡期间净亏七千
貌似只要不做哪些经常跳空的品种,重仓加严格止损的操作也不会被爆仓
本帖最后由 ctmd110 于 2013-6-3 23:29 编辑
附上TB代码,写的比较混乱,有兴趣的可以看看
//------------------------------------------------------------------------
// 简称: test
// 名称: test
// 类别: 公式应用
// 类型: 用户应用
// 输出:
//------------------------------------------------------------------------
Params
Numeric l(20);//均线周期
Vars
NumericSeries atr;
Numeric N;
Numeric ma1;
Numeric price;//开仓价
Bool flag(False);
Numeric point; //价格最小变动点数
Begin
if(CurrentBar<l+2) Return;
atr=AvgTrueRange(14);
ma1=Average(close,l);
point=MinMove*PriceScale;
If(MarketPosition==0)//无持仓
{
N=atr;
if(High>ma1+0.3*N) //开多仓
{flag=True;price=ma1+0.3*N+point;Buy(0,price); }
if(low<ma1-0.3*N)//开空仓
{flag=True;price=ma1-0.3*N-point;SellShort(0,price);}
if (flag) //记录N,开仓价
{
SetTBProfileString("MY_TRADER_PARMS","N",text(N)); //记录开仓时的波动幅度N
SetTBProfileString("MY_TRADER_PARMS","PRICE",text(price)); //记录开仓价
}
}
else if( marketposition==1) //持有多头仓位
{
N=Value(GetTBProfileString("MY_TRADER_PARMS","N"));
price=Value(GetTBProfileString("MY_TRADER_PARMS","PRICE"));
If(Low<=price-N)//止损平仓,反手
{
price=price-N-point;
Sell(0,price);
N=atr;
if(low<ma1-0.3*N)//反手开空仓
{
If(price>ma1-0.3*N)price=ma1-0.3*N;
flag=True;SellShort(0,price);
}
if (flag) //记录N,开仓价
{
SetTBProfileString("MY_TRADER_PARMS","N",text(N)); //记录开仓时的波动幅度N
SetTBProfileString("MY_TRADER_PARMS","PRICE",text(price));//记录开仓价
}
Return;
}
N=atr; //计算最新波动幅度值
If(low<=ma1-0.5*N&&low>price)//止赢并反手
{
Sell(0,ma1-0.5*N-point); //止赢
flag=True;
price=ma1-0.5*N-point;
SellShort(0,price);//反手开空仓
if (flag) //记录N,开仓价
{
SetTBProfileString("MY_TRADER_PARMS","N",text(N)); //记录开仓时的波动幅度N
SetTBProfileString("MY_TRADER_PARMS","PRICE",text(price));//记录开仓价
}
}
}
else //持有空头仓位
{
N=Value(GetTBProfileString("MY_TRADER_PARMS","N"));
price=Value(GetTBProfileString("MY_TRADER_PARMS","PRICE"));
If(High>=price+N)//止损平仓,反手
{
price=price+N+point;
BuyToCover(0,price);//止损平仓
N=atr;
if(High>ma1+0.3*N) //反手开多仓
{
If(price<ma1+0.3*N)price=ma1+0.3*N+point;
flag=True;
Buy(0,price);
}
if (flag) //记录N,开仓价
{
SetTBProfileString("MY_TRADER_PARMS","N",text(N)); //记录开仓时的波动幅度N
SetTBProfileString("MY_TRADER_PARMS","PRICE",text(price));//记录开仓价
}
Return;
}
N=atr;//计算最新波动幅度值
If(High>=ma1+0.5*N&&High<price)//止赢并反手
{
BuyToCover(0,ma1+0.5*N+point);
flag=True;
price=ma1+0.5*N+point;
Buy(0,price); //反手开多仓
if (flag) //记录N,开仓价
{
SetTBProfileString("MY_TRADER_PARMS","N",text(N)); //记录开仓时的波动幅度N
SetTBProfileString("MY_TRADER_PARMS","PRICE",text(price));//记录开仓价
}
}
}
end
//------------------------------------------------------------------------
// 编译版本 GS2010.12.08
// 用户版本 2013/06/01 21:41
// 版权所有 gtcar120
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------ :lol 测玻璃没什么意义 好帖,学习,本人正这方面研究中, 曲线一般般 玻璃数据量太少 测试也没什么用 楼主强大 学习啊 楼主,用在TB上自动化交易,信号会频闪,现在该系统有改进吗? :ZANTONG
页:
[1]