MetaTrader 5をダウンロードする

インジケーターの開発を依頼するための要件定義を作成する方法

16 4月 2018, 09:42
MetaQuotes Software Corp.
0
935

目次


どのようにすればアルゴリズムトレードは、トレーダーの日常を楽にすることができるでしょうか

すべてのトレーダーは、トレードの操作から実行の瞬間を識別することができる相場行動パターンを見つけたいと思っています。 また、噂、ニュースリリース、疲労などのような外部要因による不規則性と影響力を排除したいでしょう。

トレーダーは、チャートを監視し、価格やティックチャートの客観的な分析を可能にする厳密なルールを策定することができます。 テクニカルインジケーターは、このような分析を容易にすることができます。

次のステップは、システムのシグナルが現在の状況に不適切なように見える場合でも、エントリを省略せずに機械的かつ厳密にシステムを次のトレードに可能にするルールを、開発することです。 トレーディングシステムのシグナルを厳密に記述できる場合は、EAにトレードをさせることをお勧めします。

トレーディングロボットは、疲労や疑念なく24時間ノンストップで動作することができます。 しかし、すべてのトレーダーがトレーディングロボットを開発できるわけではありません。 この場合の解決策は、アルゴリズムトレーディングプログラマからアプリケーションをオーダーすることです。 アプリケーションをオーダーするときには、プログラマに、オーダーするインジケーターまたはトレーディングロボットの要件定義を提供する必要があります。 この記事では、要件定義の作成を検討します。 この記事は、フリーランスのサービスを利用する依頼人にとって興味深いものになるでしょう。

画像とビデオでテキストを補足

要件の仕様は正確かつ適切に構造化されており、プログラマがタスクを理解するために必要なすべてのもの (数式、論理条件、コードの断片、アルゴリズムの説明) が含まれている必要があります。

我々の社会の多くの問題は誤解から生じます。 誤解はまた、フリーランスの開発者にアプリケーションをオーダーするときに発生することがあります。 多くの開発者にとっては、最も困難な部分は、依頼人が望むものを見つけることだと思います。 両当事者が同じ言語で話をしていても、互いに理解できないことが多いです。 最悪の場合は、プログラムの納入の段階でを見つかることです。 この場合、依頼人と開発者の両方ががっかりします。 時には仲裁が必要になります。

依頼が宙ぶらりんな状態にあるとき、党は頻繁に互いを理解し始めます。 言葉でアイデアを表現しますか。 いや、我々はイメージで考えています。 したがって、要件の仕様をユーザーと開発者の両方に明確にするには、イメージ・画像を追加します。

ルールは簡単です: 各相場状況とそれぞれの希望のパターンの説明画像を追加します。 イメージまたは図には、最も必要な情報が含まれており、テキストと矛盾しないようにする必要があります。 不要な詳細の削除、重要部分のメモの追加、矢印を使用したレベルの強調表示、パターンのマークなどを行います。

一部の依頼人は、詳細かつ明確な説明を提供しようとすると、巨大なテキストを作成します。 しかし、長いテキストから本質を理解するのは難しいかもしれません。 依頼者と開発者は、用語を異なる方法で扱うことができますが、イメージはあいまいではありません。-矢印または円は、矢印または円として正確に認識されます。 5-10 分を費やすことで、開発者が理解できるイメージを準備することで、アイデアをより的確に提供し、適切に実行されているプログラムをより速く受け取ることができます。

ただし! イメージは、ファイルとして添付せずテキストに直接挿入する必要があります。 開発者はこのような添付ファイルをダウンロードしないかもしれません。

テキストエディタを使用して説明を入れてください。:


多くの場合、依頼者は、 " Skype で詳細を説明します。これがより明確かつ迅速な方法です" と説明に書いています。 いいえ、そんなことはありません! より明確な方法は、ビデオを作成することです。 プロの明確かつ円滑なビデオの説明を準備してみてください。 ビデオの録画を開始する前に、表示する内容と言うシナリオを使用して計画を立てます。 最初、ビデオを記録しようとすると、おそらく失敗します。 Skype でも同じことが起こります。 ビデオの準備をし、満足のいく結果を得るために必要なように何度もを記録する必要がある理由です。 その後、YouTube でそれを公開し、オーダーの要件の仕様に挿入します。

