量化合約開發系統程式碼流程(Python)*合約量化系統開發定製技術流程

Tg_StPv888發表於2023-02-02

  量化投資都是一門高大上的技術,充斥著模型程式碼和演算法假設,門檻非常高。其實,生活中的量化思想無處不在。digital開發18o_2857_8624D☆v collection


  量化交易系統有很多種,包括跨平臺搬磚、趨勢交易、對沖交易等。


  1.Cross-platform brick moving means that when the price difference between different target platforms reaches a certain amount,it is sold on the platform with high price and bought on the platform with low price.


  2.Trend trading will be more complex.It sends out signals of selling and buying according to the indicators of the trend.


  3.Hedging refers to the simultaneous execution of two transactions related to the market,with opposite buying and selling directions,equal quantities,and balanced profits and losses to achieve the effect of hedging risks.


  傳送下單指令.注意:指令將在下次呼叫:py:meth:wait_update時發出


  “”"


  if self._loop.is_running():#事件迴圈正在執行


  #把下單請求函式打包成task排入事件迴圈


  self.create_task(self._insert_order_async(...))


  #下單後獲取委託單order


  order=self.get_order(order_id,account=account)


  #更新委託單欄位


  order.update({"order_id":order_id,"exchange_id":exchange_id,...})


  return order#返回委託單


  else:#事件迴圈還未執行


  #打包一個指令包


  pack=self._get_insert_order_pack(...)


  #傳送指令包


  self._send_pack(pack)


  ##下單後獲取委託單order


  order=self.get_order(order_id,account=account)


  #更新委託單欄位


  order.update({"order_id":order_id,"exchange_id":exchange_id,...})


  return order#返回委託單


  #傳送指令包函式


  def _send_pack(self,pack):


  #立即向佇列傳送指令包


  if not self._is_slave:


  self._send_chan.send_nowait(pack)


  else:


  self._master._slave_send_pack(pack)


  #下單請求函式


  async def _insert_order_async(…):


  #打包一個指令包


  pack=self._get_insert_order_pack(...)


  #傳送指令包


  self._send_pack(pack)


  下單的主要流程為:用協程任務打包一個指令包再發出去。create_task是無阻塞的,建立完task立即返回,get_order獲取委託單也是無阻塞的,因此insert_order執行後會立即返回一個Order物件引用——order,不會等待委託單成交與否。


  create_task把下單函式打包成task排入事件迴圈,需要在呼叫wait_update啟動事件迴圈時才能執行該task並從佇列取出指令包併傳送向服務端。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70016646/viewspace-2933724/,如需轉載,請註明出處,否則將追究法律責任。

相關文章