Ich habe die Strategie des Aktiensystemhandels mit Python evaluiert.

Der Systemhandel validiert Strategien basierend auf historischen Aktienkursdaten.

Die folgenden Überprüfungsergebnisse sind beispielsweise die Überprüfungsergebnisse einer bestimmten Bestellung. 【分析結果】_名前なし__7順張り250日20日_20191118_pdf(2___12ページ).jpg

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)

Untitled11_ipynb_-_Colaboratory.jpg

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

Untitled11_ipynb_-_Colaboratory.jpg

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

Ich habe die Strategie des Aktiensystemhandels mit Python evaluiert.
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe die grundlegende Grammatik von Python in Jupyter Lab geschrieben
Ich mochte den Tweet mit Python. ..
Ich habe die Geschwindigkeit von Hash mit Topaz, Ruby und Python verglichen
Ich habe versucht, das Ranking des Qiita-Adventskalenders mit Python zu kratzen
Ich möchte den Anfang des nächsten Monats mit Python ausgeben
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
Systemhandel ab Python3: langfristige Investition
Überprüfen Sie die Existenz der Datei mit Python
Ich kannte die Grundlagen von Python nicht
Die Python-Projektvorlage, an die ich denke.
Ich habe die numerische Berechnung von Python durch Rust ersetzt und die Geschwindigkeit verglichen
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Ich habe versucht, die Standardrolle neuer Mitarbeiter mit Python zu optimieren
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Ich habe die Geschwindigkeit der Listeneinschlussnotation für und während mit Python2.7 gemessen.
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Ich habe Hunderte Millionen SQLite mit Python ausprobiert
Bereiten Sie die Ausführungsumgebung von Python3 mit Docker vor
2016 Todai Mathematik mit Python gelöst
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
[Hinweis] Exportieren Sie das HTML der Site mit Python.
Berechnen Sie die Gesamtzahl der Kombinationen mit Python
Überprüfen Sie das Datum der Flaggenpflicht mit Python
Probieren Sie Progate Free Edition [Python I]
Ich habe versucht, das Bild mit Python + OpenCV zu "binarisieren"
Ich habe einige der neuen Funktionen von Python 3.8 touched angesprochen
Konvertieren Sie den Zeichencode der Datei mit Python3
[Python] Bestimmen Sie den Typ der Iris mit SVM
Systemhandel ab Python 3: Investition und Risiko
Ich habe Pygame mit Python 3.5.1 in der Umgebung von pyenv unter OS X installiert
Ich habe versucht, die Tweets von JAWS DAYS 2017 mit Python + ELK einfach zu visualisieren
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
Ich habe versucht, die Literatur des neuen Corona-Virus mit Python automatisch an LINE zu senden
der Zen von Python
[Rezept des Trainers] Ich habe die Flasche des Python-Frameworks berührt.
Ich habe versucht, TradeWave zu verwenden (BitCoin-Systemhandel in Python)
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Zerstören Sie den Zwischenausdruck der Sweep-Methode mit Python
[OpenCV / Python] Ich habe versucht, Bilder mit OpenCV zu analysieren
Ich habe versucht, Soma Cube mit Python zu lösen
Berechnen Sie den Regressionskoeffizienten der einfachen Regressionsanalyse mit Python
Ich habe mir die Versionen von Blender und Python angesehen
Ich möchte mit Python-Datenklasse nach hinten erben
Ich habe die Leistung von 1 Million Dokumenten mit mongoDB gemessen
Ein Memo, dass ich den Datenspeicher mit Python berührt habe
Zusammenfassung des grundlegenden Ablaufs des maschinellen Lernens mit Python
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Holen Sie sich mit Python den Betriebsstatus von JR West
Ich untersuchte den stärkenden Lernalgorithmus des Algorithmushandels
Ich habe versucht, das Bild mit Python + OpenCV "morphologisch zu konvertieren"
Ich habe versucht, die API mit dem Python-Client von echonest zu erreichen
Ich habe versucht, die String-Operationen von Python zusammenzufassen
Ich habe versucht, das Artikel-Update des Livedoor-Blogs mit Python und Selen zu automatisieren.
[Einführung in den Systemhandel] Ich habe einen Stochastic Oscillator mit Python gezeichnet und damit gespielt ♬
[Python & SQLite] Ich habe den erwarteten Wert eines Rennens mit Pferden im 1x-Gewinnbereich ② analysiert
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit dplyr von R und pandas von Python zu vergleichen