设为首页收藏本站

 找回密码
 注册
查看: 4485|回复: 7
打印 上一主题 下一主题

求助,此套利程序在模拟交易中不产生交易 [复制链接]

Rank: 4

精华
0
UID
5941
积分
285
帖子
33
主题
14
阅读权限
50
注册时间
2009-11-21
最后登录
2017-3-11
跳转到指定楼层
1#
发表于 2010-3-11 10:35:24 |只看该作者 |倒序浏览
Params
       Numeric   a1(300);
       Numeric   b1(500);
       Numeric   c1(600);
       Numeric   d1(400);
Vars
Begin
If((Data0.Close-Data1.Close)<a1 && GetGlobalVar(0)==0 && Data0.A_BuyPosition==0 && Data1.A_SellPosition==0)
{
Data0. A_SendOrder(Enum_Buy, Enum_Entry, 1,Q_AskPrice);
Data1.A_SendOrder(Enum_Sell,Enum_Entry,1,Q_BidPrice);
SetGlobalVar(0,1);
}
//当价差小于300时,买入开仓前一品种,卖出开仓后一品种
If((Data0.Close-Data1.Close)>b1 && GetGlobalVar(0)==0 && Data1.A_BuyPosition==0 && Data0.A_SellPosition==0)
{
Data0.A_SendOrder(Enum_sell,Enum_Exit,1,Q_bidPrice);
Data1.A_SendOrder(Enum_buy,Enum_Exit,1,Q_askPrice);
SetGlobalVar(0,1);
}
//当价差大于500时,卖出平仓前一品种,买入平仓后一品种
If((Data0.Close-Data1.Close)>c1 && GetGlobalVar(0)==0 && Data1.A_BuyPosition==0 && Data0.A_SellPosition==0)
{
Data0.A_SendOrder(Enum_sell,Enum_Entry,1,Q_bidPrice);
Data1.A_SendOrder(Enum_buy,Enum_Entry,1,Q_askPrice);
SetGlobalVar(0,1);
}
//当价差大于600时,卖出开仓前一品种,买入开仓后一品种
If((Data0.Close-Data1.Close)<d1 && GetGlobalVar(0)==0 && Data0.A_BuyPosition==0 && Data1.A_SellPosition==0)
{
Data0.A_SendOrder(Enum_Buy,Enum_exit,1,Q_AskPrice);
Data1.A_SendOrder(Enum_Sell,Enum_exit,1,Q_BidPrice);
SetGlobalVar(0,1);
}
end
//当价差小于400时,买入平仓前一品种,卖出平仓后一品种

Rank: 4

精华
0
UID
6361
积分
567
帖子
32
主题
1
阅读权限
50
注册时间
2009-12-30
最后登录
2012-5-12
2#
发表于 2010-3-11 11:35:49 |只看该作者
Data0. A_SendOrder(Enum_Buy, Enum_Entry, 1,Q_AskPrice);
Data1.A_SendOrder(Enum_Sell,Enum_Entry,1,Data1.Q_BidPrice);

报价怎么改比较合适不然 data1商品 报价有问题的
多系统,多品种,多周期组合交易

使用道具 举报

Rank: 4

精华
0
UID
5941
积分
285
帖子
33
主题
14
阅读权限
50
注册时间
2009-11-21
最后登录
2017-3-11
3#
发表于 2010-3-11 12:53:03 |只看该作者

回复 2# 觉文基金 的帖子

十分感谢。

使用道具 举报

Rank: 4

精华
0
UID
5941
积分
285
帖子
33
主题
14
阅读权限
50
注册时间
2009-11-21
最后登录
2017-3-11
4#
发表于 2010-3-11 13:34:08 |只看该作者

改后还是不交易

Params
     
Vars
Begin
If((Data0.Close-Data1.Close)<-16 && GetGlobalVar(0)==0 && Data0.A_BuyPosition==0 && Data1.A_SellPosition==0)
{
Data0. A_SendOrder(Enum_Buy, Enum_Entry, 1,Q_AskPrice);
Data1.A_SendOrder(Enum_Sell,Enum_Entry,1,data1.Q_BidPrice);
SetGlobalVar(0,1);
}
//当价差小于300时,买入开仓前一品种,卖出开仓后一品种
If((Data0.Close-Data1.Close)>-10 && GetGlobalVar(0)==0 && Data1.A_BuyPosition==0 && Data0.A_SellPosition==0)
{
Data0.A_SendOrder(Enum_sell,Enum_Exit,1,Q_bidPrice);
Data1.A_SendOrder(Enum_buy,Enum_Exit,1,data1.Q_askPrice);
SetGlobalVar(0,1);
}
//当价差大于500时,卖出平仓前一品种,买入平仓后一品种
If((Data0.Close-Data1.Close)>-8 && GetGlobalVar(0)==0 && Data1.A_BuyPosition==0 && Data0.A_SellPosition==0)
{
Data0.A_SendOrder(Enum_sell,Enum_Entry,1,Q_bidPrice);
Data1.A_SendOrder(Enum_buy,Enum_Entry,1,data1.Q_askPrice);
SetGlobalVar(0,1);
}
//当价差大于600时,卖出开仓前一品种,买入开仓后一品种
If((Data0.Close-Data1.Close)<-15 && GetGlobalVar(0)==0 && Data0.A_BuyPosition==0 && Data1.A_SellPosition==0)
{
Data0.A_SendOrder(Enum_Buy,Enum_exit,1,Q_AskPrice);
Data1.A_SendOrder(Enum_Sell,Enum_exit,1,data1.Q_BidPrice);
SetGlobalVar(0,1);
}
end
//当价差小于400时,买入平仓前一品种,卖出平仓后一品种

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
5#
发表于 2010-3-11 14:03:46 |只看该作者
看看当前图表GetGlobalVar(0)是否为0
用commerntry输出查看

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
5525
积分
1473
帖子
429
主题
93
阅读权限
60
注册时间
2009-9-22
最后登录
2022-5-23
6#
发表于 2010-10-25 10:51:06 |只看该作者
由于程序没有限制在BarStatus==2状态下运行,所以在你关联启动自动交易策略前,程序已经在BarStatus==1下运行了很多次,很有可能已将GetGlobalVar(0)设为1,因此当实际行情到来时,指令就被公共变量GV0给屏蔽了。
这个程序还却一段恢复GV0的程序段, 不然只会发出一个交易指令。
上善若水,无欲则刚

使用道具 举报

Rank: 2

精华
0
UID
21061
积分
89
帖子
54
主题
17
阅读权限
30
注册时间
2010-12-7
最后登录
2014-3-11
7#
发表于 2012-10-16 13:32:54 |只看该作者
全局变量使用错误!

使用道具 举报

Rank: 4

精华
0
UID
64485
积分
395
帖子
119
主题
19
阅读权限
50
注册时间
2011-9-9
最后登录
2014-12-24
8#
发表于 2014-4-14 15:56:44 |只看该作者
好像全局变量用的不对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-3 11:45

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部