Add ATR
This commit is contained in:
+12
-1
@@ -52,12 +52,18 @@ exchange = ccxt.binance({
|
||||
# 时间周期映射
|
||||
TIMEFRAMES = {
|
||||
'1m': '1分钟',
|
||||
'3m': '3分钟',
|
||||
'5m': '5分钟',
|
||||
'15m': '15分钟',
|
||||
'30m': '30分钟',
|
||||
'1h': '1小时',
|
||||
'2h': '2小时',
|
||||
'4h': '4小时',
|
||||
'6h': '6小时',
|
||||
'8h': '8小时',
|
||||
'12h': '12小时',
|
||||
'1d': '日线',
|
||||
'3d': '3日',
|
||||
'1w': '周线',
|
||||
'1M': '月线',
|
||||
}
|
||||
@@ -115,8 +121,10 @@ def get_crypto_kl_data(symbol, timeframe, limit=1000, start_time=None, end_time=
|
||||
batch_size = 1000 # 默认批次大小
|
||||
if timeframe in ['1m', '3m', '5m']:
|
||||
batch_size = 500 # 分钟级数据减少批次大小
|
||||
elif timeframe in ['15m', '30m', '1h']:
|
||||
elif timeframe in ['15m', '30m', '1h', '2h']:
|
||||
batch_size = 1000
|
||||
elif timeframe in ['4h', '6h', '8h', '12h']:
|
||||
batch_size = 1200 # 小时级数据可以获取更多
|
||||
else:
|
||||
batch_size = 1500 # 日线及以上可以获取更多
|
||||
|
||||
@@ -280,6 +288,9 @@ def add_indicators(df):
|
||||
df['ma250'] = (ta.MA(df, timeperiod=250)).fillna(0)
|
||||
df['rsi'] = ta.RSI(df, timeperiod=14)
|
||||
|
||||
# 计算ATR (平均真实波幅)
|
||||
df['atr'] = ta.ATR(df, timeperiod=14).fillna(0)
|
||||
|
||||
# 计算布林带 (当前周期 - 20周期,2标准差)
|
||||
bb = ta.BBANDS(df, timeperiod=20, nbdevup=2.0, nbdevdn=2.0, matype=0)
|
||||
df['bb_upper'] = bb['upperband'].fillna(0)
|
||||
|
||||
Reference in New Issue
Block a user