では、次の点について説明します。まず、インジケーターの開発の要件の仕様の例を分析します。

要件定義作成に役立つプログラム

スクリーンショットの準備と公開には、 ScreenPressoを使用することをお勧めします。 スクリーンショットのテキスト、矢印、図形や視覚効果を追加することができます。 プログラムは、パラメータの大スケールなセットを持っており、また、ビデオを記録することができます。 Sreenshots は、ドラッグアンドドロップまたはコピーと貼り付けを使用して、フリーランスのオーダーチャットに追加することができます。

より多くのスクリーンショット編集オプションが必要な場合は、別のグラフィックエディタPicPickを選択します。 2つのプログラムは、個人利用は無料です。 完全にお互いを補完するので、両方を使用することができます。 インターネット上の編集オプションを使用して他のスクリーンショットツールを見つけることができます。

グラフィカルパネルのプロトタイプを作成するには、Pencilソフトウェアを使用します。 5-10 分で任意の希望のインターフェイスのスケッチを準備することができます。 また、このソフトウェアは、複雑なアルゴリズムを視覚的に説明するためのフローチャートを作成するためのオプションも備えています。 さらに、 Windows 用の7つの最高の無料フローチャートツールなど、web 上のレビューを読むことができます。

フローチャートは、プログラムのロジックを視覚化するための便利なフォームであり、条件、サイクルなどに関するアクションを示すことができます。 数学が得意な場合は、excel を使用して数式と計算を記述できます。 Microsoft のSmartArtを使用すると、チャート、図表、パネル、およびフローチャートを作成できます。 

さて、総括しましょう。 インジケーターのアイデアを記述するためにどのようなプログラムを選択するかは関係ありません。 重要なのは、プレゼンテーションを開発者が理解できるようにすることです。 テキストの説明に加えて、画像、フローチャート、および図を使用します。 このように包括的な説明は、開発者がオーダーのアイデアを理解するのに役立ちます。

アルゴリズムとしての要件定義の策定

すべてのインジケーターは、アイデアを反映します。 したがって、まず、可能であれば、単語や写真で、アイデアを記述する必要があります。 考えが説明されなければ、開発者が依頼人が望むものを理解することははるかに困難です。

これで、インジケーター操作/計算/表示アルゴリズムの説明を進めることができます。 アルゴリズムを一連の操作として記述します。 開発者は、記述されたアルゴリズムに基づいて適切なコードを記述できるようになります。 アイデアとアルゴリズムの説明に用語が含まれている場合は、両者が同じ意味を理解していることを明示的に定義する必要があります。

アルゴリズムを段階的に分割し、タスクするときと同じ順序で配置します。 要件定義の異なる部分間を移動しないで、次の1つに切り替える前に、1つのブロック、モジュール、またはステップを正しく記述するようにしてください。

次のように、リストを使用して用語を記述します。

  1. 日の範囲-日中の高値と安値の間
  2. 平均範囲-N 日間の日次範囲の平均値
  3. フラット-狭い価格チャネルが、内部のロウソク足の実態と同じ範囲内に形成されている
  4. ...

段階を定義するには、数字、リスト、太字フォントを使用します。

リクエストの仕様は、最終的なプログラムで実行する必要があるのと同じ順序で、次々に発生する一連のアクションとして提示してみてください。 要件定義の例を以下に示します。

要件定義の例

例1

オシレーターに基づくジグザグが必要

インジケーターの考え方

オシレーターを用いて決められた極値に基づいて作成されるジグザグインジケーターを作る。 買われ過ぎと売られ過ぎゾーンを持つ任意の古典的に正規化されたオシレーターを使用することができます。 このアルゴリズムは、最初に WPR インジケーターで実行する必要がありますし、同様に次のインジケータを使用してジグザグを描画します。

  • CCI
  • Chaikin
  • RSI
  • ストキャスティクスオシレーター

アルゴリズムと用語

