Дипломная работа: Влияние индекса волатильности на динамику цен активов на примере российского фондового рынка

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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)

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_2.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()

Источник: https://otherreferats.allbest.ru/download/1225864/

Смотрите также:

5073
Журналист как профессия. методические указания к практическим занятиям для студентов направления 42.03.02 «Журналистика». Безатосная О.М., Кушнир К.И
Концепція планування потреб та ресурсів та засновані на них логістичні системи. Особливості їх використання
Курсовая работа Web, Матвиенко. Вариант 0033 д3
Непрямое электрохимическое окисление ароматических органических соединений в локальных промышленных стоках (90
Отчет о практике на фку ук уфсин рф по Смоленской области Смоленск 2014 Содержание Введение
Повышение уровня речевой культуры студентов как ключевой фактор их личностного и профессионального роста
Проектирование домена и развертывание Active Directory для 'КПО Карачаганак'
Содержание гражданско-правового образования: история и современность
Технико-экономическая оценка объемно-планировочного и конструктивного решений зданий. метод. указания. Савченко Ф.М., Семенова Э.Е