Example #1
0
import OptimizationFile
import Date_Gen as dg
import CovarianceCalc_updated
import Read_Data as rd
import TrendIndcatorCal
import RegionalFactor
import tvcw
import calendar

incep_date = pd.to_datetime('2014-05-20')
data_incep_date = pd.to_datetime('2013-05-8')
end_date = pd.to_datetime('2014-05-25')
#calDate = pd.to_datetime('2014-05-16')
#calDate = pd.to_datetime('2013-05-10')
"""Input Data"""
df_input_px, df_input_div, df_reg_factor, df_descrip, df_tax, sr_trading_days = rd.read_data(
    data_incep_date, end_date)
"""Cleaning Data"""
""" Cleaning data to replace nan with previous day value"""
df_input_clean = df_input_px.fillna(method='pad')
"""reading long term Vol"""
LongTermVol = np.transpose(np.array(df_descrip.loc[:, "Long_Term_Volatility"]))
"""reading Gap"""
Gap = np.transpose(np.array(df_descrip.loc[:, "Gap"]))
"""reading max and minimum"""
minWeight = df_descrip.loc[:, "MinWeight_EF"]
maxWeight = df_descrip.loc[:, "MaxWeight_EF"]
weigthTuple = []
for k in range(0, len(minWeight)):
    a = minWeight.iloc[k]
    b = maxWeight.iloc[k]
    weigthTuple.append((a, b))
import pandas as pd
import numpy as np
import Read_Data
import datetime
""" Defining BT period """
incep_date = pd.to_datetime('2011-01-05')  #inceptiondate for index is fixed
end_date = pd.to_datetime(
    input("Enter date in backtest end date in YYYY-MM-DD format: ")
)  #Taking end date of BT from user
next_opendate = pd.to_datetime(
    input("Enter date next Opendate in YYYY-MM-DD format: "))

print("Start and End Date defined")  #printing status on console
"""Reading data"""
df_input_px, df_mapping, df_rebal_details, df_input_CD, df_input_CAo = Read_Data.read_data(
    incep_date, end_date)
"""FX conversion methodology"""
df_FX_conv_method = pd.DataFrame(
    columns=["FX", "Ticker", "Methodology", "Factor"])
df_FX_conv_method["FX"] = df_mapping["Currency"]
df_FX_conv_method["Ticker"] = df_mapping["Ccy_mapping"]
df_FX_conv_method.set_index("FX", inplace=True)
df_FX_conv_method.drop_duplicates(inplace=True)

for curncy in df_FX_conv_method.index:
    if curncy[-1].islower():
        df_FX_conv_method.loc[curncy, "Factor"] = 100
    else:
        df_FX_conv_method.loc[curncy, "Factor"] = 1
    if df_FX_conv_method.loc[curncy, "Ticker"][:3] == "USD":
        df_FX_conv_method.loc[curncy, "Methodology"] = "inverse"