アむデアから開発たで取匕所での取匕戊略の䜜成に぀いお知っおおくべきこず。 パヌトIII





Habréおよび圓瀟のWebサむトの分析セクションでは、金融垂堎の動向に぀いお倚くの蚘事を執筆し、ブログFinancial Hackerの著者による蚘事に基づいお、取匕所での取匕戊略の䜜成に関する䞀連の資料を匕き続き公開しおいたす。 ブログのFinancial Hackerの著者による䞀連の蚘事の䞻芁なポむントを匷調した以前の蚘事では、スむスフランの䟡栌制限のあるストヌリヌの䟋ずしお垂堎の非効率性の䜿甚に぀いお話し、取匕所での取匕戊略を䜜成する際に考慮すべき重芁な芁因を怜蚎したした 。



今回は、モデル指向のトレヌディングシステムの開発の䞀般原則に぀いおお話したす。



「理想的な」戊略の開発



他の倚くの堎合ず同様に、取匕所での取匕戊略の開発に関しおは、理想ず珟実の2぀の方法がありたす。 開始するには、理想的な戊略開発プロセスを怜蚎しおください。



ステップ1.モデルの遞択


たず、トレヌダヌは前述の垂堎の非効率性の1぀を遞択するか、新しい非効率性を発芋する必芁がありたす。 疑わしいものが特定の垂堎ロゞックを満たす堎合、䟡栌曲線を分析するずきにいく぀かのアむデアが衚瀺される可胜性がありたす。 反察のオプションも適しおいたす-行動パタヌンの理論から実際のデヌタでの怜蚌たで。 確かに、すべおの法埋ず非効率性は、おそらく他の垂堎参加者によっお長幎にわたっおすでに発芋され、研究されおいたす。



モデルを決定したら、それに察応する䟡栌異垞を遞択する必芁がありたす。 次に、定量的な匏を䜿甚しお、たたは極端な堎合は定性的な基準を䜿甚しおそれを蚘述したす。 䟋ずしお、前の蚘事の埪環モデルを䜿甚できたす。







この堎合、Ciは持続時間、Diは䜍盞、aiは振幅です。 歎史䞊最も成功した基盀の1぀であるルネサンスメダリオンは、隠れたマルコフモデルずずもにサむクルモデルを䜿甚しお良奜な結果を達成できたこずを保蚌したす。



ステップ。 2.怜玢


たた、遞択した異垞が、トレヌダヌが取匕する資産の䟡栌曲線に実際に珟れるこずを確認する必芁がありたす。 これは、履歎デヌタ-D1、M1、および時間軞に沿った異垞の分垃を瀺す目盛り倀を䜿甚しお確認できたす。 党䜓の質問は、過去を掘り䞋げる必芁があるかどうかです。 回答可胜な限り。 異垞の状態が明らかになるたで。 次に、䟡栌曲線の異垞を芋぀けお実蚌するスクリプトを䜜成する必芁がありたす。 この䟋では、これはナヌロ/ドルのペアの呚波数スペクトルになりたす。







任意の時間間隔月ず幎でスペクトルがどのように倉化するかを調べお、それをランダムデヌタのスペクトルず比范する必芁がありたすZorroなどの䞀郚のプログラミング蚀語では、曲線をランダム化する特別な関数がありたす。 異垞の兆候やランダムな分垃ずの違いが芋぀からない堎合、トレヌダヌは異垞の怜出方法を改善する必芁がありたす。 そしお、他のすべおが倱敗した堎合、ステップ1に戻りたす。



ステップ3.アルゎリズム


次のステップでは、遞択した異垞に続いお、ポゞションをオヌプンおよびクロヌズするための取匕シグナルを生成するアルゎリズムを䜜成したす。 通垞の状況では、垂堎の非効率性は䟡栌曲線にほずんど圱響したせん。 したがっお、アルゎリズムは、ランダムノむズから異垞の兆候を分離するために十分に埮調敎する必芁がありたす。 同時に、可胜な限りシンプルで、最小数の空きパラメヌタヌに基づいおいる必芁がありたす。 このバヌゞョンでは、スクリプトは正匊波の各窪みずピヌクの䜍眮を倉曎したす。これは、支配的なサむクルの先頭になりたす。



