コード例 #1
0
    def __init__(self, sec_type_list=['cs', 'et']):

        self.logger = get_logger()
        self.iex_trading_root_url = "https://api.iextrading.com/1.0"
        self.get_symbols_universe_url = "/ref-data/symbols"
        self.sec_type_list = sec_type_list
        self.master_sector_indusry_df = pd.DataFrame(
            columns=['Sector', 'Industry'])
        self.master_sector_industry_file = OSMuxImpl.get_proper_path(
            '/workspace/data/IEX/') + 'master_sector_industry.csv'
        self.iex_html_path = OSMuxImpl.get_proper_path(
            '/workspace/data/IEX/html/')
        self.co_earnings_path = OSMuxImpl.get_proper_path(
            '/workspace/data/IEX/earnings/')
コード例 #2
0
    def __init__(self, tickers, writer_filename=None):

        self.tickers = tickers
        self.writer_filename = writer_filename
        self.logger = get_logger()
        self.source = 'simfin'
        self.api_key = SecureKeysAccess.get_vendor_api_key_static(
            vendor=str.upper(self.source))
        self.simfin_pwd = OSMuxImpl.get_proper_path('/workspace/data/simfin/')
        if writer_filename is not None:
            self.writer = self.get_writer(self.simfin_pwd + writer_filename)
        else:
            self.writer = None
        self.sim_ids = self.get_sim_ids(tickers)
コード例 #3
0
    def __init__(self, timeseries):

        self.logger = get_logger()

        self.is_stationary = False
        self.timeseries = timeseries
        self.df_output = None

        self.classical_decomp_result_obj = None
        self.seasonal_classical_decomp = None
        self.trend_classical_decomp = None
        self.residuals_classical_decomp = None

        self.stl_result_obj = None
        self.trend_stl_decomp = None
        self.seasonal_stl_decomp = None
        self.residuals_stl_decomp = None

        self.df_test_exception = None
コード例 #4
0
    def __init__(self, **kwargs):

        self.logger = get_logger()
        self.file_mod_time_dict = {}
        self.symbols = None
        self.start_date = ""
        self.end_date = ""
        self.source = "tiingo"
        self.api_key = SecureKeysAccess.get_vendor_api_key_static(
            vendor=str.upper(self.source))

        for key, value in kwargs.items():

            if key == 'symbols':
                self.symbols = value
                self.logger.info("TiingoDataObject.__init__.symbols: %s",
                                 str(self.symbols))
            elif key == 'start_date':
                self.start_date = value
                self.logger.info("TiingoDataObject.__init__.start_date: %s",
                                 str(self.start_date))
            elif key == 'end_date':
                self.end_date = value
                self.logger.info("TiingoDataObject.__init__.end_date: %s",
                                 str(self.end_date))
            elif key == 'source':
                self.source = value
                self.logger.info("TiingoDataObject.__init__.source: %s",
                                 str(self.source))

        self.get_px_all_tiingo = lambda x: web.get_data_tiingo(
            x,
            start='2010-01-01',
            end=str(pd.to_datetime('today')).split(' ')[0],
            api_key=self.api_key)
        self.all_px_df = None
        self.local_tiingo_data_path = '/workspace/data/tiingo/stocks/'
        self.local_file_type = '.csv'
        self.local_data_file_pwd = OSMuxImpl.get_proper_path(
            self.local_tiingo_data_path)
コード例 #5
0
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, DECIMAL, DateTime
from sqlalchemy.sql import text
from sqlalchemy.orm.query import Query
from sqlalchemy.exc import OperationalError
from sqlalchemy.dialects.mysql import insert
from sqlalchemy.orm import defer
from sqlalchemy.orm import undefer, load_only
import pandas as pd
from datetime import datetime, date
from zipfile import ZipFile
from root.nested.SysOs.os_mux import OSMuxImpl
from root.nested import get_logger
from root.nested.dataAccess.secure_keys_access import SecureKeysAccess

LOGGER = get_logger()
Base = declarative_base()
LOCAL_NOMINAL_YIELD_CURVE_XSD_ZIP_LOC = "/workspace/data/treasurygov/xsd/zips/"
LOCAL_NOMINAL_YIELD_CURVE_XSD_LOC = '/workspace/data/treasurygov/xsd/'

XSD_ZIP_DIR_PATH = 'DailyTreasuryYieldCurveRateData.xsd/'
LOCAL_NOMINAL_YIELD_CURVE_XSD = 'DailyTreasuryYieldCurveRateData.xsd'
LOCAL_NOMINAL_YIELD_CURVE_XML_LOC = '/workspace/data/treasurygov/xmlfiles/'
LOCAL_TREASURY_GOV_DATA_PATH = "/workspace/data/treasurygov/"
REMOTE_XSD_LOCATION = "https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Documents/" \
                      "DailyTreasuryYieldCurveRateData.xsd.zip"
