Ich möchte K-nearest neighbour Algorithmus zu S & P 500 Index zu prognostizieren, zukünftige Preis und entwickeln quantitative Algorithmus Handelsmodell mit Python über scikit- Bibliothek lernen. Obwohl ich grundlegendes Verständnis von kNN-Algorithmus habe, bin ich ein kompletter Anfänger der maschinellen Lernprogrammierung mit Python, also würde ich mich freuen, wenn mir jemand helfen kann.k-nächsten Nachbarn (KNN) Algorithmus in S & P 500 Index mit Python implementiert
geht hier meine Simulation Logik
Nutzungsart: S & P-500-Index Monatspreis (investierbaren mit ETF)
Logic
den Preis Richtung des nächsten Monats Predict (aufwärts oder abwärts) basierend auf dem kNN-Algorithmus jedes Monatsende ----> vorhergesagt: Kauf S & P 500 Index, unten: Bargeld halten (Hypothetischen Index von 3% Jahresrendite)
Trainingsdatensatz: recent Roll 12 Monatsdaten (Trainingsdatensatz wird ständig geändert, wie die Zeit vergeht, wie im Fall von gleitendem Durchschnitt)
Unabhängige Variable : recent 3, 6, 9, 12 moth Gegenzug den letzten 12 Monate rollend Standardabweichung der Monatsrendite
Dependent Variable: return nächsten Monat ausgedrückt als positive oder negative
Hier ist mein Code. Ich könnte Basic-Dataset codieren, habe aber keine Ahnung von Coding-Hauptalgorithmus und Simulationslogik. Jeder kann diesen Code vervollständigen?
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import pandas_datareader.data as web
def price(stock, start):
price = web.DataReader(name=stock, data_source='yahoo', start=start)['Adj Close']
return price.div(price.iat[0]).resample('M').last().to_frame('price')
a = price('SPY','2000-01-01')
a['cash'] = [(1.03**(1/12))**x for x in range(len(a.index))]
a['R3'] = a.price/a.price.shift(3)
a['R6'] = a.price/a.price.shift(6)
a['R9'] = a.price/a.price.shift(9)
a['R12'] = a.price/a.price.shift(12)
a['rollingstd'] = a.price.pct_change().rolling(12).std()