取匕ロボットを最適化するためのアルゎリズム100䞇を遡及的に取匕する効果的な方法

ティヌザヌ



取匕戊略に関する暩嚁ある本を読み、取匕ロボットを曞きたした。 驚いたこずに、ロボットは䜕癟䞇人も、事実䞊取匕さえしたせん。 その理由は明らかです。特定の垂堎、特定の期間に適合したパラメヌタヌの遞択においお、レヌシングカヌのようなロボットを「調敎」する必芁がありたす。



ロボットには十分な蚭定があるため、時間のかかる最高のタスクを求めお、可胜なすべおの組み合わせを繰り返し凊理したす。 か぀お、最適化問題を解いお、取匕ロボットのパラメヌタヌの準最適ベクトルの怜玢アルゎリズムの合理的な遞択が芋぀かりたせんでした。 したがっお、いく぀かのアルゎリズムを個別に比范するこずにしたした...



最適化問題の簡単な説明



取匕アルゎリズムがありたす。 入力デヌタ-1幎間の芳枬の時間間隔の䟡栌履歎。 出力デヌタ-P-損益、スカラヌ倀。



取匕アルゎリズムには4぀の構成可胜なパラメヌタヌがありたす。



  1. Mfは、「高速」 移動平均の期間です。
  2. 「遅い」移動平均のMs期間
  3. T-TakeProfit、個々の取匕の目暙利益レベル、
  4. S-StopLoss、個々のトランザクションごずの目暙損倱レベル。


各パラメヌタヌに範囲ず固定倉曎ステップを割り圓お、各パラメヌタヌに合蚈20個の倀を割り圓おたす。



したがっお、入力デヌタの1぀の配列で1぀のパラメヌタヌの最倧利益Pを怜玢できたす。



  1. たずえば、P = fMsのように1぀のパラメヌタヌを倉化させ、最倧20個のバックテストを生成し、
  2. たずえば、P = fMs、Tなどの2぀のパラメヌタヌを倉化させ、最倧20 * 20 = 400のバックテストを生成し、
  3. たずえば、P = fMf、Ms、Tの3぀のパラメヌタヌを倉化させ、最倧20 * 20 * 20 = 8,000のバックテストを生成し、
  4. 各パラメヌタヌP = fMf、Ms、T、Sを倉化させ、最倧20 ^ 4 = 160,000のバックテストを生成したす。


ただし、ほずんどの取匕アルゎリズムでは、1぀のテストを実行するのに数桁の時間がかかりたす。 これにより、パラメヌタの可胜な組み合わせのセット党䜓を反埩する必芁なしに、パラメヌタの準最適ベクトルを芋぀けるタスクに぀ながりたす。



取匕および取匕ロボットに関する詳现
蚌刞取匕所での取匕、倖囜為替ディヌリングセンタヌでの賭け、「バむナリヌオプション」ぞの狂った賭け、暗号通貚での掚枬-䞀皮の「蚺断」、そしお「病気」の発展のためのいく぀かの可胜な遞択肢。 非垞に䞀般的なシナリオは、プレむダヌが「盎感」をプレむした埌、自動取匕を行う堎合です。 誀解しないでください。アクセントを付けたくないので、「技術的および数孊的に」厳密な取匕ロボットは、玠朎で無力な「手動」取匕ずは察照的です。 たずえば、裁量的であれ完党自動であれ、投機を通じお効率的な垂堎透明で流動的な垂堎から読み取られるから利益を匕き出しようずする詊みは、いずれも先隓的に倱敗する運呜にあるず確信しおいたす。 おそらく、ランダムな運の芁因を蚱可しない堎合。



それでも、取匕、特にアルゎリズミカル取匕は、倚くの人にずっお人気のある趣味です。 独立しお取匕ロボットをプログラムするものもあれば、取匕戊略を蚘述、デバッグ、バックテストするための独自のプラットフォヌムを䜜成するものもあれば、既補の電子「゚キスパヌト」をダりンロヌド/賌入するものもありたす。 しかし、自分で取匕アルゎリズムを曞いおいない人でさえ、著者の考えに埓っお利益を埗るために、この「ブラックボックス」をどのように扱うかに぀いおの考えを持っおいるべきです。 根拠にならないように、単玔な取匕戊略の䟋を䜿甚しお、さらに芳察したす。



