Я новичок в программировании и учусь программировать тестирование на истории с данными из API Oanda. Когда я строю график, я получаю такие гэпы по выходным. Я проверяю данные, и индекс (время) не показывает выходные, но он отображается на графике. Как я могу избавиться от этого? Благодарим вас за время!
введите здесь описание изображения
class Backtester():
def init( self, символ, таймфрейм, SMA_S, SMA_L, начало, конец):
self.symbol = символ
self.timeframe = таймфрейм
self.SMA_S = SMA_S
self.SMA_L = SMA_L
self.start = start
self.end = end
self.results = None
self.get_data()
def get_data(self):
api = tpqoa.tpqoa('oanda.cfg')
raw = api.get_history(instrument = self.symbol, \
start = self.start, \
end = self.end, \
granularity = self.timeframe, \
price = 'B')
# raw = raw.dropna(inplace =True)
# raw.rename(column = {'c':'close'})
raw['returns'] = np.log(raw['c'] / raw['c'].shift(1))
raw['SMA_S'] = raw['c'].rolling(self.SMA_S).mean()
raw['SMA_L'] = raw['c'].rolling(self.SMA_L).mean()
raw.dropna(inplace = True)
self.data = raw
return raw
def test_strategy(self):
data = self.data.copy().dropna()
data["position"] = np.where(data["SMA_S"] > data["SMA_L"], 1, -1)
data["strategy"] = data["position"].shift(1) * data["returns"]
data.dropna(inplace=True)
data["creturns"] = data["returns"].cumsum().apply(np.exp)
data["cstrategy"] = data["strategy"].cumsum().apply(np.exp)
self.results = data
perf = data["cstrategy"].iloc[-1] # absolute performance
outperf = perf - data["creturns"].iloc[-1] # outperformance
return round(perf, 6), round(outperf, 6)
def plot_data(self):
data = self.data.copy().dropna()
candle = go.Candlestick(x = data.index,\
open = data['o'],\
close = data['c'],\
high = data['h'],\
low = data['l'],
name = 'Candlestick')
fsma = go.Scatter(x = data.index,\
y = data['SMA_S'],\
name = 'SMA Short',\
line = dict(color = ('rgba(102, 207, 255, 50)')))
lsma = go.Scatter(x = data.index,\
y = data['SMA_L'],\
name = 'SMA Long',\
line = dict(color = ('rgba(102, 107, 255, 50)')))
data = [candle, fsma, lsma]
data = [candle]
layout = go.Layout(title = self.symbol)
fig = go.Figure(data = data, layout = layout)
plot(fig, filename = self.symbol)
Подробнее здесь: https://stackoverflow.com/questions/791 ... -oanda-api
Удаление выходных из исторических данных о запасах из Oanda API ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение