トレードシグナルの多通貨監視(パート1):アプリケーション構造の開発

Alexander Fedosov | 21 4月, 2020

目次

イントロダクション

MetaTrader 5プラットフォームが発展するにつれて、外国為替相場や証券トレード所などで機能するための新しいツールの登場とともに、ますます多くの機会が生まれました。 積極的に発展しているものの一つはアルゴトレードです。新しく作成された自動トレードシステムは、様々な洗練されたトレードアイデアを正確に実装します。 それにもかかわらず、相場参加者の一部はまだ裁量トレードを好んでいます。 特定のルールとアルゴリズムに従い、最終的な相場参入決定が人間によって行われるシグナルに基づいてトレードシステムを作成します。 このアプローチは、自動化されたトレードシステムと比較して不利です。厳密かつ明確に定義されたルールがあっても、人間の主観性の要因があります。 しかし, 多くの裁量トレードシステムはポジティブな結果を示しています。

裁量トレード中でも、トレーダーは特定の操作アルゴリズムとアクションのシーケンスに従い、5つの主要なタスクとして提示することができます。

裁量トレードでは、タスクのそれぞれが、ターミナル(ポジションの開閉、決済)とトレードシステム(特定の技術的手段を使用して関連相場でシグナルを見つける)との両方でトレーダーとのやり取りを意味します。 すべてのアクションは、多くの時間を要し、注意深く、集中し、規律をトレーダーに求めます。 この一連の記事の目的は、手動で操作を実行するトレーダーの負荷を軽減することです。 トレードシグナルの生成を可能にし、トレーダーが目的のシグナルを見つけるのを助ける便利な柔軟な多通貨アプリケーションをひとつひとつ作成しましょう。


アプリケーションの基本構造

アプリケーションの実装に進む前に、その主ブロックと内部構造、および間の相互作用のシーケンスを決定しましょう。 最新のアプリケーションと同様に、2 つの重要なポイントがあります。

  • 最初の起動(Initial launch.)最初の起動中に、アプリケーションは、トレード環境に慣れ、操作に必要なデータを受信し、ユーザーが必要なパラメータを設定し、インターフェイスで選択されたすべての設定を記憶することができます。
  • 2番目の起動(Secondary launch.)既に構成済みのアプリケーションの起動です。 原則として、この段階でのアプリケーションは、以前に指定した設定に従って直接動作します。 ただし、アプリケーションを部分的に再構成したり、ユーザーが最初の起動に戻ったりすることができます。

図1 アプリケーションの基本構造

図からわかるように、初期起動オーダーとセカンダリ起動オーダーは、ステップのオーダーのみが異なります。 次に、初期起動とセカンダリ起動にインクルードするものを見てみましょう。


アプリケーションの最初の起動

上記のタスクは、最初の起動のプライマリです。 しかし、ブローカーと口座の種類によっては、トレード商品の数百はMetaTrader5ターミナルのマーケットウォッチにある場合があります。 これは大規模なデータセットであり、アプリケーションがユニバーサルで、提示されたすべてのデータが必要になる可能性は低いです。 さらに、システムのほとんどは、特定の相場、特定の通貨ペア、または特定の時間枠で1つの特定の証券トレード所に合わせて調整されています。

したがって、シグナルの検索やトレードに使用するすべてのトレード商品をフィルタリングして選択するためのツールと、必要な時間枠を選択するためのツールが必要です。

したがって、初期起動構造は、3 つの連続したステップで構成されます。

  • 操作用のシンボルを選択します。
  • 操作の時間枠を選択します。
  • トレードシグナルを作成します。

Step 1.次に、未来のモニターで適切な関数を実装するために使用する関連するレイアウトを作成しましょう。

図2 ステップ1:操作用のシンボルを選択します。