最初の段階はジグザグの構造です:

  1. 買われ過ぎゾーンは、インジケータ値Value > Lmax (Lmax =-20) のロウソクとして決定されます。
  2. 売られ過ぎゾーンは、インジケーターの値Value < Lmin (Lmin =-80) のロウソクとして決定されます。
  3. Lmax と Lmin の値は、インジケーターパラメータに含める必要があります。
  4. 黄色の点は、買われ過ぎゾーンのロウソクの高いポイントで追加する必要がある-点Hです。
  5. 緑のポイントは、売られ過ぎゾーンのロウソクの安値ポイントで追加する必要がある-L ポイントです。
  6. 2つの H 点の間に少なくとも1つの L 点がある場合は、2つの H 点の間の間隔で LL ポイントを検索します。 最安値のローソク足が LL ポイントになります。 一般的に、LL ポイントは必ずしも L ポイントではありません。 最安値でロウソクを検索します。
  7. 2つの l 点の間に少なくとも1つの H 点がある場合は、2つの l 点間の間隔で HH ポイントを検索します。 最高値でのローソク足は HH ポイントになります。 一般的に、HH ポイントは必ずしも H ポイントではありません。 最高値でロウソクを検索します。
  8. LL と HH ポイントを接続してジグザグを描きます。 デフォルトの色は黄色です。 最初のステップは終了です。




2番目のステップはジグザグの色です:

  1. 次の条件を満たす3つの連続した HH ポイントを検索します。見つかった各 HH ポイントは、以前のものよりも高くする必要があります。
  2. HH ポイント間で見つかった2つの LL ポイントに対して同じ条件が満たされた場合、2番目の LL が最初のものよりも高い場合は、5つのポイントの間にあるすべてのジグザグの脚を赤で塗ります。
  3. 別の HH および別の LL ポイントが5つのジグザグの頂点の後で見つけられ、前の HH および LL より高い位置にそれぞれ、さらにジグザグの足に青で色を付けます。
  4. 条件が保持される限り継続します。 これは上昇トレンドを示します。
  5. 同様に、pp 1-4 で説明されている LL ポイントとリピート操作の減少を検索します。 これらの足は、下降をマークするために赤で着色する必要があります。



3番目のステップは、どのジグザグが構築されるかに基づいて、オシレーターのタイプを指定するためのオプションを追加することです: CCI、オシレーター、RSI は、ストキャスティクスオシレーター。

  1. したがって、最初のパラメータは、列挙体によって設定する必要があります。これはオシレーターの種類です。 デフォルト値は WPR です。
  2. 各型の Lmax および Lmin パラメータを追加します。 パラメータにはデフォルト値が必要です。
  3. 最大値と最小パラメータの名前には、WPRmax、CCImax、STOmax などのインジケーター名を含める必要があります。

手順4では、インジケーターパラメータを管理するためのグラフィカルパネルを追加します。

  1. パネルはオシレーターのすべてのタイプのチェックボックスを持っている必要があります。これで、すぐにオシレーターを切り替えることができます.
  2. このパネルは、クリックによって最小化と最大化する必要があります。
  3. また、チャート上のパネルを移動する可能性を必要とします。
  4. パネルのオプションを使用して、チャートからインジケーターを削除します。


計算: このインジケーターは、チャートの操作や最適化に使用されます。 したがって、アルゴリズムは高速である必要があり、時間がかかることはありません。

タスクは段階的に受け入れられるので、すべてのステップを正しいオーダーで完了する必要があります。


例2

電子メールや携帯ターミナルに通知を送信する NRTR インジケーターが必要

1. まず、NRTR を MQL4 から MQL5 に再記述する必要があります。 コードはここで利用可能です:: https://www.mql5.com/ja/code/7760

2. インジケーターの色が変わる場合は、プッシュ通知と電子メールを送信して、トレンドの変化を通知する必要があります。

3. [パラメータに追加] 稼働時間 (通知の送信を許可するインジケーター) は、夜間に通知を送信しません。 次の2つのパラメータがあります。

  • StartHour —午前中に操作を開始する時間。
  • EndHour —夕方の操作を終了する時間。

4. 通知を有効にするためのパラメータを追加する:

  • SendPush —プッシュ通知の送信を許可する
  • SendEmail —電子メールの送信を許可する

5. メッセージのテキストは次のようになります。

