MQL5言語での戦略テストに関する記事

icon

どのように取引戦略を開発し、記述し、テストするか、どのように最適なシステムパラメータを見つけるか、どのようにその結果を分析するか?MetaTraderプラットフォームは自動売買ロボットの開発者に、トレーディングアイデアを速く正確にテストするための豊富な機能を提供します。この記事を読んで、どのように複数通貨ロボットをテストするか、どのように最適化を目的としてMQL5Cloud Networkを使用するかを学んでください。

自動取引システムの開発者はテスティングの基本とストラテジーテスターの中のティック生成アルゴリズムについて読むことから始めることをお勧めします。

新しい記事を追加
最新 | ベスト
preview
リプレイシステムの開発(第38回):道を切り開く(II)

リプレイシステムの開発(第38回):道を切り開く(II)

MQL5プログラマーを自認する人の多くは、この記事で概説するような基本的な知識を持っていません。MQL5は多くの人によって限定的なツールだと考えてられていますが、実際の理由は、そのような人たちが必要な知識を持っていないということです。知らないことがあっても恥じることはありません。聞かなかったことを恥じるべきです。MetaTrader 5で指標の複製を強制的に無効にするだけでは、指標とEA間の双方向通信を確保することはできません。まだこれにはほど遠いものの、チャート上でこの指標が重複していないという事実は、私たちに自信を与えてくれます。
preview
リプレイシステムの開発(第32回):受注システム(I)

リプレイシステムの開発(第32回):受注システム(I)

これまで開発してきたものの中で、このシステムが最も複雑であることは、おそらく皆さんもお気づきでしょうし、最終的にはご納得いただけると思います。あとは非常に単純なことですが、取引サーバーの動作をシミュレーションするシステムを作る必要があります。取引サーバーの操作方法を正確に実装する必要性は、当然のことのように思えます。少なくとも言葉ではです。ただし、リプレイ/シミュレーションシステムのユーザーにとって、すべてがシームレスで透明なものとなるようにする必要があります。
preview
リプレイシステムの開発(第62回):サービスの再生(III)

リプレイシステムの開発(第62回):サービスの再生(III)

この記事では、実際のデータを使用する際にアプリケーションのパフォーマンスに影響を及ぼす可能性のある「ティック過剰」の問題について取り上げます。このティック過剰は、1分足を適切なタイミングで構築するうえで支障となることがよくあります。
preview
リプレイシステムの開発 - 市場シミュレーション(第25回):次の段階への準備

リプレイシステムの開発 - 市場シミュレーション(第25回):次の段階への準備

この記事では、リプレイ/シミュレーションシステム開発の第1段階を完了しました。この成果により、システムが高度なレベルに達したことを確認し、新機能の導入への道を開くことができました。目標は、システムをさらに充実させ、市場分析の調査開発のための強力なツールに変えることです。
preview
リプレイシステムの開発(第41回):第2段階(II)の開始

リプレイシステムの開発(第41回):第2段階(II)の開始

もし、この時点まですべてが正しく思えたとしたら、それはアプリケーションの開発を始めるときに、長期的なことをあまり考えていないということです。時間が経つにつれて、新しいアプリケーションをプログラムする必要はなくなり、それらを連携させるだけで済むようになります。それでは、マウス指標を組み立てる方法を説明しましょう。
preview
ALGLIBライブラリの最適化手法(第2回):

ALGLIBライブラリの最適化手法(第2回):

この記事では、ALGLIBライブラリにおける残りの最適化手法の検討を続けていきます。特に、複雑な多次元関数でのテストに重点を置きます。これにより、各アルゴリズムの効率性を評価できるだけでなく、さまざまな条件下における強みと弱みを明らかにすることができます。
preview
多通貨エキスパートアドバイザーの開発(第5回):可変ポジションサイズ

多通貨エキスパートアドバイザーの開発(第5回):可変ポジションサイズ

前回開発中のエキスパートアドバイザー(EA)は、固定されたポジションサイズのみを使用して取引をおこなうことができました。これはテスト用には許容できますが、実際の口座で取引する場合にはお勧めできません。可変のポジションサイズで取引できるようにしましょう。
preview
リプレイシステムの開発(第37回):道を切り開く(I)

リプレイシステムの開発(第37回):道を切り開く(I)

