如何解决Python跟踪停止使用两个指标
我是python的新手,并且有一个简单的交易策略,当收盘价高于Ichimoku云且抛物线SAR低于收盘价时,该策略将占多头;当“关闭”位于市云下方且抛物线SAR位于“关闭”上方时,做空空头头寸。在这里,抛物线SAR是我的追踪止损。
df['signal'] = 0
df.loc[(df.Close > df.senkou_spna_A) & (df.Close > df.senkou_spna_B) & (df.Close > df.SAR),'signal'] = 1
df.loc[(df.Close < df.senkou_spna_A) & (df.Close < df.senkou_spna_B) & (df.Close < df.SAR),'signal'] = -1
我注意到有时我会输入多头或空头头寸,而抛物线SAR(止损)仍然很远,但是由于平仓进入云层,所以该头寸已被平仓。
如何提高此代码的效率,因此我输入多头或空头头寸,但当价格等于抛物线SAR时,头寸仅被清算?
非常感谢!
下面的代码用于计算Ichimoku云
high_9 = df.High.rolling(9).max()
low_9 = df.Low.rolling(9).min()
df['tenkan_sen_line'] = (high_9 + low_9) /2
# Calculate Kijun-sen
high_26 = df.High.rolling(26).max()
low_26 = df.Low.rolling(26).min()
df['kijun_sen_line'] = (high_26 + low_26) / 2
# Calculate Senkou Span A
df['senkou_spna_A'] = ((df.tenkan_sen_line + df.kijun_sen_line) / 2).shift(26)
# Calculate Senkou Span B
high_52 = df.High.rolling(52).max()
low_52 = df.High.rolling(52).min()
df['senkou_spna_B'] = ((high_52 + low_52) / 2).shift(26)
# Calculate Chikou Span B
df['chikou_span'] = df.Close.shift(-26)```
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。