Python实现DataFrame中基于止盈止损的交易盈亏计算
交易盈亏计算需求
现有如下DataFrame,其中Ordem列值大于0代表多头(long),小于0代表空头(short)。需新增一列,根据预设的止盈(tp)和止损(sl)参数,计算对应交易的盈亏结果。
代码示例
list_1 = [26.66, 26.7, 26.72, 26.73, 26.74, 26.88, 26.63, 26.56, 26.51, 26.55, 26.54, 26.5, 26.52, 26.59, 26.43, 26.46, 26.54, 26.51, 26.54, 26.5, 26.51, 26.47, 26.48, 26.41, 26.4, 26.37] list_2 = [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0] df = pd.DataFrame({ 'close': list_1, 'Ordem': list_2}) sl = 0.02 tp = 0.03 # long if df['Ordem'] > 0: = x # take profit if df['Close']> x+tp: return df['Close'] - x # stop loss else df['Close']< x-sl: return df['Close'] - x or # short if df['Ordem'] < 0: = y # take profit if df['Close']< y-tp: return y - df['Close'] # stop loss else df['Close']>y+sl: return y - df['Close']
思路说明
- 多头交易:当close价格超过入场价+tp时获利平仓,低于入场价-sl时止损平仓
- 空头交易:当close价格低于入场价-tp时获利平仓,高于入场价+sl时止损平仓
内容的提问来源于stack exchange,提问作者Wagner B.A
相关产品推荐
相关产品推荐

