Python 如何避免在交易策略中重复代码,这可能是多头或空头交易

Python 如何避免在交易策略中重复代码,这可能是多头或空头交易,python,algorithmic-trading,Python,Algorithmic Trading,我有多种策略可以通过做多或做空赚钱。目前我把长边和短边分开编码,但它们是彼此的镜像。一个基本的例子可能是在上一支蜡烛的高点/低点之外的收盘价,并朝这个方向交易: direction = 'none' if last_candle['close'] > previous_candle['high']: direction = 'long' if last_candle['close'] < previous_candle['low']: direction = 'short'

我有多种策略可以通过做多或做空赚钱。目前我把长边和短边分开编码,但它们是彼此的镜像。一个基本的例子可能是在上一支蜡烛的高点/低点之外的收盘价,并朝这个方向交易:

direction = 'none'
if last_candle['close'] > previous_candle['high']:
  direction = 'long'

if last_candle['close'] < previous_candle['low']:
  direction = 'short'

trade(direction)
direction='none'
如果最后一支蜡烛['close']>上一支蜡烛['high']:
方向=‘长’
如果最后一支蜡烛['close']<上一支蜡烛['low']:
方向=‘短’
贸易(方向)

你怎么能这样写,只写一次逻辑呢?

lib中有一个bulit来做这件事 代码:

结果:

short
none
long

“this”if True“that”
请参见文档中的内容。这里有三种可能的结果(“long”、“short”和“nothing”)。如果不进行2次比较,你就不可能真正产生三个结果中的一个。对不起,我没有很清楚地说明第三个选项是什么都不做。我将更新伪代码。至于不做两次比较,当然需要两次比较,但我所说的是逻辑,而不是最终的“方向”。一种可能很粗糙的方法是否定这些值(将图表翻转过来),然后翻转方向。所以它变成这样:逻辑=。。。如果逻辑(原始数据):方向='long'如果逻辑(否定数据):方向='short'交易(方向),这可能会起作用,但我觉得一定有更好的方法。
short
none
long