実体験

FXのアルゴリズム取引とは

FXのアルゴリズム取引とは

しかし、この結果は要注意です。今回の訓練データの範囲で最適化されており、別の期間での検証して性能評価をするべきです。実際にこの戦略を他の期間で実施してみると以下のようにそれほど高い性能が出ていない事がわかります。

カモにならないアルゴリズム取引:取引コストと戦略入門編

取引アルゴリズムは主に三つあり、1. Execution Algorithms(実行アルゴリズム)、2. Profit Seeking Algorithms(利益追求アルゴリズム)、3.High Frequency Trading Algorithms(高頻度取引アルゴリズム)があります。「1.実行アルゴリズム」はポートフォリオマネージャー(預かった顧客の資産をふさわしい方法で投資・運用する責任を負う人)が投資目的を達成するために指定したルールに従って取引します。「2.利益追求アルゴリズム」はリアルタイムの市場データを使用して、売買する証券を決定し、これらの取引を可能な限り効率的に実行します。「3.高頻度取引アルゴリズム」は2.のやり方での短期間取引になります。今回ブログでは「1.と2.」を中心に話します。

1.2.FXのアルゴリズム取引とは FXのアルゴリズム取引とは 取引手法について

  1. market order( 成行注文 )は自分で売買価格を指定しなくても、市場が開いていれば、ask(売り気配値)やbid(買い気配値)の値段で売買が約定されます。
  2. limit order( FXのアルゴリズム取引とは 指値注文 )は自分で売買価格を指定します。
  3. stop limit order( 逆指値注文 FXのアルゴリズム取引とは )は損切りの使い方として、通常の成行や指値とは逆に、指定した価格以上になったら買付、以下になったら売付の注文を発注します。

1.3.投資サイクルについて

アルゴ取引で大事なことは、アルゴリズムが投資目的と一致する注文を実行しているかを確認することです。そのため、アルゴリズムを利用し、投資サイクルで投資を繰り返しながら儲かるかを評価します。投資サイクルは4つのステップがあり、①Asset Allocation(アセットアロケーション、 資産管理 ), ②Portfolio Construction( ポートフォリオ構築 ), ③Implementation( 実行 ), ④Portfolio Attribution( ポートフォリオアトリビューション )です。一般的に、この4つを繰り返し資産を運用していきます。

2. 執行コスト(Transaction Costs)

2.1. 執行コストの分類

FXのアルゴリズム取引とは
    FXのアルゴリズム取引とは
  • 直接コスト:
    • 各種取扱手数料(commission, fee)
    • 税金(tax)
    • 割引(リベート、rebates)
    • スプレッド(spread):買値と売値の差。市場価格の急変時や市場の流動性が低下している状況においては拡大する場合があり、想定よりコストが高くなる可能性があります。
    • 遅延コスト(delay cost)FXのアルゴリズム取引とは :発注してから、約定までの時間差で価格が変動することによって発生するコスト
    • 価格の増価(price appreciation):一定期間にわたる価格の増加
    • マーケットインパクト(market impact):自分の取引(売買)で、価格を不利にすることで発生するコスト
    • タイミングコスト(timing risk):売買案件を策定から市場へ発注するまでの間に価格が変動することによって発生するコスト
    • FXのアルゴリズム取引とは
    • 機会コスト(opportunity cost):未約定で残ってしまった証券の価格が変動することによって発生するコスト

    2.2. Implementation Shortfall (FXのアルゴリズム取引とは IS)

    Implementation Shortfall (以下、IS)は 執行コストを抑えることを目的 として、執行コストを測定するための手法です。ISは直接コストと間接コストを分解し、間接コストも細かく分解します。ISではpaper return(想定上の損益)とactual return(実際の損益)の差を計算します。paper returnは全てのシェアが決定された価格で執行されると仮定し計算します。actual returnは実際に執行されたシェアと価格を計算します。たびたび、利益を得る機会を逃したことと同様に、取引の執行に関連する摩擦と説明されます。業界によって、ISはSlippage(スリッページ)と呼ぶこともあります。数式は下記になります。


    式によると、ISはPaper ReturnとActual FXのアルゴリズム取引とは Returnの差で、Paper Returnは最後と最初のプライスの差です。S(share)は全ての取引したいシェア、Pd(decision price)は決定したプライス、Pn(price at end period)最後の時間(N)のプライス(終値)です。Actual Returnは手数料を引いた実際に取引した価格です。sjとpjは取引ごとのシェアとその時のプライスです。また、下記のある式、Pavg(average price)は取引したシェアの平均価格で、P0は発注時の価格です。

    • Complete execution
    • Opportunity cost (Andre Perold)
    • Expanded IS (Wayne Wagner)


    ISの間接コストの要素の中にあるマーケットインパクト・タイミングコスト・機会コストを最小にしようとします。マーケットインパクトは取引数量が増えると、コストが高くなる傾向があります。そのため、取引を分割し、時間をかけて執行すると、マーケットインパクトコストを抑えることができます。一方、執行時間が長くなると、価格変動でタイミングコストや機会コストが高くなってしまいます。コストを最小化するためには、その辺のバランスを考えなければならないです。これはoptimal execution strategies(最適執行戦略)と呼ばれます。

    3. 取引戦略(Trading Strategy)

    初めて投資するときに、どの商品(銘柄)に投資すべきかを決めなければなりません。銘柄が決まっても、日々の動きを観察しながら、 ①いつ entry(購入) するか ②いつ exit(決済) するか ③いつ stop loss(損切り) するか、 を決める必要があります。そのため、様々な取引戦略があります。

    ファンダメンタルズ分析は、業界、市場全体、国内および地球環境に加えて、ビジネスのあらゆる側面を評価することにより、企業の公正な価値を導き出すことです。テクニカル分析は、過去のリターンや価格変動などのデータを評価して、証券および市場全体の将来の価格変動を推定するために使用できるパターンをグラフ化することです。今回はテクニカル分析に注目します。

    3.1. テクニカル分析

    • trend: トレンド指標 は、市場が時間の経過とともに上昇、下降、または横ばいであるかどうかを分析します。
    • mean reversion: 平均回帰指標 は、マーケットにおいて、いったん大きく振れた相場が平均値へ戻そうとすることです。
    • relative strength: 相対強度指標 は、売買圧力の変動を測定します。
    • momentum: モメンタム指標 は、時間の経過に伴う価格変動の速度を評価します。
    • volume: ボリューム指標 FXのアルゴリズム取引とは は取引を集計し、強気または弱気がコントロールされているかどうかを定量化します。

    4.1. 実装環境とデータ処理

    環境はGoogle Colaboratoryを利用しました。バックテストはbacktraderというPythonバックテストライブラリを使います。また、可視化のため、backtrader_plottingを使用し、portfolio分析のため、pyfolioを使いました。

    余談ですが、Pythonでのバックテストには様々なライブラリがあります。私の記憶ベースで、よく使われているのはbacktrader, pyalgotrade, zipline, backtesting.FXのアルゴリズム取引とは pyです。自分の好みで、今回はbacktraderを使っています。

    データセット

    データセットはyahoo financeのデータを利用しました。下記のように、yahoo finance APIからデータをダウンロードし、自動的にbacktraderシステムに投入できます。これはyahoo financeに情報が入っている銘柄(株、為替、ビットコイン、など)に対応していますので、結構便利です。
    データはディリーベース取引情報のpandas dataframeです(下記の図)。中身はローソク足(1日の取引時間中の値動き情報)で、Open(始値), High(高値), Low(安値), Close(終値), Adj FXのアルゴリズム取引とは Close(調整後終値), Volume(取引数量)が含まれています。ローソク足については昔のブログで説明しましたので、そちらを参考ににしていただければと思います。

    4.2. 簡単な戦略でバックテストしてみた

    前提: バックテストは実際の市場状況を保証することができないので、いかにシミュレーション結果が優れていても、実際はスリッページが発生する可能性があります。

    SMA Crossover

    まず、簡単な取引戦略を実装しました。使った戦略はトレンド指標の一つの SMA Crossover という有名な戦略です。SMAはSimple Moving Average(単純移動平均)で単一の期間の一定数の価格を合計し、期間数でその合計を割って算出します(下記の式)。SMA Crossoverは二つの単純移動平均をクロスオーバーする指標で、売買のサインを示します。高速SMA(fastSMA、短期間)が低速SMA(SlowSMA、長期間)を超える場合、買いシグナルを示し、逆でしたら、売りシグナルを示します。

    ちなみに、SMAは元の価格より遅れます。使用したい銘柄の特徴に合わせて、遅れを減らしたい場合、EMA(Exponential Moving Average、指数移動平均)を使用することもあります。

    Simple Mean Reversion戦略

    Bollinger bands(ボリンジャーバンド)を使って mean reversion (平均回帰指標)も簡単に実装してみました。Bollinger bandsは相場の振れ幅(ボラティリティ)を一定期間の価格データから測定し、統計学的な観点から価格の変動範囲を予測する指標です。今回はmean reversionコンセプトで、振れ幅を利用し、プライスが戻ると仮定して売買します。具体的には、entryについて、プライスがlower bandの下になったら買い、upper bandの上になったら売りにします。exitについて、プライスはmedian lineになったら決済します。


    Simple Mean Reversion戦略のコードは下記になります。


    上述のように、 今回の目的は戦略のバックテストだけではなく、実際の取引に近い状況でシミュレーションをしたいです。 そのため、取引戦略を行うことと、「手数料」や「スリッページ」なども加えて検証してみます。

    backtraderでは、「手数料」はsetcommission、「スリッページ」はset_slippage_perc、を利用し、設定できます。バックテストコードの例は下記になります。
    上記の実行をすると、選んだ戦略でどのような取引をしたのかが確認できます。

    GMO internetの例
    長い期間で価格が上昇していくような例


    日本コンクリートの例 FXのアルゴリズム取引とは
    価格の変動に周期性が見られる例

    4.3. コストを測定し、軽く評価してみた

    投資サイクルの資産運用の例として、二つのポートフォリオを構築してみました。投資は2,000円で二つの株をそれぞれ1,000円ずつに分散してみました。バックテスト期間は2010/01/01 – 2021/12/01にしました。結果は下記のようになります。SMAはSimple Moving Average戦略で、SMRはSimple Mean Reversion戦略です。


    バックテスト結果によると、銘柄の特徴とトレード戦略には相性があることがわかります。個人的な直感ですが、GMOのような上がっていくトレンドですと、trend的な戦略が適応しやすいかもしれません。一方、Nippon Concreteのような季節的な影響を受けている工事関係会社はトレンドが戻ったりする可能性が高いので、mean reversion理論のような戦略が適切かもしれません。

    ついでに、ポートフォリオも紹介します。backtrader経由で、pyfolioを利用できますので、簡単に様々な指標を計算してくれます。
    GMOのSMA結果を簡単に見せます。利益率(return)や最大損失(max. drawdown)を計算してくれます。また、リスク管理の評価指標(Sharpe ratio, Calmar Ratio, Omega ratio, Sortino Ratio)も出してくれます。skewnessやkurtosisなども観察できます。

    世界一簡単なアルゴリズムトレードの構築方法 | FX/CFD中級者、上級者向け書籍

    この書籍は具体的なトレード手法を紹介するというものではなく、トレードシステムの作成、検証方法を中心に解説したものです。
    トレードアイディアをどのように作り、検証していくかが具体的に説明されており、トレードロジックの構築に悩んでいる方には読み応えのある書籍であると思います。普通に考えると効果がありそうな検証が筆者によればそれほど効果がないというものもあり、過去に他の書籍等で検証方法を学んだ方にも参考になる面もありそうです。
    先物市場や株式市場に関する記述が多いですが、為替相場でも十分に応用は効くと思います。

    トレードシステムの構築までの流れ

    %e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2018-01-01-19-41-10

    実際のトレードシステムの構築の流れは下の図のようになります。
    まずはトレードアイデアを考え、それを検証するためのデータ、検証プラットフォームを用意します。
    その後、トレードの細かいルールを定義、プログラミングを行いテストを行います。
    その結果に満足できない場合はルールの再定義、プログラミングを行います。
    満足することができたら、次は前回のテストでは使っていないデータを用いアウトオブサンプルテストを行います。
    その結果に満足できたら、実際のトレードを行います。
    満足できない場合はそのトレードアイディアは失敗となり、再度、作り直しとなります。

    トレードロジックはシンプルなほうがいい

    検証に用いるデータ

    実際に作ってみる

    第1章 簡単なまえがき――基本ルール
    本書の目的
    基本原則
    プロセス
    基本的なトレードシステム
    トレンドフォローシステム
    短期システム

    第2章 アイデア
    一から始めよ
    アイデアはあなたのトレードの性質に合ったものでなければならない
    すぐに利益がほしい
    時の試練に耐える

    第3章 複雑にするな
    ノイズについて一言
    統合的解決法と基本要素
    ルールを増やせば、機会は減り、成功も遠のく

    第4章 アップルだけをトレードしているときに、なぜ「堅牢さ」を気にしなければならないのか
    それは堅牢なシステムか
    別の見方
    どういったパラメーターの値を使えばよいのか
    複数の時間枠
    トレンド手法に良し悪しはあるのか

    第5章 少ないほど良い
    ボラティリティはもろ刃の剣 FXのアルゴリズム取引とは
    強気相場はだれもが現実から目をそらしているときに発生する

    第6章 トレンドフォロワーは利食いや損切りは使うな
    トレンド戦略のメカニズム
    トレンドを見つけるのは難しくなってきている
    ユーロドルのトレンド
    損切りはどこに置くか
    利食いについて
    押しで仕掛ける
    どれが最高のトレンドフォローシステムか
    移動平均システム
    ブレイクアウトシステム
    線形回帰システム

    第7章 短期トレーダーは利食いせよ
    トレンドフォロワーにとって悪いことは短期トレーダーにとっては良いこと
    損切りはトレンドフォローでは使えなくても、短期トレードでは使えるのか
    物事には必ず例外がある

    第8章 完璧なシステムを求めて
    結果を見る
    どれくらいのデータがあれば、またどれくらいのトレードを行えば十分と言えるのか
    どのパラメーター値を使えばよいのか

    第9章 機会均等トレード
    ポジションサイズの計算
    低位株は避けよ
    ボラティリティでの調整は株式ポートフォリオには不適切
    先物のリスク
    目標リスク
    ポートフォリオのリターンを計算する
    ポートフォリオのリスクを決める
    複数の戦略を持つことが重要
    機関投資家にとってはそれほど簡単ではない
    良いことが多すぎると悪くなることもある

    第10章 検証――人生の分かれ道――重大な選択
    コンピューターに解決させる FXのアルゴリズム取引とは
    結果をどう評価するか
    フィードバックとは何か
    隠された危険性
    忘れられた歴史
    真のコストを使え
    ダーティーデータを使え
    バックアジャストデータと株式分割調整データ
    異なるパフォーマンス測度
    レシオの解釈
    だれもが情報レシオを使うわけではない
    トレード数
    期待値
    第11章 FXのアルゴリズム取引とは 降伏させよ
    損失を出す期間を解決する
    平均的な結果を使え
    システムを絞め殺す
    ルールの一般化
    高ボラティリティ
    低ボラティリティ

    第12章 先物についてもっと詳しく
    レバレッジ
    リターンを計算するための換算係数
    FXを忘れるな
    FXの建値
    真の分散化
    商品先物市場のライフサイクル

    第13章 悪臭を放つリスクはいらない
    明確なプラン
    低位株は避けよ
    100%を超えるボラティリティ?
    ボラティリティが非常に高いときはトレードするな
    価格ショックを回避せよ
    ポートフォリオのドローダウン
    ビジネスリスク
    再びレバレッジを上げる

    第14章 ポートフォリオのために最良の株式と先物を選ぶ
    多くを望みすぎるな
    実用的な解決法
    パフォーマンスのランク付け
    銘柄の入れ替え

    第15章 銘柄に戦略を合わせる
    株式のノイズ
    ETFのノイズ
    先物のノイズ

    第16章 トレンド戦略の構築
    トレンド
    買いと売りのルール
    最初の検証
    コスト
    期待
    最初の目標をクリアする
    利食い
    ボラティリティフィルター
    ルールを組み合わせる
    複数の仕掛けと手仕舞い
    市場が多いほど、堅牢さは増す
    リスクの安定化
    自分自身でやる

    第17章 日中トレード戦略の構築
    時間枠
    概要
    戦略
    戦略を選ぶ
    トレンド戦略か、それとも平均回帰戦略か
    基本的なルール
    ブレイクアウトルール
    利食いと極端なボラティリティ
    トレンドについて

    「多くの著者が曖昧にするような点を、カウフマンは非常に分かりやすく説明している。トレードを成功に導くための重要な要素に焦点を当てた本書は、アルゴリズムトレードを始めたばかりのトレーダーにとっても、経験のあるトレーダーにとっても、必携書であろう。勝率を高め、詳細に注意を払い、メカニズムを複雑にしすぎるな……。カウフマンのガイドラインに従えば、成功すること請け合いだ。ありがとう、ペリー」――スタンリー・ダッシュ(公認テクニカルアナリスト、TradeStationのApplied Technical Analysisのバイスプレジデント)

    「本書は、1000ページを超える超大作『トレーディング・システムズ・アンド・メソッド(Trading Systems FXのアルゴリズム取引とは FXのアルゴリズム取引とは and Methods)』のコインのもう一方の側とも言えるものだ。成功するトレードシステムを構築するうえでの重要なポイントを提示した本書は、アルゴリズムトレーダーが目標を達成するうえで知っておくべき重要な概念を理解するのに役立つものだ」――マリオ・V・グファンティ(SAMTのバイスプレジデント)

    監修者まえがき
    本書は投資コンサルタントのペリー・カウフマンが著した“A Guide to FXのアルゴリズム取引とは Creating A Successful Algorithmic Trading Strategy”の邦訳である。はじめに断っておくと、これは特定のアルゴリズム(システマティックなトレード戦略)を扱った解説書ではなく、より俯瞰的な立場から、アルゴリズムを使用したトレード戦略の適切なデザイン方法を述べたものである。ただし、利益の源泉となるリスク・プレミアムの例として取り上げられているのは、時系列分析から得られるモメンタムと平均回帰だけであるが、その分、平易で実務的な解説がなされており、少なくともこの2者に関しては十分な内容となっている。一般に、私たちが投資やトレードで使えるリスク・プレミアムとしては、ほかにもクロスセクション分析によるバリューやサイズなどもあるが、筆者が解説にあたってモメンタムと平均回帰に対象を限定したのは、それがだれにとっても直観的に分かりやすく、かつ最も広範囲に得られて、しかも堅牢だからである。

    ■第2章 アイデア
    アイデアはどこから来るのだろうか。アイデアはどこにでもある。ただし、それを認識する直感が必要だ。また、アイデアは簡単に説明できるものでなければならない。インディケーター、期間、パターン、コンピューターテクニックを組み合わせても、成功するトレードシステムを作成することはできない。こういったものを組み合わせても、過去では素晴らしくうまくいったが、将来的には機能しないようなシステムが得られるだけである。

    トレンドはFRB(連邦準備制度理事会)が設定した金利政策に基づく。
    農産物、航空株、リゾート株、灯油といった株式やコモディティーのなかには季節性が存在する。
    2つの半導体メーカー、2つの製薬会社、2つの住宅メーカーのように2つの似たような株式の差を利用することができる。これを「株式アービトラージ」またはペアトレードと言う。
    決算発表の前、あるいは価格ショック後には価格ボラティリティに基づいて売買する。
    大手格付け会社による格付けの上昇後は逆張りする(ニュースが流れるころにはもう古いニュースになっている)。
    ファンドが償還し、ポジションを再度建てるときには、翌月の同じ時期に同じパターンが現れる。
    人間の性質に基づくが、過去50年の間、頼りになる3日サイクルが存在する。
    「月曜日に上昇し、火曜日に下落する」といった週間パターンが存在する。
    ほかにもたくさんあるが、こうしたものを認識するには、実際にトレードしてみる必要がある。トレードは、意識を市場に集中させ、経済報告、地政学な出来事、企業ニュースの(あなたのお金に対する)効果を吸収する最良の方法だ。なぜなら、市場にお金を投じていれば、値動きに関するあなたの集中力は大幅に増し、損失を生むような問題は素早く解決しようとするからである。

    アルゴリズム・トレーディング市場は、2021年から2028年の間に19,351百万米ドルの機会を創出する

    現在の2028年の推定値は、COVID-19以前の推定値を上回ると予測されています。COVID-19の発生は、アルゴリズム取引の採用が前例のない状況下で増加したため、アルゴリズム取引業界の成長に与える影響は低い。例えば、オーストラリア準備銀行(Reserve Bank FXのアルゴリズム取引とは of Australia)は最近の発表で、COVID-19の大流行は、業界の電子取引への移行をさらに促進させた可能性があると述べています。加えて,市場参加者は,パンデミック中に,取引量の増加に対応するために革新的なアルゴリズム取引製品を導入しました。この要因がアルゴリズム取引市場の成長を後押ししています。例えば、2021年3月、米国の多国籍独立系投資銀行であるCowen社は、個人取引の増加に伴う市場の動きを機関投資家が把握できるようにするため、アルゴリズム取引ソリューションを発表しました。

    競合分析。

    アルゴリズムトレーディング業界の主要企業として、63MOONS、Virtu Financial、Software AG、Refinitiv Ltd. 、MetaQuotes Software Corp. MetaQuotes Software Corp. Symphony Fintech Solutions Pvt Ltd. Argo SE、Tata Consultancy Services、Algo Trader AG、Tethysなどが挙げられます。本調査では、アルゴリズム取引市場の動向、アルゴリズム取引市場の分析、および将来の予測を行い、差し迫った投資ポケットを決定します。

    本調査の主な結果

    • コンポーネント別に見ると、2020年にはソリューションセグメントがアルゴリズム取引市場規模の大半を占めました。しかし、予測期間中はサービスセグメントが大きな成長を見せると予想されています。
    • 導入形態別では、2020年にクラウドセグメントが最も高い収益を上げ、近い将来に最も高い成長率を示すと予想されています。
    • タイプ別では、株式市場セグメントが2020年に最も高い収益を記録しましたが、予測期間中は暗号通貨セグメントが最も高い成長率を示すと予想されます。
    • 地域別に見ると、アルゴリズムトレーディング市場は北米が中心でした。しかし、アジア太平洋地域は今後数年間で大きな成長が見込まれています。

    私たちについて:

    私たちは業界で最高の市場調査レポートプロバイダーです。Report Oceanは、今日の競争の激しい環境で市場シェアを拡大するトップラインとボトムラインの目標を達成するために、クライアントに品質レポートを提供することを信じています。 Report Oceanは、革新的な市場調査レポートを探している個人、組織、業界向けの「ワンストップソリューション」です。

    Pythonでゼロ(?)から始める自動取引

    まず、最初にデータを準備する必要があります。為替レートや株価などは様々なsiteで公開されていますが、一旦 download したり、少々手間ですよね。python library の1つである、pandas_datareader を利用すると、簡単に様々なデータソースから過去のチャートの情報を取得することができます。例えば、Apple の株価を2010/4/1から2021/3/31まで取得するには、以下のようにします。(以下、サンプル・コードは、Google Colaboratory や Jupyter Lab へコピペするだけで動かすことができます)
    Yahoo の data source を利用すると、指定した期間の日毎の高値、安値、始値、終値、出来高、調整後終値が pandas library の DataFrameとして取得できます。pandas とは python のデータ分析で不可欠な library で、様々なデータの確認・集計や可視化が簡単にできます。


    ただ、default のままでは文字が小さかったりするので(個人の好みもあるとは思いますが)、seaborn library を import として色々と option を変えてみるのも良いですね。

    また、plotly という library を利用すると interactive なグラフを作ってグリグリと動かしながらデータを分析できます。

    上の例ではAppleの株価を取得しましたが、他にも様々なデータが取得できます。例えば、Goldman Sachsの株価とか(これをあとで使います)

    株価だけでなく、ドル円の為替レート

    30年ぶりに3万円台まで回復した日経225とか

    などなど、多様なチャートのデータを手軽に入手できます。

    取引戦略を実装してみる

    以下のコードは、SMA_SとSMA_Lの大小を比較して position を +1 or -1 を選択し、その strategy に応じて return を得ます。なお、投資戦略に未来のデータが混ざらないように注意しましょう。(以下のコードでは対数収益率 r_t = \ln [ p_/p_t ] \end" /> を元に収益を評価します。これは1ステップ後の時刻での価値の増加率に対応し、strategy として position を short にとっているならば、マイナス1を掛けているので元の資産が減少=資産の増加になります。)
    さて、実際に試してみましょう。

    するとこのように Goldman Sachs 株価のトレンドに応じて自動的にposition を long (+1) か short (-1) に 取り直す戦略で取引がなされました。この取引戦略による収益 の時系列 は以下のようにlong し続けた場合(緑の線)とこの戦略を取った場合(オレンジの線)の対数収益率の累積として 計算できます FXのアルゴリズム取引とは 。2018年末の株価が下がる際にタイミングよく position を取り替えたために収益が得られました。
    具体的な数値は上で計算できます。単純に株を保持していた場合の1.24と比べて、この移動平均による position 管理により、1.83とより多くの収益が得られました。

    長期・短期の移動平均の組み合わせ毎のパフォーマンスを比較して、より良い設定を探索してみます。

    表だけではパフォーマンス(strategy – FXのアルゴリズム取引とは market の差)が把握しにくいので、以下のようにheatmapで見てみるのも良いですね。

    長期としては80日前後、短期としては20~25日がパフォーマンスが良さそうです。この組み合わせでは 短期25日, 長期80日がベストです。


    しかし、この結果は要注意です。今回の訓練データの範囲で最適化されており、別の期間での検証して性能評価をするべきです。実際にこの戦略を他の期間で実施してみると以下のようにそれほど高い性能が出ていない事がわかります。

    バックテストツールを使ってみる

    以上は実際に、python でゼロ(?)からアルゴリズム・トレードのデモをしましたが、すでに様々な library や専門のツールが公開されていますので、それを使って実践してみたいと思います。
    既に別の blog の記事で高機能な vnpy というツールが紹介されていますが、ここでは、backtesting ( https://kernc.github.io/backtesting.py/ ) を紹介します。(Google Colaboratoryなどでは、!pip install backtesting でinstallできます)あまり複雑な機能はありませんが、シンプルで判りやすく、結果の可視化が便利です。

    まず、先ほど紹介した2つの移動平均線を元に取引する戦略を実装します。これは Strategy class を用いて先ほどの取引ルール
    長期・短期移動平均がクロスする際に position を close し、long または short の position を取り直す
    は以下のコードできます。
    FXのアルゴリズム取引とは FXのアルゴリズム取引とは
    投資戦略を実装したら、データを読み込み以下のようにバックテストを実施します。
    ここで結果のレポートが詳細に表示され、収益やトレードの勝率など結果について様々な情報がわかります。


    また、トレードの状況についても以下の様に表示され大変わかりやすいです。上から Equity、Profit & Loss、株価と各種指標、そして取引量の時系列がプロットされています。これらのグラフは一部を選択したり拡大したりできとても便利です。


    さて、移動平均の期間などのパラメータの最適化も、以下のように探索範囲や条件、何を最大化(今回は Equity Final)するなど指定し投資戦略を探すことができます。

    アルゴリズムトレード

    MetaTrader 4の取引ろぼっとやテクニカルインディケータは、自分で作成する事もできるし、ダウンロードしたり、購入またはオーダーすることができます。

    プラットフォームには、取引エキスパートアドバイザ(取引ロボット、Expert Advisors)や、ほぼ全ての難易度のテクニカルインディケータを作成する事ができる、MQL4 FXのアルゴリズム取引とは IDE統合開発環境(Integrated Development Environment)が直接内蔵されています。その核にあるのは、高いパフォーマンス性、柔軟性、そして機能性を持つ、MQL4取引戦略開発オブジェクト指向言語です。

    内蔵されているMetaEditorは、MQL4言語での取引戦略の開発の為に設計されており、デバッガーも提供されています。コンパイルもこちらで行われ、その後でアプリケーションは、MQL4 IDEのもう一つのコンポーネントであるストラテジーテスターでテストまたは最適化することができるMetaTrader 4に自動的に移動されます。そして、MetaTrader 4プラットフォーム自体が、最後の環境コンポーネントとなり、取引アプリケーションの直接の実行者となります。

      に無料で公開し、数百万のトレーダーがそれをダウンロードすることができます。 に製品として公開し、お金を稼ぐことができます。 サービスを介して依頼者に製品を引き渡し、あなたが行った仕事に対する報酬を得ることができます。

    Automated Trading Championshipは、弊社が開催する取引ロボットの選手権は、言語の強力さを明確にしました。3ヶ月間の間、エキスパートアドバイザは、8万ドルの賞金獲得を目指し、自分で取引を行い競います。過去の詳細はこちらで見ることができます。
    2006 2007 2008 2010 2011 2012

    言い換えるならば、MetaTrader 4は、取引ロボットやテクニカルインディケータの為の最も広い機能をあなたに提供するものです。MetaTrader 4では、その他にも、あなたの開発の才能を最大限に実装する事ができる付加サービスを提供しています。

    関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次
閉じる