我有一个 OHLC 价格数据集,我解析了从 CSV 到熊猫数据框架和重采样到15分钟的酒吧:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 500047 entries, 1998-05-04 04:45:00 to 2012-08-07 00:15:00
Freq: 15T
Data columns:
Close 363152 non-null values
High 363152 non-null values
Low 363152 non-null values
Open 363152 non-null values
dtypes: float64(4)
我想添加各种计算列,从简单的列开始,比如周期范围(H-L) ,然后用布尔值来表示我将定义的价格模式的出现——例如,一个锤形蜡烛模式,其样本定义:
def closed_in_top_half_of_range(h,l,c):
return c > l + (h-l)/2
def lower_wick(o,l,c):
return min(o,c)-l
def real_body(o,c):
return abs(c-o)
def lower_wick_at_least_twice_real_body(o,l,c):
return lower_wick(o,l,c) >= 2 * real_body(o,c)
def is_hammer(row):
return lower_wick_at_least_twice_real_body(row["Open"],row["Low"],row["Close"]) \
and closed_in_top_half_of_range(row["High"],row["Low"],row["Close"])
基本问题: 如何将函数映射到列,特别是我想引用多个其他列或整行或其他内容的位置?
这篇文章 处理从一个源列中添加两个计算列的问题,这个问题很接近,但并不完全接近。
稍微高级一些: 对于参考多个 bar (T)确定的价格模式,如何在函数定义中引用不同的行(例如 T-1、 T-2等) ?