bench = []
for m in range(0,3):
for g in range(0,3):
for k in range(0, 1000):
prices = list(result_prices['price_'+str(k)])
var = list(result_vol['vol_'+str(k)])
i = start[g]
total = 0
comission = 0
trade=0
while (i<1255):
a = np.array(var[i-start[g]:i])
p = np.percentile(a, per)
ifvar[i]<p:
open_price = prices[i]
if (i+period[m])>len(prices)-1:
z = len(prices)-1
else:
z = i+period[m]
close_price = prices[z]
comission += open_price*fee+close_price*fee
total += (close_price-open_price)
i+=period[m]
trade+=1
i+=1
comissions.append(comission)
totals.append(total)
periods.append(period[m])
starts.append(start[g])
sample.append(k)
trades.append(trade)
bench.append(prices[-1]-prices[start[g]])
for m in range(0,3):
for g in range(0,3):
prices = list(data['rtsi'])
var = list(data['rvi'])
i = start[g]
total = 0
comission = 0
trade=0
while (i<1255):
a = np.array(var[i-start[g]:i])
p = np.percentile(a, per)
ifvar[i]<p:
open_price = prices[i]
if (i+period[m])>len(prices)-1:
z = len(prices)-1
else:
z = i+period[m]
close_price = prices[z]
comission += open_price*fee+close_price*fee
total += (close_price-open_price)
i+=period[m]
trade+=1
i+=1
comissions.append(comission)
totals.append(total)
periods.append(period[m])
starts.append(start[g])
sample.append('original')
trades.append(trade)
bench.append(prices[-1]-prices[start[g]])
df = pd.DataFrame({'total': totals,
'comission': comissions,
'period': periods,
'start': starts,
'sample': sample,
'trades': trades,
'bench': bench})
df['result'] = df['total']-df['comission']-df['bench']
FILE = 'results_1.xlsx'
writer = pd.ExcelWriter(FILE, engine = 'xlsxwriter')
for g in range(0,3):
for m in range(0,3):
temp=df.copy()
temp = temp[temp['start']==start[g]]
temp = temp[temp['period']==period[m]]
goal = temp[temp['sample']=='original']
temp = temp[temp['sample']!='original']
g_total = goal['total'].values[0]
g_result = goal['result'].values[0]
temp['p_value_total'] = (temp['total']>g_total)/1000
temp['p_value_result'] = (temp['result']>g_result)/1000
temp = temp.groupby(['start', 'period']).agg({'p_value_total':'sum',
'comission': 'max',
'sample': 'max',
'trades': 'max',
'bench': 'min',
'p_value_result': 'sum'})
temp = temp.reset_index()
temp = temp[['p_value_total', 'comission', 'period', 'start', 'sample', 'trades', 'bench', 'p_value_result']]
temp.columns = ['total', 'comission', 'period', 'start', 'sample', 'trades', 'bench', 'result']
temp = pd.concat([temp, goal], ignore_index=True, sort=False)
temp.to_excel(writer, sheet_name = (str(start[g])+' '+str(period[m])), index=False)
writer.save()
writer.close()
start = [100, 200, 300]
period = [20,40,60]
fee = 0.0001
per = 90
comissions = []
totals = []
periods = []
starts = []
sample = []
trades = []
bench = []
for m in range(0,3):
for g in range(0,3):
for k in range(0, 1000):
prices = list(result_prices['price_'+str(k)])
var = list(result_vol['vol_'+str(k)])
i = start[g]
total = 0
comission = 0
trade=0
while (i<1255):
a = np.array(var[i-start[g]:i])
p = np.percentile(a, per)
ifvar[i]>p:
open_price = prices[i]
if (i+period[m])>len(prices)-1:
z = len(prices)-1
else:
z = i+period[m]
close_price = prices[z]
comission += open_price*fee+close_price*fee
total += (close_price-open_price)
i+=period[m]
trade+=1
i+=1
comissions.append(comission)