- 精华
- 1
- 在线时间
- 401 小时
- UID
- 404
- 积分
- 1434
- 帖子
- 236
- 阅读权限
- 60
- 注册时间
- 2007-9-23
- 最后登录
- 2014-7-25
- 精华
- 1
- UID
- 404
- 积分
- 1434
- 帖子
- 236
- 主题
- 74
- 阅读权限
- 60
- 注册时间
- 2007-9-23
- 最后登录
- 2014-7-25
|
本帖最后由 skyline 于 2011-2-17 19:55 编辑
Params
Numeric Position(0);
Begin
If(BarStatus==0)
{
SetGlobalVar(0,Position);
}//初始化全局变量
Commentary("GlobalVar0="+Text(GetGlobalVar(0)));
用参数初始化全局变量,早上把0改成1,为什么最后一根BAR输出还是0?前面的bar都是1
开盘后重新登录后改参数是正常的,而开盘前修改了没用。
--------------------------------------------------------------------------------------------------------------------
找到问题了,引用了在最后一根bar有效的函数导致出错,忘记加barstatus==2限定了。
但是很奇怪,参数只有1出错,如果改成0或2或其他数字都不会出错,不知道是不是BUG?
Params
Numeric Position(1);
Numeric UpBand(1.5);
Numeric DownBand(1.5);
Numeric Length(400);
Numeric EntryRate(8.5);
Numeric Lots(1);
Vars
Numeric BuyRevenue;
Numeric SellRevenue;
NumericSeries SpreadRate;
Numeric UpLine; //上轨
Numeric DownLine; //下轨
NumericSeries MidLine; //中间线
Begin
If(BarStatus==0)
{
SetGlobalVar(0,Position);
}//初始化全局变量
If(Data0.Close != InvalidNumeric && Data1.Close != InvalidNumeric)
{
SpreadRate = Data1.Close - Data0.Close;
MidLine = AverageFC(SpreadRate,Length);
UpLine = MidLine + UpBand;
DownLine = MidLine - DownBand;
BuyRevenue = Data1.Q_BidPrice - Data0.Q_AskPrice;
SellRevenue= Data1.Q_AskPrice - Data0.Q_BidPrice;
If(BuyRevenue>EntryRate And BuyRevenue> UpLine And GetGlobalVar(0)==0 And High!=Low)
{
Data0.A_SendOrder(Enum_Buy,Enum_Entry,Lots,Data0.Q_AskPrice+10);
Data1.A_SendOrder(Enum_Sell,Enum_Entry,Lots,data1.Q_BidPrice-10);
SetGlobalVar(0,1);
}
If(SellRevenue<DownLine And GetGlobalVar(0)==1 And High!=Low)
{
Data0.A_SendOrder(Enum_Sell,Enum_Exit,Lots,Data0.Q_BidPrice-10);
Data1.A_SendOrder(Enum_Buy,Enum_Exit,Lots,data1.Q_AskPrice+10);
SetGlobalVar(0,0);
}
}
Commentary("GlobalVar0="+Text(GetGlobalVar(0)));
End |
|