def test_generator_is_stable(snapshot):
    # TODO Decrease sizes
    for i, scenario in enumerate(get_standard_scenarios(42)):
        snapshot.assert_match(scenario.train_signal.tolist(),
                              f"train_signal {i}")
        snapshot.assert_match(
            np.round(scenario.test_signal, 8).tolist(), f"test_signal {i}")
def test_calculate_score(snapshot):
    scenarios = generation.get_standard_scenarios(2)
    results = [
        my_solver.solve(0, s.train_signal, s.test_size, max_wave_count=1)[0]
        for s in scenarios
    ]
    snapshot.assert_match(
        evaluate.calculate_coordinator_score(scenarios, results))
def test_my_solver():
    for seed in range(1, 3):
        for scenario_index, scenario in enumerate(
                generation.get_standard_scenarios(seed)):
            trades, _, _ = my_solver.solve(0, scenario.train_signal,
                                           scenario.test_size,
                                           scenario.sine_count)
            result = trade_simulator.simulate(scenario.test_signal,
                                              scenario.train_size, trades)
            optimal_trades = list(get_optimal_trades(scenario.test_signal))
            max_result = trade_simulator.simulate(scenario.test_signal, 0,
                                                  optimal_trades)
            quality = result / max_result
            # pylint: disable=line-too-long
            assert (
                0.93 <= quality <= 1
            ), f"Seed {seed}, scenario {scenario_index}, result {result:.2f}, max {max_result:.2f}, model_parameters {scenario.model_parameters}"
def test_generator_default_sizes():
    for scenario in get_standard_scenarios(None):
        assert scenario.train_size == 100
        assert scenario.test_size == 1000
        assert scenario.train_signal.shape == (scenario.train_size, )
        assert scenario.test_signal.shape == (scenario.test_size, )
def test_create_challenge_input(snapshot):
    scenarios = generation.get_standard_scenarios(15)
    challenge = evaluate.create_challenge_input(scenarios)
    snapshot.assert_match(challenge)
Ejemplo n.º 6
0
        # print(f"Trades: {trades}")
        # print(f"Optimal trades: {optimal_trades}")
        print()


def display_scenarios(scenarios):
    challenge_input = evaluate.create_challenge_input(scenarios)
    pprint.PrettyPrinter(width=120, compact=True).pprint(challenge_input)

    for i, scenario in enumerate(scenarios):
        name = str(i + 1)
        print(name)
        simulate(name, scenario)


display_scenarios(generation.get_standard_scenarios(1))

#%%
import importlib
from scipy.optimize import curve_fit
import numpy as np
import matplotlib.pyplot as plt
import pprint
from scipy.optimize import differential_evolution
from app import generation, trade_simulator, trade_optimizer

importlib.reload(generation)


def test_curve_fit():
    scenario = (generation.ScenarioBuilder(