function run() { vars Price = series(price()); var Phase = DominantPhase(Price,10); vars Signal = series(sin(Phase+PI/4)); if(valley(Signal)) reverseLong(1); else if(peak(Signal)) reverseShort(1); }
      
      





これがシステムの䞭栞です。 今がバックテストの時です。 この堎合のタスクの粟床はそれほど重芁ではありたせん。アルゎリズムの境界を決定するだけです。 圌は特定の垂堎状況で䞀連の収益性の高い取匕を行うこずができたすか そうでない堎合は、2぀のオプションが残りたす。別の方法を䜿甚しお曞き換えるたたは再䜜成したす。 この段階では、アルゎリズムにトレヌリングストップやその他のスタッフィングを詰め蟌む必芁はありたせん。 それらは結果をゆがめ、䞀から利益の幻想を䜜り出したす。 アルゎリズムは、時間通りにポゞションをクロヌズする堎合にのみ、単玔に利益を䞊げる方法を孊習する必芁がありたす。



この段階では、バックテストのデヌタも決定する必芁がありたす。 動䜜テストでは、M1ずティッククォヌトで十分です。 毎日のデヌタは良くありたせん。 デヌタの量は、異垞の期間第2段階で決定されたずその性質に䟝存したす。 通垞、期間が長いほど、テストの粟床は高くなりたす。 10幎より深く掘り䞋げるこずは意味がありたせん。 少なくずも実際の垂堎行動に関しおは、垂堎は10幎間で倧きく倉化しおいたす。 叀いデヌタは誀った結果をもたらしたす。



ステップ4.フィルタヌ


単䞀の非効率性が氞遠に続くわけではありたせん。 垂堎は、盞堎の任意の行動の期間を通過したす。 したがっお、成功する取匕システムごずに、非効率の有無を刀断するフィルタヌを甚意するこずが重芁です。 フィルタヌは、信号ず同じくらい重芁ですが、それ以䞊に重芁ではありたせん。 しかし、さたざたな理由で、しばしば忘れられたす。 以䞋は、取匕システムのフィルタヌを蚭定するスクリプトの䟋です。



 function run() { vars Price = series(price()); var Phase = DominantPhase(Price,10); vars Signal = series(sin(Phase+PI/4)); vars Dominant = series(BandPass(Price,rDominantPeriod,1)); var Threshold = 1*PIP; ExitTime = 10*rDominantPeriod; if(Amplitude(Dominant,100) > Threshold) { if(valley(Signal)) reverseLong(1); else if(peak(Signal)) reverseShort(1); } }
      
      





ここでは、䟡栌曲線ぞの支配的なサむクルの期間を䞭心に、その振幅を枬定するバンドパスフィルタヌが䜿甚されたす。 振幅が蚭定された制限を超える堎合、非効率性があるこずを確認し、それに応じお行動するこずができたす。 たた、トランザクションの期間は最倧10サむクルに制限されおいたす。これは、2番目の段階で、支配的なサむクルが比范的短い期間で珟れたり消えたりするこずがわかったためです。



ここで䜕がうたくいかないのでしょうか フィルタヌを远加するのは、テスト結果を改善するずいう理由だけで間違いです。 フィルタヌには、垂堎の振る舞いやアルゎリズムのシグナルから始たる理論的根拠が必芁です。



ステップ5.パラメヌタヌの最適化


䜕らかの方法ですべおのシステムパラメヌタが結果に圱響したす。 ただし、䟡栌曲線に基づいお゚ントリポむントず出口ポむントを盎接決定するのはごくわずかです。 これらの適応可胜なパラメヌタヌを特定しお最適化する必芁がありたす。 この䟋では、ポゞションのオヌプンは、曲線の動䜜を予枬するフェヌズずフィルタヌによっお蚭定されたしきい倀によっお決定されたす。 トランザクションの終了時間は、出口点によっお決たりたす。 DominantPhaseフィルタヌ定数やBandPass関数などの他のパラメヌタヌは、倀が垂堎の状況に䟝存しないため、最適化する必芁がありたす。



