Ejemplo n.º 1
0
# -*- coding: utf-8 -*-
"""
Created on 2017-4-25

@author: cheng.li
"""

import math
from simpleutils import CustomLogger
import numpy as np
import numba as nb

alpha_logger = CustomLogger('ALPHA_MIND', 'info')


def groupby(groups):
    order = groups.argsort()
    t = groups[order]
    index_diff = np.where(np.diff(t))[0]
    return np.concatenate([index_diff, [len(groups)]]), order


@nb.njit(nogil=True, cache=True)
def set_value(mat, used_level, to_fill):
    length, width = used_level.shape
    for i in range(length):
        for j in range(width):
            k = used_level[i, j]
            mat[k, j] = to_fill

Ejemplo n.º 2
0
add_parent_path(__file__, 3)

from simpleutils import TestRunner
from simpleutils import CustomLogger
import PyFin.tests.api as api
import PyFin.tests.Analysis as Analysis
import PyFin.tests.CashFlows as CashFlows
import PyFin.tests.DateUtilities as DateUtilities
import PyFin.tests.Env as Env
import PyFin.tests.Math as Math
import PyFin.tests.POpt as POpt
import PyFin.tests.PricingEngines as PricingEngines
import PyFin.tests.Utilities as Utilities

if __name__ == "__main__":
    pyfin_logger = CustomLogger('FINANCE-PYTHON', 'info')
    test_runner = TestRunner([
        api.TestDateUtilities, Analysis.TestDataProviders,
        Analysis.TestSecurityValueHolders,
        Analysis.TestCrossSectionValueHolder, Analysis.TestSecurityValues,
        Analysis.TestTransformer,
        Analysis.TechnicalAnalysis.TestStatelessTechnicalAnalysis,
        Analysis.TechnicalAnalysis.TestStatelessTechnicalAnalysis,
        Analysis.TechnicalAnalysis.TestStatefulTechnicalAnalysis,
        CashFlows.TestCashFlow, CashFlows.TestInterestRate,
        DateUtilities.TestCalendar, DateUtilities.TestDate,
        DateUtilities.TestPeriod, DateUtilities.TestSchedule,
        DateUtilities.TestDayCounter, Env.TestSettings,
        Math.Distributions.TestDistribution, PricingEngines.TestBlackFormula,
        PricingEngines.TestSabrFormula, PricingEngines.TestSVIInterpolation,
        Math.Accumulators.TestAccumulatorImpl,
from simpleutils import CustomLogger
from alphamind.examples.config import risk_factors_300
from alphamind.data.standardize import standardize
from alphamind.data.winsorize import winsorize_normal
from alphamind.data.neutralize import neutralize
from alphamind.analysis.factoranalysis import build_portfolio as bp

strategy1_factor_weights = 1. / np.array([15.44 * 2., 32.72 * 2., 49.90, 115.27, 97.76])
strategy1_factor_weights = strategy1_factor_weights / strategy1_factor_weights.sum()

strategy2_factor_weights = 1. / np.array([15.44 * 2., 32.72 * 2., 49.90, 15.44 * 2.])
strategy2_factor_weights = strategy2_factor_weights / strategy2_factor_weights.sum()

alpha_strategy = {}

logger = CustomLogger('MULTI_FACTOR', 'info')

start_date = dt.datetime(2012, 1, 1)
dag_name = 'update_factor_analysis_300'

default_args = {
    'owner': 'wegamekinglc',
    'depends_on_past': False,
    'start_date': start_date
}

dag = DAG(
    dag_id=dag_name,
    default_args=default_args,
    schedule_interval='0 19 * * 1,2,3,4,5'
)
Ejemplo n.º 4
0
from simpleutils import add_parent_path

add_parent_path(__file__, 3)

from simpleutils import TestRunner
from simpleutils import CustomLogger
from market_calendars.tests.test_core_period import TestPeriod
from market_calendars.tests.test_core_date import TestDate
from market_calendars.tests.test_core_calendar import TestCalendar
from market_calendars.tests.test_core_schedule import TestSchedule
from market_calendars.tests.test_calendar_chinasse import TestChinaSSECalendar
from market_calendars.tests.test_calendar_nyse import TestNYSECalendar
from market_calendars.tests.test_calendar_null import TestNullCalendar

if __name__ == '__main__':
    logger = CustomLogger('market_calendars_test', 'info')
    test_runner = TestRunner([TestPeriod,
                              TestDate,
                              TestCalendar,
                              TestSchedule,
                              TestChinaSSECalendar,
                              TestNYSECalendar,
                              TestNullCalendar],
                             logger)
    test_runner.run()