#datetime(2004, 8, 6, 0, 0), #datetime(2004, 8, 9, 0, 0), #datetime(2004, 8, 10, 0, 0), #datetime(2004, 8, 11, 0, 0), #datetime(2004, 8, 12, 0, 0), #datetime(2004, 8, 13, 0, 0), ] # create Queues queue = BufferedQueue() result = Queue() p1 = Process(target=process_func, args=[queue, result]) p2 = Process(target=process_func, args=[queue, result]) p1.setStoppable(True); p2.setStoppable(True) p1.start(); p2.start() #strategy_args = random_strategies_generator_2(periods=(1,2,3,4,5), # strats_per_period=24) strategy_args = [ (('long_tops', 4, 'low', 'HH', 6, 7), ('short_tops', 4, 'high', 'LL', 6, 7)) ] for (s1, s2) in strategy_args: print s1, s2 # create tasks for this batch tasks = {} task_id = 0 for i in range(len(strategy_args)):
} tasks[task_id] = task strategy_id_task_map[strategy_id].append(task_id) task_id += 1 strategy_results[strategy_id] = 0 strategy_id += 1 # create Queues queue = BufferedQueue() result = Queue() queue.putmany(tasks.values()) # create 2 Processes processes = [] for i in range(2): p = Process(target=process_func, args=[queue, result]) p.setStoppable(True) p.start() processes.append(p) wanted = 10 criterium = nr_days * ticker_details["increment"] * 3 # 'arbitrary' criterium got = set() for i in range(len(tasks)): result_dict = result.get() for task_id, report in result_dict.items(): tsk = tasks.get(task_id) tsk.update({"report": report}) strategy_id = tsk["strategy_id"] for order_id, order in report.items(): strategy_results[strategy_id] += order["delta"]