Пример #1
0
    def get_configuration_details_to_setup_backtest(self) -> Dict[str, Any]:
        """
        Returns configuration details from GUI in a dictionary to setup backtest.
        :return: GUI configuration details in a dictionary.
        """
        config = self.gui.configuration
        startDate, endDate = get_calendar_dates(config_obj=config)

        return {
            'startingBalance':
            config.backtestStartingBalanceSpinBox.value(),
            'data':
            config.optimizer_backtest_dict[BACKTEST]['data'],
            'startDate':
            startDate,
            'endDate':
            endDate,
            'symbol':
            config.optimizer_backtest_dict[BACKTEST]['dataType'],
            'precision':
            config.backtestPrecisionSpinBox.value(),
            'outputTrades':
            config.backtestOutputTradesCheckBox.isChecked(),
            'marginEnabled':
            config.backtestMarginTradingCheckBox.isChecked(),
            'strategies':
            get_strategies(config, BACKTEST),
            'strategyInterval':
            config.backtestStrategyIntervalCombobox.currentText()
        }
Пример #2
0
def get_config_helper(gui, caller):
    algo_dict = get_interface_dictionary(gui, caller)['configuration']
    startDate, endDate = get_calendar_dates(config_obj=gui.configuration,
                                            caller=caller)
    precision = algo_dict['precision'].currentText()
    symbol = gui.configuration.optimizer_backtest_dict[caller]['dataType']

    d = {
        'startDate': startDate,
        'endDate': endDate,
        'symbol': symbol,
        'startingBalance': algo_dict['startingBalance'].value(),
        'data': gui.configuration.optimizer_backtest_dict[caller]['data'],
        'precision': parse_precision(precision, symbol),
        'marginEnabled': algo_dict['marginEnabled'].isChecked(),
        'strategyInterval': algo_dict['strategyInterval'].currentText(),
        'logger': gui.logger
    }

    if caller == OPTIMIZER:
        d.update({
            'drawdownPercentage': algo_dict['drawdownPercentage'].value(),
            'strategies': []
        })

    if caller == BACKTEST:
        d.update({
            'outputTrades': algo_dict['outputTrades'].isChecked(),
            'strategies': get_strategies(gui.configuration, BACKTEST),
        })

    return d
Пример #3
0
    def set_parameters(self, caller: int):
        """
        Retrieves moving average options and loss settings based on caller.
        :param caller: Caller that dictates which parameters get set.
        """
        config = self.gui.configuration
        lossDict = config.get_loss_settings(caller)
        takeProfitDict = config.get_take_profit_settings(caller)

        trader: SimulationTrader = self.gui.get_trader(caller)
        trader.apply_take_profit_settings(takeProfitDict)
        trader.apply_loss_settings(lossDict)
        trader.setup_strategies(get_strategies(config, caller))
        trader.output_configuration()
Пример #4
0
def get_config_helper(gui, caller) -> Dict[str, Any]:
    """
    Get configuration settings for backtests and optimizers. TODO: Cleanup.
    :param gui: GUI object that called this function.
    :param caller: Caller object (backtest or optimizer in this case).
    :return: Dictionary containing configuration settings.
    """
    algo_dict = get_interface_dictionary(gui, caller)['configuration']
    start_date, end_date = get_calendar_dates(config_obj=gui.configuration,
                                              caller=caller)
    precision = algo_dict['precision'].currentText()
    symbol = gui.configuration.optimizer_backtest_dict[caller]['dataType']

    d = {
        'startDate': start_date,
        'endDate': end_date,
        'symbol': symbol,
        'startingBalance': algo_dict['startingBalance'].value(),
        'data': gui.configuration.optimizer_backtest_dict[caller]['data'],
        'precision': parse_precision(precision, symbol),
        'marginEnabled': algo_dict['marginEnabled'].isChecked(),
        'strategyInterval': algo_dict['strategyInterval'].currentText(),
        'logger': gui.logger
    }

    if caller == OPTIMIZER:
        d.update({
            'drawdownPercentage': algo_dict['drawdownPercentage'].value(),
            'strategies': []
        })

    if caller == BACKTEST:
        d.update({
            'outputTrades': algo_dict['outputTrades'].isChecked(),
            'strategies': get_strategies(gui.configuration, BACKTEST),
        })

    return d