【发布时间】:2021-05-19 21:03:32
【问题描述】:
我有多种策略可以做多或做空赚钱。目前,我将长边与短边分开编码,但它们是彼此的镜子。一个基本示例可能是收盘价超过前一根蜡烛的高点/低点并朝该方向交易:
direction = 'none'
if last_candle['close'] > previous_candle['high']:
direction = 'long'
if last_candle['close'] < previous_candle['low']:
direction = 'short'
trade(direction)
你怎么能这样写,这样你只写一次逻辑?
【问题讨论】:
-
"this" if True else "that"请参阅文档中的Conditional expressions。 -
这里有三个可能的结果('long'、'short'、什么都没有)。如果不进行 2 次比较,您就无法真正产生三个结果之一。
-
对不起,我没有说清楚还有第三个选项什么都没有。我将更新伪代码。至于不进行 2 次比较,当然需要进行两次比较,但这是我所说的逻辑,而不是最终的“方向”。一种可能是粗略的做法是否定值(将图表倒置),然后翻转方向。所以它变成了这样: logic = ... if logic(original_data): direction = 'long' if logic(negated_data): direction = 'short' trade(direction) 这可能会起作用,但我觉得必须有更好的方式。
标签: python algorithmic-trading