Beispiel #1
0
 def init_default():
     config = load_test_config()
     exchange_manager = ExchangeManager(config, ccxt.binance, is_simulated=True)
     exchange_inst = exchange_manager.get_exchange()
     trader_inst = TraderSimulator(config, exchange_inst, 1)
     trades_manager_inst = trader_inst.get_trades_manager()
     return config, exchange_inst, trader_inst, trades_manager_inst
Beispiel #2
0
async def _get_tools():
    config = load_test_config()
    symbol = "BTC/USDT"
    exchange_manager = ExchangeManager(config, ccxt.binance, is_simulated=True)
    await exchange_manager.initialize()
    exchange_inst = exchange_manager.get_exchange()
    trader_inst = TraderSimulator(config, exchange_inst, 0.3)
    await trader_inst.portfolio.initialize()
    trader_inst.stop_order_manager()
    trader_inst.portfolio.portfolio["SUB"] = {
        Portfolio.TOTAL: 0.000000000000000000005,
        Portfolio.AVAILABLE: 0.000000000000000000005
    }
    trader_inst.portfolio.portfolio["BNB"] = {
        Portfolio.TOTAL: 0.000000000000000000005,
        Portfolio.AVAILABLE: 0.000000000000000000005
    }
    trader_inst.portfolio.portfolio["USDT"] = {
        Portfolio.TOTAL: 2000,
        Portfolio.AVAILABLE: 2000
    }

    trading_mode = MarketMakerTradingMode(config, exchange_inst)

    return config, exchange_inst, trader_inst, symbol, trading_mode
Beispiel #3
0
    async def create_exchange_traders(self, ignore_config=False):
        self.async_loop = asyncio.get_running_loop()
        available_exchanges = ccxt.exchanges
        for exchange_class_string in self.config[CONFIG_EXCHANGES]:
            if exchange_class_string in available_exchanges:
                exchange_type = getattr(ccxt, exchange_class_string)

                # Backtesting Exchange
                if self.backtesting_enabled:
                    exchange_manager = ExchangeManager(self.config,
                                                       exchange_type,
                                                       is_simulated=True)
                else:
                    # Real Exchange
                    exchange_manager = ExchangeManager(
                        self.config,
                        exchange_type,
                        is_simulated=False,
                        ignore_config=ignore_config)
                await exchange_manager.initialize()

                exchange_inst = exchange_manager.get_exchange()
                self.exchanges_list[exchange_inst.get_name()] = exchange_inst
                self.global_updaters_by_exchange[exchange_inst.get_name(
                )] = GlobalPriceUpdater(exchange_inst)

                # create trader instance for this exchange
                exchange_trader = Trader(self.config, exchange_inst)
                await exchange_trader.initialize()
                self.exchange_traders[
                    exchange_inst.get_name()] = exchange_trader

                # create trader simulator instance for this exchange
                exchange_trader_simulator = TraderSimulator(
                    self.config, exchange_inst)
                await exchange_trader_simulator.initialize()
                self.exchange_trader_simulators[
                    exchange_inst.get_name()] = exchange_trader_simulator

                if not (exchange_trader_simulator.enabled(self.config)
                        or exchange_trader.enabled(self.config)):
                    self.logger.error(
                        f"No trader simulator nor real trader activated on {exchange_inst.get_name()}"
                    )

                # create trading mode
                try:
                    self.trading_mode = get_activated_trading_mode(
                        self.config)(self.config, exchange_inst)
                    self.exchange_trading_modes[
                        exchange_inst.get_name()] = self.trading_mode
                    self.logger.debug(
                        f"Using {self.trading_mode.get_name()} trading mode")
                except RuntimeError as e:
                    self.logger.error(e.args[0])
                    raise e
            else:
                self.logger.error(
                    f"{exchange_class_string} exchange not found")
 def init_default():
     config = load_test_config()
     exchange_manager = ExchangeManager(config, ccxt.binance, is_simulated=True)
     exchange_inst = exchange_manager.get_exchange()
     trader_inst = TraderSimulator(config, exchange_inst, 1)
     portfolio_inst = Portfolio(config, trader_inst)
     trader_inst.stop_order_manager()
     sub_portfolio_inst = SubPortfolio(config, trader_inst, portfolio_inst, TestSubPortfolio.DEFAULT_PERCENT)
     return config, portfolio_inst, exchange_inst, trader_inst, sub_portfolio_inst
 async def init_default():
     config = load_test_config()
     exchange_manager = ExchangeManager(config, ccxt.binance, is_simulated=True)
     await exchange_manager.initialize()
     exchange_inst = exchange_manager.get_exchange()
     trader_inst = TraderSimulator(config, exchange_inst, 1)
     await trader_inst.portfolio.initialize()
     trades_manager_inst = trader_inst.get_trades_manager()
     await trades_manager_inst.initialize()
     return config, exchange_inst, trader_inst, trades_manager_inst
async def _get_tools():
    symbol = "BTC/USDT"
    exchange_traders = {}
    exchange_traders2 = {}
    config = load_test_config()
    AdvancedManager.create_class_list(config)
    exchange_manager = ExchangeManager(config, ccxt.binance, is_simulated=True)
    await exchange_manager.initialize()
    exchange_inst = exchange_manager.get_exchange()
    trader_inst = TraderSimulator(config, exchange_inst, 0.3)
    await trader_inst.initialize()
    trader_inst.stop_order_manager()
    trader_inst2 = TraderSimulator(config, exchange_inst, 0.3)
    await trader_inst2.initialize()
    trader_inst2.stop_order_manager()
    crypto_currency_evaluator = CryptocurrencyEvaluator(config, "Bitcoin", [])
    symbol_evaluator = SymbolEvaluator(config, symbol,
                                       crypto_currency_evaluator)
    exchange_traders[exchange_inst.get_name()] = trader_inst
    exchange_traders2[exchange_inst.get_name()] = trader_inst2
    symbol_evaluator.set_trader_simulators(exchange_traders)
    symbol_evaluator.set_traders(exchange_traders2)
    symbol_evaluator.strategies_eval_lists[exchange_inst.get_name()] = \
        EvaluatorCreator.create_strategies_eval_list(config)

    trading_mode = DailyTradingMode(config, exchange_inst)
    trading_mode.add_symbol_evaluator(symbol_evaluator)
    final_evaluator = trading_mode.get_only_decider_key(symbol)

    trader_inst.portfolio.portfolio["USDT"] = {
        Portfolio.TOTAL: 2000,
        Portfolio.AVAILABLE: 2000
    }
    return final_evaluator, trader_inst
async def _get_tools(event_loop):
    symbol = "BTC/USDT"
    exchange_traders = {}
    exchange_traders2 = {}
    config = load_test_config()
    time_frame = TimeFrames.ONE_HOUR
    AdvancedManager.create_class_list(config)
    exchange_manager = ExchangeManager(config, ccxt.binance, is_simulated=True)
    await exchange_manager.initialize()
    exchange_inst = exchange_manager.get_exchange()
    global_price_updater = GlobalPriceUpdater(exchange_inst)
    trader_inst = TraderSimulator(config, exchange_inst, 0.3)
    trader_inst.stop_order_manager()
    trader_inst2 = TraderSimulator(config, exchange_inst, 0.3)
    trader_inst2.stop_order_manager()
    crypto_currency_evaluator = CryptocurrencyEvaluator(config, "Bitcoin", [])
    symbol_evaluator = SymbolEvaluator(config, symbol, crypto_currency_evaluator)
    exchange_traders[exchange_inst.get_name()] = trader_inst
    exchange_traders2[exchange_inst.get_name()] = trader_inst2
    symbol_evaluator.set_trader_simulators(exchange_traders)
    symbol_evaluator.set_traders(exchange_traders2)
    symbol_evaluator.strategies_eval_lists[exchange_inst.get_name()] = \
        EvaluatorCreator.create_strategies_eval_list(config)
    trading_mode_inst = get_activated_trading_mode(config)(config, exchange_inst)
    evaluator_task_manager = EvaluatorTaskManager(config, time_frame, global_price_updater,
                                                  symbol_evaluator, exchange_inst, trading_mode_inst, [],
                                                  event_loop)
    trader_inst.portfolio.portfolio["USDT"] = {
        Portfolio.TOTAL: 2000,
        Portfolio.AVAILABLE: 2000
    }
    return evaluator_task_manager, time_frame, global_price_updater, symbol_evaluator, symbol
Beispiel #8
0
def _get_tools():
    symbol = "BTC/USDT"
    exchange_traders = {}
    exchange_traders2 = {}
    config = load_test_config()
    time_frame = TimeFrames.ONE_HOUR
    AdvancedManager.create_class_list(config)
    symbol_time_frame_updater_thread = SymbolTimeFramesDataUpdaterThread()
    exchange_manager = ExchangeManager(config, ccxt.binance, is_simulated=True)
    exchange_inst = exchange_manager.get_exchange()
    trader_inst = TraderSimulator(config, exchange_inst, 0.3)
    trader_inst.stop_order_manager()
    trader_inst2 = TraderSimulator(config, exchange_inst, 0.3)
    trader_inst2.stop_order_manager()
    crypto_currency_evaluator = CryptocurrencyEvaluator(config, "Bitcoin", [])
    symbol_evaluator = SymbolEvaluator(config, symbol,
                                       crypto_currency_evaluator)
    exchange_traders[exchange_inst.get_name()] = trader_inst
    exchange_traders2[exchange_inst.get_name()] = trader_inst2
    symbol_evaluator.set_trader_simulators(exchange_traders)
    symbol_evaluator.set_traders(exchange_traders2)
    symbol_evaluator.strategies_eval_lists[exchange_inst.get_name(
    )] = EvaluatorCreator.create_strategies_eval_list(config)
    evaluator_thread_manager = EvaluatorThreadsManager(
        config, time_frame, symbol_time_frame_updater_thread, symbol_evaluator,
        exchange_inst, [])
    trader_inst.portfolio.portfolio["USDT"] = {
        Portfolio.TOTAL: 2000,
        Portfolio.AVAILABLE: 2000
    }
    symbol_evaluator.add_evaluator_thread_manager(exchange_inst, time_frame,
                                                  evaluator_thread_manager)
    return symbol_evaluator, exchange_inst, time_frame, evaluator_thread_manager
