記事"MQL におけるオブジェクト・アプローチ"についてのディスカッション

 

新しい記事 MQL におけるオブジェクト・アプローチ はパブリッシュされました:

本稿はまず MQL 環境で作業を行う初心者プログラマ、プロのプログラマー両方にとって興味深いものとなります。また、本稿が環境開発者や観念論者に読まれると、役に立つと思われます。というのも、ここで分析される疑問は将来 MetaTrader や MQL を実装する上でのプロジェクトとなりうるからです。

A)シグナルシステム(SS)

このモジュール処理と受信クオート解釈のオブジェクト通常シグナルシステムの『オブジェクト』とはインディケータのセットを言います。たとえば、複数の移動平均です。クオートとインディケータ値処理の結果として、『オブジェクト』(またはセマフォ)は、エンター/エグジット、または注文変更などの シグナルを作り出します

セマフォはそのシグナルを形成し、それをモジュール Entry/Exit (EE)から別のオブジェクトに送信します。

MQL でセマフォを設定するのはかなり簡単です。

1. #defineによってグローバル識別子を定義します。

1, 2, 3, 4... のような連続した数字ではなく 5~10 で設定する方がよいです。おすすることでにおいて複数処理に対してシグナルを1つ使用することができるでしょう(2番目のモジュール参照)。

//+------------------------------------------------------------------+
//|                                                      Signals.mqh |
//|                                    Copyright © 2007 Сергеев Алексей |
//|                                                los@we.kherson.ua |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, Сергеев Алексей "
#property link      "mailto: los@we.kherson.ua"
#property library
 
#define BLACKSYS   10
#define BORCHAN    20
#define ELDER      80
#define ENVELOP    90

2. そしてこのモジュールのグローバル関数で、そのプロセッサを有効にします。

int CheckSignal(bool bEntry, int SignalID)
{
      switch (SignalID)
      {
                  case BLACKSYS:             return (BlackSys(bEntry)); break;
                  case BORCHAN:              return (BorChan(bEntry)); break;
                  case ELDER:                   return (Elder(bEntry)); break;
                  case ENVELOP:              return (Envelop(bEntry)); break;
                  default:                                     return (-1);
      }
}

作者: o_O

理由: