2017-11-14 3 views
0

Ich bin relativ neu in Pandas und versuche einen Crossover-Trading-Strategie-Backtest zu erstellen. Es lief gut, bis ich versuchte, die Rentabilität von Long-Trades durch Erstellen eines DataFrame zu erhalten. Ich bekomme weiterhin die Fehlermeldung "ValueError: Array-Länge 4 stimmt nicht mit Index-Länge 5 überein". Hier ist der Code, der mir Probleme gibt.Array-Länge 4 stimmt nicht überein Index Länge 5 Fehlermeldung

Dextera_long_profits = pd.DataFrame({ 
     "Price": Dextera_signals.loc[(Dextera_signals["Signal"] == "Buy") & 
            Dextera_signals["Regime"] == 1, "Price"], 
     "Profit": pd.Series(Dextera_signals["Price"] - Dextera_signals["Price"].shift(1)).loc[ 
      Dextera_signals.loc[(Dextera_signals["Signal"].shift(1) == "Buy") & (Dextera_signals["Regime"].shift(1) == 1)].index 
     ].tolist(), 
     "End Date": Dextera_signals["Price"].loc[ 
      Dextera_signals.loc[(Dextera_signals["Signal"].shift(1) == "Buy") & (Dextera_signals["Regime"].shift(1) == 1)].index 
     ].index 
    }) 
Dextera_long_profits 

print(Dextera_long_profits) 
+0

Ich würde vorschlagen, Ihren Code neu zu formatieren, damit es ein wenig lesbarer ist. –

+0

'&' hat eine höhere Priorität als '==', also vielleicht '(Dextera_signals [" Signal "] ==" Kaufen ") & Dextera_signals [" Regime "] == 1 'bewertet auf den falschen Wert? –

Antwort

0

Ich glaube, einer der .locs zurückkehrt 4 Werte statt 5. jede dieser Isolation Versuchen und Sie sollten in der Lage sein, zu bestimmen, welche der Täter ist.

Verwandte Themen