2016-05-08 6 views
0

Ich versuche eine Funktion zu erstellen, die bestimmte tägliche Renditen berechnet (d. H. 1,2,5,10 und 30-Tage-Renditen). Ich möchte eine andere Liste erstellen, die den richtigen Namen (d. H. Eine_day_return_list) enthält, die die Rückgaben für diesen bestimmten Zeitraum enthält.Wie erstelle ich jedes Mal eine neue Liste, wenn ich durch eine andere Liste iteriere und der neuen Liste einen Namen gebe, der das Element aus der ursprünglichen Liste enthält?

def calculate_returns(trading_day): 

    for i in [1,2,5,10,30]: 
     i_day_return = (closing_prices[(trading_day + i)] - closing_prices[(trading_day)])/closing_prices[(trading_day) 
     i_day_return_list.append(i_day_return_return) 

während der ersten Iteration, wo sollte i_day_return in one_day_return führen und i_day_return_list sollte in one_day_return_list führen. Irgendeine Ahnung, wie ich den obigen Pseudo-Code in einen tatsächlichen Code verwandeln kann?

Antwort

1

Normalerweise würden Sie die Elemente der Serie nicht "benennen", wie Sie es versuchen, sondern sie "nummerieren". Dies ist ein guter Anwendungsfall für eine dict. Wie folgt:

def calculate_returns(trading_day): 
    returns = {} 
    for i in (1,2,5,10,30): 
     returns[i] = random.random() 

    return returns 

Das Ergebnis davon wird eine Zuordnung von Zeithorizont zu Rückgabe sein.

+0

Ich versuche, die 1,2,5, 10 und 30-Tage-Renditen (nach einer bestimmten Konfiguration) aller S & P500-Komponenten zu berechnen. Daher möchte ich jeden der Periodenrenditen für jeden Bestandteil berechnen und ihn dann zu der spezifischen Liste hinzufügen (d. H. Eine_Zeit_Rücklaufliste). Dann kann ich die Durchschnittserträge berechnen, indem alle Rückgaben in den Listen summiert und durch ihre Längen dividiert werden. Kann dies erreicht werden, indem entweder eine Liste verwendet wird? oder ein Wörterbuch (und dann mit seinen Schlüsseln oder Werten arbeiten)? – DK1

Verwandte Themen