async def _get_tools(event_loop):
    config = load_test_config()
    symbol = "BTC/USDT"
    exchange_traders = {}
    exchange_traders2 = {}
    time_frame = TimeFrames.FIVE_MINUTES
    AdvancedManager.create_class_list(config)
    exchange_manager = ExchangeManager(config, ccxt.binance, is_simulated=True)
    await exchange_manager.initialize()
    exchange_inst = exchange_manager.get_exchange()
    symbol_time_frame_updater_thread = GlobalPriceUpdater(exchange_inst)
    trader_inst = TraderSimulator(config, exchange_inst, 0.3)
    await trader_inst.initialize()
    trader_inst.stop_order_manager()
    trader_inst2 = TraderSimulator(config, exchange_inst, 0.3)
    await trader_inst2.initialize()
    trader_inst2.stop_order_manager()
    trader_inst2.set_enabled(False)
    trader_inst.portfolio.portfolio["SUB"] = {
        Portfolio.TOTAL: 0.000000000000000000005,
        Portfolio.AVAILABLE: 0.000000000000000000005
    }
    trader_inst.portfolio.portfolio["BNB"] = {
        Portfolio.TOTAL: 0.000000000000000000005,
        Portfolio.AVAILABLE: 0.000000000000000000005
    }
    trader_inst.portfolio.portfolio["USDT"] = {
        Portfolio.TOTAL: 2000,
        Portfolio.AVAILABLE: 2000
    }
    crypto_currency_evaluator = CryptocurrencyEvaluator(config, "Bitcoin", [])
    symbol_evaluator = SymbolEvaluator(config, symbol,
                                       crypto_currency_evaluator)

    exchange_traders[exchange_inst.get_name()] = trader_inst
    exchange_traders2[exchange_inst.get_name()] = trader_inst2
    symbol_evaluator.set_trader_simulators(exchange_traders)
    symbol_evaluator.set_traders(exchange_traders2)
    trading_mode_inst = get_activated_trading_mode(config)(config,
                                                           exchange_inst)
    _ = EvaluatorTaskManager(config, time_frame,
                             symbol_time_frame_updater_thread,
                             symbol_evaluator, exchange_inst,
                             trading_mode_inst, [], event_loop)
    trading_mode = HighFrequencyMode(config, exchange_inst)
    trading_mode.add_symbol_evaluator(symbol_evaluator)
    decider = trading_mode.get_only_decider_key(symbol)
    await decider.initialize()

    return config, exchange_inst, trader_inst, symbol, trading_mode
 async def init_default():
     config = load_test_config()
     config[CONFIG_TRADER][CONFIG_ENABLED_OPTION] = True
     exchange_manager = ExchangeManager(config,
                                        ccxt.binance,
                                        is_simulated=True)
     await exchange_manager.initialize()
     exchange_inst = exchange_manager.get_exchange()
     trader_real_inst = Trader(config, exchange_inst, 1)
     trader_simulator_inst = TraderSimulator(config, exchange_inst, 1)
     order_manager_inst = trader_real_inst.get_order_manager()
     order_manager_simulator_inst = trader_simulator_inst.get_order_manager(
     )
     return config, exchange_inst, trader_real_inst, order_manager_inst, trader_simulator_inst, \
         order_manager_simulator_inst
Beispiel #11
0
    def create_exchange_traders(self):
        self.backtesting_enabled = Backtesting.enabled(self.config)

        available_exchanges = ccxt.exchanges
        for exchange_class_string in self.config[CONFIG_EXCHANGES]:
            if exchange_class_string in available_exchanges:
                exchange_type = getattr(ccxt, exchange_class_string)

                # Backtesting Exchange
                if self.backtesting_enabled:
                    exchange_manager = ExchangeManager(self.config,
                                                       exchange_type,
                                                       is_simulated=True)
                else:
                    # True Exchange
                    exchange_manager = ExchangeManager(self.config,
                                                       exchange_type,
                                                       is_simulated=False)

                exchange_inst = exchange_manager.get_exchange()
                self.exchanges_list[exchange_inst.get_name()] = exchange_inst

                # create trader instance for this exchange
                exchange_trader = Trader(self.config, exchange_inst)
                self.exchange_traders[
                    exchange_inst.get_name()] = exchange_trader

                # create trader simulator instance for this exchange
                exchange_trader_simulator = TraderSimulator(
                    self.config, exchange_inst)
                self.exchange_trader_simulators[
                    exchange_inst.get_name()] = exchange_trader_simulator
            else:
                self.logger.error(
                    "{0} exchange not found".format(exchange_class_string))
Beispiel #12
0
 async def init_default():
     config = load_test_config()
     exchange_manager = ExchangeManager(config, ccxt.binance, is_simulated=True)
     await exchange_manager.initialize()
     exchange_inst = exchange_manager.get_exchange()
     trader_inst = TraderSimulator(config, exchange_inst, 2)
     order_inst = Order(trader_inst)
     return config, order_inst, trader_inst, exchange_inst
