Beispiel #1
0
"""Technical, portfolio, risk analysis APIs for your quantitative trading algorithms."""

from __future__ import absolute_import
from datetime import datetime
from typing import Any
from six.moves import range
import pandas as pd
import numpy as np
import empyrical
from libkloudtrader.logs import start_logger
from libkloudtrader.exceptions import AnalysisException

logger = start_logger(__name__)
'''Not in docs. helper functions'''


def fill_for_noncomputable_vals(input_data, result_data):
    """Fill non computed series/dataframe values with Nan"""
    non_computable_values = np.repeat(np.nan,
                                      len(input_data) - len(result_data))
    filled_result_data = np.append(non_computable_values, result_data)
    return filled_result_data


def check_for_period_error(data: Any, period: int):
    """
    Check for Period Error. Check if the period is larger than the number of data points in data
    """
    period = int(period)
    data_len = len(data)
    if data_len < period:
Beispiel #2
0
from libkloudtrader.exceptions import InvalidAlgorithmMode, EmptySymbolBucket, InvalidDataFeedType
from libkloudtrader.enumerables import Data_Types
import libkloudtrader.processing as processing
from libkloudtrader.logs import start_logger
import libkloudtrader.backtest as bt
import libkloudtrader.crypto as crypto
import libkloudtrader.analysis as analysis
from tqdm import tqdm



#pd.set_option('display.max_columns', None)  # or 1000
#pd.set_option('display.max_rows', None)  # or 1000
#pd.set_option('display.max_colwidth', -1)  # or 199

logger = start_logger(__name__, ignore_module='libkloudtrader.analysis')


def run_backtest(strategy: str,
             symbol_bucket: List[str],
             data: str,
             start: Any,
             end: Any,
             data_interval:str="1d",
             preferred_price_point: str = 'close',
             preferred_benchmark: str = 'SPY',
             initial_capital: float = 100000,
             commission: float = 0,
             slippage=True):
    """Backtester function"""
    try: