82 lines
3.2 KiB
Python
82 lines
3.2 KiB
Python
import numpy
|
|
|
|
from dotenv import load_dotenv
|
|
from Kraken import Kraken
|
|
from scipy import stats
|
|
|
|
load_dotenv()
|
|
|
|
kraken = Kraken()
|
|
raw = {
|
|
asset: {
|
|
asset_pair: kraken.ohlc(asset_pair) for asset_pair in kraken.ASSET_PAIRS[asset]
|
|
} for asset in kraken.ASSETS
|
|
}
|
|
processed = {
|
|
asset: {
|
|
asset_pair: {
|
|
'time': numpy.array(
|
|
[int(each[0]) for each in raw[asset][asset_pair]['result'][kraken.ASSET_PAIRS[asset][asset_pair]]]
|
|
),
|
|
'open': numpy.array(
|
|
[float(each[1]) for each in raw[asset][asset_pair]['result'][kraken.ASSET_PAIRS[asset][asset_pair]]]
|
|
),
|
|
'high': numpy.array(
|
|
[float(each[2]) for each in raw[asset][asset_pair]['result'][kraken.ASSET_PAIRS[asset][asset_pair]]]
|
|
),
|
|
'low': numpy.array(
|
|
[float(each[3]) for each in raw[asset][asset_pair]['result'][kraken.ASSET_PAIRS[asset][asset_pair]]]
|
|
),
|
|
'close': numpy.array(
|
|
[float(each[4]) for each in raw[asset][asset_pair]['result'][kraken.ASSET_PAIRS[asset][asset_pair]]]
|
|
),
|
|
'volume': numpy.array(
|
|
[float(each[5]) for each in raw[asset][asset_pair]['result'][kraken.ASSET_PAIRS[asset][asset_pair]]]
|
|
),
|
|
'count': numpy.array(
|
|
[float(each[6]) for each in raw[asset][asset_pair]['result'][kraken.ASSET_PAIRS[asset][asset_pair]]]
|
|
)
|
|
} for asset_pair in kraken.ASSET_PAIRS[asset]
|
|
} for asset in kraken.ASSETS
|
|
}
|
|
linregresses = {
|
|
asset: {
|
|
asset_pair: {
|
|
'open': stats.linregress(
|
|
processed[asset][asset_pair]['time'],
|
|
processed[asset][asset_pair]['open']
|
|
),
|
|
'high': stats.linregress(
|
|
processed[asset][asset_pair]['time'],
|
|
processed[asset][asset_pair]['high']
|
|
),
|
|
'low': stats.linregress(
|
|
processed[asset][asset_pair]['time'],
|
|
processed[asset][asset_pair]['low']
|
|
),
|
|
'close': stats.linregress(
|
|
processed[asset][asset_pair]['time'],
|
|
processed[asset][asset_pair]['close']
|
|
)
|
|
} for asset_pair in kraken.ASSET_PAIRS[asset]
|
|
} for asset in kraken.ASSETS
|
|
}
|
|
slopes = {
|
|
asset: {
|
|
asset_pair: {
|
|
'open': linregresses[asset][asset_pair]['open'].slope,
|
|
'high': linregresses[asset][asset_pair]['high'].slope,
|
|
'low': linregresses[asset][asset_pair]['low'].slope,
|
|
'close': linregresses[asset][asset_pair]['close'].slope
|
|
} for asset_pair in kraken.ASSET_PAIRS[asset]
|
|
} for asset in kraken.ASSETS
|
|
}
|
|
averages = {
|
|
asset: {
|
|
asset_pair: sum(
|
|
[slopes[asset][asset_pair][each] for each in slopes[asset][asset_pair]]
|
|
)/4 for asset_pair in kraken.ASSET_PAIRS[asset]
|
|
} for asset in kraken.ASSETS
|
|
}
|
|
print(averages)
|