Python的交易和回溯测试框架

tradingkit的Python项目详细描述


交易套件

此文件显示TradingKit的基本用法,有关更多文档,请参阅Wiki

PyPIcoverageConventional Commits

要求

  • python 3.7+
  • 皮普

安装

建议通过PyPi安装TradingKit si。在

PyPi

安装
pip3 install tradingkit

Source

安装 ^{pr2}$

制定策略

为了创建新的策略,您需要4个步骤

创建单独的项目

创建新的python3.7+项目,在这一步中不需要再做了。在

创建策略类

创建一个从tradingkit.strategy.strategy.Strategy扩展的类

# File my_project/my_strategy.pyimportloggingimportccxt.Exchangefromtradingkit.pubsub.event.tradeimportTradefromtradingkit.pubsub.event.bookimportBookfromtradingkit.pubsub.event.orderimportOrderfromtradingkit.pubsub.core.eventimportEventfromtradingkit.strategy.strategyimportStrategyclassMyStrategy(Strategy):def__init__(self,exchange:Exchange,config):super().__init__(exchange,config)# do whatever initializations you needdefon_event(self,event:Event):ifisinstance(event,Trade):logging.info("Order event happened!")# do whatever you need with the exchangeself.exchange.create_order(...)ifisinstance(event,Book):logging.info("Book event happened!")# do whatever you need with the exchangeself.exchange.create_order(...)ifisinstance(event,Order):logging.info("Order event happened!")# do whatever you need with the exchangeself.exchange.create_order(...)

创建主配置文件

创建system/config.json文件

{"strategy":{"class":"my_strategy.MyStrategy","arguments":["@bridge","@config"]},"config":{"symbol":"%env(SYMBOL)%"}}

创建.env文件以添加一些环境变量

# File .envSYMBOL=BTC/EUR

配置开发环境

创建system/config.dev.json文件

{"exchange":"@testex","feeder":"@backtest_feeder"}

配置实时环境

创建system/config.live.json文件

{"exchange":"@kraken","feeder":"@kraken_feeder"}

创建.env.live.local文件以添加bitmex凭据凭据

# File .env.live.localKRAKEN_KEY=xxxxxxxxxxxxxxxxxxx
KRAKEN_SECRET=yyyyyyyyyyyyyyyyyyyy

运行dev(backtest)

tk run -e dev -y 2020 -m 1 --plot

实时运行

tk run -e live --plot

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javascript问题:通过URL用网站数据填充Textview   java TabLayout Android,如何用几个标签填充整个屏幕宽度,并用大量标签滚动?   Eclipse Java运行的文件不再存在于我的工作区中   安装两个Java版本时,使用Java的windows链接不起作用   java将多个图形添加到单个JPanel   java Kafka ConsumerFactory,带有两个Desiarizer   使用反射更改java类超类   当一致性测试失败时,java有没有办法让堆栈跟踪显示在控制台中   java映射到基元类型的HashMap的快速替代方案是什么?   java关闭一个jframe所有剩余的打开jframe都将关闭。   java为什么不推荐“使用getString()获取设备标识符”?   java值比较和值赋值之间有什么性能差异吗?   Java实体数组到JavaScript数组   java使用流将一个列表转换为另一个列表   在JTree中保存对象,但更改显示的名称(java swing)?   java“Hello world”Android应用程序,文件尽可能少,没有IDE,只有文本编辑器   java在方法之间传递值   java如何为项目数组创建ParseQuery?