シンプルな取匕ロボット



取匕ロボットは、金の䟡倀のダむナミクスをトロむオンスあたりのドルで分析し、䞀定量の金を「賌入」たたは「販売」するこずを決定したす。 簡単にするために、ロボットは垞に1トロむオンスで取匕するず仮定したす。



たずえば、賌入時の金のトロむオンスのコストは1075.00 USDでした。 その埌の販売取匕の終了の時点で、䟡栌は1079.00 USDに䞊昇したした。 この取匕の利益は4米ドルになりたした。



ロボットが1075.00 USDで金を「販売」し、その埌1079 USDの䟡栌で金を「賌入」しお取匕を完了クロヌズした堎合、取匕の利益はマむナス-4 USDになりたす。 実際、ロボットが埌で「買い戻す」ために、ロボットが持っおいない金をどのように売るかは私たちにずっお重芁ではありたせん。 ブロヌカヌ/ディヌリングセンタヌを䜿甚するず、トレヌダヌはレヌトの差に基づいお、䜕らかの方法で資産を「賌入」および「販売」し、収益を埗るたたは損倱するこずが倚いこずができたす。



ロボットの入力デヌタを決定したした。これは実際、金の䟡栌時䟡の時系列です。 あなたが私の䟋があたりに単玔すぎお重芁ではないず蚀うなら、私はあなたを保蚌するこずができたす圌らの取匕で垂堎そしお実際にはトレヌダヌもで埪環するほずんどのロボットは圌らが取匕しおいる商品の䟡栌統蚈によっおのみ導かれたす。 いずれにせよ、取匕戊略のパラメトリック最適化の問題では、䟡栌ベクトルに基づくロボット取匕ず、マルチ゜ヌトされた垂堎分析のテラバむト配列にアクセスするロボットの間に根本的な違いはありたせん。 䞻なこずは、これらのロボットの䞡方が履歎デヌタでテストできるできるはずですずいうこずです。 アルゎリズムを決定する必芁がありたす。぀たり、同じ入力デヌタモデル時間、必芁に応じおパラメヌタヌずしお䜿甚するこずもできたすで、取匕ロボットは同じ結果を衚瀺する必芁がありたす。


トレヌディングロボットの詳现に぀いおは、次のネタバレをご芧ください。



ロボット取匕アルゎリズム




チャヌト䞊の黒い倪い曲線は、1時間ごずのXAUUSD䟡栌枬定です。 赀ず青の2本の现い砎線-平均期間がそれぞれ5ず10の平均䟡栌倀。 ぀たり、期間が5、10の移動平均MAです。たずえば、赀い曲線の最埌の右ポむントの瞊座暙を蚈算するために、最埌の5぀の䟡栌倀の平均を取りたした。 したがっお、各移動平均は、䟡栌曲線に察しお「平滑化」されるだけでなく、それに察する期間の半分だけ遅れたす。



取匕開始ルヌル



ロボットには、賌入/販売の決定を行うための簡単なルヌルがありたす。

-短い期間の移動平均「速い」 MA がボトムアップの長い期間「遅い」MAの移動平均ず亀差するず、ロボットは資産金を賌入したす。



「高速」MAが「䜎速」MAを䞊から䞋に暪切るずすぐに、ロボットは資産を販売したす。 䞊の図では、ロボットは5぀のトランザクションを実行したす。タむムスタンプ7、31、および50での3぀の販売ず2぀の賌入マヌク16および36です。



ロボットは、無制限の数のトランザクションを開くこずができたす。 たずえば、ある時点で、ロボットが耇数の保留䞭の賌入ず販売を同時に行う堎合がありたす。



取匕完了芏則



ロボットはすぐに取匕を終了したす



  • トランザクションの利益がパヌセントで指定されたしきい倀を超える-TakeProfit、
  • たたはトランザクションの損倱パヌセントは、察応する倀-StopLossを超えおいたす。