倚くの堎合、最適化は誀っお解釈されたす。 遺䌝的たたは暎力的な最適化の方法は、倚次元パラメヌタヌ空間で利益のピヌクを芋぀ける詊みです。 ほずんどの堎合、これは生䜓システムの動䜜ずは関係ありたせん。 パラメヌタヌの䞀意の組み合わせを取埗できたすが、優れたテスト結果が埗られたす。 わずかに異なる履歎期間でも、完党に異なるピヌクが埗られたす。 履歎曲線の最倧利益の倀を远跡する代わりに、最適化は次のように実行する必芁がありたす。





パラメヌタヌを最適化するためのサンプルスクリプトを次に瀺したす。



 function run() { vars Price = series(price()); var Phase = DominantPhase(Price,10); vars Signal = series(sin(Phase+optimize(1,0.7,2)*PI/4)); vars Dominant = series(BandPass(Price,rDominantPeriod,1)); ExitTime = 10*rDominantPeriod; var Threshold = optimize(1,0.7,2)*PIP; if(Amplitude(Dominant,100) > Threshold) { if(valley(Signal)) reverseLong(1); else if(peak(Signal)) reverseShort(1); } }
      
      





2぀の最適化された呌び出しは、開始倀1.0ず範囲0.7..2.0を䜿甚しお、2぀の䞻芁パラメヌタヌのアクティブポむントを決定したす。 利益率の図では、これらのポむントは赀い列でマヌクされおいたす。











この実斜圢態では、オプティマむザは、正匊波䜍盞に察しおに近いパラメヌタ倀を遞択し、ナヌロドルペアの珟圚の比率に察する閟倀振幅に察しおの倀ピヌクに察しおはではないを遞択する。 ここでの終了時間は最適化されおいたせん。



ステップ6.サンプル倖の分析


パラメヌタの最適化により、怜蚌テストの品質が向䞊したす。 ただし、システムはただ䟡栌曲線に合わせお調敎されおいたせん。 したがっお、これたでのテスト結果は圹に立ちたせん。 次に、サンプル内およびそれ以降のデヌタをサむクルに分割する必芁がありたす。 サンプルは、システムのトレヌニング、テスト甚のサンプル倖の分析に䜿甚されたす。 これの暙準的な方法は、 前方解析です。 動的サンプリングたたは履歎デヌタのスラむディングりィンドりを䜿甚しお、2぀のルヌプを分離したす。



残念ながら、フォワヌド分析では、トレヌニング時間ずテスト時間ずいう2぀の新しいパラメヌタヌがシステムに远加されたす。 2番目は重芁ではありたせん。䞻なこずは、比范的小さいこずです。 しかし、トレヌニング時間は重芁です。 トレヌニングが短すぎるず、効果的な最適化のための䟡栌で十分なデヌタを取埗できたせん。 長すぎるず、結果に悪圱響を及がしたす。 トレヌニングが行われおいる間に、垂堎はすでに倉化を「消化」する可胜性がありたす。 したがっお、トレヌニング時間自䜓を最適化する必芁がありたす。



5サむクルのステップでのフォワヌド分析前のスクリプトでNumWFOCycles = 5に蚭定は、バックテストのパフォヌマンスを幎間収益の100からより珟実的な60に枛らしたす。 分析の楜芳的な結果ず゚ラヌを回避するために、わずかに異なるシミュレヌション条件で数回実行できたす。 システムに制限がある堎合、結果はあたり倉化しないはずです。 それ以倖の堎合は、手順3に戻る必芁がありたす。



ステップ7.珟実のテスト


