Skip to content

Instantly share code, notes, and snippets.

Avatar

Robert Carver robcarver17

View GitHub Profile
View kings_college.py
import matplotlib
matplotlib.use("TkAgg")
import matplotlib.pyplot as plt
from scipy.optimize import minimize
import numpy as np
import scipy.stats as stats
from scipy.stats import norm
View random.py
import matplotlib
matplotlib.use("TkAgg")
matplotlib.rcParams.update({'font.size': 22})
from matplotlib.pyplot import hist, plot
import pandas as pd
import numpy as np
from syscore.dateutils import BUSINESS_DAYS_IN_YEAR, ROOT_BDAYS_INYEAR
from syscore.accounting import accountCurveSingleElementOneFreq as accountCurve
def arbitrary_timeindex(Nperiods, index_start=pd.datetime(2000, 1, 1)):
View dynamic.py
"""
The starter system has the following features:
- single market
- binary forecast from simple MAV
- exit from trailing stop loss
- fixed positions once in trade
"""
View heuristic correlations.py
### Following code is boilerplate for optimising
import matplotlib
matplotlib.use("TkAgg")
import pandas as pd
from scipy.optimize import minimize
import numpy as np
from scipy.stats import norm
from collections import namedtuple
def optimise_for_corr_matrix(corr_matrix):
@robcarver17
robcarver17 / scratch_16.py
Last active Nov 3, 2020
get system risk
View scratch_16.py
import pandas as pd
import numpy as np
def get_positions_as_proportion_of_capital(system):
list_of_instruments = system.get_instrument_list()
positions = [system.portfolio.get_actual_position(instrument_code) for instrument_code in list_of_instruments]
positions = pd.concat(positions, axis=1)
positions.columns = list_of_instruments
positions[positions.isna()] = 0.0
View scratch_16.py
import matplotlib
matplotlib.use("TkAgg")
import matplotlib.pyplot as plt
import scipy.stats as stats
import numpy as np
def plot_results_for_bin_size(size, pd_result, centre_on_mean = False):
bins = get_bins_for_size(size, pd_result, centre_on_mean = centre_on_mean)
View get_expected_risk.py
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)
View portfolio_construction.py
#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):
View Create a bunch of trading rules for skew and kurtosis
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
View temp.py
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]