Der Systemhandel validiert Strategien basierend auf historischen Aktienkursdaten.
Die folgenden Überprüfungsergebnisse sind beispielsweise die Überprüfungsergebnisse einer bestimmten Bestellung.
Es handelt sich jedoch nur um eine Bewertung in einem Szenario.
Daher habe ich Python verwendet, um die Ergebnisse mehrerer Simulationen der Gewinnrate, der Gewinnrate, der Gewinn- / Verlustrate und der Höhe der Mittel der abgeschlossenen Strategie auszuwerten.
#Einführung der Bibliothek
import pandas as pd
import matplotlib.pyplot as plt
import random
#Funktion zur Auswertung
#Vermögenswert Anfangskapital
#Welchen Prozentsatz des Einsatzkapitals soll investiert werden?
#Wahrscheinlichkeit Gewinnrate
#durchschnittliche Gewinnspanne gewinnen
#Verlust durchschnittliche Verlustrate
#Transaktion Anzahl der Transaktionen
def sim(asset, bet, probability, win, loss, transaction):
result = []
for i in range(transaction):
#Gewinnen Sie, wenn die Zufallszahl unter der Gewinnrate liegt
if random.random() < probability:
#Das Vermögen erhöht sich um die durchschnittliche Gewinnspanne multipliziert mit dem Input-Vermögen.
#Diesmal handelt es sich um einen Zinseszins, aber wenn Sie diesen Bereich ändern, können Sie ihn zu einem einfachen Zins machen.
asset = asset + (asset * bet * win)
#Wenn Sie verlieren, sinkt die durchschnittliche Verlustrate multipliziert mit dem investierten Vermögen.
else:
asset = asset - (asset * bet * loss)
#Transaktionsergebnisse in einer Liste speichern.
result.append(asset)
return result
#Bewertungsfunktion 2
def mon(asset, bet, probability, win, loss, transaction=100, test=1):
df = pd.DataFrame()
#Rufen Sie die Auswertungsfunktion für die Anzahl der Versuche auf und speichern Sie sie im Datenrahmen.
for i in range(test):
df[i] = sim(asset, bet, probability, win, loss, transaction)
#Grafikanzeige
#Einstellungen für Hilfsleitungen
xmin = -3
xmax = transaction
#Einstellung der Bluffgröße
plt.figure(figsize=(25, 15), dpi=50)
plt.plot(df)
#Einstellung der Hilfsleitung
plt.hlines([asset], xmin, xmax, "blue")
plt.show()
#Anzeige statistischer Elemente
print(df.iloc[transaction - 1].describe())
#Geldbetrag 300, Risiko 20%, Gewinnrate 61.54% durchschnittliche Gewinnspanne 5.83% durchschnittliche Verlustrate 4.63% Lassen Sie uns mit 250 Trades und 300 Trials überprüfen.
mon(300, 0.2, 0.6154, 0.0583, 0.0463, 250, 300)
Wenn Sie sich das ansehen, können Sie sehen, dass es Fälle gibt, in denen die Gewinne nicht auf etwa 50 Transaktionen steigen.
In einer anderen Strategie
war.
Dies ist stabiler und das Vermögen wird steigen.
Dieses Mal extrahieren wir Werte wie die Gewinnrate und die durchschnittliche Gewinnrate aus der abgeschlossenen Strategie Ich weiß nicht, ob es statistisch gültig ist.
Was denkt ihr Leute?
Recommended Posts