EURUSD H1 上の NRTR は上向きになっています。 Up=1.23560, Down=1.23300, Brick=260 pips


   ただし、:

  • [名前] および [時間] の情報は、インジケータが実行されているチャートに基づいて追加されます。
  • Upはチャネルの上位レベルです。
  • Downはチャネルの下位レベルです
  • ブリックは、チャネルの幅をポイント単位で指定します (ポジションを開くときのストップサイズ)。



6. 電子メールとプッシュ通知は、チャネルを介してブレイクしているロウソクの完了後にのみ送信する必要があります。

7. 足ごとに1つのシグナルを送信できます。

8. VPS のインジケータ操作を監視するには、すべての送信メッセージもログに書き込む必要があります。

9. 3つのインジケーターバッファの値を入手する必要があります。

  • 上-上罫線
  • 下-下罫線
  • トレンド-トレンドの方向、-1 または1

10. インジケータは、パフォーマンスの面で最適でなければなりません。


例3

インジケーターの開発

インプットパラメータ:
  1. 最初の通貨ペア
  2. 2番目の通貨ペア
  3. 計算ペア
  4. 計算に使用される価格はBid/Ask

ポイント3はインプットパラメータではなく、ポイント1と2からのレートの除算の結果にすぎません。 参照用にチャートに表示されます。

動作原理:
考え方は次の通りです。: 例えば EUR/USD および GBP/USD の同じ分母 (できれば普及した組) が付いている2つの通貨の組を取り、分けます。 その結果、EUR/GBP のレートを取得します。



インジケーターは別のウィンドウに描画されます。 黒の縦線は現在の時刻です。 2つの曲線は、このラインから始まる左に描画されます:

  • 1つの曲線は、計算されたデータを示し, 緑です
  • 2つ目は、実際のデータを示し, 赤です

計算はすべてのティックで実行されます。 インジケーターの1つの水平方向の時間間隔は、チャートの同じ間隔よりもはるかに多くのスペースを取得するため、時間間隔をマークする必要があります。 たとえば、チャートの期間が M1 の場合、垂直線は1分のステップでインジケーターチャートに描画されます。


要件定義で指定できること

インジケーターは、価格チャートまたはティックシーケンスの処理に基づいています。 このような処理の結果と目的は、視覚的なテクニカル分析ツールを持つことです。 したがって、インジケーターを注文するときには、プログラマが考えをよりよく理解するのに役立つ質問に対する回答を提供する必要があります。

インジケーター描画タイプ

  1. ラインは、最もシンプルで明確なチャートの種類です。
  2. ヒストグラムは、ほとんどの場合、オシレーターで使用されます。
  3. 矢印とシンボルは、エントリ/決済ポイントのマーキングに便利です。 チャンネル (NRTR) またはトレーリングストップシステムは、矢印とシンボルに基づいている場合があります。
  4. エンベロープなどの領域とチャネル。
  5. セグメントは、複雑なインジケーターの一部として線を描画するために使用できます。
  6. ジグザグスタイルなど、色付きのジグザグ。
  7. ロウソクは、計算に基づいて他のシンボルまたはカスタムロウソクのチャートを描画するために使用されます。 たとえば、 平均足
  8. 前述のスタイルの組み合わせ

インジケーターの種類によっては、描画に複数のデータ系列が必要です。 データ系列は、インジケーターバッファと呼ばれます。 ユーザーがデータウィンドウのインジケーター値を理解できるように、各バッファに対して意味のある名前を設定する必要があります。


インジケーターは、1つまたは複数ので描画できます。 この部分は通常明確です。 ただし、状況に応じてインジケーターの色を動的に変更する場合は、対応する条件を記述する明確なアルゴリズムを提供する必要があります。

インジケーターが描画される場所

  1. メインチャートウィンドウで
  2. インジケーターサブ

計算と表示のタイムフレームとシンボル

  1. そのインジケータは、計算に独自のシンボル/タイムフレームを使用するか、もしくは他のシンボルと時間枠のデータにアクセスしますか。
  2. 任意のシンボル/タイムフレームのインジケーター描画を無効にしますか?
  3. 別のシンボル/タイムフレームの十分な足がない場合、インジケータは何をすべきか?

計算に使用される価格、数量、およびインジケーター

