Skip to content

Instantly share code, notes, and snippets.

View robcarver17's full-sized avatar

Robert Carver robcarver17

View GitHub Profile
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
#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):
from syslogdiag.ourlogging import logger
from math import copysign
def contracts_trade(total_trades, pos_priced, pos_forward, rolling=False):
"""
Given actual contracts decide what to trade
Note at this stage contracts are identified in as PRICE, FORWARD
Any rogue contracts not in that space would have been signalled / weeded out by now
# Gist example of IB wrapper ...
#
# Download API from http://interactivebrokers.github.io/#
#
# Install python API code /IBJts/source/pythonclient $ python3 setup.py install
#
# Note: The test cases, and the documentation refer to a python package called IBApi,
# but the actual package is called ibapi. Go figure.
#
# Get the latest version of the gateway:
# Gist example of IB wrapper ...
#
# Download API from http://interactivebrokers.github.io/#
#
# Install python API code /IBJts/source/pythonclient $ python3 setup.py install
#
# Note: The test cases, and the documentation refer to a python package called IBApi,
# but the actual package is called ibapi. Go figure.
#
# Get the latest version of the gateway:
import random
from copy import copy
def ishead():
result=random.uniform(0,1)
if result>=0.5:
return 1
else:
return 0
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
"""
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']
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):
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()