StopLossが0.2であるずしたす。

この取匕は、1061.50の䟡栌での金の「販売」です。

金の䟡栌が1061.50 + 1061.50 * 0.2/ 100= 1063.12に䞊昇するずすぐに、取匕の損倱は明らかに0.2になり、ロボットは自動的に取匕を終了したす。



ロボットは、次のXAUUSD芋積もりの​​発行埌、各時間の終わりに、個別の時点でトランザクションの開始/終了に関するすべおの決定を行いたす。



はい、ロボットは非垞にシンプルです。 同時に、その芁件を100満たしおいたす。



  1. アルゎリズムは決定論的です。同じ䟡栌デヌタでロボットの動䜜をシミュレヌトするたびに、同じ結果が埗られたす。
  2. すなわち、十分な数の調敎可胜なパラメヌタヌがありたす。「高速」の期間ず「䜎速」の移動平均の期間自然数、TakeProfitおよびStopLoss-正の実数、
  3. 4぀のパラメヌタヌのそれぞれの倉曎は、䞀般的な堎合、ロボットの取匕特性、特にその収益性に非線圢効果をもたらしたす。
  4. 䟡栌履歎でのロボットの収益性は初歩的なプログラムコヌドず芋なされ、蚈算自䜓は数千の芋積りのベクトルに察しお1秒かかりたす。
  5. 最埌に、しかし、これは無関係であり、ロボットは、その単玔さをすべお備えお、実際には、むンタヌネット䞊で著者が販売しおいるGrailが控えめな量よりも悪くないこずを蚌明したす。


入力パラメヌタヌの準最適セットのクむック怜玢



単玔なロボットの䟋を䜿甚するず、ロボット蚭定のすべおの可胜なベクトルの完党な列挙は、4぀の可倉パラメヌタヌでも高すぎるこずがわかりたす。 培底的な怜玢の明らかな代替手段は、特定の戊略に埓っおパラメヌタヌベクトルを遞択するこずです。 CFが最高に近づくたたは遞択するCFず達成する結果に応じお最小になる最適な組み合わせを探しお、可胜なすべおの組み合わせの䞀郚のみを考慮したす。



デゞタルフィルタヌの準最適倀のための3぀の怜玢アルゎリズムを怜蚎したす 。 各アルゎリズムに察しお、40のテスト400の可胜な組み合わせのうちの制限を蚭定したす。



モンテカルロ法



たたは、Nに等しいセットの可胜な数の䞭からM個の無盞関ベクトルをランダムに遞択したす。この方法はおそらく最も簡単な方法です。 それを他の最適化手法ず比范するための出発点ずしお䜿甚したす。



䟋1



チャヌトは、時間単䜍の䟡栌枬定の履歎の幎間セグメントで取埗したEURUSDを取匕するトレヌディングロボットの利益Pの、パラメヌタヌ倀「遅い」 移動平均 Mの期間ぞの䟝存性を瀺しおいたす。 他のすべおのパラメヌタヌは固定されおおり、最適化されおいたせん。







CF利益はポむントM = 12で最倧0.27に達したす。利益の最倧倀を保蚌するために、テストを20回繰り返す必芁がありたす。 別の方法は、間隔[9、20]でパラメヌタMのランダムに遞択された倀を䜿甚しお、取匕ロボットの少数のテストを実行するこずです。 たずえば、5回の反埩テストの合蚈数の20の埌、パラメヌタの準最適ベクトルベクトル、明らかに1次元が芋぀かりたした。M= 18でCFMの倀は0.18です。







最適化アルゎリズムのグラフ䞊の残りの倀は、「戊争の霧」によっお隠されおいたした。



残りのパラメヌタヌの固定倀を䜿甚しお、取匕ロボットの4぀のパラメヌタヌの1぀を最適化しおも、党䜓像を芋るこずができたせん。 おそらく、他のパラメヌタヌの倀を倉曎する堎合、0.27の最倧CFはむンゞケヌタヌの最適倀ではありたせんか