古典的なインジケーターは、常に計算をして、高、低、独自の時間枠の終値の価格を使用します。 現在、最新のテクニカル分析と高度な MQL5/MQL4 プログラミング言語の幅広い機会により、他のインジケーターのボリュームや値を含むさまざまな時系列を使用することができます。

  • 計算に使用する価格を指定するためのインプットパラメータが必要でしょうか。
  • このインジケーターは、別のインジケーターのデータを使用して動作できるようにする必要がありますか? たとえば、移動平均は RSI チャートに適用できます。 すべてのトレーダーは、この可能性について知っています。
  • 別のサブで描画されるインジケーターの追加レベルが必要でしょうか。 たとえば、 ストキャスティクスオシレーターの場合、30と70のレベルがあります。

他のインジケーターのデータが計算に使用されている場合は、そのソースコードを提供してみてください。 もちろん、開発者は、補助インジケーターのデータを入手できるかもしれません。 しかし、ソースコードの可用性は、このタスクをはるかにシンプルにすることができます。

インプットパラメータのリスト

ターミナルに表示される適切な名前のパラメータのリストを準備します。 プログラマは多くの場合、コードの読み取りに便利な名前を使用します。 しかし、このプログラムのユーザー、すなわちトレーダーは、意味のある名前を持つ必要があります。 たとえば、チャイキンボラティリティ (.CHV)インジケーターには、次のパラメータがあり、理解しやすくなります。

  1. 平滑化期間: 補助配列の平均化に使用される値の数。
  2. .CHV期間: オシレーターの補助配列を取得するために使用される足の数。
  3. オシレーターに使用される平滑化タイプ。

この情報に基づいて、開発者は次のコードを追加します。

//スムージングタイプの---列挙
enum SmoothMethod
  {
   SMA=0,//シンプルMA
   EMA=1 //指数 MA
  };
//---インプットパラメータ 
input int          InpSmoothPeriod=10;  //平滑化期間
input int          InpCHVPeriod=10;     //.chv 計算期間
input SmoothMethod InpSmoothType=EMA;   //平滑化法

値の後のコメントは、パラメータのウィンドウ内の名前としてトレーダーに表示されます。


すべてのティックの計算

各価格変更によって、必要なすべての計算が実行される特殊イベントハンドラ関数 [計算] が実行されます。 おそらく、インジケータは、すべてのティックの処理を必要とせず、各新しい足の計算で十分です。

計算が新しい足でのみ実行される場合、このインジケーターを使用するEAのテストは、より迅速に実行できます。 したがって、計算方法を決定し、要件定義に追加する必要があります。

非効率な計算アルゴリズムは、テスト時間を増やします。 開発者からコードプロファイリングを実行して、低速な関数を検出し、コードを改善するようにリクエストします。 また、計算の数が大幅に数学的な変換によって減少することができる場合は、分析コードの最適化を忘れないでください。 このような最適化は、時系列平均化法に基づく多くのインジケーターに適用することができます。

インジケーターの再描画

ヒストリー上のインジケーターの再描画は、トレードシステムの中で最も失望するミスの一つです。 再描画は、インジケーターの計算が起動時に依存する場合に発生します。 たとえば、EURUSD M5 チャートでこのようなインジケーターを起動して、ターミナルを1日のままにしておき、次の日に別の EURUSD M5 チャートで同じインプットパラメータを使用してこのインジケータを実行すると、その値と外観がわかります。

ほとんどの場合、この効果の理由はアルゴリズムに由来します。 経験豊富な開発者は、この現象を認識し、トレードでこのようなインジケーターを使用する際に問題が発生する可能性があることを依頼者に注意喚起します。

アラート、プッシュ通知、電子メール、レポート、スクリーンショットの送信

現在の相場状況について通知するように指示する場合は、プッシュ通知と電子メールを送信するためのオプションを開発者に追加してもらいます。 その他のアラート関数には、 PlaySound ()Alert ()、およびMessageBox ()があります。 web サイトまたはブログページがある場合は、 SendFTP ()を使用してレポートを送信できます。

マニュアルトレードを自動化するためのより多くの可能性は、Andrey Voytenkoによる記事How to create bots for Telegram in MQL5.で説明されています このアイデアは面白いです。

グラフィカルコントロールパネル

