修改排版,加入up,down,flat,unknown显示
This commit is contained in:
@@ -56,6 +56,10 @@ class TF_DF():
|
||||
return None
|
||||
return float(ema24_value)
|
||||
return None
|
||||
def get_current_klc(self):
|
||||
if len(self.klc_list) > 0:
|
||||
return self.klc_list[-2]
|
||||
return None
|
||||
def add_indicators(self, df):
|
||||
fast = 12
|
||||
slow = 26
|
||||
@@ -93,14 +97,33 @@ class TF_DF():
|
||||
df['macd'] = macd['macd']
|
||||
df['macdsignal'] = macd['macdsignal']
|
||||
df['macdhist'] = macd['macdhist']
|
||||
df['ema5'] = ta.EMA(df, timeperiod=5)
|
||||
df['ema10'] = ta.EMA(df, timeperiod=10)
|
||||
df['ema24'] = ta.EMA(df, timeperiod=24)
|
||||
df['ema26'] = ta.EMA(df, timeperiod=26)
|
||||
df['ema52'] = ta.EMA(df, timeperiod=52)
|
||||
df['ema5'] = self.cal_ema(df, 5)
|
||||
df['ema10'] = self.cal_ema(df, 10)
|
||||
df['ema24'] = self.cal_ema(df, 24)
|
||||
df['ema26'] = self.cal_ema(df, 26)
|
||||
df['ema52'] = self.cal_ema(df, 52)
|
||||
df['rsi'] = ta.RSI(df, timeperiod=14)
|
||||
df['volume_ratio'] = self.cal_volume_ratio(df)
|
||||
return df
|
||||
@staticmethod
|
||||
def cal_ema(df, timeperiod):
|
||||
"""
|
||||
计算 EMA,优先使用 pandas ewm(adjust=False) 以贴近前端/TradingView 显示;
|
||||
必要时回退到 TA-Lib(abstract)。
|
||||
"""
|
||||
try:
|
||||
series = df['close'].astype(float) if isinstance(df, pd.DataFrame) else pd.Series(df).astype(float)
|
||||
return series.ewm(span=int(timeperiod), adjust=False).mean()
|
||||
except Exception:
|
||||
try:
|
||||
if isinstance(df, pd.DataFrame):
|
||||
return ta.EMA(df, timeperiod=int(timeperiod))
|
||||
except Exception:
|
||||
pass
|
||||
# 最后回退:返回同索引的 NaN 序列
|
||||
if isinstance(df, pd.DataFrame) and 'close' in df:
|
||||
return pd.Series(np.nan, index=df.index)
|
||||
return pd.Series(dtype=float)
|
||||
def check_fx(self, klc):
|
||||
if klc.pre and klc.next:
|
||||
if klc.high > klc.pre.high and klc.high > klc.next.high:
|
||||
|
||||
Reference in New Issue
Block a user