J'ai évalué la stratégie de négociation du système boursier avec Python.

Le trading système valide les stratégies basées sur les données historiques du cours des actions.

Par exemple, les résultats de vérification suivants sont les résultats de vérification d'un certain ordre. 【分析結果】_名前なし__7順張り250日20日_20191118_pdf(2___12ページ).jpg

Cependant, il ne s'agit que d'une évaluation dans un scénario.

Par conséquent, j'ai utilisé Python pour évaluer les résultats de plusieurs simulations du taux de gain, du taux de profit, du taux de profit / perte et du montant des fonds de la stratégie terminée.

#Présentation de la bibliothèque
import pandas as pd
import matplotlib.pyplot as plt
import random

#Fonction d'évaluation
#actif Capital initial
#Quel pourcentage de capital de pari investir
#Probabilité Taux de victoire
#gagner une marge bénéficiaire moyenne
#taux de perte moyen
#transaction Nombre de transactions
def sim(asset, bet, probability, win, loss, transaction):
  result = []
  for i in range(transaction):

#Gagnez si le nombre aléatoire est inférieur au taux de gain
    if random.random() < probability:

#Les actifs augmentent de la marge bénéficiaire moyenne multipliée par les actifs d'entrée.
#Cette fois, il s'agit d'un intérêt composé, mais si vous modifiez cette zone, vous pouvez en faire un intérêt simple.
      asset = asset + (asset * bet * win)

#Si vous perdez, le taux de perte moyen multiplié par les actifs investis diminuera.
    else:
      asset = asset - (asset * bet * loss)

#Enregistrer les résultats de la transaction dans une liste.
    result.append(asset)    

  return result

#Fonction d'évaluation 2
def mon(asset, bet, probability, win, loss, transaction=100, test=1):
  df = pd.DataFrame()

#Appelez la fonction d'évaluation pour le nombre d'essais et stockez-la dans la trame de données.
  for i in range(test):
    df[i] = sim(asset, bet, probability, win, loss, transaction)

#affichage graphique
#Paramètres des lignes auxiliaires
  xmin = -3
  xmax = transaction

#Réglage de la taille du bluff
  plt.figure(figsize=(25, 15), dpi=50)
  plt.plot(df)

#Réglage de la ligne auxiliaire
  plt.hlines([asset], xmin, xmax, "blue")
  plt.show()

#Affichage des éléments statistiques
  print(df.iloc[transaction - 1].describe())

#Montant des fonds 300, risque 20%, Taux de victoire 61.54% de marge bénéficiaire moyenne 5.83% de taux de perte moyen 4.63% Vérifions avec 250 métiers et 300 essais.
mon(300, 0.2, 0.6154, 0.0583, 0.0463, 250, 300)

Untitled11_ipynb_-_Colaboratory.jpg

Si vous regardez cela, vous pouvez voir qu'il y a des cas où les bénéfices n'augmentent pas jusqu'à environ 50 transactions.

Dans une autre stratégie,

Untitled11_ipynb_-_Colaboratory.jpg

était.

C'est plus stable et les actifs augmenteront.

Cette fois, nous extrayons des valeurs telles que le taux de victoire et le taux de profit moyen de la stratégie terminée, donc Je ne sais pas si c'est statistiquement valide.

Que pensez-vous les gars?

Recommended Posts

J'ai évalué la stratégie de négociation du système boursier avec Python.
J'ai essayé de trouver l'entropie de l'image avec python
J'ai écrit la grammaire de base de Python dans Jupyter Lab
J'ai aimé le tweet avec python. ..
J'ai comparé la vitesse de Hash avec Topaz, Ruby et Python
J'ai essayé de gratter le classement du calendrier de l'avent Qiita avec Python
Je veux sortir le début du mois prochain avec Python
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
Commerce système à partir de Python3: investissement à long terme
Vérifier l'existence du fichier avec python
Je ne connaissais pas les bases de Python
Le modèle de projet Python auquel je pense.
J'ai remplacé le calcul numérique de Python par Rust et comparé la vitesse
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
J'ai essayé de rationaliser le rôle standard des nouveaux employés avec Python
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai mesuré la vitesse de la notation d'inclusion de liste, pendant et pendant avec python2.7.
J'ai essayé de "lisser" l'image avec Python + OpenCV
J'ai essayé des centaines de millions de SQLite avec python
Préparer l'environnement d'exécution de Python3 avec Docker
Mathématiques Todai 2016 résolues avec Python
J'ai essayé de "différencier" l'image avec Python + OpenCV
[Note] Exportez le html du site avec python.
Calculez le nombre total de combinaisons avec python
Vérifiez la date du devoir de drapeau avec Python
Essayez Progate Free Edition [Python I]
J'ai essayé de "binariser" l'image avec Python + OpenCV
J'ai touché certaines des nouvelles fonctionnalités de Python 3.8 ①
Convertir le code de caractère du fichier avec Python3
[Python] Déterminez le type d'iris avec SVM
Trading système commençant par Python 3: investissement et risque
J'ai installé Pygame avec Python 3.5.1 dans l'environnement de pyenv sur OS X
J'ai essayé de visualiser facilement les tweets de JAWS DAYS 2017 avec Python + ELK
Obtenez le cours de l'action d'une entreprise japonaise avec Python et faites un graphique
J'ai essayé d'envoyer automatiquement la littérature du nouveau virus corona à LINE avec Python
le zen de Python
[Recette du formateur] J'ai touché le flacon du framework Python.
J'ai essayé d'utiliser TradeWave (commerce du système BitCoin en Python)
J'ai essayé de toucher un fichier CSV avec Python
Détruire l'expression intermédiaire de la méthode sweep avec Python
[OpenCV / Python] J'ai essayé l'analyse d'image de cellules avec OpenCV
J'ai essayé de résoudre Soma Cube avec python
Calculer le coefficient de régression d'une analyse de régression simple avec python
J'ai vérifié les versions de Blender et Python
Je veux hériter de l'arrière avec la classe de données python
J'ai mesuré les performances d'un million de documents avec mongoDB
Un mémo que j'ai touché au magasin de données avec python
Résumé du flux de base de l'apprentissage automatique avec Python
J'ai essayé de résoudre le problème avec Python Vol.1
Obtenez l'état de fonctionnement de JR West avec Python
J'ai étudié l'algorithme d'apprentissage de renforcement du trading d'algorithmes
J'ai essayé la "conversion de morphologie" de l'image avec Python + OpenCV
J'ai essayé de frapper l'API avec le client python d'echonest
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé d'automatiser la mise à jour de l'article du blog Livedoor avec Python et sélénium.
[Introduction au trading système] J'ai dessiné un oscillateur stochastique avec python et joué avec ♬
[Python & SQLite] J'ai analysé la valeur attendue d'une course avec des chevaux dans la fourchette 1x win ②
J'ai essayé de comparer la vitesse de traitement avec dplyr de R et pandas de Python