これは、間隔[0.2 ... 0.8]のTakeProfitパラメヌタヌのさたざたな倀に察しお、移動平均期間に察する利益の䟝存性がどのように倉化するかです。



モンテカルロ法2぀のパラメヌタヌの最適化



トレヌディングロボットの利益が2぀のパラメヌタヌに䟝存するこずは、衚面ずしおグラフィカルに衚すこずができたす。







2぀の軞はパラメヌタヌTTakeProfitずM移動平均の期間の倀であり、3番目の軞は利益倀です。



トレヌディングロボットの堎合、1幎のデヌタ間隔で400回のテストを実行した埌米ドルに察するナヌロの時絊6000時間の芋積もり、次のフォヌムの衚面を取埗したす。







たたは、金融資産利益、Pの倀が色で衚される平面䞊







平面䞊の任意の点を遞択するず、この䟋では、アルゎリズムは最適な倀を芋぀けられたせんでしたが、かなり近い倀になりたした。







モンテカルロ法は最倧のDFを芋぀けるのにどのくらい効果的ですか 䞊蚘の䟋から゜ヌスデヌタの最倧DFを芋぀けるために1,000回の反埩を実行するず、次の統蚈が埗られたした。





明らかに、取匕ロボットのパラメトリック最適化の方法を比范する堎合、1぀のサンプルは指暙ではありたせん。 しかし、今のずころ、この評䟡で十分です。 次の方法である募配降䞋法に進みたす。



募配降䞋法



正匏には、名前が瀺すように、メ゜ッドはDFの最小倀を怜玢するために䜿甚されたす。

この方法に埓っお、座暙[x0、y0、z0、...]で開始点を遞択したす。 1぀のパラメヌタヌの最適化の䟋では、これはランダムに遞択されたポむントになりたす。







座暙[5]およびDF倀148を䜿甚したす。以䞋は3぀の簡単なステップです。



  1. 珟圚䜍眮の近くのCF倀を確認する149および144
  2. CF倀が最小のポむントに移動する
  3. これが存圚しない堎合、ロヌカル極倀が芋぀かった堎合、アルゎリズムは完了したす






2぀のパラメヌタヌの関数ずしおDFを最適化するには、同じアルゎリズムを䜿甚したす。 以前に2぀の隣接ポむントでCFを蚈算した堎合 [xi−1]、[xi+1]、 、4぀のポむントを確認したす。





[xi−1、yi]、[xi+1、yi]、[xi、yi−1]、[xi、yi+1]

、、、、、、、











テスト空間のDFに極倀が1぀しかない堎合、この方法は間違いなく優れおいたす。 耇数の極倀がある堎合、グロヌバルな極倀を芋぀ける確率を高めるために、怜玢を数回繰り返す必芁がありたす。







この䟋では、 最倧 CFを探しおいたす 。 アルゎリズムの定矩内にずどたるために、最小の「マむナスDF」を怜玢しおいるず想定できたす。 すべお同じ䟋、移動平均の期間の関数ずしおの取匕ロボットの利益ずTakeProfit倀、1回の反埩







この堎合、CFのグロヌバル最倧倀からはほど遠いロヌカル極倀が芋぀かりたした。 募配降䞋法によるCFの極倀の怜玢のいく぀かの反埩の䟋では、CFの倀は40回蚈算されたす400のうち40点が可胜。







次に、モンテカルロ法ず募配降䞋法アルゎリズムを䜿甚しお、初期デヌタでCF利益のグロヌバルな最倧倀を怜玢する効率を比范したしょう。 それぞれの堎合、40回のテストが実行されたすCF蚈算。 各方法で1,000回の最適化の反埩が実行されたした。

モンテカルロ 募配降䞋
埗られたCFの準最適倀の平均 0.231 0.200
CFの最倧倀から取埗した倀 95.7 92.1


衚からわかるように、この䟋では、募配降䞋法は、そのタスク-CFのグロヌバルな極倀を怜玢する-最倧利益を悪化させたす。 しかし、私たちはそれを捚おようず急いでいたせん。



取匕アルゎリズムのパラメトリックな安定性



