Esempio n. 1
0

class Test:
    def __init__(self):
        self.data = []

    def add_data(self, *args):
        '''add args to self.data'''
        self.data.append(args)

    def show_data(self):
        '''return self.data'''
        return self.data


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)  # あらゆる処理を実行できるコマンド。主にデバッグ用
Esempio n. 2
0
exchange = fw.Bitflyer
SYMBOL = 'FX_BTC_JPY'
MIN_SIZE = 0.01

# XBTUSD @bitmex
# exchange = fw.Bitmex
# SYMBOL = 'BTC/USD'
# MIN_SIZE = 1

# BTCUSDT @binance(future)
# exchange = fw.BinanceFuture
# SYMBOL = 'BTC/USDT'
# MIN_SIZE = 0.001

# ==================== ここから取引所共通のコード ====================
fw.setup_logger(logging.INFO)
log = logging.getLogger()

ex = exchange()
ex.create_basics(ccxt_config)
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')
Esempio n. 3
0
# クライアント側のon_openで購読したいチャンネルの情報を送信
# ws.send('{"exchange": "Bitflyer", "symbol": "FX_BTC_JPY"}')
# 複数チャンネルには対応していないのでチャンネルごとにwebsocketを生成してください。

import logging
import json
import sys

from websocket_server import WebsocketServer

import botfw as fw

server_port, debug_port = sys.argv[1:]

log = logging.getLogger()
fw.setup_logger()

# デバッグ用
cmd = fw.Cmd(globals())
cmd_server = fw.CmdServer(int(debug_port))
cmd_server.register_command(cmd.eval)
cmd_server.register_command(cmd.exec)
cmd_server.register_command(cmd.print, log=False)

clients = {}  # {client: ((exchange, symbol), callback)}
trades = {}  # {(exchange, symbol)}


def on_new_client(client, server):
    addr = client['address']
    log.info(f'{addr}: OPEN')