フレキシブルなインジケーターコントロールオプションが必要な場合は、グラフィカルコントロールパネルを追加します。 基本的な考え方を記述することは、記事MQL5 でのイベント処理: MA 期間の変更で何年も前に公開されました。 以来、MQL5 言語の関数はほとんど無限になっています。 「GUI を使用したユニバーサルオシレーター」およびコントロールパネルをインジケーターまたはEAに瞬時に追加する 」の記事の例を参照してください。 また、Anatoli Kazharski による一連の記事グラフィカルインターフェイスもお勧めします。

ラインを描画するだけのインジケーター以外にも必要性がある場合、グラフィックパネルによるインジケータは非常に便利です。 パネルに実装されているアクションと関数を事前に定義する必要があります。

  • マウスクリックによるパネルの最大化/最小化
  • チャート上のパネルのドラッグ
  • パネルのサイズ変更
  • マウスイベント: 左クリック/右クリック、スクロール
  • キーボードイベント: キーのプレス、ホールド、キーの組み合わせ
  • タイマイベント
  • プログラムが他のプログラムに送信するカスタムイベント

使用可能なすべてのオプションについては、「チャートイベントの種類」を参照してください。

説明スクリーンショット

ヒヤリングを二回するよりはマシです。 したがって、インジケーターが特定の状況を完全に特定の方法で描画/視覚化する必要がある場合は、説明図を準備します。 このような画像の最も重要な詳細を表示します。 大きいスクリーンショットを作らないで、妥当なイメージ・サイズを使って下さい。 記事相場で効果的なプロダクトプレゼンテーションのヒントも有用なヒントを提供します。

パターン認識用のプログラムを公開する場合は、認識されたパターンをチャートに表示します。 クリアスクリーンショットを作成し、十分な説明コメントを提供します。 


1つのスクリーンショットに細かい説明をたくさんするのは良くありません。 ここでは、避けた方が良い例を示します。


プロダクトの説明は、依頼人が認識されたパターンと読めるテキストの大きな画像と2つまたは3つのものを提供していた1つのスクリーンショットの代わりになるでしょう。 価格チャートにも関わります。 拡大スケールを選択し、詳細を表示します。 特別な必要性がない場合、で珍しい色彩の配合を使用することを推薦しません。 コメント (コメント関数からのメッセージ) のテキストがチャートの一部と重なっていないことを確認してください。 買い売りするシグナルを強調するための青と赤などの標準的な色を使用することを推奨します。 以下のスクリーンショットのデータは、効率的には提示されません。


以下は改良版です。


ユーザーは、チャートと標準の配色 "黒と白 " の大スケールなを選びました。 チャートの名前が削除され、フォントとパターン名の色が変更され、三角形のブレイクアウトのポイントが赤で描かれました。 三角形のブレイクアウトの矢印には、伝統的な色があります。 このようなスクリーンショットは、過度の詳細がなく、主要なアイデアだけを示しています。

デバッグ用のログ

エラーがないプログラムを、書くことはほとんど不可能です。 プログラムの複雑さが増すほど、不測の事態が発生する可能性が高くなります。 したがって、終了したインジケーターの動作は、予期したものとは異なる場合があります。 さまざまな理由によって発生する可能性があり、そのうちのいくつかを以下に説明します。

  • プログラマのエラー: コードが正しく記述されていないか、要件の仕様によるもの。
  • チャート上の異常な状況で、要件定義が希望するアクションになりません。 これはプログラム自体は正常に動作することを意味しますが、想定外のケースに対応していないということを表します。 そのため、予期しない結果が得られました。 この場合、状況を解決する方法についてはプログラマに相談してください。
  • 依頼者の間違い: 必要なヒストリーの深さに提供されていない、無効なパラメータを指定している可能性があります。

エラーが発生した場合は、その理由を理解する必要があります。 以上の分析で、すべて細部にわたって詳細を得る必要があることを意味します。 この場合、スクリーンショットとビデオを使用して状況を説明することに加えて、プログラムの開発者ログとターミナルを提供します。したがって、プラットフォームジャーナルがどこにあるか、およびプログラムがどのような情報を出力するかを要件定義で示す必要があります。

