StatArb / StatBot / Strategy / func_price_klines.py
func_price_klines.py
Raw
"""
    interval: 60, "D"
    from: integer from timestamp in seconds
    limit: max size of 200
"""

from config_strategy_api import session
from config_strategy_api import timeframe
from config_strategy_api import kline_limit
import datetime
import time

# Get start times (TF 15,30,60,240,D)
time_start_date = 0
if timeframe == 60:
    time_start_date = datetime.datetime.now() - datetime.timedelta(hours=kline_limit)
if timeframe == "D":
    time_start_date = datetime.datetime.now() - datetime.timedelta(days=kline_limit)
if timeframe == 15:
    time_start_date = datetime.datetime.now() - datetime.timedelta(minutes=kline_limit*15)
if timeframe == 30:
    time_start_date = datetime.datetime.now() - datetime.timedelta(minutes=kline_limit*30)
if timeframe == 240:
    time_start_date = datetime.datetime.now() - datetime.timedelta(hours=kline_limit*4)
time_start_seconds = int(time_start_date.timestamp())

# Get historical prices (klines)
def get_price_klines(symbol):

    # Get prices
    prices = session.query_mark_price_kline(
        symbol = symbol,
        interval = timeframe,
        limit = kline_limit,
        from_time = time_start_seconds
    )

    # Manage API calls
    time.sleep(0.1)

    # Return output
    if len(prices["result"]) != kline_limit:
        return []
    return prices["result"]