Стохастическая функция застряла [Python]
Можете ли вы указать мне, что я делаю неправильно?
import time
import math
import numpy as np
import datetime
import pandas as pd
import ccxt
exchange = ccxt.kraken()
symbol = 'BTC/USD'
timeframe = '1h'
def get_candle(exchange,symbol,timeframe): # timeframe = 1m 5m 15m 30m 1h 2h... etc.
return exchange.fetch_ohlcv(symbol, timeframe)
ohlcv = get_candle(exchange,symbol,timeframe)
source = ohlcv
def sort_candle_highest(ohlcv,n,z):
i = 0
results = []
while i < z:
series = [x[2] for x in ohlcv]
series = series[:len(series)-i]
hh = highest(series,n)
print(hh)
results.append(hh)
i += 1
results.reverse()
return results
def sort_candle_lowest(ohlcv,n,z):
i = 0
results = []
while i < z:
series = [x[3] for x in ohlcv]
series = series[:len(series)-i]
ll = lowest(series,n)
print(ll)
results.append(ll)
i += 1
results.reverse()
return results
def sort_candle_lastclose(ohlcv,z):
i = 0
results = []
while i < z:
series = [x[4] for x in ohlcv]
series = series[:len(series)-i]
results.append(series[-1])
results.reverse()
return results
def lowest(source, n):
return np.amin(source[-n:])
def highest(source,n):
return np.amax(source[-n:])
class indicators:
print("noerroryet1")
def stochastic_k(source,n,smoothK,smoothD): #for source here ohlcv (get_candle)
print("noerroryet2")
if smoothK > smoothD:
ticksback = smoothK
if smoothD > smoothK:
ticksback = smoothD
def stoch(source,n,ticksback):
print("noerroryet3")
i = 0
close = sort_candle_lastclose(source,ticksback)
hh = sort_candle_highest(source,n,ticksback)
ll = sort_candle_lowest(source,n,ticksback)
print("noerroryet3b")
while i < ticksback:
print("noerroryet3c")
results.append(( 100 * (close[-ticksback+i-1]-ll[-ticksback+i-1]) ) / ( hh[-ticksback+i-1] - ll[-ticksback+i-1] ))
i += 1
print("noerroryet4")
return results
print(stoch(source,n,ticksback)+'lol')
stochastic_k(source,15,1,5)
Поэтому я пытаюсь вычислить некоторые классные показатели, и функция застревает просто, не останавливаясь, никогда не печатая ничего. Я понятия не имею, где ошибка, хотя это определенно связано со стохастическими вычислениями, мне нужно получить список значений стох, чтобы вычислить SMA, я думаю, [-ticksback+i-1]
должен дать мне правильное значение в списке, не уверен, хотя, потому что это не выплюнет ничего...