VeighNa量化社区
你的开源社区量化交易平台
harrymissi's Avatar
Member
离线
23 帖子
声望: 0

MTF wrote:

就是缺少广期所交易所支持,你用的版本太老了,卸载后重装3.6.0吧
明白了,多谢!

MTF wrote:

【提交中】说明该委托没有收到柜台的确认回报,也就是可能柜台没收到。

你的日志中没有【合约信息查询成功】的输出,建议查下CTP接口是否底层报错了(猜测可能是没有GFEX)。

可以试试升级到3.6.0解决

我用python -m vnstation 命令行启动确实发现了报错,错误是:

At:
  C:\vnstudio\lib\site-packages\vnpy_ctp\gateway\ctp_gateway.py(603): onRspQryInstrument
KeyError: ('GFEX',)

这个错误我以前没遇到过的,只是最近才有看到,请问是有什么改动引起的吗?

vn trader 能成功发送订单,但是订单状态一直是“提交中”,但是我用中信的快期查看已经成交了。而且我在on_trade中有打印trade,但一直没反应。这里是什么原因导致了vn trader没能和券商那边同步订单状态? 这个问题大概是2.17出现的
description

description

xiaohe wrote:

可以看一下主界面左下角是否有对应日志输出

没有日志输出的, trading一直是True,就是执行了send_order这个代码,但是订单没发出

目前我们在simnow模拟盘测试策略,但有时出现了平仓失败的问题,send_order返回的是个空列表,盘中的时候我们有重试机制,大概两三次就会成功,但是盘尾3分钟内的连续重试都会不成功。 请问下这是simnow的问题吗?

郭易燔 wrote:

可以参照BarGenerator写一个TickGenerator
谢谢大佬的思路,我写了个简单的TickGenerator,因为我的需求是每X秒响应一次,不用去合成数据,代码如下:
```
class TickGenerator:
def init(
self,
on_bar: Callable,
window: int = 0,
on_window_bar: Callable = None,
interval: Interval = Interval.SECOND
):
self.bar: BarData = None
self.on_bar: Callable = on_bar

    self.interval: Interval = interval
    self.interval_count: int = 0

    self.window: int = window
    self.window_bar: BarData = None
    self.on_window_bar: Callable = on_window_bar

    self.last_tick: TickData = None

def update_tick(self, tick: TickData) -> None:
    """
    Update new tick data into generator.
    """
    new_minute = False

    if not tick.last_price:
        return

    if self.last_tick and tick.datetime < self.last_tick.datetime:
        return

    if not self.bar:
        new_minute = True
    elif self.bar.datetime.minute != tick.datetime.minute or self.bar.datetime.hour != tick.datetime.hour or self.bar.datetime + timedelta(seconds=self.window) <= tick.datetime :
        self.bar.datetime = tick.datetime
        self.on_bar(self.bar)
        new_minute = True

    if new_minute:
        self.bar = BarData(
            symbol=tick.symbol,
            exchange=tick.exchange,
            interval=Interval.MINUTE,
            datetime=tick.datetime,
            gateway_name=tick.gateway_name,
            open_price=tick.last_price,
            high_price=tick.last_price,
            low_price=tick.last_price,
            close_price=tick.last_price,
            open_interest=tick.open_interest
        )
    else:
        self.bar.high_price = max(self.bar.high_price, tick.last_price)
        if tick.high_price > self.last_tick.high_price:
            self.bar.high_price = max(self.bar.high_price, tick.high_price)

        self.bar.low_price = min(self.bar.low_price, tick.last_price)
        if tick.low_price < self.last_tick.low_price:
            self.bar.low_price = min(self.bar.low_price, tick.low_price)

        self.bar.close_price = tick.last_price
        self.bar.open_interest = tick.open_interest

    if self.last_tick:
        volume_change = tick.volume - self.last_tick.volume
        self.bar.volume += max(volume_change, 0)

        turnover_change = tick.turnover - self.last_tick.turnover
        self.bar.turnover += max(turnover_change, 0)

    self.last_tick = tick

```

大家好,我想问下有没有合成tick数据的方法,比如说每30秒合成一个新的数据,类似于BarGenerator一样合成一个30分钟的bar数据

感谢分享,完美回答了我遇到的问题

大家有碰到Simnow账户登陆不了的情况吗? 我的真实盘账户能登陆,但是Simnow账户从上周五开始就登陆不了了。

周弗居 wrote:

把CTP连接那里所有的信息都要改成期货商提供的,包括IP等,前提是穿透式测试通过了哈。
好嘞 谢谢!

大家好,我想问下我现在是在用simnow账号做模拟盘,如果我想切换到实盘的话,是不是只要在连接CTP那里把账号信息改成真实的实盘账号就可以进行实盘交易了?

harrymissi wrote:

xiaohe wrote:

请问是实盘还是simnow?

simnow 的
是不是在实盘中就不会出现这种情况?

xiaohe wrote:

请问是实盘还是simnow?

simnow 的

description
你好,我在cta策略做股指期货的if2206,然后我在9:25同时下了多平单和空平单,按道理它们在9:30的时候会以开盘价成交,但是这里多平单这里的价格不是开盘价,请问这是为什么?

MTF wrote:

  1. 没办法,因为柜台没推送
  2. 你可以在on_start函数下实现挂单逻辑,然后在9:25-29分之间启动策略,来实现初始报单

你好,我试了一下在on_start挂单,我测试了下加了个self.buy(price,1)在这个函数里面,然后在9:27左右去启动,但是在委托里没看到我挂的单,请问这个是怎么回事? 😂

你好,我现在在做股指的IF2206,我在启动策略后发现tick数据只能从9:29开始,这个时候已经不能报单了,我有两个问题,请问:
1.有没有办法能在9:25~9:29之间获取到IF2206的价格吗?2. 如果获取不到这个价格的话,9:25~9:29之间vn.py能不能支持报单?

你好,请问下PortfolioStrategy 有没有办法获取成交价格?因为PortfolioStrategy没有on_trade响应函数,所以委托单成交的时候价格是查询不到的。但是这里我不想看position data里的持仓均价,因为我们现在是在做对锁交易,每天会持仓比较多,到第二天开盘再平仓,所以持仓均价对我们来说是没有意义的。

你好,我已经成功的加载了PortfolioManager板块并且有自己的CTA策略,但是在加载PortfolioManager后界面不显示CTA策略的具体信息,请问怎么在PortfolioManager显示CTA策略具体信息?
description

description

许方文 wrote:

有这么麻烦?
用这两句不行吗

# In cta strategy
if isinstance(self.cta_engine, CtaEngine):
   self.acc_dict = self.cta_engine.main_engine.engines['oms'].accounts

或者直接用get_account

确实这一行代码就够了😂

有原 wrote:

SSL是一些警告,并不影响程序执行。你注册SimNow账号后修改过密码嘛?

是的,确实不影响,是我账号的问题,我借了别人的账号弄的。我自己重新注册过SimNow后就解决了。

© 2015-2022 微信 18391752892
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】