def _get_tools():
    config = load_test_config()
    symbol = "BTC/USDT"
    exchange_traders = {}
    exchange_traders2 = {}
    time_frame = TimeFrames.FIVE_MINUTES
    AdvancedManager.create_class_list(config)
    symbol_time_frame_updater_thread = SymbolTimeFramesDataUpdaterThread()
    exchange_manager = ExchangeManager(config, ccxt.binance, is_simulated=True)
    exchange_inst = exchange_manager.get_exchange()
    trader_inst = TraderSimulator(config, exchange_inst, 0.3)
    trader_inst.stop_order_manager()
    trader_inst2 = TraderSimulator(config, exchange_inst, 0.3)
    trader_inst2.stop_order_manager()
    trader_inst2.set_enabled(False)
    trader_inst.portfolio.portfolio["SUB"] = {
        Portfolio.TOTAL: 0.000000000000000000005,
        Portfolio.AVAILABLE: 0.000000000000000000005
    }
    trader_inst.portfolio.portfolio["BNB"] = {
        Portfolio.TOTAL: 0.000000000000000000005,
        Portfolio.AVAILABLE: 0.000000000000000000005
    }
    trader_inst.portfolio.portfolio["USDT"] = {
        Portfolio.TOTAL: 2000,
        Portfolio.AVAILABLE: 2000
    }
    crypto_currency_evaluator = CryptocurrencyEvaluator(config, "Bitcoin", [])
    symbol_evaluator = SymbolEvaluator(config, symbol,
                                       crypto_currency_evaluator)

    exchange_traders[exchange_inst.get_name()] = trader_inst
    exchange_traders2[exchange_inst.get_name()] = trader_inst2
    symbol_evaluator.set_trader_simulators(exchange_traders)
    symbol_evaluator.set_traders(exchange_traders2)
    trading_mode_inst = OctoBot.get_trading_mode_class(config)(config,
                                                               exchange_inst)
    _ = EvaluatorThreadsManager(config, time_frame,
                                symbol_time_frame_updater_thread,
                                symbol_evaluator, exchange_inst,
                                trading_mode_inst, [])
    trading_mode = HighFrequencyMode(config, exchange_inst)
    trading_mode.add_symbol_evaluator(symbol_evaluator)

    return config, exchange_inst, trader_inst, symbol, trading_mode
Beispiel #14
0
    def init_default():
        config = load_test_config()
        config[CONFIG_BACKTESTING][CONFIG_ENABLED_OPTION] = True
        exchange_manager = ExchangeManager(config, ccxt.binance, is_simulated=True)
        exchange_inst = exchange_manager.get_exchange()
        exchange_simulator = exchange_inst.get_exchange()
        exchange_simulator.init_candles_offset([TimeFrames.ONE_HOUR, TimeFrames.FOUR_HOURS, TimeFrames.ONE_DAY],
                                               TestExchangeSimulator.DEFAULT_SYMBOL)

        trader_inst = TraderSimulator(config, exchange_inst, 1)
        return config, exchange_inst, exchange_simulator, trader_inst
    def init_default():
        config = load_test_config()
        config[CONFIG_BACKTESTING][CONFIG_ENABLED_OPTION] = True
        exchange_manager = ExchangeManager(config,
                                           ccxt.binance,
                                           is_simulated=True)
        exchange_inst = exchange_manager.get_exchange()
        exchange_simulator = exchange_inst.get_exchange()

        trader_inst = TraderSimulator(config, exchange_inst, 1)
        return config, exchange_inst, exchange_simulator, trader_inst
def _get_tools():
    config = load_test_config()
    symbol = "BTC/USDT"
    exchange_manager = ExchangeManager(config, ccxt.binance, is_simulated=True)
    exchange_inst = exchange_manager.get_exchange()
    trader_inst = TraderSimulator(config, exchange_inst, 0.3)
    trader_inst.stop_order_manager()
    trader_inst.portfolio.portfolio["SUB"] = {
        Portfolio.TOTAL: 0.000000000000000000005,
        Portfolio.AVAILABLE: 0.000000000000000000005
    }
    trader_inst.portfolio.portfolio["BNB"] = {
        Portfolio.TOTAL: 0.000000000000000000005,
        Portfolio.AVAILABLE: 0.000000000000000000005
    }
    trader_inst.portfolio.portfolio["USDT"] = {
        Portfolio.TOTAL: 2000,
        Portfolio.AVAILABLE: 2000
    }

    return config, exchange_inst, trader_inst, symbol