サンプルの倖郚で分析段階を通過した埌でも、結果に䜕らかの歪みが残っおいたす。 システム自䜓の制限たたは開発プロセスの欠点資産、アルゎリズム、チェック時間などの遞択が原因ですか これを芋぀けるこずは、取匕戊略に取り組むこずの最も難しい郚分です。



最良のオプションは、このためにWhite's Reality Checkず呌ばれる方法を䜿甚するこずです。 たた、パラメヌタずアルゎリズムの遞択に厳密な順序が必芁になるため、実甚的ではありたせん。 他の2぀の方法はあたりよくありたせんが、䜿甚する方が䟿利です。





ステップ8.リスク管理


したがっお、システムはすべおのチェックを生き延びたした。 これで、リスクの䜎枛ず生産性の向䞊に集䞭できたす。 アルゎリズムずそのパラメヌタヌの入力に戻る必芁がなくなりたした。 出力で埗られるものを最適化する必芁がありたす。 単玔な時間制限ずキャンセルの代わりに、さたざたなトレヌリングストップのメカニズムを䜿甚しお終了できたす。 䟋





ストップロスを蚭定するスクリプトの䟋を次に瀺したす。



 function run() { vars Price = series(price()); var Phase = DominantPhase(Price,10); vars Signal = series(sin(Phase+optimize(1,0.7,2)*PI/4)); vars Dominant = series(BandPass(Price,rDominantPeriod,1)); var Threshold = optimize(1,0.7,2)*PIP; Stop = ATR(100); for(open_trades) TradeStopLimit -= TradeStopDiff/(10*rDominantPeriod); if(Amplitude(Dominant,100) > Threshold) { if(valley(Signal)) reverseLong(1); else if(peak(Signal)) reverseShort(1); } }
      
      





もちろん、今床は最適化プロセスを経お、出力パラメヌタヌのフォワヌド分析をもう䞀床行う必芁がありたす。



ステップ9.珟金の分配


資産管理プロセスには3぀の目的がありたす。 たず、収入を再投資したす。 第二に、ポヌトフォリオ内で資本を正しく分配するこず。 第䞉に、取匕ポヌトフォリオが圹に立たないこずを理解するのに間に合いたす。 どの取匕教科曞でも、取匕ごずの総資本の1を投資するこずに関するアドバむスを芋぀けるこずができたす。 これらのこずは、実際の取匕でセントを獲埗しおいない人々によっお曞かれおいたす。



䞀定期間の投資額をVtで衚したす。 システムが平均しお収入を生み出す堎合、資本Cは係数cに比䟋しお増加したす。







スマヌトブックの著者のアドバむスに埓っお、資本の固定割合pVt= p Ctを投資するず、資本は指数関数的にp cに成長するはずです。



画像



残念ながら、同時に、資本はランダムな倉動の圱響を受けたす。 このようなドロヌダりンは、取匕された資金の量Vtに比䟋したす。 これは、最倧沈降深床D maxがtの平方根に比䟋しお増加する匏を䜿甚しお蚈算できたす。



画像



したがっお、固定投資䟡倀で、以䞋を取埗したす。



画像



そしお、この堎合の時間はT = 1 /qp 2です



画像



これらの蚈算から、期間Tの間にドロヌダりンがアカりント内のすべおのお金をどのように消費するかがわかりたす。 トレヌディングシステム自䜓がどれだけ優れおいるか、たたはトレヌダヌが蚭定した投資の割合は関係ありたせん。 したがっお、「䞀床に1を投資する」ずいうアドバむスは悪いアドバむスです。 そのため、ブログFinancial Hackerの著者は、环積利益に比䟋しお取匕量を増やすのではなく、平方根で取匕量を増やすようにクラむアントにアドバむスしおいたす。 戊略自䜓が䜿い果たされるたで、それはトレヌダヌをマヌゞンコヌルから安党な距離に保ちたす 。



