"""手工确认的单一策略规格;不是自然语言通用解析器。""" import json def generate(closes, risk_blocks=None): risk_blocks = risk_blocks or set() signals = [] for i, close in enumerate(closes): if i < 2 or i in risk_blocks: signals.append(0) else: average = sum(closes[i - 2:i + 1]) / 3 signals.append(int(close > average)) return signals closes = [10, 10, 10, 12, 13, 9, 8] normal = generate(closes) conflict = generate(closes, {4}) next_open_targets = [0] + normal[:-1] assert normal == [0, 0, 0, 1, 1, 0, 0] assert conflict == [0, 0, 0, 1, 0, 0, 0] assert next_open_targets == [0, 0, 0, 0, 1, 1, 0] assert generate([10, 10, 10]) == [0, 0, 0] print(json.dumps({'closes': closes, 'signals': normal, 'risk_block_at_index_4': conflict, 'next_open_targets': next_open_targets}))