VnPy 似乎是 GitHub 上最受欢迎的算法交易项目。突然全是中文了,不过他们说要在v3版本中引入英文本地化。
github 上还有许多其他高级项目,但活跃的项目仅与 Crypto 有关。
我更愿意使用 IB 报价和历史数据进行实时交易和回测。
我应该使用 vnpy_algotrading 还是 vnpy_ctastrategy 来实现一些具有回测和优化可能性的交易机器人?第二个似乎提供了回测和优化,但它似乎使用了一些中文数据提供者。
是否有可能做我想做的事?我需要任何额外的订阅(RData 等)吗?许多这些中文网站甚至在欧洲都无法加载。
我设法在本地运行 VnPy,包括通过 TWS APi 下订单,但我想知道 vnpy_algotrading 模块和 vnpy_ctastrategy 之间有什么区别?
这是我目前的 run.py 配置:
def main():
from PySide6.QtCore import QLocale
from vnpy_algotrading import AlgoTradingApp
from vnpy.event import EventEngine
from vnpy.trader.constant import Exchange
from vnpy.trader.engine import MainEngine
from vnpy.trader.object import SubscribeRequest
from vnpy.trader.ui import MainWindow, create_qapp
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ib import IbGateway
def main():
QLocale.setDefault(QLocale(QLocale.English, QLocale.UnitedStates))
# SU-USD-STK -> OK
# ES-202306-USD-FUT @ CME -> OK
# VXM-202306-USD-FUT @ CFE -> OK
# CTA strategy: SU-USD-STK.SMART / nyse?
qapp = create_qapp()
event_engine = EventEngine()
main_engine = MainEngine(event_engine)
ibGateway = main_engine.add_gateway(IbGateway)
ibGateway.subscribe(SubscribeRequest("SU-USD-STK", Exchange.NYSE))
ibGateway.subscribe(SubscribeRequest("VXM-202306-USD-FUT", Exchange.CFE))
main_engine.add_app(AlgoTradingApp)
main_engine.add_app(CtaStrategyApp)
# main_engine.add_app(CtaBacktesterApp)
main_window = MainWindow(main_engine, event_engine)
main_window.showMaximized()
qapp.exec()
if __name__ == "__main__":
main()