设为首页收藏本站

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

Buy和SellShort的问题 [复制链接]

Rank: 2

精华
0
UID
254249
积分
53
帖子
37
主题
14
阅读权限
30
注册时间
2017-7-20
最后登录
2019-2-12
跳转到指定楼层
1#
发表于 2017-9-20 14:14:42 |只看该作者 |倒序浏览
Buy函数有以下特性“如果当前持仓状态为空仓,即MarketPosition = -1 时,该函数平掉所有空仓,同时按照参数进行多头建仓,两个动作同时发出。”即会先将空仓平掉,再开多仓。
SellShort则相反

我是这样一段策略:

        //破上限开仓       
          If((Data1.Q_BidPrice-Data0.Q_AskPrice-Mean)>=K And Data0.Q_AskVol>0 And Data1.Q_BidVol>0)       
        {       
                Data0.Buy(Lots,Data0.Q_AskPrice);
                Data1.SellShort(Lots,Data1.Q_BidPrice);
        }       
               
        //破下限开仓       
          If((Data1.Q_AskPrice-Data0.Q_BidPrice-Mean)<=-K And Data0.Q_BidVol>0 And Data1.Q_AskVol>0)       
        {       
                Data0.SellShort(Lots,Data0.Q_BidPrice);
                Data1.Buy(Lots,Data1.Q_AskPrice);
        }       

即破上限或下限时,先将持仓全平,再做同样数量的反手。

可是用模拟柜台测试时却出现了同一个合约,如c1801,同时持有多仓和空仓的情况,请问是哪里出了问题,谢谢!(历史回测时无此问题)

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2017-9-20 14:27:42 |只看该作者
这段代码能有历史回测吗?应该不能啊。
使用了q_xxx函数,这个只能在最后K线上显示信号。。一旦新K线出来,原信号会消失。所以根本没有继续交易

使用道具 举报

Rank: 2

精华
0
UID
254249
积分
53
帖子
37
主题
14
阅读权限
30
注册时间
2017-7-20
最后登录
2019-2-12
3#
发表于 2017-9-20 15:14:19 |只看该作者
您好,这也是我之前问过的一个问题,没人回复,我试了一下发现这个Q函数在tick线上能取到历史数据,在其他周期的BAR上就没有数据(我是在以前别人提问的回复里看到的,结果自己一试确实是这样),结果我就在tick线上做的回测,确实可以,tick线上我取到了过去13个交易日的数据。

我主要想问的问题您能给解答一下吗?

使用道具 举报

Rank: 2

精华
0
UID
254249
积分
53
帖子
37
主题
14
阅读权限
30
注册时间
2017-7-20
最后登录
2019-2-12
4#
发表于 2017-9-20 15:23:48 |只看该作者
另外向您请教一个问题,我这是套利策略,异常的价差往往是转瞬即逝,难以捕捉。我以前是用上一个BAR的close来给信号,然后用当前BAR的open来开平仓,但是二者之间有偏差,造成捕捉到的价格已经不是信号价格了,造成这个策略的有效性大打折扣,所以后来想到“信号价”和“操作价”必须是同一个价格,所以才想到使用这个Q函数价格。

想问问您这个思路对吗?通常的套利策略在这个问题上是怎么处理的,谢谢

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
5#
发表于 2017-9-20 16:20:24 |只看该作者
cary20060915 发表于 2017-9-20 15:14
您好,这也是我之前问过的一个问题,没人回复,我试了一下发现这个Q函数在tick线上能取到历史数据,在其他 ...

这个情况应该是某一个平仓的委托没能成交。。
需要具体一个个信号,一笔笔委托进行排查,找到原因,做好相应的处理去避免以后再次发生。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
6#
发表于 2017-9-20 16:21:21 |只看该作者
cary20060915 发表于 2017-9-20 15:23
另外向您请教一个问题,我这是套利策略,异常的价差往往是转瞬即逝,难以捕捉。我以前是用上一个BAR的close ...

在TICK上了,不存在close变化的问题 了,那就不要用上一个bar的close了呀。就当前的价格在当前发单 就好。

使用道具 举报

Rank: 2

精华
0
UID
254249
积分
53
帖子
37
主题
14
阅读权限
30
注册时间
2017-7-20
最后登录
2019-2-12
7#
发表于 2017-9-20 19:07:09 |只看该作者
小米 发表于 2017-9-20 16:20
这个情况应该是某一个平仓的委托没能成交。。
需要具体一个个信号,一笔笔委托进行排查,找到原因,做好 ...

如果真如您所说的这个原因,那可不太好,因为我之所以使用Q函数对手盘价格,就是为了最大限度的保证实时成交,而就现在玉米每个tick上的买一盘量和卖一盘量通常都在几百手,而我的策略发单量只有一手,如果还出现为成交的状况,是否可以理解为程序运算速度或网速的问题,造成发了单但未能按该价格成交?

使用道具 举报

Rank: 2

精华
0
UID
254249
积分
53
帖子
37
主题
14
阅读权限
30
注册时间
2017-7-20
最后登录
2019-2-12
8#
发表于 2017-9-20 19:20:18 |只看该作者
小米 发表于 2017-9-20 16:21
在TICK上了,不存在close变化的问题 了,那就不要用上一个bar的close了呀。就当前的价格在当前发单 就好 ...

在tick上,同一个BAR上,open=high=low=close是吧,但这都是已成交的价格,这个价格通常介于买一和卖一价格中间,我如果以这个价格发单,不一定能保证实时成交,可能形成多单空单都不成交,或“单腿”成交的情况,就没有形成套利,这怎么办?不知道我理解的对不对

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
9#
发表于 2017-9-21 08:48:32 |只看该作者
cary20060915 发表于 2017-9-20 19:07
如果真如您所说的这个原因,那可不太好,因为我之所以使用Q函数对手盘价格,就是为了最大限度的保证实时 ...

如果每一笔交易都可以按自己想要的价格的去成交那真是太好了。但事实上不可能啊。。
虽然盘量都在几百手,你发单 一手。但是你怎么确保市场上只有您一位买家呢?你怎么确保其它买家报价比你的更不“友好”呢?没法保证啊。所以仅用对手盘不能成交是很正常的现象。。特别是不活跃的合约更是如此。

ticK上,open与close是一样的,都是成交价。但是high,low我们放的是叫买叫卖价。所以并不相同,,在图表上的注释框里看看就知道了。
为了提高成交的概率 ,一般都是使用对手盘价再加减偏移价格方好。

使用道具 举报

Rank: 2

精华
0
UID
254249
积分
53
帖子
37
主题
14
阅读权限
30
注册时间
2017-7-20
最后登录
2019-2-12
10#
发表于 2017-9-21 09:12:01 |只看该作者
好的,谢谢

使用道具 举报

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

bottom

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

GMT+8, 2024-4-25 17:32

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部