- 精华
- 1
- 在线时间
- 62 小时
- UID
- 2048
- 积分
- 218
- 帖子
- 29
- 阅读权限
- 40
- 注册时间
- 2008-8-1
- 最后登录
- 2016-8-2
- 精华
- 1
- UID
- 2048
- 积分
- 218
- 帖子
- 29
- 主题
- 8
- 阅读权限
- 40
- 注册时间
- 2008-8-1
- 最后登录
- 2016-8-2
|
从贴子中看到某日内系统案例:
版主说测试此系统必须打开图表,选择Tick,10秒或1分钟的周期,在商品设置里面,将数据范围设置为1天以来。
那么请问版主,"将数据范围设置为1天以来"是不是意味着TB不能对多日日内数据测试日内交易系统呢?
贴子地址:
http://www.tradeblazer.net/forum/thread-111-1-15.html
系统策略如下
1、开盘10分钟才开始交易
2、在均价线(当日结算价)方向之上(下),只考虑开多(空),
3、突破当日早盘的最高价(或最低价)开多(空)仓,破均价线止损,否则持有,直到尾盘5分钟平仓,
4、盘中交易止损后,空仓,直到再次突破今日高(低)点,开多(空)仓。
以下是代码:
Vars
Numeric AmountCum; // 当日以来成交总额的合计值
Numeric VolCum; // 当日以来成交量的合计值
NumericSeries AvgSettlePrice; // 当日均价,因为均价是交易所公布的,只有分时图
// 里面才有均价数据,在K线图只能近似计算出均价
NumericSeries HighestClose(0);// 当日以来的收盘价的最大值
NumericSeries LowestClose(0); // 当日以来的收盘价的最小值
Begin
AmountCum = Cum(Close*Vol);
VolCum = Cum(Vol);
AvgSettlePrice = AmountCum/VolCum;
If(CurrentBar == 0)
{
HighestClose = Close;
LowestClose = Close;
}Else
{
HighestClose = Max(Close,HighestClose[1]);
LowestClose = Min(Close,LowestClose[1]);
}
If(Time > 0.091000 && Time < 0.145500) // 时间在9:10分之后,14:50之前
{
If(MarketPosition == 0)
{
If(Close > AvgSettlePrice And Close > HighestClose[1]) // 开多仓
{
Buy(1,High);
Return;
}
If(Close < AvgSettlePrice And Close < LowestClose[1]) // 开空仓
{
SellShort(1,Low);
Return;
}
}
If(MarketPosition == 1 And Close < AvgSettlePrice) // 多仓的止损
{
Sell(0,Low);
}
If(MarketPosition == -1 And Close > AvgSettlePrice) // 空仓的止损
{
BuyToCover(0,High);
}
}
If(Time > 0.145500) // 时间在14:55之后
{
If(MarketPosition == 1)
{
Sell(0,Low);
}Else If(MarketPosition == -1)
{
BuyToCover(0,high);
}
}
End
//------------------------------------------------------------------------
// 编译版本 GS2004.06.12
// 用户版本 2007/08/06 11:37
// 版权所有 nopain
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TrabeBlazer公式修改和重写的权利
谢谢版主!!!!
[ 本帖最后由 samwjwj 于 2008-10-9 23:20 编辑 ] |
|