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

2024-05-07 06:08:33 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

trade(direction)

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


Tags: 编码close镜像if方向策略例子last
1条回答
网友
1楼 · 发布于 2024-05-07 06:08:33

图书馆里有一个图书馆可以做这件事 代码:

from bisect import bisect
def foo(close):
    previous_candle = {}
    previous_candle['high'] = 100
    previous_candle['low'] = 0 
    choices = ["short","none","long"]
    breakpoints = [previous_candle['low'],previous_candle['high']]
    
    return choices[bisect(breakpoints,close)]
    #return ["short","none","long"][bisect([previous_candle['low'],previous_candle['high']],close)] if you prefer oneliner

print(foo(-50))
print(foo(50))
print(foo(150))

结果:

short
none
long

相关问题 更多 >