トレヌダヌが1぀の資産ず1぀のアルゎリズムを䜿甚するか、そのセットを䜿甚するかによっお、いく぀かの方法を䜿甚しお最適な投資量を蚈算できたす。 たずえば、Rimalph Vince OptimalF匏たたはEd ThorpeのKellyによるものです。 ほずんどの堎合、再投資プロセスを実装するために重いコヌドを残すこずは論理的であるため、投資額はアルゎリズムの倖で蚈算できたす。 特に、トレヌダヌが時々口座にお金を匕き出したり預けたりする堎合。 そのようなものの䟿利な公匏は、Zorro蚀語のマニュアルにありたす 。



ステップ10.実際の取匕の準備


取匕システムのナヌザヌむンタヌフェむスを決定する時が来たした。 これを行うには、どのパラメヌタヌをリアルタむムで倉曎する必芁があり、どのパラメヌタヌが䞀定であるかを理解する必芁がありたす。 次に、取匕量管理方法をそれに合わせお調敎し、「パニックボタン」を実装しお利益を埗お、悪いニュヌスが衚瀺されたずきにキャッシュに移動する必芁がありたす。 取匕のすべおの重芁なパラメヌタをリアルタむムで衚瀺し、システムを再トレヌニングする機䌚を远加し、実際の結果ずバックテストの結果を調敎する方法を含める必芁がありたす。 トレヌダヌは、空間ず時間のどこからでもシステムを制埡できるこずを確認する必芁がありたす。 これは、5分ごずにチェックする必芁があるずいう意味ではありたせん。 しかし、昌食時に携垯電話で取匕した結果を芋る機䌚があれば、決しお害はありたせん。



珟実にはどのくらいの頻床で発生したすか



䞊蚘の理想的な戊略の開発に぀いお説明したした。 それはすべおき​​れいに芋えたす。 しかし、実際の取匕戊略を開発する方法は 理論ず実践の間にギャップがあるこずは明らかです-もちろん、これは間違っおいたす。



取匕所で䜜業するための戊略を䜜成するための䞀連の手順は、次のようになりたす。



ステップ1 トレヌダヌのフォヌラムに行き、玠晎らしい収益をもたらす新しいクヌルな指暙に぀いおのヒントを埗おください。



ステップ2 テストシステムのコヌドを苊しめ、むンゞケヌタヌが機胜しおいるこずを確認したす。 バックテストの結果は印象的ではありたせんか ゚ラヌがコヌドに忍び蟌みたした。 デバッグを行う必芁がありたすが、さらに良くしおください。



ステップ3 ただ結果はありたせんが、トレヌダヌは既にいく぀かの有甚な動きをマスタヌしたこずを知っおいたす。 トレヌリングストップを远加するこずもできたす。 すべおが少し良くなりたした。 毎週分析を実行する時が来たした。 火曜日は戊略から脱萜したすか 火曜日の取匕をスキップするフィルタヌを远加する必芁がありたす。 匕甚が$ 14.5未満の堎合、および満月䞭に、午前10から12の間のポゞションのオヌプンをブロックするフィルタヌをさらに入力したす。 シミュレヌションが完了するたで埅぀必芁がありたす。 玠晎らしい、バックテストの結果は今では良いです



ステップ4 もちろん、サンプリング結果を単玔に実行しおいる人はいたせん。 23のパラメヌタヌすべおを最適化した埌、トレヌダヌはフォワヌド分析を開始したす。 埅っおいたす。 結果が気に入らない 圌はこの分析の異なるサむクル、異なる期間を詊みたす。 ただ埅っおいたす。 最埌に、目的の倀が衚瀺されたす。



ステップ5 システムは実際の取匕䞭に起動したす。



ステップ6 結果は印象的ではありたせん。



ステップ7 倧倱敗の埌、銀行口座がその感芚に達するたで埅぀こずができたす。 これらの期間の䞀郚のトレヌダヌは、取匕所での取匕に関する本を曞いおいたす。



次の蚘事では、デヌタマむニング手法を機械孊習ず組み合わせお䜿甚​​しお、さたざたなアルゎリズムずニュヌラルネットワヌクを䜿甚しおパタヌンを怜出する方法を怜蚎したす。



All Articles