Hello all,
I try to calculate the VXV/VIX ratio but algo returns an error.
Could somebody explain me what is wrong with my code please ?
I'm new with Python and programming language in general, some experience with Metatrader.
Regards,
Flo
import pandas
def rename_col(df):
df = df.rename(columns={'CLOSE': 'price'})
df = df.rename(columns={'VIX Close': 'price'})
df = df.rename(columns={'Equity Put Volume': 'price'})
df = df.fillna(method='ffill')
df = df[['price', 'sid']]
# Correct look-ahead bias in mapping data to times
df = df.tshift(1, freq='b')
log.info(' \n %s ' % df.head())
return df
def initialize(context):
# import the external data
fetch_csv('http://www.quandl.com/api/v1/datasets/CBOEFE/INDEX_VXV.csv?trim_start=2012-01-01',
date_column='Date',
symbol='VXV',
post_func=rename_col,
date_format='%d-%m-%Y')
fetch_csv('http://www.quandl.com/api/v1/datasets/CBOEFE/INDEX_VIX.csv?trim_start=2012-01-01',
date_column='Date',
symbol='VIX',
post_func=rename_col,
date_format='%d-%m-%Y')
# SPX
context.stock = symbol('SPY')
def handle_data(context, data):
if (data['VXV'].price / data['VIX'].price > 1):
order_target_percent(context.stock, 1)
if (data['VXV'].price / data['VIX'].price < 1):
order_target_percent(context.stock, 0)
#record the variables
if 'price' in data['VIX']:
record(ratio = (data['VXV'].price / data['VIX'].price))