Beispiel #17
0
    async def test_get_risk(self):
        config, exchange_inst, trader_inst = await self.init_default()
        self.stop(trader_inst)

        config[CONFIG_TRADING][CONFIG_TRADER_RISK] = 0
        trader_1 = TraderSimulator(config, exchange_inst)
        assert trader_1.get_risk() == CONFIG_TRADER_RISK_MIN
        self.stop(trader_1)

        config[CONFIG_TRADING][CONFIG_TRADER_RISK] = 2
        trader_2 = TraderSimulator(config, exchange_inst)
        assert trader_2.get_risk() == CONFIG_TRADER_RISK_MAX
        self.stop(trader_2)

        config[CONFIG_TRADING][CONFIG_TRADER_RISK] = 0.5
        trader_2 = TraderSimulator(config, exchange_inst)
        assert trader_2.get_risk() == 0.5
        self.stop(trader_2)
Beispiel #18
0
    async def test_new(self):
        config, order_inst, trader_inst, exchange_inst = await self.init_default(
        )

        # with real trader
        order_inst.new(
            OrderConstants.TraderOrderTypeClasses[TraderOrderType.BUY_MARKET],
            "BTC/USDT",
            10000,
            1,
            price=None,
            stop_price=None,
            order_notifier=None)

        assert order_inst.get_order_type(
        ) == OrderConstants.TraderOrderTypeClasses[TraderOrderType.BUY_MARKET]
        assert order_inst.get_order_symbol() == "BTC/USDT"
        assert order_inst.get_create_last_price() == 10000
        assert order_inst.get_origin_quantity() == 1
        assert order_inst.get_creation_time() != 0
        assert order_inst.get_currency_and_market() == ('BTC', 'USDT')
        assert order_inst.get_side() is None
        assert order_inst.get_status() == OrderStatus.OPEN

        order_inst.new(OrderConstants.TraderOrderTypeClasses[
            TraderOrderType.STOP_LOSS_LIMIT],
                       "ETH/BTC",
                       0.1,
                       5.2,
                       price=0.12,
                       stop_price=0.9,
                       order_notifier=None)
        assert order_inst.origin_stop_price == 0.9
        assert order_inst.last_prices is None
        assert order_inst.origin_price == 0.12

        # with simulated trader
        trader_sim_inst = TraderSimulator(config, exchange_inst, 1)
        order_sim_inst = Order(trader_sim_inst)

        order_sim_inst.new(
            OrderConstants.TraderOrderTypeClasses[TraderOrderType.SELL_MARKET],
            "LTC/USDT",
            100,
            3.22,
            price=None,
            stop_price=None,
            order_notifier=None)
        assert order_sim_inst.get_status() == OrderStatus.OPEN

        self.stop(trader_inst)
        self.stop(trader_sim_inst)
Beispiel #19
0
    def create_exchange_traders(self):
        for exchange_type in self.exchanges:
            exchange_inst = Exchange(self.config, exchange_type)

            # create trader instance for this exchange
            exchange_trader = Trader(self.config, exchange_inst)
            exchange_trader_simulator = TraderSimulator(
                self.config, exchange_inst)

            self.exchanges_list[exchange_type.__name__] = exchange_inst
            self.exchange_traders[exchange_type.__name__] = exchange_trader
            self.exchange_trader_simulators[
                exchange_type.__name__] = exchange_trader_simulator
