【发布时间】:2020-10-21 06:59:23
【问题描述】:
我正在尝试运行交易对交易策略,但无法根据条件更新列。 DataFrame 看起来像:
import pandas as pd
df = pd.DataFrame({'Stock A Price': [5,6,7,8,10],
'Stock B Price': [7,7,7,6,4]})
我不想创建新列:df['Stock A Position'] 和 df['Stock B Position'],它们根据以下策略更新:df['Stock A Position'] == 'LONG',df['Stock B Position'] == 'SHORT' 如果股票 A 价格低于股票 B,反之亦然(做空 A如果价格 A>B,则做多 B)。但是,在建仓后,df['Stock A Position'] 和df['Stock B Position'] 都应更新为'HOLD',直到再次满足策略条件(价格交叉路径)。
输出应如下所示:
df = pd.DataFrame({'Stock A Price': [5,6,7,8,10],
'Stock B Price': [7,7,7,6,4]
'Stock A Position': ['LONG', 'HOLD', 'HOLD', 'SHORT', 'HOLD']
'Stock B Position': ['SHORT', 'HOLD', 'HOLD', 'LONG', 'HOLD]'})
例如,由于股票 A 价格 = 5 B=6)所以现在改变仓位:做空 A 和做多 B。第五,股票 A 仍然高于 B,所以持有。
请告诉我如何有效地执行此操作并能够处理大型 DataFrame。感谢您的帮助。
【问题讨论】:
标签: python pandas dataframe conditional-statements trading