記事を気に入りましたか?他のユーザーと共有してください。Twitter上で私たちを見つけてください。カスタムシンボルの作成。アルゴリズムトレーダーは、トレードサーバーを必要とせず、トレード環境を完全に制御できる一方で、場合によっては自分自身のブローカーとして機能できます。ここでの「一部のケース」はテストモードのみを指します。カスタムシンボルのオーダーはブローカーによって実行することはできません。かかわらず、この機能は、アルゴトレーダーがより慎重にトレード戦略をテストすることができます。この記事では、このようなテストの条件を作成します。クラスから始めましょう。プロパティへの簡単なアクセスを行うためのクラスが用意されています。実際には、このクラスは仲介機能を担います。ユーザーのリクエストがあった場合、クラスはサーバーと通信し、リクエストされたプロパティの値の形式で応答を受け取ります。今回の目的は、カスタムシンボルの同様のクラスを作成することです。作成、削除、その他のメソッドを追加する必要があるため、このクラスの関数はさらに広くなります。サーバーへの接続に関連付けるメソッドは使用しません。Refresh()、IsSynchronized()などが含まれます。トレード環境を作成するためのこのクラスは、カスタムシンボルを操作するための標準関数をカプセル化します。クラス宣言の構造を以下に示します。};//+------------------------------------------------------------------+選択したシンボルからフル関数のカスタムシンボルを作成するメソッドから始めましょう。methodすべてのカスタムシンボルの可能性を使用するには、作成するか、作成されていることを確認する必要があります。}//+------------------------------------------------------------------+このメソッドは、値を数値コードとして返します。現在のメソッド呼び出し中にシンボルが正常に作成されました。_batch_sizeと_is_selectedのパラメータについて、単語を次に示します。ティックの読み込みに使用されるバッチのサイズを設定します。ティックはバッチで読み込まれます:データは最初に補助配列に読み込まれ、配列が満たされると、データはカスタムシンボルのティックデータベース(ティック履歴)にロードされます。一方で、このアプローチを使用すると、巨大な配列を作成する必要がありません。他方では、ティックデータベースを頻繁に更新する必要もありません。補助ティック配列のデフォルトサイズは100万です。Watchウィンドウに追加するかを決定します。スクリプトを実行して、カスタムシンボルを作成します。このメソッド呼び出しによって返されるコードは、ジャーナルに表示されます。シンボルの作成に関する詳細については、ドキュメントを参照してください。メソッドこのメソッドは、カスタムシンボルを削除します。シンボルを削除する前に、メソッドはマーケットウォッチウィンドウからシンボルを削除します。失敗した場合、削除手続きは中断されます。}//+------------------------------------------------------------------+例として、簡単なスクリプトTestDeleteをしてみましょう。MQL5を使用すると、カスタムシンボルが削除されます。成功すると、対応するログがジャーナルに追加されます。メソッドこのメソッドは、クローンを実行します。選択したシンボルに基づいて、現在のカスタムシンボルのプロパティを決定します。簡単に言えば、元のシンボルのプロパティ値を受け取り、別のシンボルにコピーします。ユーザーは、ティックヒストリーのクローンを設定することもできます。これを行うには、時間間隔を定義する必要があります。}//+------------------------------------------------------------------+一部のプロパティはターミナルレベルで設定されるため、すべてのプロパティをコピーできるわけではないことに注意してください。値は取得できますが、制御することはできません(get-properties)。プロパティを設定しようとすると、エラー5307(ERR_CUSTOM_SYMBOL_PROPERTY_WRONG)が返されます。「ランタイムエラー」セクションの下には、カスタムシンボル用のエラーの個別グループがあります。TestClone.mql5を実行してみましょう。複製の試行が成功すると、次のログがジャーナルに表示されます。メソッドこのメソッドは、ファイルからティックを読み取り、後で使用するために読み込みます。メソッドは、このカスタムシンボルの既存のティックデータベースを以前に削除することに注意してください。}//+------------------------------------------------------------------+このバリアントでは、以下のティック構造項目がインプットされます。TICK_FLAG_BID|TICK_FLAG_ASK値は、最初のティックフラグに設定されます。さらなる値は、どの価格(Bidまたは質問)が変更されたかによって異なります。価格がいずれも変更されていない場合は、最初のティックとして処理されます。以降では、ティックヒストリーを読み込むだけでバーヒストリーを形成できます。mql5を実行してみましょう。フォルダの下に配置する必要があります。