今回は、もっと前にやりたかったことをようやく始めます。確固たる地盤がないため、この部分を公に発表する自信がありませんでした。今、私にはその根拠があります。この記事の内容を理解することにできるだけ集中することをお勧めします。単に読むだけではなくて、という意味です。ここで強調しておきたいのは、この記事を理解できなければ、それに続く記事の内容を理解することはできないということです。
preview
リスク管理への定量的なアプローチ:PythonとMetaTrader 5を使用してVaRモデルを適用し、多通貨ポートフォリオを最適化する

リスク管理への定量的なアプローチ:PythonとMetaTrader 5を使用してVaRモデルを適用し、多通貨ポートフォリオを最適化する

この記事では、複数通貨ポートフォリオの最適化におけるバリュー・アット・リスク(VaR: Value at Risk)モデルの可能性について探ります。PythonのパワーとMetaTrader 5の機能を活用し、効率的な資本配分とポジション管理のためにVaR分析をどのように実装するかを紹介します。理論的な基礎から実践的な実装まで、アルゴリズム取引における最も堅牢なリスク計算手法の一つであるVaRの応用に関するあらゆる側面を取り上げています。
preview
エキスパートアドバイザーの堅牢性テスト

エキスパートアドバイザーの堅牢性テスト

戦略開発には、多くの複雑な要素が含まれていますが、これらの多くは初心者トレーダーには十分に伝えられていません。その結果、私自身を含め多くのトレーダーが、こうした教訓を痛みを伴う経験を通じて学ぶことになりました。この記事では、MQL5で戦略を開発する際に初心者トレーダーが直面しがちな一般的な落とし穴について、私の観察に基づいて解説します。EAの信頼性を見極め、簡単に実践できる方法で自作EAの堅牢性を検証するための、さまざまなヒントやコツ、具体例を紹介します。本記事の目的は、読者がEA購入時の詐欺を回避し、自身の戦略開発での失敗を未然に防げるよう支援することです。
preview
リプレイシステムの開発 - 市場シミュレーション(第21回):FOREX (II)

リプレイシステムの開発 - 市場シミュレーション(第21回):FOREX (II)

FOREX市場で作業するためのシステムを構築し続けます。この問題を解決するためには、まず、前のバーを読み込む前にティックの読み込みを宣言しなければなりません。これによって問題は解決されますが、同時にユーザーは構成ファイルの構造に従わざるを得なくなります。これは個人的にはあまり意味がありません。なぜなら、構成ファイルの内容を分析し、実行する役割を担うプログラムを設計することで、ユーザーが必要な要素を好きな順番で宣言できるようになるからです。
preview
リプレイシステムの開発(第57回):テストサービスについて

リプレイシステムの開発(第57回):テストサービスについて

注意点が1つあります。この記事にはサービスコードは含まれておらず、次の記事でのみ提供されます。ただし、実際の開発の出発点として同じコードを使用するため、この記事ではその説明をおこないます。ですので、注意深く、そして忍耐強く読んでください。毎日、すべてがさらに面白くなっていきますので、次の記事を楽しみにお待ちください。
preview
取引におけるカオス理論(第1回):金融市場における導入と応用、リアプノフ指数

取引におけるカオス理論(第1回):金融市場における導入と応用、リアプノフ指数

カオス理論は金融市場に適用できるでしょうか。この記事では、従来のカオス理論とカオスシステムがビル・ウィリアムズが提案した市場のカオスの概念とどのように異なるかについて考察します。
preview
人工協調探索(ACS)アルゴリズム

人工協調探索(ACS)アルゴリズム

人工協調探索(ACS)は、バイナリ行列と、相互主義的関係と協調に基づく複数の動的な個体群を用いて、最適解を迅速かつ正確に探索する革新的な手法です。捕食者と被食者に対するACS独自のアプローチにより、数値最適化問題で優れた結果を出すことができます。
preview
ウィリアム・ギャンの手法(第2回):ギャンスクエアインジケーターの作成

ウィリアム・ギャンの手法(第2回):ギャンスクエアインジケーターの作成

ギャンのSquare of 9に基づいて、時間と価格を2乗したインジケーターを作成します。コードを準備し、プラットフォームで異なる時間間隔でインジケーターをテストします。
preview
リプレイシステムの開発(第63回):サービスの再生(IV)

リプレイシステムの開発(第63回):サービスの再生(IV)

