币安代币合约代码 币安合约网格代码

 网络   2022-10-04 22:30   51
self.platform config.platforms[0][ platform ] self.account config.platforms[0][ account ] self.access_key config.platforms[0][ access_key ] self.secret_key config.platforms[0][ secret_key ] self.passphrase config.platforms[0][ passphrase ] self.symbols config.platforms[0][ symbols ] # 引入煽动配置参数 params { strategy : self.strategy, platform : self.platform, symbols : self.symbols, account : self.account, access_key : self.access_key, secret_key : self.secret_key, passphrase : self.passphrase, enable_kline_update : False, enable_orderbook_update : True, enable_trade_update : False, # 逐笔成交 enable_ticker_update : False, enable_order_update : True, # 定单更新回调 enable_fill_update : True, # 定单成交回调 enable_position_update : False, # 合约持仓回调 enable_asset_update : False, # 物业更新回调 direct_kline_update : False, # false 为没有定阅或自建rabbitMQ direct_orderbook_update : True, # true 为直连买卖所websocket direct_trade_update : False, direct_ticker_update : False # 加载配置 self.grid self.create_gateway(**params) # 挂号按时器 self.enable_timer() self._count 0 # 引入政策须要参数 self.bids None self.asks None self.order_id None self.price None self.sell_order_id None self.buy_order_id None self.amount 0.01 self.hold_ [] 引入self.step 使代码分阶段更轻易领会 网格买卖历程 1、step1:从websocket拿到定单薄 以bid1下单 直到全面成交,全面成交至step 2: 2、step2:以step1中纪录的代价以及数目 下面挂卖单 上面挂买单,挂单乐成至step 3 3、step3:监控两个定单状态 从websocket中拿了局 下面成交 告竣套利 上面成交阐明代价下移 下面成交 纪录代价以及数目 算计套利了局 发钉钉 空仓至step1 没有是空仓然后回到step1中 上面成交 纪录代价以及数目 发钉钉 然后以这个代价回到step2中 self.step 1 self.init_price None self.init_order_status None self.init_order_id None # 每3秒心跳打印 async def on_time(self): self._count 3 logger.info( ##########__heart beat__########## , self._count, caller self) # 主逻辑 async_method_locker( ASYNC_GRID.main.locker ,False) async def main(self): await asyncio.sleep(1) if self.step 1: price self.bids[0][0] if self.init_order_id: if float(self.init_price) float(price): await self.revoke_order(self.grid, self.symbols[0], str(self.init_order_id)) self.init_price None self.order_id None return return s, e await self.create_order(self.grid, self.symbols[0], ORDER_ACTION_BUY, price, self.amount) if e None: self.init_price price self.init_order_id s logger.info( init_order_id ,self.init_order_id,caller self) else: return elif self.step 2: if self.price: self.buy_order_id, e await self.create_order(self.grid, self.symbols[0], ORDER_ACTION_BUY, float(float(self.price) - 5), self.amount) self.sell_order_id, e await self.create_order(self.grid, self.symbols[0], ORDER_ACTION_SELL, float(float(self.price) 5), self.amount) if self.buy_order_id and self.sell_order_id: self.step 3 elif self.step 3: # 定单监控历程 网格买卖没有须要过快 await asyncio.sleep(2) async def on_orderbook_update_callback(self, orderbook: Orderbook): # logger.info( order_book: ,orderbook,caller self) self.asks orderbook.asks[:10] self.bids orderbook.bids[:10] # print(self.asks) # print(self.bids) await self.main() async_method_locker( ASYNC_GRID.on_order_update_callback.locker , False) async def on_order_update_callback(self, order: Order): if order.status ORDER_STATUS_SUBMITTED: print( 定单已提交 等待成交 ) elif order.status ORDER_STATUS_FILLED: print( 定单已全面成交 ) logger.info( order_id: ,order.order_no,caller self) logger.info( order.order_no: ,order.order_no,caller self) if int(order.order_no) int(self.init_order_id): print( 初始单全面成交 ) self.hold_.append(1) print( self.hold_: ,self.hold_) self.price order.price self.step 2 self.init_price None self.order_id None elif int(order.order_no) int(self.buy_order_id): print( 代价下移 买入1手 ) # 节略一切定单 await self.revoke_order(self.grid, self.symbols[0]) self.price order.price self.hold_.append(1) self.step 2
本文地址:http://hrcz.ziyouea.com/p/17591.html
版权声明:本站文章来自网络,如有违规侵权请联系我们下架。