This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from systems.provided.futures_chapter15.basesystem import * | |
sys = futures_system() | |
config = sys.config | |
del(config.instrument_weights) # ensures all instruments are used equally weighted | |
config.forecast_weights=dict(ewmac16_64=0.333, ewmac32_128=0.333, ewmac64_256=0.3333) | |
config.use_forecast_div_mult_estimates=True | |
config.use_instrument_div_mult_estimates=True | |
config.use_forecast_scale_estimates=False | |
system = futures_system(config=config) | |
acc = system.accounts.portfolio() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from sysdata.quandl.quandl_futures import quandlFuturesConfiguration, quandlFuturesContractPriceData | |
from sysdata.futures.contracts import listOfFuturesContracts | |
from sysdata.futures.instruments import futuresInstrument | |
from sysdata.mongodb.mongo_roll_data import mongoRollParametersData | |
import numpy as np | |
import pandas as pd | |
def get_roll_parameters_from_mongo(instrument_code): |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Get some data to test the handcrafting method | |
""" | |
from sysdata.csv.csv_sim_futures_data import csvFuturesSimData | |
from syscore.handcrafting import Portfolio | |
import pandas as pd | |
data=csvFuturesSimData() | |
code_list = ['BOBL', 'BUND', 'US10', 'US20', 'KR3','KR10','EDOLLAR', 'CORN', 'CRUDE_W', 'GAS_US'] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Implement the handcrafting method | |
This is 'self contained code' which requires wrapping before using in pysystemtrade | |
""" | |
## CAVEATS: | |
## Uses weekly returns (resample needed first) | |
## Doesn't deal with missing assets |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import matplotlib.pyplot as plt | |
import pandas as pd | |
import scipy.stats as stats | |
import numpy as np | |
from systems.provided.futures_chapter15.estimatedsystem import * | |
system = futures_system() | |
del(system.config.instruments) # so we can get results for everything |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import random | |
from copy import copy | |
def ishead(): | |
result=random.uniform(0,1) | |
if result>=0.5: | |
return 1 | |
else: | |
return 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from copy import copy | |
seq_length = 20 | |
def decimalToBinary(n): | |
# return padded binary number as list | |
binary_number_as_str=bin(n) | |
binary_number_as_str = binary_number_as_str[2:] | |
binary_number_as_str = binary_number_as_str.zfill(seq_length) | |
binary_number_as_list = [int(x) for x in binary_number_as_str] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import numpy as np | |
from systems.provided.futures_chapter15.basesystem import * | |
import numpy as np | |
from syscore.algos import robust_vol_calc | |
## test kurtosis AND skew with trading rules | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#import matplotlib | |
#matplotlib.use("TkAgg") | |
import matplotlib.pyplot as plt | |
from scipy.optimize import minimize | |
import numpy as np | |
### Following is the optimisation code: | |
### First the main function. | |
def optimise_with_sigma(sigma, mean_list): |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pandas as pd | |
import numpy as np | |
def get_expected_risk_for_system(system): | |
value_of_positions_proportion_capital = get_positions_as_proportion_of_capital(system) | |
instrument_returns = get_instrument_returns(system) | |
instrument_returns = instrument_returns.ffill().reindex(value_of_positions_proportion_capital.index) |