创建ExchangeInterface对象
self.dry_run = dry_run
指示dry_run的值,缺省为False
if len(sys.argv) > 1
sys.argv的第一个参数为程序本身:“./marketmaker”,第2个参数是可选参数,为[symbol],这里判断是否存在第2个参数。此处没有使用第2个参数,所以取缺省值。
self.symbol = settings.SYMBOL
settings.SYMBOL='XBTUSD'
self.bitmex = bitmex.BitMEX(...)
创建BitMEX对象,其传入的参数较多,罗列如下:
base_url='https://testnet.bitmex.com/api/v1/'
symbol='XBTUSD'
apiKey=xxxx
apiSecret=xxxx
orderIDPrefix='mm_bitmex_'
postOnly=False
创建BitMEX对象
这里面的大部分参数设置前面都有描述,此处不重复的,把几个需要注意的罗列一下即可。
- apiKey:如果此参数为None,则会抛出异常
- orderIDPrefix:不知道这个参数是干嘛的,默认值为'mm_bitmex_',但是如果字符串长度超出13,也会抛出异常
- self.retries = 0 应该是重试次数吧
- self.session = requests.Session()
requests是一个非常有名的http客户端的python库,这里建立一个session,并初始化一些headers - self.ws = BitMEXWebsocket()
创建ws连接对象,ws是WebSocket的缩写,它是由于订阅交易事件的机制,避免轮询的负担。稍后会详述。 - self.ws.connect(base_url, symbol, shouldAuth=shouldWSAuth)
建立ws连接,shouldWSAuth默认为True