デゞタルフィルタヌのグロヌバルな最倧/最小の座暙を芋぀けるこずは、倚くの堎合、最適化の目暙ではありたせん。 グラフ䞊に「鋭い」ピヌク-グロヌバルな最倧倀があり、その付近のCF倀がピヌク倀よりはるかに䜎いず仮定したす。







芋぀かったデゞタル資産の最倧倀に察応する取匕ロボットの蚭定を遞択したずしたす。 少なくずも1぀のパラメヌタヌの倀移動平均および/たたはTakeProfitの期間の倀をわずかに倉曎するず、ロボットの収益性は急激に䜎䞋したすマむナスになりたす。 実際の取匕に適甚されるように、少なくずもロボットが取匕される垂堎は、取匕アルゎリズムを最適化した歎史の期間ずは著しく異なるず予想できたす。



したがっお、取匕ロボットの「最適な」蚭定を遞択する堎合、DFの怜出された極倀点の近くで蚭定の倉曎に察するロボットの感床を把握するこずは䟡倀がありたす。



明らかに、募配降䞋法は、原則ずしお、極倀付近のTFの倀を提䟛したす。 モンテカルロ法は、正方圢にヒットする可胜性が高くなりたす。



自動取匕戊略をテストするための耇数の手順では、最適化が完了した埌、芋぀かったパラメヌタヌベクトルの近くでロボットのタヌゲットむンゞケヌタヌをチェックするこずをお勧めしたす。 しかし、これらは远加のテストです。 さらに、蚭定のわずかな倉曎で戊略の収益性が䜎䞋した堎合はどうなりたすか 明らかに、テストプロセスを繰り返す必芁がありたす。



アルゎリズムは、DFの極倀の怜玢ず䞀緒に圹立぀堎合があり、芋぀かったピヌクに関しお狭い範囲で蚭定を倉曎するためのトレヌディング戊略の安定性を評䟡できたす。 たずえば、最倧CFを盎接怜玢しないでください





P=fmi、ti、

、、







目的関数の隣接倀を考慮した加重平均倀。ここで、重みは隣接倀たでの距離に反比䟋したす2぀のパラメヌタヌx、yおよび目的関数Pを最適化するため。





P′xi、yi= fracwi timesPxi、yi+wj timesPxj、yj+wk timesPxk、yk+...wi+wj+wk+...











wj= sqrtxj−xi2+yj−yi2











wi+wj+wk+...=1







぀たり、パラメヌタヌの準最適ベクトルを遞択するず、アルゎリズムは「平滑化された」目的関数を評䟡したす。



だった







になっおいたす







「海戊」の方法



䞡方の方法の利点モンテカルロ法ず募配降䞋法を組み合わせお、「海戊」のゲヌムのアルゎリズムに䌌たアルゎリズムを詊したした。





぀たり、最初のN個のテストは、入力パラメヌタヌのランダムな非盞関ベクトルで実行されたす。 これらのうち、M個の最良の結果が遞択されたす。 これらのテストの近くプラス-各座暙ぞの分0..Lで、別のKテストが実行されたす。



䟋400ポむント、合蚈40回の詊行の堎合







そしお再び、珟圚3぀の最適化アルゎリズムの有効性を比范したす。

モンテカルロ 募配降䞋 「海戊」
グロヌバル倀の割合ずしお怜出されたCFの極倀の平均倀。

40回のテスト、1,000回の最適化反埩

95.7 92.1 97.0




結果は励みになりたす。 もちろん、比范はデヌタの特定のサンプルで実行されたした。぀たり、米ドルに察するナヌロの䟡倀の1぀の時系列での1぀の取匕アルゎリズムです。 しかし、゜ヌスデヌタのより倚くのサンプルでアルゎリズムを比范する前に、別の、予想倖に䞍圓に取匕戊略を最適化するための䞀般的なアルゎリズム - 遺䌝的アルゎリズム GA最適化に぀いおお話したす。 ただし、この蚘事は膚倧すぎるため、GAは次の公開たで延期する必芁がありたす。



All Articles