Beispiel #20
0
    def create_exchange_traders(self):
        available_exchanges = ccxt.exchanges
        for exchange_class_string in self.config[CONFIG_EXCHANGES]:
            if exchange_class_string in available_exchanges:
                exchange_type = getattr(ccxt, exchange_class_string)

                # Backtesting Exchange
                if self.backtesting_enabled:
                    exchange_manager = ExchangeManager(self.config,
                                                       exchange_type,
                                                       is_simulated=True)
                else:
                    # Real Exchange
                    exchange_manager = ExchangeManager(self.config,
                                                       exchange_type,
                                                       is_simulated=False)

                exchange_inst = exchange_manager.get_exchange()
                self.exchanges_list[exchange_inst.get_name()] = exchange_inst

                # create trader instance for this exchange
                exchange_trader = Trader(self.config, exchange_inst)
                self.exchange_traders[
                    exchange_inst.get_name()] = exchange_trader

                # create trader simulator instance for this exchange
                exchange_trader_simulator = TraderSimulator(
                    self.config, exchange_inst)
                self.exchange_trader_simulators[
                    exchange_inst.get_name()] = exchange_trader_simulator

                # create trading mode
                try:
                    self.trading_mode = get_activated_trading_mode(
                        self.config)(self.config, exchange_inst)
                    self.exchange_trading_modes[
                        exchange_inst.get_name()] = self.trading_mode
                    self.logger.debug(
                        f"Using {self.trading_mode.get_name()} trading mode")
                except RuntimeError as e:
                    self.logger.error(e.args[0])
                    raise e
            else:
                self.logger.error(
                    f"{exchange_class_string} exchange not found")
async def _get_tools():
    symbol = "BTC/USD"
    exchange_traders = {}
    exchange_traders2 = {}
    config = load_test_config()
    config[CONFIG_EVALUATOR]["FullMixedStrategiesEvaluator"] = False
    config[CONFIG_EVALUATOR]["StaggeredStrategiesEvaluator"] = True
    config[CONFIG_TRADING_TENTACLES]["DailyTradingMode"] = False
    config[CONFIG_TRADING_TENTACLES]["StaggeredOrdersTradingMode"] = True
    AdvancedManager.create_class_list(config)
    exchange_manager = ExchangeManager(config, ccxt.binance, is_simulated=True)
    await exchange_manager.initialize()
    exchange_inst = exchange_manager.get_exchange()
    trader_inst = TraderSimulator(config, exchange_inst, 0.3)
    await trader_inst.initialize()
    trader_inst.stop_order_manager()
    crypto_currency_evaluator = CryptocurrencyEvaluator(config, "Bitcoin", [])
    symbol_evaluator = SymbolEvaluator(config, symbol,
                                       crypto_currency_evaluator)
    exchange_traders[exchange_inst.get_name()] = trader_inst
    symbol_evaluator.set_trader_simulators(exchange_traders)
    symbol_evaluator.set_traders(exchange_traders2)
    symbol_evaluator.strategies_eval_lists[exchange_inst.get_name()] = \
        EvaluatorCreator.create_strategies_eval_list(config)

    trading_mode = StaggeredOrdersTradingMode(config, exchange_inst)
    trading_mode.add_symbol_evaluator(symbol_evaluator)
    final_evaluator = trading_mode.get_only_decider_key(symbol)

    trader_inst.register_trading_mode(trading_mode)

    staggered_strategy_evaluator = symbol_evaluator.strategies_eval_lists[
        exchange_inst.get_name()][0]

    trader_inst.portfolio.portfolio["USD"] = {
        Portfolio.TOTAL: 1000,
        Portfolio.AVAILABLE: 1000
    }
    trader_inst.portfolio.portfolio["BTC"] = {
        Portfolio.TOTAL: 10,
        Portfolio.AVAILABLE: 10
    }
    final_evaluator.lowest_buy = 1
    final_evaluator.highest_sell = 10000
    final_evaluator.operational_depth = 50
    final_evaluator.spread = 0.06
    final_evaluator.increment = 0.04

    return final_evaluator, trader_inst, staggered_strategy_evaluator
Beispiel #22
0
 def init_default():
     config = load_test_config()
     exchange_inst = ExchangeSimulator(config, ccxt.binance)
     trader_inst = TraderSimulator(config, exchange_inst)
     return config, exchange_inst, trader_inst