最初の起動の最初のステップに含まれるインターフェイス要素と機能について、より詳しく考えてみましょう。

  1. アプリケーション名と、ステップ番号とその名前に関する情報を含むヘッダ。 この場合は、次のようになります: ステップ 1: シンボルを選択します。
  2. All、メジャー、クロスなど、頻繁に使用するグループをすばやく選択するためのボタンのグループ。 ボタンはスイッチとして実装され、メジャーボタンから見ることができます。ボタンがアクティブ(青)の場合はシンボルグループが選択され、ボタンの状態が非アクティブ(グレー)の場合は選択解除されます。
  3. 選択したシンボル セットのカスタム名をインプットするための編集可能なフィールドです。 個々のシンボルセットを作成するときに必要です。 たとえば、モニターで複数の異なる設定や戦略のバリエーションを利用する場合に使用できます。
  4. [ロード]ボタンは、以前に作成した一連のシンボルを、インプットフィールド(ポイント3)の名前でロードします。 このアクションは L ホットキーを使用して実行されます。
  5. [保存] ボタンをクリックすると、以前に作成した一連のシンボルが、インプットフィールド (ポイント 3) の名前で保存されます。 このアクションは S ホットキーを使用して実行されます。
  6. シンボル名を持つ一連のチェックボックス。 このトレード口座で利用可能なマーケットウォッチを形成する銘柄の完全なリストがあります。
  7. アプリケーションの初期設定の次のステップに移動するためのボタンです。 

図3 使用可能なシンボルの有効数と総数。

このステップのプログラム実装では、シンボルの総数(図3)がアプリケーションの高さを超える可能性があることを覚えておく必要があります。 したがって、自動的に高さ調整を有効にする必要があります。

Step 2.次のステップに進みましょう: [タイムフレームを選択] を選択します。 MetaTrader5の時間枠の数は一定なので、2番目のステップのレイアウトの作成が簡単です。


図4 ステップ 2: 操作用の時間枠を選択します。

2 番目のステップは次のとおりです。

  1. アプリケーション名と現在のセットアップステップを含むヘッダ。 この場合はステップ 2: 時間枠を選択します。
  2. プリセットボタンのグループは、最初のステップと同じ目的です。頻繁に使用するグループのクイック選択. この場合、すべてのタイムフレーム (ALL) またはより高い時間枠 (シニア) またはより低い時間枠 (ジュニア) を選択できます。
  3. すべての使用可能な時間枠の名前を持つチェックボックスのセット。
  4. ステップ 1 (戻る) または次のステップ (次へ) に移動するボタン。

Step 3.シグナル作成レイアウトを作成する前に、多通貨モニタのフォーマットと、トレードシグナルの表示と表示に使用するグラフィカルツールのセットを決定する必要があります。


図5 ディスプレイユニットスキーム

図5は、標準シグナル表示ユニットとその構成要素の主要5つを示します。 より詳細に考えてみましょう:

  1. Border. 表示単位の境界には、1 つのプロパティ、色があります。
  2. Background. 背景には、色のプロパティも 1 つ設定されています。
  3. Image. グラフィック要素は bmp イメージです。
  4. Label. テキスト要素には、色、サイズ、および値のプロパティがあります。
  5. Tooltip. ツールヒント テキスト値があります。

ご想像のとおり、上記の要素のプロパティのさまざまな組み合わせは、特定のタスク、インジケータ、シグナル、セットとタイプに対して設定することができます。 では、初期セットアップの 3 番目のステップを見てみましょう。

図6 ステップ3:トレーディングシグナルを作成します。

シグナルリストにシグナルを追加するボタン(シグナルリスト)と、名前と編集オプション(Editボタンを介して)を使用してシグナルのリストを追加するボタンの2つの主要な要素に注意を払います。 [編集]ボタンをクリックすると、シグナル設定を含む追加のウィンドウが開きます。 今のところ、設定の標準セットを実装してみましょう。 使用可能な設定は、さらに拡張されます。


図7 トレードシグナル作成と編集ウィンドウのプロトタイプ。

新しいシグナルと以前に作成されたシグナルを使用した操作のプロトタイプを考えてみましょう。

  1. シグナルの追加をクリックすると、シグナル編集ウィンドウが開きます。 最初のポイントでは、トレードシグナルが作成されるインジケータのタイプを選択します。 
  2. [インジケータ設定]セクションで選択したインジケータに応じて、そのインジケータに関連する設定が表示されます。
  3. 次のセクションでは、シグナル出現条件を指定する方法を提供します。 この設定は、選択した ed インジケータにも依存します。
  4. このプロトタイプでは、RSIインジケータの例を用いてシグナル(ルール)の出現が示されています。 この場合、RSI値70以上です。
  5. ラベルセクションのオプションでは、インジケータブロックでのテキストラベルの使用方法を指定できます。 インジケータの値を表示するか、独自のテキスト ラベルを追加するかを選択できます。
  6. 指定したテキストラベルの色は、「ラベルの色」セクションで設定できます。
  7. 切り替えオプション。 「背景を使用(Use Background)」は、シグナルブロックの背景色を設定することができます。
  8. 切り替えオプション。 「ボーダーを使用(Use Border)」では、シグナルブロックの境界線の色を設定できます。
  9. 切り替えオプション。 「ツールチップを使用(Use Tooltip)」では、現在のシグナルにポップアップコメントを追加できます。
  10. 切り替えオプション。 「イメージを使用(Use Image)」は、特定のリストを形成するグラフィック要素をブロックするシグナルに追加することができます。
  11. 「時間枠(Timeframes)」では、設定されたシグナルが検索される時間枠のリストを設定することができます。 

