Удаление выходных из исторических данных о запасах из Oanda APIPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Удаление выходных из исторических данных о запасах из Oanda API

Сообщение Anonymous »

Я новичок в программировании и учусь программировать тестирование на истории с данными из 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»