- 精华
- 0
- 在线时间
- 52 小时
- UID
- 3452
- 积分
- 163
- 帖子
- 31
- 阅读权限
- 40
- 注册时间
- 2009-2-7
- 最后登录
- 2012-8-16
- 精华
- 0
- UID
- 3452
- 积分
- 163
- 帖子
- 31
- 主题
- 7
- 阅读权限
- 40
- 注册时间
- 2009-2-7
- 最后登录
- 2012-8-16
|
我是初学者,能否解释一下代码的含义吗?另外我在测试时发生在突破时频繁开仓的问题,如何解决?
一个30分钟突破的日内系统
基本思想来源于《完美日内交易商II》- (作 者: (美)杰克.伯恩斯坦)中描述,做了部分调整及修改。
30分钟可以通过参数进行调整。。
代码如下:
Params
Numeric nMins(30); // N分钟的突破
Numeric nOffset(3); // 突破式的价格偏移
Vars
NumericSeries HighestOf30Min;
NumericSeries lowestOf30Min;
Numeric myPrice;
Numeric MinPoint;
Numeric lots(1);
Begin
MinPoint = MinMove*PriceScale;
If(Date <> Date[1])
{
HighestOf30Min = High;
lowestOf30Min = Low;
}Else If(Time < 0.0900+nMins*0.0001)
{
HighestOf30Min = max(high,HighestOf30Min[1]);
lowestOf30Min = min(Low,lowestOf30Min[1]);
}Else
{
HighestOf30Min = HighestOf30Min[1];
lowestOf30Min = lowestOf30Min[1];
}
If(High >= HighestOf30Min + nOffset*MinPoint && MarketPosition != 1)
{
myPrice = HighestOf30Min + nOffset*MinPoint;
If(Open > myPrice) myPrice = Open;
Buy(lots,myPrice);
}
If(Low <= lowestOf30Min - nOffset*MinPoint && MarketPosition != -1)
{
myPrice = lowestOf30Min - nOffset*MinPoint;
If(Open < myPrice) myPrice = Open;
SellShort(lots,myPrice);
}
If(Time >= 0.1459)
{
Sell(lots,Open);
BuyToCover(lots,Open);
}
End |
|