api = ex.api ws = ex.websocket om = ex.order_manager ogm = ex.order_group_manager # ポジション自動修復。 BF現物は非対応(手数料がポジションから引かれる為) # ogm.set_position_sync_config(SYMBOL, MIN_SIZE, MIN_SIZE * 100) trade = ex.create_trade(SYMBOL) orderbook = ex.create_orderbook(SYMBOL) og = ex.create_order_group(SYMBOL, 'test1') og.set_order_log(log) # 自前で注文のログを表示する場合、ここは不要 # og.add_event_callback(lambda e: print(e.__dict__)) # 注文イベント取得時のコールバック関数 # 外部操作・デバッグ用のUDPコマンドラインインターフェース cmd = fw.Cmd(globals()) cmd_server = fw.CmdServer(50000) cmd_server.register_command(cmd.eval) cmd_server.register_command(cmd.exec) cmd_server.register_command(cmd.print, log=False) # 約定データの遅延時間測定 def trade_cb(ts, price, size): global delay delay = time.time() - ts delay = 0 trade.add_callback(trade_cb)
botfw.setup_logger(logging.INFO) # 指定したport番号でlocalhostからのみアクセス可能なUDPのポートを開きます cmd_server = botfw.CmdServer(55555) # '$ ss -upl' でポートが確かに開いてるか確認できます # 外部から呼び出したい関数をCmdに追加 cmd_server.register_command(sum_str) # クラスメソッドを登録する場合 test = Test() cmd_server.register_command(test.add_data) # ログを表示したくない場合は log=False cmd_server.register_command(test.show_data) # 返信が必要ない場合は response=False # 定義済みコマンド cmd = botfw.Cmd(globals()) cmd_server.register_command(cmd.eval) # あらゆる処理を実行できるコマンド。主にデバッグ用 cmd_server.register_command(cmd.exec) # 同上。返り値がNoneになる代わりに代入や複数文の実行が可能 cmd_server.register_command(cmd.print, log=False) # eval同様。返り値をpprintでフォーマットする input() # 終了しないように入力待ちで待機 # 動作テストにはnetcat(環境よってはnc)コマンドが便利 # $ netcat -u localhost 55555 # help # {略} # sum_str 1 2 3 4 # 10 # add_data a b c # None # add_data 1 2 3