不測の事態が発生した場合は、「EAをオーダーして目的の結果を取得する方法」の記事に示されているように、開発者に追加情報を提供します。

  • プログラムパラメータ (エキスパートアドバイザのパラメータウィンドウで "Save " ボタン) でセットファイルを添付します。
  • 使用する通貨ペアとチャートのタイムフレームを指定する
  • ターミナルが接続されていたサーバーのアドレスと、アカウントの種類 (デモ、リアル、コンテストなど) を指定します。
  • ターミナルのバージョンを指定します(menu "Help" - "About")
  • インディケータがストラテジーテスタで実行された場合、テスターの設定 (日付、モデリングモード、トレーディングモード、初期証拠金、レバレッジ) をさらに提供します。

これらの詳細は、要件定義で指定することもできます。

インジケーターの受け入れとテスト

インジケーター操作は、オンラインチャート、およびビジュアルテストモードのストラテジーテスターで確認できます。 これは、大幅に時間を節約し、相場のさまざまな段階でインジケーターの動作を評価するのに役立ちます。 開発者にコードプロファイリングを実行してもらい、プログラムパーツを調査して、インジケーターがほとんどの時間を浪費するようにします。 最も頻繁に呼び出される、または時間が重要な関数の場合は、タイムカウンタをコードに追加できます。このカウンタは、呼び出しの数と費やされた時間を計算します。

エラーを検出する必要がある場合は、開発者に必要な説明と詳細を提供し、開発者が状況を再現できるようにします: スクリーンショット、ログ、シンボル/タイムフレームとトレーディングアカウントの情報。 このような詳細は、より速く問題を解決するのに役立ちます。

インジケーターの操作に他のインジケーターまたはファイルが必要な場合は、ターミナルのdataディレクトリの適切なフォルダーにあることを確認してください。

詳細を考え、それを具体化し、それから依頼!

この記事では、明確で理解しやすい要件定義を作成する方法を理解するのに役立っていることを願っています。 また、経験豊富なフリーランスの開発者のため、複雑なインジケーターを作成することができる MQL 言語の可能性を示すことを試みました。

どこから始めていいか分からない場合、フリーランスのサービスでプログラムをオーダーしたことがない場合は、上記のヒントを参考にしてください。 そして、もちろん、開発者とコミュニケーションします。 経験豊富なプログラマは、適切に依頼を定式化し、希望の結果を得るのに役立たせることでしょう。

MetaQuotes Software Corp.によりロシア語から翻訳された
元の記事: https://www.mql5.com/ru/articles/4304

ビンスによる資金管理 MQL5 ウィザードのモジュールとしての実装 ビンスによる資金管理 MQL5 ウィザードのモジュールとしての実装

この記事は、ラルフ·ビンスによる "The Mathematics of Money Management" に基づいています。 トレードロットの最適なサイズを見つけるために使用される経験的およびパラメトリックメソッドの説明をします。 また、それらのメソッドに基づいて MQL5 ウィザードのトレーディングモジュールの実装を行います。

メタトレーダー5のカスタムニュースフィードを作成する メタトレーダー5のカスタムニュースフィードを作成する

この記事では、ニュースの種類とまたその情報元の面でより多くのオプションを提供しています。柔軟なニュースフィードを作成する汎用性を考察します。 この記事では、web API を MetaTrader5 ターミナルと統合する方法について説明します。

MetaTrader 5における取引戦略最適化の可視化 MetaTrader 5における取引戦略最適化の可視化

本稿では、最適化プロセスの可視化を拡張するためのグラフィカルインターフェイスを備えたMQLアプリケーションが実装されます。グラフィカルインターフェイスには、EasyAndFastライブラリの最新バージョンが適用されます。MQLアプリケーションでグラフィカルインタフェースが必要な理由は多くのユーザによって尋ねられることがあります。本稿では、トレーダーにとって有用な複数のケースの1つを示します。

トレーダーのハック: 定義と ForEach のブレンド (#define) トレーダーのハック: 定義と ForEach のブレンド (#define)

この記事は、現在MQL4でコーディングしていて、MQL5に切り替えたいとは思っていない人のためのものです。 今回はMQL4のスタイルでコードを書く方法を模索していきます。 #define プリプロセッサのマクロ置換を見ていきます。