Мне нужно записать в csv
некоторые возвраты валюты после 2 событий (в основном, если столбец цены выше или ниже некоторых других вычислений).Проблема в том, что у меня есть 2 возможных результата, для покупок и продаж (каждый должен быть в отдельном листе в Excel), и после того, как произошли 2 события, я хочу знать доходность в течение следующих 20 дней.Таким образом, каждое «событие» (условия выполняются) должно быть добавлено в строку, а результаты 20 дней после «события» происходят каждый в столбце.
Так, например, если у меня есть 30 событий в части покупки и 30 событий в части продажи, у меня должно быть 2 листа в файле excel, и каждый со следующими заголовками «событие №» и 1,2,3,4 ... 20.
Файл будет содержать 31 строку (заголовок + 30 событий) и 21 столбец (Event
+ 20 ежедневных возвратов).
Я написалкод для всей программы, кроме той части, в которой я записываю результаты в файл excel.Надеюсь, кто-нибудь может мне помочь.Я исключил чтение входных файлов, потому что я знаю, как это сделать.Я также знаю, как писать в csv
, но в моем случае это немного сложнее и нуждается в помощи.Вот код, спасибо.
Пример вывода должен выглядеть следующим образом Пример вывода Здесь , лист продажи такой же.
Пример выходных данных:
Events 1_day_after 2_day_after 3_day_after 4_day_after
0 1 XXX XXX XXX XXX
1 2 XXX XXX XXX XXX
2 3 XXX XXX XXX XXX
3 4 XXX XXX XXX XXX
4 5 XXX XXX XXX XXX
count_first_event = 0
buy=0
results_buy = []
for x in range(2711):
#is the first condition meet?
if df.iloc[x,3]>df.iloc[x,5] and df.iloc[x+1,3]<df.iloc[x+1,5]:
count_first_event=count_first_event+1
class BreakIt(Exception): pass
try:
for y in range(20):
#is the second condition meet?
if df.iloc[x+y+1,3] <= df.iloc[x+y+1,6]:
buy=buy+1
for z in range(20):
#If we are here, just run the 20 times and then come back to the first FOR loop please!
results_buy.append(df.iloc[x+y+z+2,9])
if z==19:
raise BreakIt
except BreakIt:
pass
print (results_buy)