- 精华
- 0
- 在线时间
- 144 小时
- UID
- 7593
- 积分
- 609
- 帖子
- 109
- 阅读权限
- 60
- 注册时间
- 2010-3-19
- 最后登录
- 2014-5-18
- 精华
- 0
- UID
- 7593
- 积分
- 609
- 帖子
- 109
- 主题
- 14
- 阅读权限
- 60
- 注册时间
- 2010-3-19
- 最后登录
- 2014-5-18
|
刚刚才我把程序代码做了些修改,主要是为了避免同一方向重复下单的问题,按照您的提示,我把代码修改如下,请看下列代码,其中我有一个疑问,为什么还是在重复发送同一方向的单,我应该把SetGlobalVar(0,0) and SetGlobalVar(1,0)的初始值放在程序的那一部分。如果把SetGlobalVar(0,0) and SetGlobalVar(1,0)放在Begin and End 之间的话,可能随时都会去把默认值识为当前值。期待您及高手的回答!
关于开平仓记录请看附件中的文件,先行谢过了。
Parms
......
Vars
......
Begin
{
//前面程序计算部分.........
SetGlobalVar(0,0);//多开平仓标志,没有多单持仓用0表示,有多单持仓用1表示。获取数据用GetGlobalVar(0);
SetGlobalVar(1,0);//空开平仓标志,没有空单持仓用0表示,有空单持仓用1表求。获取数据用GetGlobalVar(1);
if ( tr_hbop[1] > tr_x[1] And (Abs(tr_s1[1]-tr_x[1])<=0 or Abs(tr_s1[1]-tr_x[1])<=0.50))
{
if (GetGlobalVar(1)==1)
{
A_SendOrder(Enum_Sell,Enum_Exit,A_SellPosition(),Q_AskPrice());
SetGlobalVar(1,0);
}
if (GetGlobalVar(0)==0)
{
A_SendOrder(Enum_Buy,Enum_Entry,1,Q_BidPrice());
SetGlobalVar(0,1);
}
}
if ( tr_hbop[1]<tr_x[1] And (Abs(tr_b1[1]-tr_x[1])<=0 or Abs(tr_b1[1]-tr_x[1])<=0.50))
{
if (GetGlobalVar(0)==1)
{
A_SendOrder(Enum_Buy,Enum_Exit,A_BuyPosition(),Q_BidPrice());
SetGlobalVar(0,0);
}
if (GetGlobalVar(1)==0)
{
A_SendOrder(Enum_Sell,Enum_Entry,1,Q_AskPrice());
SetGlobalVar(1,1);
}
}
End
By : Zejunl
[ 本帖最后由 zejunl 于 2010-4-27 12:47 编辑 ] |
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|