设为首页收藏本站

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

能否帮我检查一下,这段代码,有没有啥问题啊? [复制链接]

初级大户

天蓬大元帅

Rank: 5Rank: 5

精华
0
UID
1138
积分
1217
帖子
161
主题
61
阅读权限
60
注册时间
2008-1-30
最后登录
2009-10-5
跳转到指定楼层
1#
发表于 2008-11-18 15:44:57 |只看该作者 |倒序浏览
Params
Numeric nMax(100000);
Numeric nMin(0);
Numeric nLots(1);
Vars
NumericSeries nP1(0);
Begin
nP1=Data0.Close-Data1.Close;
//价差太小
If(nP1<nMin)
{
        //平仓
        If(Data0.A_SellPosition>0 && Data0.A_GetOpenOrderCount==0)
        {
                A_SendOrder(Enum_Buy,Enum_Exit,Data0.A_SellPosition,Data0.Q_BidPrice);
        }
        If(Data1.A_BuyPosition>0 && Data1.A_GetOpenOrderCount==0)
        {
                A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Data1.Q_AskPrice);
        }
        //开仓
        If(Data0.A_BuyPosition==0 && Data0.A_GetOpenOrderCount==0)
        {
                A_SendOrder(Enum_Buy,Enum_Entry,nLots,Data0.Q_AskPrice);
        }
        If(Data1.A_BuyPosition==0 && data1.A_GetOpenOrderCount==0)
        {
                A_SendOrder(Enum_Sell,Enum_Entry,nLots,Data1.Q_BidPrice);
        }
}
//价差太大
If(nP1>nMax)
{
        //平仓
        If(Data0.A_BuyPosition>0 &&  Data0.A_GetOpenOrderCount==0)
        {
                A_SendOrder(Enum_Sell,Enum_Exit,Data0.A_BuyPosition,Data0.Q_BidPrice);
        }
        if(Data1.A_SellPosition>0 && Data1.A_GetOpenOrderCount==0)
        {
                A_SendOrder(Enum_Buy,Enum_Exit,Data1.A_SellPosition,Data1.Q_AskPrice);
        }
        //开仓
        If(Data0.A_SellPosition==0 && Data0.A_GetOpenOrderCount==0)
        {
                A_SendOrder(Enum_Sell,Enum_Entry,Data0.A_BuyPosition,Data0.Q_BidPrice);
        }
        if(Data1.A_SellPosition>0 && Data1.A_GetOpenOrderCount==0)
        {
                A_SendOrder(Enum_Buy,Enum_Entry,Data1.A_SellPosition,Data1.Q_AskPrice);
        }
}
End
交易开拓者QQ群:1群:38529330,2群:24771838,3群:39107556,4群:38478324。。。

初级大户

天蓬大元帅

Rank: 5Rank: 5

精华
0
UID
1138
积分
1217
帖子
161
主题
61
阅读权限
60
注册时间
2008-1-30
最后登录
2009-10-5
2#
发表于 2008-11-19 09:46:32 |只看该作者
呵呵,问题太多,我先自己检查测试一下。。。

[ 本帖最后由 cfmx2007 于 2008-11-19 10:18 编辑 ]
交易开拓者QQ群:1群:38529330,2群:24771838,3群:39107556,4群:38478324。。。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
3#
发表于 2008-11-19 09:53:59 |只看该作者
说一下您想实现什么啊,毫无头绪让我们怎么看

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
4#
发表于 2008-11-19 09:54:59 |只看该作者
如果是想要做套利,那就肯定是不行,因为不能收盘价作为判断的标准,要以买卖盘差值进行判断

使用道具 举报

初级大户

天蓬大元帅

Rank: 5Rank: 5

精华
0
UID
1138
积分
1217
帖子
161
主题
61
阅读权限
60
注册时间
2008-1-30
最后登录
2009-10-5
5#
发表于 2008-11-19 10:21:50 |只看该作者
呵呵,想实现的想法就是:当两个商品Data0,Data1,当(Data0-Data1)价差大于nMax时候卖出Data0,买进Data1;当(Data0-Data1)价差小于nMin时候,买进Data0,卖出Data1。。。
:-)
交易开拓者QQ群:1群:38529330,2群:24771838,3群:39107556,4群:38478324。。。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
6#
发表于 2008-11-19 10:33:00 |只看该作者
这就是价差套利,直接用价差下单就可以实现了。

当然程序也可以,要用买卖盘来判断,最好不要用a函数来判断,用全局变量来控制仓位

使用道具 举报

初级大户

天蓬大元帅

Rank: 5Rank: 5

精华
0
UID
1138
积分
1217
帖子
161
主题
61
阅读权限
60
注册时间
2008-1-30
最后登录
2009-10-5
7#
发表于 2008-11-19 15:18:07 |只看该作者
呵呵,我修改了一下,老大,其他的先不管了,我慢慢调试,语法上的函数使用上的错误,帮我看看好吗?

Params
Numeric nMax(100000);
Numeric nMin(-100000);
Numeric nLots(1);
Vars
NumericSeries nP1(0);
Begin
nP1=Data0.Close-Data1.Close;
//价差太小
If(nP1<nMin)
{
        //平仓
        If(Data0.A_SellPosition>0 && Data0.A_GetOpenOrderCount==0)
        {
                Data0.A_SendOrder(Enum_Buy,Enum_Exit,Data0.A_SellPosition,Data0.Q_BidPrice);
        }
        If(Data1.A_BuyPosition>0 && Data1.A_GetOpenOrderCount==0)
        {
                data1.A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Data1.Q_AskPrice);
        }
        //开仓
        If(Data0.A_BuyPosition==0 && Data0.A_GetOpenOrderCount==0)
        {
                Data0.A_SendOrder(Enum_Buy,Enum_Entry,nLots,Data0.Q_AskPrice);
        }
        If(Data1.A_BuyPosition==0 && data1.A_GetOpenOrderCount==0)
        {
                data1.A_SendOrder(Enum_Sell,Enum_Entry,nLots,Data1.Q_BidPrice);
        }
}
//价差太大
If(nP1>nMax)
{
        //平仓
        If(Data0.A_BuyPosition>0 &&  Data0.A_GetOpenOrderCount==0)
        {
                Data0.A_SendOrder(Enum_Sell,Enum_Exit,Data0.A_BuyPosition,Data0.Q_BidPrice);
        }
        if(Data1.A_SellPosition>0 && Data1.A_GetOpenOrderCount==0)
        {
                data1.A_SendOrder(Enum_Buy,Enum_Exit,Data1.A_SellPosition,Data1.Q_AskPrice);
        }
        //开仓
        If(Data0.A_SellPosition==0 && Data0.A_GetOpenOrderCount==0)
        {
                Data0.A_SendOrder(Enum_Sell,Enum_Entry,Data0.A_BuyPosition,Data0.Q_BidPrice);
        }
        if(Data1.A_SellPosition==0 && Data1.A_GetOpenOrderCount==0)
        {
                data1.A_SendOrder(Enum_Buy,Enum_Entry,Data1.A_SellPosition,Data1.Q_AskPrice);
        }
}
End
交易开拓者QQ群:1群:38529330,2群:24771838,3群:39107556,4群:38478324。。。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-19 20:36

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部