この記事では、1分足のティックシミュレーションに関する問題を最終的に解決し、実際のティックと共存できるようにします。これにより、将来的なトラブルを回避することが可能になります。ここで提示される資料は教育目的のみに使用されます。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
化学反応最適化(CRO)アルゴリズム(第1回):最適化におけるプロセス化学

化学反応最適化(CRO)アルゴリズム(第1回):最適化におけるプロセス化学

この記事の最初の部分では、化学反応の世界に飛び込み、最適化への新しいアプローチを発見します。化学反応最適化(CRO)は、熱力学の法則から導き出された原理を使用して効率的な結果をもたらします。この革新的な方法の基礎となった分解、合成、その他の化学プロセスの秘密を明らかにします。
preview
リプレイシステムの開発(第70回):正しい時間を知る(III)

リプレイシステムの開発(第70回):正しい時間を知る(III)

この記事では、CustomBookAdd関数を適切かつ効果的に使う方法について見ていきます。一見シンプルに見えるこの関数ですが、実際には多くの細かな注意点があります。たとえば、マウスインジケーターに対してカスタム銘柄がオークション中なのか、取引中なのか、市場が閉まっているのかを伝えることができます。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを利用することは避けてください。
preview
Candlestick Trend Constraintモデルの構築(第8回):エキスパートアドバイザー(EA)の開発 (II)

Candlestick Trend Constraintモデルの構築(第8回):エキスパートアドバイザー(EA)の開発 (II)

独立したEAについて考えてみましょう。前回は、リスクとリターンのジオメトリを描くために独立したスクリプトと連携する、指標ベースのEAについて説明しました。今回は、すべての機能を1つのプログラムに統合したMQL5 EAのアーキテクチャについて解説します。
preview
リプレイシステムの開発(第69回):正しい時間を知る(II)

リプレイシステムの開発(第69回):正しい時間を知る(II)

今日は、iSpread機能がなぜ必要なのかについて考察します。同時に、ティックが1つも存在しない状況で、システムがどのようにバーの残り時間を通知するのかについても理解を深めていきます。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを利用することは避けてください。
preview
リプレイシステムの開発(第29回):エキスパートアドバイザープロジェクト - C_Mouseクラス(III)

リプレイシステムの開発(第29回):エキスパートアドバイザープロジェクト - C_Mouseクラス(III)

C_Mouseクラスを改良した後は、分析のためのまったく新しいフレームワークを作るためのクラスを作ることに集中しましょう。この新しいクラスを作るのに、継承やポリモーフィズムは使用しません。その代わりに、価格線に新しいオブジェクトを追加します。それがこの記事でやろうとしていることです。次回は、分析結果を変更する方法について見るつもりです。これらはすべて、C_Mouseクラスのコードを変更することなくおこなわれます。実際には、継承やポリモーフィズムを使用すれば、もっと簡単に実現できるでしょう。しかし、同じ結果を得る方法は他にもあります。
preview
リプレイシステムの開発(第30回):エキスパートアドバイザープロジェクト - C_Mouseクラス(IV)

リプレイシステムの開発(第30回):エキスパートアドバイザープロジェクト - C_Mouseクラス(IV)

今日は、プログラマーとしての職業生活のさまざまな段階で非常に役立つテクニックを学びます。多くの場合、制限されているのはプラットフォーム自体ではなく、制限について話す人の知識です。この記事では、常識と創造性があれば、クレイジーなプログラムなどを作成することなく、MetaTrader 5 プラットフォームをより面白くて多用途にし、シンプルでありながら安全で信頼性の高いコードを作成できることを説明します。創造力を駆使して、ソース コードを1行も削除したり追加したりすることなく、既存のコードを変更します。
preview
リプレイシステムの開発(第44回):Chart Tradeプロジェクト(III)

リプレイシステムの開発(第44回):Chart Tradeプロジェクト(III)

前回の記事では、OBJ_CHARTで使用するテンプレートデータの操作方法について解説しました。ただし、あの記事ではトピックの概要に焦点を当て、詳細な部分には触れていませんでした。これは、説明をよりシンプルにするために、非常に簡略化された手法を用いたからです。物事は一見シンプルに見えることが多いですが、実際にはそうではないケースもあり、全体を正確に理解するためには、まず最も基本的な部分をしっかり押さえる必要があります。
preview
リプレイシステムの開発 - 市場シミュレーション(第23回)FOREX (IV)

