我第一次使用TaLib和烛台,并从编写检测烛台的代码开始。我正在使用 CCXT 获取Binance USDT 的数据 1 小时。
它正在以下时间戳上检测锤子:
ts
2021-10-15 19:00:00+00:00 100
2021-10-16 20:00:00+00:00 100
2021-10-17 12:00:00+00:00 100
根据我的理解,锤形蜡烛是看涨/绿色的,但是当我查看给定时间戳上的图表时,我发现它是红色的。我究竟做错了什么?所有时间戳均采用 UTC。代码如下:
import pandas as pd
import ccxt
from datetime import datetime, timedelta
import talib
def gen_ts_text(ts):
timestamp = ts / 1000
dt_object = datetime.utcfromtimestamp(timestamp)
# print(dt_object.strftime('%Y-%m-%d %H:%M:%S'))
return dt_object.strftime('%Y-%m-%d %H:%M:%S')
def get_data(pair, duration):
exchange = ccxt.binance()
# A week old data
ohlcv = exchange.fetch_ohlcv(pair, timeframe=duration, limit=100)
df = pd.DataFrame(ohlcv, columns=['ts', 'open', 'high', 'low', 'close', 'volume'])
df['ts'] = df['ts'].apply(gen_ts_text)
df['ts'] = pd.to_datetime(df['ts']).dt.tz_localize('UTC')
df.set_index("ts", inplace=True)
return df
def hammer(open, high, low, close):
result = talib.CDLHAMMER(open, high, low, close)
return result
主文件
from ta_functions import *
# https://www.binance.com/en/trade/BTC_USDT
if __name__ == '__main__':
data = get_data('BTC/USDT', '1h')
print('-------------------------------------------')
hammer_pattern = hammer(data['open'], data['high'], data['low'], data['close'])
# hanging_pattern = hangging_man(data['open'], data['high'], data['low'], data['close'])
data['hammer'] = hammer_pattern
# data['hanging_man'] = hanging_pattern
print('HAMMER ......')
print(data['hammer'][data['hammer'] > 0])
print(len(data['hammer'][data['hammer'] > 0]))