必要なシグナルが追加され、設定されたら、トレーディングシグナルモニターに移動します。 これで、初期セットアップは完了です。 次のステップは、アプリケーションの主要部分に関するものです。

セカンダリ アプリケーションの起動

アプリケーションが 2 回目に起動されると、別のチャートまたはオープンターミナルの新しいチャートで再起動すると、初期起動中に収集されたデータにアクセスします。 そのため、シンボルと時間枠の選択ウィンドウがスキップされ、実行中のモニターにジャンプします。 しかし、図1に示すように、いつでも初期起動段階に戻り、既存のトレードシグナルを編集したり、新しいシグナルを追加することができます。

図8 トレードシグナルモニターのメインウィンドウ。

セカンダリ起動中にメインモニタウィンドウが開きます。 ここに表示される要素の主要なグループと、影響を与えた以前の設定を考えてみましょう。

  1. [最初の起動のステップ 1] で選択したシンボルの垂直リスト。 ターミナルのマーケットウォッチで選択されたものと一致する主なシンボルです。
  2. 初期起動のステップ 2 で選択された稼働時間枠。 
  3. 選択した時間枠とシンボルに対応するシグナルブロックのセット。
  4. ウィンドウヘッダのコントロールボタンを左から右へ設定する、ウィンドウを最小化する、アプリケーションを閉じる。   

[設定(Setting)] ボタンに注意してください。 2次起動中に、トレードシグナルの作成/編集(図6)を切り替えるだけでなく、初期設定モードに切り替えることを可能にします。

アプリケーション フレームワークの作成

次のアプリケーションの主な構造を決定したので、モニターのすべてのファイルが配置されるフォルダを作成しましょう。 [データフォルダ]\MQL5\Expertsディレクトリの下に、シグナルモニタというフォルダを作成します。 次に、このフォルダに次のファイルを作成します。

すべてが正しく行われれば、図9に示すように、次のファイル構造になります。

図9 アプリケーションのファイル構造

グラフィックライブラリを接続し、すべてのファイルを1つのシステムに結合するだけです。 まず、ファイルシグナルモニター、メインウィンドウ、セットウィンドウ、ステップウィンドウを開き、メインのアプリケーションクラスプログラムでファイルに接続します。

//--- Include application class
#include "Program.mqh"

次に、Program.mqh を開き、グラフィック ライブラリとメインインターフェイス要素を持つファイルを接続します。

#include <EasyAndFastGUI\WndEvents.mqh>
//+------------------------------------------------------------------+
//| Class for creating an application                                |
//+------------------------------------------------------------------+
class CProgram
{
public:
   CProgram(void);
   ~CProgram(void);
};
//+------------------------------------------------------------------+
//| Add Controls                                                     |
//+------------------------------------------------------------------+
#include "MainWindow.mqh"
#include "SetWindow.mqh"
#include "StepWindow.mqh"
//+------------------------------------------------------------------+
//| Constructor                                                      |
//+------------------------------------------------------------------+
CProgram::CProgram(void)
{
}
//+------------------------------------------------------------------+
//| Destructor                                                       |
//+------------------------------------------------------------------+
CProgram::~CProgram(void)
{
}
//+------------------------------------------------------------------+

これで、アプリケーションの初期セットアップが完了します。 次の記事では、メイン インターフェイス ウィンドウを作成し、相互作用を構成し、この記事で説明するコントロールで埋めます。


結論

添付されたアーカイブには、一覧表示されているすべてのファイルが含まれます。 正しい操作を行うために、MQL5 フォルダをターミナルのルート・ディレクトリーに置きます。 MQL5フォルダが置かれているターミナルルートディレクトリを開くには、MetaTrader5ターミナルでCtrl+Shift+Dキーの組み合わせを押すか、下図10に示すようにコンテキストメニューを使用します。


図10 メタトレーダー 5 ターミナルルートで MQL5 フォルダを開く