リプレイシステムの開発 - 市場シミュレーション(第23回)FOREX (IV)

これで、ティックをバーに変換したのと同じ時点で作成がおこなわれます。こうすることで、変換プロセス中に問題が発生した場合、すぐにエラーに気づくことができます。これは、早送り中にチャート上に1分足を配置するコードと同じコードが、通常のパフォーマンス中に足を配置する位置決めシステムにも使用されるためです。言い換えれば、このタスクを担当するコードは他の場所には複製されません。このようにして、メンテナンスと改善の両方においてはるかに優れたシステムが得られます。
preview
リプレイシステムの開発(第46回):Chart Tradeプロジェクト(V)

リプレイシステムの開発(第46回):Chart Tradeプロジェクト(V)

アプリケーションを動作させるために必要なファイルを探すのに時間を浪費していませんか。すべてを実行ファイルに含めてみてはどうでしょうか。そうすれば、ファイルを探す必要がなくなります。多くの人がこのような配布・保管方法を採用していることは知っていますが、少なくとも、実行ファイルの配布や保管に関してはもっと適切な方法があります。ここで紹介する方法は、MQL5だけでなく、MetaTrader 5そのものを優れたアシスタントとして使うことができるので、非常に便利です。しかも、理解するのはそれほど難しくありません。
preview
母集団最適化アルゴリズム:ボイドアルゴリズム

母集団最適化アルゴリズム:ボイドアルゴリズム

この記事では、動物の群れ行動のユニークな例に基づいたボイドアルゴリズムについて考察しています。その結果、ボイドアルゴリズムは、「群知能(Swarm Intelligence)」の名の下に統合されたアルゴリズム群全体の基礎となった。
preview
人工生態系ベースの最適化(AEO)アルゴリズム

人工生態系ベースの最適化(AEO)アルゴリズム

この記事では、初期の解候補集団を生成し、適応的な更新戦略を適用することで、生態系構成要素間の相互作用を模倣するメタヒューリスティック手法、人工エコシステムベース最適化(AEO: Artificial Ecosystem-based Optimization)アルゴリズムについて検討します。AEOの動作過程として、消費フェーズや分解フェーズ、さらに多様なエージェント行動戦略など、各段階を詳細に説明します。あわせて、本アルゴリズムの特徴と利点についても紹介します。
preview
リプレイシステムの開発(第33回):発注システム(II)

リプレイシステムの開発(第33回):発注システム(II)

今日も発注システムの開発を続けます。ご覧のように、他の記事ですでに紹介したものを大量に再利用することになります。とはいえ、この記事にはささやかなご褒美があります。まず、デモ口座からでもリアル口座からでも、取引サーバーで使えるシステムを開発します。MetaTrader 5プラットフォームを幅広く活用し、当初から必要なサポートをすべて提供します。
preview
リプレイシステムの開発(第40回):第2段階の開始(I)

リプレイシステムの開発(第40回):第2段階の開始(I)

今日は、リプレイ/シミュレーターシステムの新しい段階について話しましょう。この段階で、会話は本当に面白くなり、内容もかなり濃くなります。記事を熟読し、そこに掲載されているリンクを利用することを強くお勧めします。そうすることで、内容をより深く理解することができます。
preview
人工蜂の巣アルゴリズム(ABHA):テストと結果

人工蜂の巣アルゴリズム(ABHA):テストと結果

この記事では、人工蜂の巣アルゴリズム(ABHA)の探索を続け、コードの詳細を掘り下げるとともに、残りのメソッドについて考察します。ご存じのとおり、このモデルにおける各蜂は個別のエージェントとして表現されており、その行動は内部情報、外部情報、および動機付けの状態に依存します。さまざまな関数を用いてアルゴリズムをテストし、その結果を評価表としてまとめて提示します。
preview
リプレイシステムの開発(第34回):発注システム (III)

リプレイシステムの開発(第34回):発注システム (III)

今回は、構築の第一段階を完成させます。この部分はかなり短時間で終わりますが、前回までに説明しなかった詳細をカバーします。多くの方が理解していない点をいくつか説明します。なぜShiftキーやCtrlキーを押さなければならないかご存じでしょうか。
preview
リプレイシステムの開発(第51回):物事は複雑になる(III)

