Пример #1
0
from RetraceStrategy import RetraceStrategy
from DataFeed import DataFeedDaily
from Optimizer import Optimizer

if __name__ == '__main__':

    optimizer = Optimizer()
    optimizer.strategy_class = RetraceStrategy
    # optimizer.data_feed = DataFeedDaily('daily.SPY.csv')
    optimizer.data_feed = DataFeedDaily('SPY.csv')

    ## set population size
    optimizer.size = 40
    optimizer.max_generations = 50
    optimizer.outfile = 'optimize_retrace3.xls'
    optimizer.reset_on_EOD = True

    ## parameter space to search over
    ## strategy_params for RetraceStrategy = dict(average,momentum,duration)
    ## momentum = entry momentum crossover
    ## average = moving average filter
    ## duration = trade holding period

    param_list = [
        dict(name='momentum', min_val=30, max_val=50, steps=16, converter=int),
        dict(name='average', min_val=70, max_val=120, steps=32, converter=int),
        dict(name='duration', min_val=10, max_val=20, steps=8, converter=int)
    ]

    for p in param_list:
        optimizer.add_parameter(p)