本来阅读代码这件事我是不准备放在Steem上的,担心有灌水嫌疑。但是正如有人看电影可以发表影评,读书可以发表感想,阅读文献可以分享研究报告,那么作为程序员,阅读代码当然可以分享代码心得。另外,对于想在BitMEX上进行数字货币交易的同道也有一定的借鉴作用,所以,我就把研究过程记录下来。
函数入口点:sample-market-maker/market_maker/market_maker.py run()
run()函数解读
首先,给大家推荐一个Python调试神器:PuDB,详细信息可参考:http://python.jobbole.com/82638/
logger.info('BitMEX Market Maker Version: %s\n' % constants.VERSION)
打印版本信息,其中constants.VERSION定义在utils/constants.py中。
om = OrderManager()
创建一个订单管理对象
om.init()
对象初始化
om.run_loop()
策略循环
OrderManager()的初始化过程
self.exchange = ExchangeInterface(settings.DRY_RUN)
创建exchange对象,settings.DRY_RUN=False
atexit.register(self.exit)
注册退出函数,以便出现异常情况时可以取消订单
signal.signal(signal.SIGTERM, self.exit)
进程终止时,调用退出函数,可以搜索signal模块的使用。这个倒是挺有意思,即使被kill,还有机会做一些处理工作。
logger.info("Using symbol %s." % self.exchange.symbol)
self.exchange.symbol的值为XBTUSD,是不是表示BTC和USD交易对?