リプレイシステムの開発(第51回):物事は複雑になる(III)

この記事では、MQL5プログラミングの分野で最も難解な問題の1つである、チャートIDを正しく取得する方法と、オブジェクトがチャートにプロットされない場合がある理由について解説します。ここで提供される資料は教育目的のみに使用されるべきです。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
アフリカ水牛最適化(ABO)

アフリカ水牛最適化(ABO)

この記事では、アフリカ水牛の特異な行動に着想を得て2015年に開発されたメタヒューリスティック手法、アフリカ水牛最適化(ABO)アルゴリズムを紹介します。アルゴリズムの実装プロセスと、複雑な問題の解決におけるその高い効率性について詳しく解説しており、最適化分野における有用なツールであることが示されています。
preview
Numbaを使用したPythonの高速取引ストラテジーテスター

Numbaを使用したPythonの高速取引ストラテジーテスター

この記事では、Numbaを使った機械学習モデルのための高速ストラテジーテスターを実装しています。純粋なPythonのストラテジーテスターと比べて50倍速く動作します。このライブラリを使って特にループを含む数学計算を高速化することを推奨しています
preview
母集団最適化アルゴリズム:人工多社会的検索オブジェクト(MSO)

母集団最適化アルゴリズム:人工多社会的検索オブジェクト(MSO)

前回に引き続き、社会的集団について考えてみたいと思います。この記事では、移動と記憶のアルゴリズムを用いて社会集団の進化を探求しています。その結果は、社会システムの進化を理解し、最適化や解の探索に応用するのに役立つでしょう。
preview
雲モデル最適化(ACMO):実践編

雲モデル最適化(ACMO):実践編

この記事では、ACMO(Atmospheric Cloud Model Optimization:雲モデル最適化)アルゴリズムの実装について、さらに詳しく掘り下げていきます。特に、低気圧領域への雲の移動および水滴の初期化と雲間での分布を含む降雨シミュレーションという2つの重要な側面に焦点を当てます。また、雲の状態を管理し、環境との相互作用を適切に保つために重要な役割を果たす他の手法についても紹介します。
preview
リプレイシステムの開発(第64回):サービスの再生(V)

リプレイシステムの開発(第64回):サービスの再生(V)

この記事では、コード内の2つのエラーを修正する方法について説明します。ただし、初心者プログラマーの皆さんに、物事が必ずしも期待どおりに進むとは限らないことを理解してもらえるよう、できるだけわかりやすく解説したいと思います。いずれにせよ、これは学びの機会です。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。ここで紹介する内容は教育目的のみに限定されており、提示された概念を探求すること以外の目的でこのアプリケーションを最終的な文書と見なすべきではありません。
preview
注文板に基づいた取引システムの開発(第1回):インジケーター

注文板に基づいた取引システムの開発(第1回):インジケーター

市場の厚みは、特に高頻度取引(HFT)アルゴリズムにおいて、高速な取引を実行するために不可欠な要素です。本連載では、多くの取引可能な銘柄に対してブローカー経由で取得できるこの種の取引イベントについて取り上げます。まずは、チャート上に直接表示されるヒストグラムのカラーパレット、位置、サイズをカスタマイズ可能なインジケーターから始めます。次に、特定の条件下でこのインジケーターをテストするためのBookEventイベントの生成方法について解説します。今後の記事では、価格分布データの保存方法や、そのデータをストラテジーテスターで活用する方法などのトピックも取り上げる予定です。
preview
リプレイシステムの開発 - 市場シミュレーション(第22回):FOREX (III)

リプレイシステムの開発 - 市場シミュレーション(第22回):FOREX (III)

このトピックに関する記事は今回で3回目になりますが、株式市場とFOREX市場の違いをまだ理解していない方のために説明しなければなりません。大きな違いは、FOREXでは、取引の過程で実際に発生したいくつかのポイントに関する情報がないというか、与えられないということです。
preview
リプレイシステムの開発(第56回):モジュールの適応

リプレイシステムの開発(第56回):モジュールの適応

モジュール同士はすでに適切に連携していますが、リプレイサービスでマウスポインタを使用しようとするとエラーが発生します。次のステップに進む前に、この問題を修正する必要があります。さらに、マウスインジケーターのコードにある別の問題も修正します。この修正によって、今回のバージョンは最終的に安定し、洗練されたものになります。