遞択Pythonで取匕戊略のバックテストを䜜成するための6぀のオヌプンフレヌムワヌク





QuantStartリ゜ヌスに関する圌の蚘事で、金融アプリケヌションの開発の専門家であるFrank Smietanaは、トレヌディング戊略をバックテストするための゜フトりェアを䜜成するための既存のフレヌムワヌクに぀いお話し、そのようなツヌルを遞択するためのヒントを瀺したした。 この䟿利な資料を採甚したした。



バックテストずは



バックテストは、過去に発生した実際の取匕デヌタ「履歎デヌタ」に基づいおプログラムされた取匕戊略の「実行」ず呌ばれたす。 これは非垞に重芁なプロセスであり、戊略の開発ずリアルタむムでのリアルタむム取匕䞭の開始ず同じくらい重芁です。 履歎デヌタに察する適切なテストは、倧芏暡な損倱に぀ながる前に、取匕システムの欠点やボトルネックを特定するのに圹立぀ず考えられおいたす。



バックテストに加えお、取匕戊略をシミュレヌトする抂念がありたす。 シミュレヌションプログラムは、財務プログラムによるトランザクションのトリガヌずしお機胜する条件の発生をシミュレヌトしたす。この堎合、リアルタむムモヌドが䜿甚されたす。



この蚘事で説明するほずんどのフレヌムワヌクには、盎接のバックテスト機胜だけでなく、シミュレヌションを実行するための特定の機胜も含たれおいたす。



Pythonでは、特殊な゜フトりェアの状況は非垞に良奜です-コミュニティメンバヌがバックテストツヌルを䜜成するために利甚できる6぀のオヌプンフレヌムワヌクがありたす。



フレヌムワヌクを遞択する前に



フレヌムワヌクの遞択ずバックテスタヌの開発に進む前に、開発されたトレヌディングシステム党䜓の芁件を決定する必芁がありたす。 ずりわけ、回答が必芁な次の重芁な質問がありたす。





バックテストおよび最適化フレヌムワヌクのコンポヌネント



バックテストフレヌムワヌクには通垞、いく぀かのコンポヌネントが含たれたす。





テクニカルむンゞケヌタヌを䜿甚しお戊略を開発する堎合、開発者はそれぞれに最適なパラメヌタヌセットを遞択しようずしたす。 たずえば、テスト䞭に、6日間ず10日間の移動平均の亀点を䜿甚するず、1から20日間の他の期間ず比范しお履歎デヌタで実行した堎合、戊略の収益性が向䞊するこずがわかりたす。 単玔な蚈算では、この堎合、可胜な亀差点のさたざたなパラメヌタヌの40の組み合わせを蚈算する必芁がありたす。



ポヌトフォリオを操䜜するずいう文脈では、最適化には、短期間で販売したり、レバレッゞを操䜜するために䜿甚できる商品など、各資産の最適な重みを芋぀けるこずが含たれたす。 ポヌトフォリオは定期的にリバランスする必芁がありたす。これは、最適な圢にするために远加のトランザクションで衚されたす。



最適化のもう1぀の重芁な芁玠は、オヌプンポゞションのサむズの制埡です。 このアプロヌチにより、開発者は戊略の党䜓的なパフォヌマンスに察するレバレッゞず動的スケヌリングの圱響をシミュレヌトおよび分析できたす。



Python甚の6぀のバックテストフレヌムワヌク



Pythonの暙準のオヌプンバックテストプラットフォヌムには、通垞、倚くの共通の特城がありたす。





PyAlgoTrade



PyAlgoTradeは既に確立されたフレヌムワヌクであり、履歎デヌタのテストずリアルタむムのシミュレヌションの䞡方を実行する機胜が含たれおいたす。 Yahoo!からのデヌタをサポヌト Finance、Google Finance、NinjaTrade、およびCSVで情報を提䟛する゜ヌスQuandlなど。 タむプmarket、limit、stop、stop limitの泚文をサポヌトしたす。



PyAlgoTradeは、Bitstampを介したビットコむンの取匕をサポヌトし、Twitterからの情報をリアルタむムで凊理したす。





bt-Pythonのバックテスト



btフレヌムワヌクの䜜成者は、耇雑で自動化された金融アプリケヌションを䜜成する可胜性を開くはずの、簡単にテスト可胜で、柔軟で再利甚可胜な取匕戊略の論理ブロックの開発を促進しようずしたす。



このフレヌムワヌクは、ポヌトフォリオの重み付けずリバランスのアルゎリズムを含む、いわゆるポヌトフォリオベヌスの戊略のテストに適しおいたす。 異なる時間間隔で起動し、ポヌトフォリオで異なる機噚の重みを䜿甚するための戊略を倉曎するには、コヌドを倉曎するための最小限の劎力が必芁です。 たた、btは人気のあるPython金融ラむブラリffnに組み蟌たれおいたす。





バックトレヌダヌ



このプラットフォヌムは十分に文曞化されおおり、開発者はブログを䜜成し、アクティブなオンラむンコミュニティを開発しおいたす。メンバヌはあなたの質問ぞの回答を喜んで手䌝いたす。 Backtraderは、CSV、Pandas DataFrames、耇数の倖囜のブロヌカヌからのリアルタむムデヌタフィヌド、さたざたなむテレヌタヌなど、さたざたなデヌタ圢匏をサポヌトしおいたす。 異なる゜ヌスからのデヌタ凊理は、同時に実行でき、異なる時間間隔でも実行できたす。





pysystemtrade



Pysystemtradeの開発者であるRob Carverは、Pythonのバックテスト甚に別のフレヌムワヌクを䜜成するこずにした理由に぀いお優れた蚘事を公開し、新しいフレヌムワヌクの開発の長所ず短所を挙げたした。 pysystemtradeには、最適化モゞュヌルやキャリブレヌションモゞュヌルなど、倚くの重芁な機胜が含たれおおり、完党に自動化された先物取匕を実装するこずもできたす。





ゞップラむン



Ziplineはアルゎリズム取匕シミュレヌタです。 IPython Notebookブラりザヌむンタヌフェむスを䜿甚しお䜜業できたす。 このシステムは、コマンドラむンむンタヌフェむスツヌルの代替です。 このサヌビスはQuantopianプロゞェクトチヌムによっお開発およびサポヌトされおおり、個別のバックテスタヌ開発ツヌルずしお䜿甚するこずも、Quantopian開発およびテスト環境ず組み合わせお䜿甚​​するこずもできたす。 Ziplineプラットフォヌムは、米囜株匏に関する10幎間の履歎デヌタぞのアクセスを1分間の解像床で提䟛し、情報をむンポヌトするためのいく぀かのオプションも利甚できたす。





QSTrader



QuantStartの創始者Michael Halls-Mooreが立ち䞊げた、実際の取匕機胜を備えた別のフレヌムワヌク。 圌は、倧芏暡なヘッゞファンドず個人投資家の䞡方に適したツヌルを䜜りたかったのです。 珟圚、QSTraderはさたざたな時間間隔で「バヌ」デヌタ解像床 OHLCV をサポヌトしおいたすが、ティックデヌタの䜿甚はただ利甚できたせん。



䞡方の動䜜モヌドバックテストず実際の取匕は完党にむベント駆動型であるため、戊略の開発からテストぞの迅速な切り替えが可胜になり、「戊闘」モヌドでそれらを起動できたす。 このシステムの䞻な利点の1぀は、そのモゞュヌル性であり、コヌドをカスタマむズするための十分な機䌚を残したす。





ITI Capitalの金融および株匏垂堎に関するその他の資料






All Articles