GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

anfederico

Clairvoyant – 短期的な株式移動のための社会的/歴史的手がかりを特定および監視するように設計されたソフトウェア

投稿日:

短期的な株式移動のための社会的/歴史的手がかりを特定および監視するように設計されたソフトウェア

基本的な概要

株価履歴データを使用して、財務指標の任意の組み合わせで監督された学習アルゴリズムを訓練する。 迅速にモデルのバックテストを行い、投資ポートフォリオのパフォーマンスをシミュレートします。

学習プロセスを視覚化する

インストール

pip install clairvoyant

バックテスト信号精度

テスト期間中、モデルは翌日の価格動向の予測に基づいて売買することを通知します。 取引アルゴリズムを脇に置き、シグナルの正確性のみをテストすることで、より信頼性の高いモデルを迅速に構築してテストすることができます。

from clairvoyant.engine import Backtest
import pandas as pd

features  = ["EMA", "SSO"]   # Financial indicators of choice
trainStart = 0               # Start of training period
trainEnd   = 700             # End of training period
testStart  = 701             # Start of testing period
testEnd    = 1000            # End of testing period
buyThreshold  = 0.65         # Confidence threshold for predicting buy (default = 0.65) 
sellThreshold = 0.65         # Confidence threshold for predicting sell (default = 0.65)
continuedTraining = False    # Continue training during testing period? (default = false)

# Initialize backtester
backtest = Backtest(features, trainStart, trainEnd, testStart, testEnd, buyThreshold, sellThreshold, continuedTraining)

# A little bit of pre-processing
data = pd.read_csv("SBUX.csv", date_parser=['date'])
data = data.round(3)                                    

# Start backtesting and optionally modify SVC parameters
# Available paramaters can be found at: http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html
backtest.start(data, kernel='rbf', C=1, gamma=10)
backtest.conditions()
backtest.statistics()  
backtest.visualize('SBUX')

出力

------------ Data Features ------------

X1: EMA
X2: SSO

---------------------------------------

----------- Model Arguments -----------

kernel: rbf
C: 1
gamma: 10

---------------------------------------

---------  Engine Conditions ----------

Training: 2013-03-01 -- 2015-12-09
Testing:  2015-12-10 -- 2017-02-17
Buy Threshold: 65.0%
Sell Threshold: 65.0%
Continued Training: False

---------------------------------------

------------- Statistics --------------

Total Buys: 170
Buy Accuracy: 68.24%
Total Sells: 54
Sell Accuracy: 59.3%

---------------------------------------

トレーディング戦略をシミュレートする

モデルを確立したら、1日前の価格動向を正確に予測し、ポートフォリオをシミュレートし、特定の株式でパフォーマンスをテストすることができます。 ユーザー定義の取引ロジックを使用すると、予測に対するモデルの信頼度と翌日の次の結果に基づいて、資本の流れを制御できます。

def logic(account, today, prediction, confidence):
    
    if prediction == 1:
        Risk         = 0.30
        EntryPrice   = today['close']
        EntryCapital = account.BuyingPower*Risk
        if EntryCapital >= 0:
            account.EnterPosition('Long', EntryCapital, EntryPrice)

    if prediction == -1:
        ExitPrice = today['close']
        for Position in account.Positions:  
            if Position.Type == 'Long':
                account.ClosePosition(Position, 1.0, ExitPrice)


simulation = backtester.Simulation(features, trainStart, trainEnd, testStart, testEnd, buyThreshold, sellThreshold, continuedTraining)
simulation.start(data, 1000, logic, kernel='rbf', C=1, gamma=10)
simulation.statistics()
simulation.chart('SBUX')

出力

------------- Statistics --------------

Buy and Hold : -6.18%
Net Profit   : -61.84
Strategy     : 5.82%
Net Profit   : 58.21
Longs        : 182
Sells        : 168
Shorts       : 0
Covers       : 0
--------------------
Total Trades : 350

---------------------------------------

その他のプロジェクト

集中バックテスト

このプロジェクトの主な目的は、機械学習アルゴリズム(特にサポートベクターマシン)でデータセットを迅速にテストすることです。 Simulationクラスでは基本的な戦略テストが可能ですが、そのタスクに適した他のプロジェクトもあります。 データ内のパターンをテストして基本的な戦略をシミュレートしたら、モデルを次のレベルに引き上げることをおすすめします。

https://github.com/Crypto-AI/Gemini

社会的感情のスコア

示された例は、データマイニングソーシャルメディアであり、株式感情分析を行うプロジェクトから得られたデータを使用しています。 私たちがそれをどうやってやっているのかを知るには、以下を見てください:

https://github.com/anfederico/Stocktalk

ノート

多変量機能

覚えておいてください。

variables = ["SSO"]                            # 1 feature
variables = ["SSO", "SSC"]                     # 2 features
variables = ["SSO", "SSC", "RSI"]              # 3 features
variables = ["SSO", "SSC", "RSI", ... , "Xn"]  # n features

貢献する

お手伝いをしたい場合は、私たちの貢献ガイドラインをご覧ください!

保留中の機能

  • 輸出モデル
  • 複数のSklearn SVMモデルのサポート
  • 2つ以上の機能を持つモデルのビジュアライゼーション







-anfederico
-, , , ,

執筆者:

関連記事

関連記事はありませんでした