예제 #1
0
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)
예제 #2
0
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