试试看,谢谢了
嗯,导入以后,怎么使用,有没有参考的链接学习一下?
需要改写代码吧?
如题,因为有长期订购的其他数据来源,所以没必要使用米筐数据
订购了CTA课程,学习中发现回测等,都是基于米筐数据,那么,从其他地方来的数据,应该怎样使用,也即如果不加载米筐数据服务的话,怎么样实盘策略和回测呢?
有没有相关教程?
对的,谢谢!
看第五行,应该是函数的表达方式吧
没人能点拨一二吗?
在class MainEngine:中有如下函数,但是无论是当前文件还是import里都找不到engine_class()
pycharm显示也是画了红线的,但为什么实际上可行呢?这个函数在哪里呢?
如果说是指向了传过来的实例对象中的函数,那么好像也要表示成engine_class . engine_class()这类格式吧?
水平菜,琢磨了多日,也查不出所以然,恳请大神教导,谢谢
> def add_engine(self, engin_class: Any) -> "BaseEngine":
> """
> Add function engine.
> """
> engine = engine_class(self, self.event_engine)
> self.engines[engine.engine_name] = engine
> return engine
还是不要改原有的文件,以扩展的思路,做新的文件和上层应用,来完成功能,应该比这种思路要好吧?
一种是内置的改,一直是外挂的方式,我选择外挂解决
这种做法,容易搞乱,同时,不便于维护
个人意见,仅供参考
可能是api版本不对,期货公司说,需要V6.5.1
用Python的交易员 wrote:
这么尝试下:
- 移除全部应用模块
- 移除全部接口,只保留CTP接口
- 订阅IF2105的行情,交易所选CFFEX,接口选CTP
- 如果还是不行应该就是期货公司问题了
按您说的做了,还是不行。
请教一下,为什么说就一定是期货公司的问题呢?
没有办法了吗?哭死
换了一台从来没有装过VNPY,python等一切编程有关软件的电脑,采用一键安装的方式,安装了vnstation,结果还是一样的,正常登录,但是就是没有行情,也不报错。看来不是个例啊
(base) D:\vnpy-master>python run.py
2021-04-28 22:56:24,023 INFO: 交易服务器连接成功
2021-04-28 22:56:24,414 INFO: 交易服务器授权验证成功
2021-04-28 22:56:24,445 INFO: 交易服务器登录成功
2021-04-28 22:56:24,571 INFO: 结算信息确认成功
2021-04-28 22:56:28,698 INFO: 合约信息查询成功
没有信息了,实际上输入了ni2105 没有反应,也没有报错
run.py 打开,print放到最前面去了,还是没有任何反应,cmd没有打印出东西来,write_log日志也没有输出任何东西
写在函数最后了,依然没有任何反应
另外,这个print的东西是应该打印显示在哪里呢?
感觉上这个def 没有被触发,否则,9楼那些if之后的write_log,不应该一个也不出现在日志里吧
。。。。。。
self.write_log(tick.bid_price_2)
#f2.close()
print("data,", data)
self.gateway.on_tick(tick)
页面和昨天的截图完全相同,就不另外截屏了,求帮助
试了一下,日志输出没有任何动静
改的码是,加了self.write_log(322)#输出当前行,主要看程序有没有走到这里,另外在数据方面最后加了,self.write_log(tick.bid_price_2)
但是没有,任何输出
def onRtnDepthMarketData(self, data: dict):
"""
Callback of tick data update.
"""
# Filter data update with no timestamp
if not data["UpdateTime"]:
self.write_log(322)
return
symbol = data["InstrumentID"]
exchange = symbol_exchange_map.get(symbol, "")
if not exchange:
self.write_log(328)
return
timestamp = f"{self.current_date} {data['UpdateTime']}.{int(data['UpdateMillisec']/100)}"
dt = datetime.strptime(timestamp, "%Y%m%d %H:%M:%S.%f")
dt = CHINA_TZ.localize(dt)
tick = TickData(
symbol=symbol,
exchange=exchange,
datetime=dt,
name=symbol_name_map[symbol],
volume=data["Volume"],
open_interest=data["OpenInterest"],
last_price=adjust_price(data["LastPrice"]),
limit_up=data["UpperLimitPrice"],
limit_down=data["LowerLimitPrice"],
open_price=adjust_price(data["OpenPrice"]),
high_price=adjust_price(data["HighestPrice"]),
low_price=adjust_price(data["LowestPrice"]),
pre_close=adjust_price(data["PreClosePrice"]),
bid_price_1=adjust_price(data["BidPrice1"]),
ask_price_1=adjust_price(data["AskPrice1"]),
bid_volume_1=data["BidVolume1"],
ask_volume_1=data["AskVolume1"],
gateway_name=self.gateway_name
)
if data["BidVolume2"] or data["AskVolume2"]:
self.write_log(357)
tick.bid_price_2 = adjust_price(data["BidPrice2"])
tick.bid_price_3 = adjust_price(data["BidPrice3"])
tick.bid_price_4 = adjust_price(data["BidPrice4"])
tick.bid_price_5 = adjust_price(data["BidPrice5"])
tick.ask_price_2 = adjust_price(data["AskPrice2"])
tick.ask_price_3 = adjust_price(data["AskPrice3"])
tick.ask_price_4 = adjust_price(data["AskPrice4"])
tick.ask_price_5 = adjust_price(data["AskPrice5"])
tick.bid_volume_2 = data["BidVolume2"]
tick.bid_volume_3 = data["BidVolume3"]
tick.bid_volume_4 = data["BidVolume4"]
tick.bid_volume_5 = data["BidVolume5"]
tick.ask_volume_2 = data["AskVolume2"]
tick.ask_volume_3 = data["AskVolume3"]
tick.ask_volume_4 = data["AskVolume4"]
tick.ask_volume_5 = data["AskVolume5"]
self.write_log(tick.bid_price_2)
self.gateway.on_tick(tick)
知道了,往日志里写东西,有范例吗?框架内容还不是很熟悉,比较菜鸟。现在简单的在ctp_gateway里的onRtnDepthMarketData下生成一个文件,然后每个if 后面都往文件里写东西,等夜盘来看一下了
是实盘,谢谢
为什么,订阅行情没有反应呢?窗口里没有内容