LOCAL_XML_PARSE_ERROR_LOG = "/workspace/data/treasurygov/logs/xml_errors.log"
BATCH_HISTORICAL_XML_FILENAME = "DailyTreasuryYieldCurveRateData-Historical.xml"
USTY_NOMYC_PYPARSE_TABLE = 'usty_nom_yc_pyparse'
DURATION_TO_DBCOL_MAPPING = {
    1: 'BC_1MONTH',
コード例 #6
0
ファイル: hacker_stats.py プロジェクト: gmahjub/stealthebasis
    def __init__(self, **kwargs):

        self.logger = get_logger()
        return super().__init__(**kwargs)
コード例 #7
0
ファイル: stats_tests.py プロジェクト: gmahjub/stealthebasis
class StatsTests(object):

    LOGGER = get_logger()

    def __init__(self):

        StatsTests.LOGGER.info("StatsTests.__init__(): running function...")

    @staticmethod
    def ks_test_example(mean_of_norm_dist=0.0,
                        std_norm_dist=1.0,
                        size_dist=10000):

        x = np.random.normal(loc=mean_of_norm_dist,
                             scale=std_norm_dist,
                             size=size_dist)
        print(np.mean(x), np.std(x))
        plt.hist(x, bins=int(np.ceil(np.sqrt(size_dist))))
        ks_test_stat_np, p_value_np = stats.kstest(rvs=x,
                                                   cdf='norm',
                                                   args=(mean_of_norm_dist,
                                                         std_norm_dist),
                                                   N=size_dist)
        plt.title("np.random.normal \n ks_test_stat = " +
                  str(ks_test_stat_np) + "\n p_value = " + str(p_value_np))
        plt.show()
        z = stats.norm.rvs(loc=mean_of_norm_dist,
                           scale=std_norm_dist,
                           size=size_dist)
        print(np.mean(z), np.std(z))
        ks_test_stat_sp, p_value_sp = stats.kstest(rvs=z,
                                                   cdf='norm',
                                                   args=(mean_of_norm_dist,
                                                         std_norm_dist),
                                                   N=size_dist)
        plt.hist(z, bins=int(np.ceil(np.sqrt(size_dist))))
        plt.title("Stats.norm.rvs \n ks_test_stat = " + str(ks_test_stat_sp) +
                  "\n p_value = " + str(p_value_sp))
        plt.show()
        # the KS Test Statistics is the difference in the Cumulative Relative
        # frequency between observed distribution and the theoretical distribution.
        # IE. the RVS distribution, and the theoretical CDF (params in caps).

    @staticmethod
    def ks_test(rvs, dist_size, cdf='norm'):

        mu = np.mean(rvs)
        sigma = np.std(rvs)
        theo_rvs = stats.norm.rvs(loc=mu, scale=sigma, size=dist_size)
        StatsTests.LOGGER.info(
            "StatsTest.ks_test(): RVS mean is %s, RVS StdDev is %s ", str(mu),
            str(sigma))
        args = (mu, sigma)
        ks_test_stat, p_value = stats.kstest(rvs=rvs,
                                             cdf='norm',
                                             args=args,
                                             N=dist_size)
        return ks_test_stat, p_value

    @staticmethod
    def shapiro_test(returns):
        # using shapiro test, check to see if the returns distribution is normal
        shapiro_test_stat, p_value = stats.shapiro(returns)
        return shapiro_test_stat, p_value
コード例 #8
0
    def __init__(self, xlsx_file_name):

        self.logger = get_logger()
        self.workbook = load_workbook(xlsx_file_name)
コード例 #9
0
    def __init__(self):

        self.logger = get_logger()
コード例 #10
0
 def __init__(self):
     self._my_contract_details = {}
     self._my_historic_data_dict = {}
     self.logger = get_logger()
コード例 #11
0
 def __init__(self, queue_to_finish):
     self._queue = queue_to_finish
     self.status = STARTED
     self.logger = get_logger()
コード例 #12
0
    def __init__(self, new_symbols_dict=None):

        self.logger = get_logger()

        self.wilshire_tr_index_dict = {
            'Wilshire US Large-Cap Total Market Index': 'WILLLRGCAP'
        }
        self.baml_tr_fi_index_dict = {
            'ICE BofAML US High Yield Master II Total Return Index Value':
            'BAMLHYH0A0HYM2TRIV',
        }
        # reference: https://fred.stlouisfed.org/categories/32413
        self.baml_tr_fi_category_id = 32413
        # reference: https: // fred.stlouisfed.org / categories / 32255
        self.stock_market_indexes = 32255

        self.to_usd_sym_dict = {
            'AUD_USD_spot': 'BOE/XUDLADD',  # aussie dollar
            'CAD_USD_spot': 'BOE/XUDLCDD',  # canadian dollar
            'CNY_USD_spot': 'BOE/XUDLBK73',  # yuan (China)
            'DKK_USD_spot': 'BOE/XUDLDKD',  # danish krone
            'HKD_USD_spot': 'BOE/XUDLHDD',  # hong kong dollar
            'HUF_USD_spot': 'BOE/XUDLBK35',  # hungarian forint
            'INR_USD_spot': 'BOE/XUDLBK64',  # indian rupee
            'JPY_USD_spot': 'BOE/XUDLJYD',  # jp yen
            'MYR_USD_spot': 'BOE/XUDLBK66',  # malaysian ringgit
            'NZD_USD_spot': 'BOE/XUDLNDD',  # new zealand dollar
            'NOK_USD_spot': 'BOE/XUDLNKD',  # norwegian krone
            'PLN_USD_spot': 'BOE/XUDLBK49',  # polish zloty
            'GBP_USD_spot': 'BOE/XUDLGBD',  # british pound
            'RUB_USD_spot': 'BOE/XUDLBK69',  # russian ruble
            'SAR_USD_spot': 'BOE/XUDLSRD',  # saudi riyal
            'SGD_USD_spot': 'BOE/XUDLSGD',  # singapore dollar
            'ZAR_USD_spot': 'BOE/XUDLZRD',  # south african rand
            'KRW_USD_spot': 'BOE/XUDLBK74',  # south korean won
            'SEK_USD_spot': 'BOE/XUDLSKD',  # swedish krona
            'CHF_USD_spot': 'BOE/XUDLSFD',  # swiss franc
            'TRY_USD_spot': 'BOE/XUDLBK75',  # turkish lira,
            'BRZ_USD_spot': 'BOE/XUDLB8KL',  # brazilian real
            'NIS_USD_spot': 'BOE/XUDLBK65',  # israeli shekyl
            'CZK_USD_spot': 'BOE/XUDLBK27',  # czech koruna
            'EUR_USD_spot': 'BOE/XUDLERD'  # euro
        }

        self.to_eur_sym_dict = {
            'PLN_EUR_spot': 'BOE/XUDLBK48',
            'GBP_EUR_spot': 'BOE/XUDLSER',
            'CZK_EUR_spot': 'BOE/XUDLBK26',
            'JPY_EUR_spot': 'BOE/XUDLBK63',
            'DKK_EUR_spot': 'BOE/XUDLBK76'
        }

        self.to_gbp_sym_dict = {
            'TRY_GBP_spot': 'BOE/XUDLBK95',  # turkish lira
            'NIS_GBP_spot': 'BOE/XUDLBK78',  # israeli shekyl
            'DKK_GBP_spot': 'BOE/XUDLDKS',  # danish krone
            'CNY_GBP_spot': 'BOE/XUDLBK89',  # china yuan
            'CAD_GBP_spot': 'BOE/XUDLCDS',  # canadian dollar
            'INR_GBP_spot': 'BOE/XUDLBK97',  # indian rupee
            'SEK_GBP_spot': 'BOE/XUDLSKS',  # swedish krona
            'EUR_GBP_spot': 'BOE/XUDLERS',  # euro
            'CHF_GBP_spot': 'BOE/XUDLSFS',  # swiss franc
            'RUB_GBP_spot': 'BOE/XUDLBK85',  # russian ruble
            'NZD_GBP_spot': 'BOE/XUDLNDS',  # new zealand dollar
            'SGD_GBP_spot': 'BOE/XUDLSGS',  # singapore dollar
            'AUD_GBP_spot': 'BOE/XUDLADS',  # australian dollar
            'KRW_GBP_spot': 'BOE/XUDLBK93',  # south korean won
            'PLN_GBP_spot': 'BOE/XUDLBK47'  # polish zloty
        }

        self.gdp_sym_dict = {
            'US_QUARTERLY_REAL_GDP_VALUE_SEAS_ADJ': 'FRED/GDPC1',
            'US_QUARTERLY_REAL_GDP_ANNUAL_RATE_SEAS_ADJ':
            'FRED/A191RL1Q225SBEA'
        }

        self.quandl_INTEREST_RATE_symbols_dict = {
            'US_TGT_FED_FUNDS(UPPER_LIMIT)': 'FRED/DFEDTARU',
            'US_EFFECTIVE_FED_FUNDS': 'FRED/DFF',
            'US_TREASURY_YIELD_CURVE': 'USTREASURY/YIELD'
        }

        self.quandl_FED_FORECAST_symbols_dict = {
            'US_10YR_TRY_BOND_MEDIAN_VALUES_FORECAST': 'FRBP/TBOND_MD'
        }

        self.cpi_deflator_sym_dict = {
            'US_CPI_U_ALL_SEAS_ADJ':
            'FRED/CPIAUCSL',
            'US_CPI_U_ALL_MINUS_FOOD_ENERGY_SEAS_ADJ':
            'FRED/CPILFESL',
            'US_CPI_U_HOUSING_SEAS_ADJ':
            'BLSI/CUSR0000SAH',
            'US_CPI_U_COMMODITIES_SEAS_ADJ':
            'BLSI/CUSR0000SAC',
            'US_CPI_U_ENERGY_SEAS_ADJ':
            'BLSI/CUSR0000SA0E',
            'US_CPI_U_ELECTRICITY_SEAS_ADJ':
            'BLSI/CUSR0000SEHF01',
            'US_CPI_U_FOOD_BEVERAGES_SEAS_ADJ':
            'BLSI/CUSR0000SAF',
            'US_CPI_U_PUBLIC_TRANS_SEAS_ADJ':
            'BLSI/CUSR0000SETG',
            'US_CPI_U_AIRLINE_FARE_SEAS_ADJ':
            'BLSI/CUSR0000SETG01',
            'US_CPI_U_GASOLINE_SEAS_ADJ':
            'BLSI/CUSR0000SETB01',
            'US_CPI_U_UTILITIES_PUBLIC_TRANS_SEAS_ADJ':
            'BLSI/CUSR0000SAS24',
            'US_CPI_U_MEDIAN_PCT_CHANGE_SEAS_ADJ':
            'MEDCPIM157SFRBCLE',
            'US_CPI_U_MEDIAN_ANNUALIZED_PCT_CHANGE_SEAS_ADJ':
            'FRED/MEDCPIM158SFRBCLE',
            'US_CPI_U_MEDIAN_Y_OVER_Y_PCT_CHANGE_SEAS_ADJ':
            'FRED/MEDCPIM157SFRBCLE'
        }

        self.pce_deflator_sym_dict = {
            'US_PCE_ANNUAL_RATE_SEAS_ADJ': 'FRED/PCE',
            'US_REAL_PCE_ANNUAL_RATE_SEAS_ADJ': 'FRED/PCEC96',
            'US_PCE_CORE_MINUS_FOOD_ENERGY_SEAS_ADJ': 'FRED/PCEPILFE'
        }

        self.quandl_ECONOMIC_INDICATORS_SEAS_ADJ_symbols_dict = {
            'US_REAL_DPI_ANNUAL_RATE_SEAS_ADJ':
            'FRED/DSPIC96',
            'US_PPI_FD_SEAS_ADJ':
            'FRED/PPIFIS',
            'US_PPI_FD_GOODS_SEAS_ADJ':
            'FRED/PPIDGS',
            'US_PPI_FD_ENERGY_SEAS_ADJ':
            'FRED/PPIFDE',
            'US_PPI_FD_LESS_FOODS_ENERGY_SEAS_ADJ':
            'FRED/PPIFES',
            'US_PPI_FD_SERVICES_SEAS_ADJ':
            'FRED/PPIDSS',
            'US_PPI_FD_CONSTR_SEAS_ADJ':
            'FRED/PPIDCS',
            'US_PPI_FD_FINISHED_GOODS_SEAS_ADJ':
            'FRED/WPSFD49207',
            'US_PPI_FD_FINISHED_CORE_SEAS_ADJ':
            'FRED/WPSFD4131',
            'US_EMPLOYMENT_SEAS_ADJ':
            'FRED/PAYEMS',
            'US_AVG_WEEKLY_HOURS_SEAS_ADJ':
            'FRED/AWHAETP',
            'US_AVG_WEEKLY_EARNINGS_SEAS_ADJ':
            'FRED/CES0500000003',
            'US_WEEKLY_JOBLESS_CLAIMS_SEAS_ADJ':
            'FRED/ICSA',
            'US_ECOMMERCE_RETAIL_SALES_PCT_TOTAL_SALES_QRTLY_SEAS_ADJ':
            'FRED/ECOMPCTSA',
            'US_RETAIL_SALES_RETAIL_EXCLUDING_FOOD_SERVICES_SEAS_ADJ':
            'FRED/FSXFS',
            'US_RETAIL_ECOMMERCE_SALES_SEAS_ADJ':
            'FRED/ECOMSA',
            'US_RETAIL_RETAILER_SALES_SEAS_ADJ':
            'FRED/RETAILSMSA',
            'US_RETAIL_RETAILERS_INVENTORIES_TO_SALES_RATIOS_SEAS_ADJ':
            'FRED/RETAILIRSA',
            'US_RETAIL_SALES_RETAIL_FOOD_SERVES_EXCLUDING_MOTOR_VEHICLES_PARTS_SEAS_ADJ':
            'FRED/RSFSXMV',
            'US_RETAIL_SALES_CLOTHING_SEAS_ADJ':
            'FRED/RSCCAS',
            'US_RETAIL_SALES_FURNITURE_SEAS_ADJ':
            'FRED/RSFHFS',
            'US_RETAIL_SALES_DEPARTMENT_STORES_SEAS_ADJ':
            'FRED/RSDSELD',
            'US_RETAIL_SALES_MOTOR_VEHICLE_DEALERS_SEAS_ADJ':
            'FRED/RSMVPD',
            'US_RETAIL_SALES_ELECTRONICS_APPLIANCES_STORES_SEAS_ADJ':
            'FRED/RESEAS',
            'US_RETAIL_SALES_GASOLINE_STATIONS_SEAS_ADJ':
            'FRED/RSGASS',
            'US_RETAIL_SALES_NON_STORE_RETAILERS_SEAS_ADJ':
            'FRED/RSNSR',
            'US_RETAIL_SALES_SPORTING_GOODS_HOBBY_BOOK_MUSIC_STORES_SEAS_ADJ':
            'FRED/RSSGHBMS',
            'US_IP_SEAS_ADJ':
            'FRED/INDPRO',
            'US_IP_MANUFACTURING(NAICS)_SEAS_ADJ':
            'FRED/IPMAN',
            'US_IP_MINING_CRUDE_OIL_SEAS_ADJ':
            'FRED/IPG211111CS',
            'US_IP_DURABLE_CONSUMER_GOODS_SEAS_ADJ':
            'FRED/IPDCONGD',
            'US_IP_ELECTRIC_GAS_UTIL_SEAS_ADJ':
            'FRED/IPUTIL',
            'US_IP_CONSUMER_GOODS_SEAS_ADJ':
            'FRED/IPCONGD',
            'US_ISM_MFG_PMI_SEAS_ADJ':
            'ISM/MAN_PMI',
            'US_ISM_MFG_PROD_INDEX_SEAS_ADJ':
            'ISM/MAN_PROD',  ## Diffusion_Index is the column
            'US_ISM_NON_MFG_INDEX_SEAS_ADJ':
            'ISM/NONMAN_NMI',
            'US_ISM_NON_MFG_PRICES_INDEX_SEAS_ADJ':
            'ISM/NONMAN_PRICES',  ##Diffusion_Index is the column
            'US_PHILY_FED_BUS_OUTLOOK_CURR_ACTIVITY_INDEX_SEAS_ADJ':
            'FRBP/GAC',
            'US_PHILY_FED_BUS_OUTLOOK_CURR_NEW_ORDERS_SEAS_ADJ':
            'FRBP/NOC',
            'US_PHILY_FED_BUS_OUTLOOK_FUT_NEW_ORDERS_SEAS_ADJ':
            'FRBP/NOF',
            'US_PHILY_FED_BUS_OUTLOOK_CURR_SHIPMENTS_SEAS_ADJ':
            'FRBP/SHC',
            'US_PHILY_FED_BUS_OUTLOOK_FUT_SHIPMENTS_SEAS_ADJ':
            'FRBP/SHF',
            'US_PHILY_FED_BUS_OUTLOOK_CURR_UNFILLED_ORDERS_SEAS_ADJ':
            'FRBP/UOC',
            'US_PHILY_FED_BUS_OUTLOOK_CURR_INVENTORIES_SEAS_ADJ':
            'FRBP/IVC',
            'US_PHILY_FED_BUS_OUTLOOK_FUT_INVENTORIES_SEAS_ADJ':
            'FRBP/IVF',
            'US_PHILY_FED_BUS_OUTLOOK_CURR_PRICES_PAID_SEAS_ADJ':
            'FRBP/PPC',
            'US_PHILY_FED_BUS_OUTLOOK_CURR_EMPLOYMENT_SEAS_ADJ':
            'FRBP/NEC',
            'US_PHILY_FED_BUS_OUTLOOK_CURR_AVG_WORKWEEK_SEAS_ADJ':
            'FRBP/AWC',
            'US_PHILY_FED_BUS_OUTLOOK_FUT_AVG_WORKWEEK_SEAS_ADJ':
            'FRBP/AWF',
            'US_PHILY_FED_BUS_OUTLOOK_FUT_ACTIVITY_INDEX_SEAS_ADJ':
            'FRBP/GAF',
            'US_PHILY_FED_BUS_OUTLOOK_FUT_EMPLOYMENT_SEAS_ADJ':
            'FRBP/NEF',
            'US_ARUOBA_DIEBOLD_SCOTTI_BUS_CORREL_INDEX_SEAS_ADJ':
            'FRBP/ADS_VINTAGES_MOSTRECENT'
        }

        self.quandl_ECONOMIC_INDICATORS_UNADJ_symbols_dict = {
            'US_CPI_U_ALL_UNADJ': 'FRED/CPIAUCNS',
            'US_CPI_U_ENERGY_UNADJ': 'BLSI/CUUR0000SA0E',
            'US_CPI_U_TRANS_UNADJ': 'BLSI/CUUR0000SAT',
            'US_CPI_U_ALL_UNADJ': 'BLSI/CUUR0000SA0',
            'US_CPI_U_FUES_UTILS_UNADJ': 'BLSI/CUUR0000SAH2',
            'US_CHAINED_CPI_U_ALL_UNADJ': 'BLSI/SUUR0000SA0',
            'US_PPI_UTILITIES': 'BLSI/PCU221_221',
            'US_PPI_MINING_MINUS_OILGAS': 'BLSI/PCU212_212',
            'US_PPI_COAL_MINING': 'FRED/PCU21212121',
            'US_PPI_OIL_GAS_EXTRACTION': 'BLSI/PCU211_211',
            'US_PPI_POWER_GEN_TRANS_DIST': 'BLSI/PCU2211_2211',
            'US_PPI_GOLD_SILVER_MINING': 'FRED/PCU2122221222',
            'US_PPI_NAT_GAS_DIST': 'FRED/PCU22122212',
            'US_PPI_CHEMICAL_MFG': 'FRED/PCU325325',
            'US_PPI_TRUCK_TRANS': 'FRED/PCU484484',
            'US_PPI_IRON_STEEL_MILLS': 'FRED/PCU331110331110',
            'US_PPI_GENERAL_FREIGHT_TRUCKING': 'FRED/PCU48414841',
            'US_PPI_FD_UNADJ': 'FRED/PPIFID',
            'US_PPI_FD_GOODS_UNADJ': 'FRED/PPIFDG',
            'US_PPI_FD_ENERGY_UNADJ': 'FRED/PPIFDE',
            'US_PPI_FD_LESS_FOODS_ENERGY_UNADJ': 'FRED/PPICOR',
            'US_PPI_FD_SERVICES_UNADJ': 'FRED/PPIFDS',
            'US_PPI_FD_CONSTR_UNADJ': 'FRED/PPIFDC',
            'US_PPI_GASOLINE': 'FRED/WPS0571',
            'US_PPI_INDUSTRIAL_CHEMICALS': 'FRED/WPU061',
            'US_PPI_LUMBER': 'FRED/WPU081',
            'US_PPI_DIESEL_FUEL': 'FRED/WPU057303',
            'US_PPI_CRUDE_PETROL': 'FRED/WPU0561',
            'US_PPI_TRUCK_TRANS_FREIGHT': 'FRED/WPU3012',
            'US_PPI_FD_FINISHED_GOODS_UNADJ': 'FRED/WPUFD49207',
            'US_PPI_FD_FINISHED_CORE_UNADJ': 'FRED/WPUFD4131',
            'US_PPI_ALL_COMMODITIES_UNADJ': 'FRED/PPIACO',
            'US_IP_MINING_CRUDE_OIL_UNADJ': 'FRED/IPG211111CN',
            'US_ISM_MFG_PRICES_INDEX_UNADJ': 'ISM/MAN_PRICES',
        }

        self.quandl_FOREX_symbols_dict_reversed = {
            'BOE/XUDLERD': 'EURO_USD_spot',
            'BOE/XUDLSER': 'STERLING_EURO_spot',
            'BOE/XUDLERS': 'EURO_STERLING_spot',
            'BOE/XUDLB8KL': 'BRZ_REAL_USD_spot',
            'BOE/XUDLBK95': 'TKY_LIRA_STERLING_spot',
            'BOE/XUDLBK89': 'CHN_YUAN_STERLING_spot',
            'BOE/XUDLBK97': 'IND_RUPEE_STERLING_spot',
            'BOE/XUDLBK93': 'SK_WON_STERLING_spot',
            'BOE/XUDLDKD': 'DANISH_KRONE_USD_spot',
            'BOE/XUDLDKS': 'DANISH_KRONE_STERLING_spot',
            'BOE/XUDLBK76': 'DANISH_KRONE_EURO_spot',
            'BOE/XUDLSGS': 'SGD_STERLING_spot',
            'BOE/XUDLSKS': 'SWD_KRONA_STERLING_spot',
            'BOE/XUDLBK48': 'PLD_ZLOTY_EURO_spot',
            'BOE/XUDLSFS': 'SUI_FRANC_STERLING_spot',
            'BOE/XUDLNDS': 'NZ_DOLLAR_STERLING_spot',
            'BOE/XUDLBK47': 'PLD_ZLOTY_STERLING_spot',
            'BOE/XUDLADS': 'AUD_STERLING_spot',
            'BOE/XUDLCDS': 'CAD_STERLING_spot',
            'BOE/XUDLCDD': 'CAD_USD_spot',
            'BOE/XUDLADD': 'AUD_USD_spot',
            'BOE/XUDLSGD': 'SGD_USD_spot',
            'BOE/XUDLBK75': 'TKY_LIRA_USD_spot',
            'BOE/XUDLBK66': 'MLY_RINGGIT_USD_spot',
            'BOE/XUDLBK35': 'HGY_FORNT_USD_spot',
            'BOE/XUDLBK73': 'YUAN_USD_spot',
            'BOE/XUDLBK69': 'RUBLE_USD_spot',
            'BOE/XUDLBK65': 'SHEKL_USD_spot',
            'BOE/XUDLBK63': 'YEN_EURO_spot',
            'BOE/XUDLBK85': 'RUBLE_STERLING_spot',
            'BOE/XUDLBK89': 'YUAN_STERLING_spot',
            'BOE/XUDLGBD': 'STERLING_USD_spot',
            'BOE/XUDLBK44': 'CZK_KORUNA_STERLING_spot',
            'BOE/XUDLBK26': 'CZK_KORUNA_EURO_spot',
            'BOE/XUDLBK78': 'SHEKL_STERLING_spot'
        }

        self.quandl_EURODOLLARS_symbols_dict = {
            'ED1_WHITE': 'CHRIS/CME_ED1',
            'ED2_WHITE': 'CHRIS/CME_ED2',
            'ED3_WHITE': 'CHRIS/CME_ED3',
            'ED4_WHITE': 'CHRIS/CME_ED4',
            'ED5_RED': 'CHRIS/CME_ED5',
            'ED6_RED': 'CHRIS/CME_ED6',
            'ED7_RED': 'CHRIS/CME_ED7',
            'ED8_RED': 'CHRIS/CME_ED8',
            'ED9_GREEN': 'CHRIS/CME_ED9',
            'ED10_GREEN': 'CHRIS/CME_ED10',
            'ED11_GREEN': 'CHRIS/CME_ED11',
            'ED12_GREEN': 'CHRIS/CME_ED12',
            'ED13_BLUE': 'CHRIS/CME_ED13',
            'ED14_BLUE': 'CHRIS/CME_ED14',
            'ED15_BLUE': 'CHRIS/CME_ED15',
            'ED16_BLUE': 'CHRIS/CME_ED16',
            'ED17_GOLD': 'CHRIS/CME_ED17',
            'ED18_GOLD': 'CHRIS/CME_ED18',
            'ED19_GOLD': 'CHRIS/CME_ED19',
            'ED20_GOLD': 'CHRIS/CME_ED20',
            'ED21_PURPLE': 'CHRIS/CME_ED21',
            'ED22_PURPLE': 'CHRIS/CME_ED22',
            'ED23_PURPLE': 'CHRIS/CME_ED23',
            'ED24_PURPLE': 'CHRIS/CME_ED24'
        }

        self.quandl_VIX_symbols_dict = {''}

        self.new_symbols_dict = new_symbols_dict
        self.local_quandl_forex_data_path = '/workspace/data/quandl/forex/'
        self.local_quandl_economic_indicators_data_path = '/workspace/data/quandl/economic_indcators/'
        self.local_quandl_interest_rate_data_path = '/workspace/data/quandl/interest_rates/'
        self.local_quandl_fed_forecasts_data_path = '/workspace/data/quandl/fed_forecasts/'

        self.local_yahoo_data_path = '/workspace/data/yahoo/'
        self.local_misc_data_path = '/workspace/data/'
        self.local_stock_data_path = '/workspace/data/quandl/stocks/'

        self.path_to_local_gdp_data = '/workspace/data/quandl/gdp/'

        self.quandl_auth_token = "vGeP2BmzAigd5D1PRDk_"

        self.quandl_data_class_mapper = {
            'FOREX_TO_USD':
            [self.to_usd_sym_dict, self.local_quandl_forex_data_path],
            # 'FOREX':[self.quandl_FOREX_symbols_dict,self.local_quandl_forex_data_path],
            'EURODOLLARS': [
                self.quandl_EURODOLLARS_symbols_dict,
                self.local_quandl_interest_rate_data_path
            ],
            'INTEREST_RATES': [
                self.quandl_INTEREST_RATE_symbols_dict,
                self.local_quandl_interest_rate_data_path
            ],
            'ECONOMIC_INDICATORS_UNADJ': [
                self.quandl_ECONOMIC_INDICATORS_UNADJ_symbols_dict,
                self.local_quandl_economic_indicators_data_path
            ],
            'ECONOMIC_INDICATORS_SEAS_ADJ': [
                self.quandl_ECONOMIC_INDICATORS_SEAS_ADJ_symbols_dict,
                self.local_quandl_economic_indicators_data_path
            ],
            'FED_FORECASTS': [
                self.quandl_FED_FORECAST_symbols_dict,
                self.local_quandl_fed_forecasts_data_path
            ],
            'MISC': [self.local_misc_data_path],
            'STOCKS': [self.local_stock_data_path],
            'GDP': [self.gdp_sym_dict, self.path_to_local_gdp_data]
        }
コード例 #13
0
    def __init__(self):

        self.logger = get_logger()
        EClient.__init__(self, self)
コード例 #14
0
    def __init__(self):

        self.logger = get_logger()

        local_misc_data_path = '/workspace/data/'
        self.local_stock_universe_file_pwd = OSMuxImpl.get_proper_path(
            local_misc_data_path)

        stock_universe_file_name = 'IWB_holdings'
        self.stock_universe_file_type = '.csv'
        self.total_pwd_stock_universe_file = self.local_stock_universe_file_pwd + \
                                             stock_universe_file_name + self.stock_universe_file_type
        try:
            last_time_stock_universe_file_modified = os.path.getmtime(
                self.total_pwd_stock_universe_file)
        except FileNotFoundError:
            last_time_stock_universe_file_modified = ""

        russell_1000_stock_universe = 'Russ1K_holdings'
        self.total_pwd_russell1000 = self.local_stock_universe_file_pwd + \
                                     russell_1000_stock_universe + self.stock_universe_file_type
        try:
            last_time_russell_1000_stock_universe_file_modified = os.path.getmtime(
                self.total_pwd_russell1000)
        except FileNotFoundError:
            last_time_russell_1000_stock_universe_file_modified = ""

        russell_3000_stock_universe = 'Russ3K_holdings'
        self.total_pwd_russell3000 = self.local_stock_universe_file_pwd + \
                                     russell_3000_stock_universe + self.stock_universe_file_type
        try:
            last_time_russell_3000_stock_universe_file_modified = os.path.getmtime(
                self.total_pwd_russell3000)
        except FileNotFoundError:
            last_time_russell_3000_stock_universe_file_modified = ""

        nq_100_stock_universe = 'NQ100'
        self.total_pwd_nq100 = self.local_stock_universe_file_pwd + \
                               nq_100_stock_universe + self.stock_universe_file_type
        try:
            last_time_nq_100_stock_universe_file_modified = os.path.getmtime(
                self.total_pwd_nq100)
        except FileNotFoundError:
            last_time_nq_100_stock_universe_file_modified = ""

        sp_500_stock_universe = 'SP500'
        self.total_pwd_sp500 = self.local_stock_universe_file_pwd + \
                               sp_500_stock_universe + self.stock_universe_file_type
        try:
            last_time_sp_500_stock_universe_file_modified = os.path.getmtime(
                self.total_pwd_nq100)
        except FileNotFoundError:
            last_time_sp_500_stock_universe_file_modified = ""

        dow_30_stock_universe = 'DOW30'
        self.total_pwd_dow30 = self.local_stock_universe_file_pwd + \
                               dow_30_stock_universe + self.stock_universe_file_type
        try:
            last_time_dow_30_stock_universe_file_modified = os.path.getmtime(
                self.total_pwd_nq100)
        except FileNotFoundError:
            last_time_dow_30_stock_universe_file_modified = ""

        russ_2k_stock_universe = 'R2K'
        self.total_pwd_r2k = self.local_stock_universe_file_pwd + \
                             russ_2k_stock_universe + self.stock_universe_file_type
        try:
            last_time_r2k_stock_universe_file_modified = os.path.getmtime(
                self.total_pwd_r2k)
        except FileNotFoundError:
            last_time_r2k_stock_universe_file_modified = ""

        self.last_modified_times = {
            stock_universe_file_name: last_time_stock_universe_file_modified,
            russell_3000_stock_universe:
            last_time_russell_3000_stock_universe_file_modified,
            russell_1000_stock_universe:
            last_time_russell_1000_stock_universe_file_modified,
            russ_2k_stock_universe: last_time_r2k_stock_universe_file_modified,
            nq_100_stock_universe:
            last_time_nq_100_stock_universe_file_modified,
            sp_500_stock_universe:
            last_time_sp_500_stock_universe_file_modified,
            dow_30_stock_universe:
            last_time_dow_30_stock_universe_file_modified
        }

        self.stock_universe_download_func = {
            stock_universe_file_name: self.download_stock_universe,
            russell_1000_stock_universe:
            self.download_russell_1000_stock_universe,
            russell_3000_stock_universe:
            self.download_russell_3000_stock_universe,
            russ_2k_stock_universe: self.download_r2k_holdings_symbol_list,
            nq_100_stock_universe: self.download_nq100_holdings_symbol_list,
            sp_500_stock_universe: self.download_sp500_holdings_symbol_list,
            dow_30_stock_universe: self.download_dow30_holdings_symbol_list
        }
コード例 #15
0
'''
Created on Nov 15, 2017

@author: traderghazy
'''
from root.nested import get_logger

logger = get_logger()

import pandas as pd, numpy as np
from statsmodels.tsa.stattools import adfuller, acf, pacf, arma_order_select_ic
from statsmodels.tsa.arima_model import ARIMA
from statsmodels.tsa.seasonal import seasonal_decompose
from sklearn.metrics import mean_squared_error
from matplotlib import pyplot
from scipy import stats
from root.nested.dataAccess.quandl_data_object import QuandlDataObject
from root.nested.timeSeriesAnalysis.extendARIMA.arima_module import ArimaObject
from root.nested.timeSeriesAnalysis.extendARIMA.arima_module import ArimaOrder
## put this in to ignore warnings in evaluation of ARIMA
import warnings
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
from math import sqrt
from root.nested.timeSeriesAnalysis.stationary import StationaryObj

warnings.filterwarnings("ignore")
########################################################

from matplotlib.pylab import rcParams

rcParams['figure.figsize'] = 15, 6