English Русский 中文 Español Deutsch Português
エキスパートシステム「コメンテーター」MQL4プログラムの組み込みインジケーターの実践的な使用

エキスパートシステム「コメンテーター」MQL4プログラムの組み込みインジケーターの実践的な使用

MetaTrader 4トレーディング | 16 2月 2016, 09:17
980 0
Andrey Opeyda
Andrey Opeyda


熟練したトレーダーは、もしテクニカルインジケーターがこの意思決定を保証しなければ、ポジションをオープンにすることはありません。例えば、そのトレーダーがテクニカル分析を行い、ロングポジションをオープンにすることができると結露オン付ければ、EURUSDにします。現在の価格で市場にエントリーするために、熟練のトレーダーはStochastic Oscillatorなどのインジケーターにより取得された結果をチェックし、確証のあるシグナルが出るまで待ちます。そのインジケーターとシグナルはこちらで紹介されています: https://www.metatrader5.com/en/terminal/help/indicators/oscillators/so. この典型的な例においては、こちらで紹介されているシグナルを見てみましょう。

"...%K線が%D線を超えて上昇すれば買い、%Kが%D線を下回って下降すれば、売りなさい。"



図1. EURUSDにおける価格

%Kは、メイン線であり、%D (ダッシュ線)はシグナル線です。MQL4は、インジケーターの計算において組み込み関数の使用を許可しています。これらの関数のリストは、この記事の最後のMQL4ドキュメンテーションにて見ることができます。インジケーターStochastic Oscillatorもそちらでご覧になれます。メイン線とシグナル線の値を計算するために、以下の関数が使用されます:


double iStochastic( string symbol, int timeframe, int %Kperiod, 
                    int %Dperiod, int slowing, int method, 
                    int price_field, int mode, int shift)


その関数は、MQL4ドキュメンテーションにてより詳しく記載されています。

以下は、インジケーターStochastic Oscillatorのメイン線における値の計算です。:


iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN, i)


パラメーター 3,5,5は、インジケーター平均のピリオド値です。MODE_SMAは、移動平均、i - ロウソク足数を計算するためのメソッドで、MODE_MAINパラメーターは、メイン線(%K)が計算されなければならないことを示します。以下は、シグナル線の計算です:

iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL, i)


インジケーター計算の組み込み関数を用いる際、チャートタイムフレームとシンボルを特定する必要があります。この場合、そのチャート(パラメーターNULL、0)の現在のシンボルと現在のタイムフレームが考慮されます。計算はすべてのシンボル、タイムフレームになされるということを覚えておく必要があります。Stochastic Oscillatorチャートにて、メイン線の値が54.4444に等しく、シグナル線の値は46.1238であるとわかります:

iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN, i) > 
iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL, i)


インジケーターの計算の自動化がたやすくなります。もしそのインジケーターが価格チャートにてスペースを取らなければ、便利になりあmす。ベストなソリューションは、チャートからインジケーターグラフを削除し、上記の計算されたシグナルのみを表示することです。シグナルを表示する上で最も人気なメソッドは、Wingdingsキャラクターをチャートに配置することです。このメソッドについては後ほど紹介します。今は、MQL4の別の機能を使用してみましょう。Comment()と呼ばれるオペレーターを使用します。

void Comment( ...)


価格チャートのコメントの表示に役立ちます。

//STOCH
 
      double valSTOCH=0; 
      string commentSTOCH = "Stoch:         ";
      string commentSTOCHAdd = "   No data ";
      if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0)
>iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0))
        commentSTOCHAdd =  "    Buy is possible";
               
      if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0)
<iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0))
        commentSTOCHAdd =  "    Sell is possible";   
        
      commentSTOCH =  commentSTOCH + commentSTOCHAdd;


上記のソースコードは、シグナルをテキストに変換し、チャートに表示します。

Comment(commentSTOCH + "\n");


Commentは、ユーザーは線フィード文字を使用し、コメントをビジュアル化することができるので便利です。上記のコードを使用し、トレーダーはStochastic Oscillatorのグラフを削除できます。テキストとして現在のマーケットの発展を表示するアラームシステムになります。



図2. 買いが可能です。

例えば、商品チャネル指数(CCI)を考えてみましょう。

"...商品価格の平均統計価格からの逸脱を計ります。高いインデックス値は、価格が平均と比較して珍しく高いことを示し、低い値は、価格がかなり低いことを示します。その名前にもかかわらず、商品チャネル指数はすべての金融商品に適用され、製品には適用されません。

自動化されたCCIシグナル計算があれば、さらに「価格が高すぎます」というコメントを取得できるようになります。例えば、現在のトレンドの加速と減速を測るAcceleration/Deceleration (AC)というテクニカルインジケーターを用いれば、トレーダーはさらに情報を得ることができます。"...もしAcceleration/Deceleration が早期の警告のシグナルであることがわかれば、明確な利点を提供することになります。"

いくつかのインジケーターからシグナルを表示するコードは以下のようになります;

//   Demarker
      double valDem=iDeMarker(NULL, 0, 13, 0);
      string commentDem = "DeMarker:    ";
      string commentDemAdd = "   No data";
     
      if (valDem < 0.30)
         commentDemAdd =  "   Prices are expected to go Up";
      
      if (valDem > 0.70)
         commentDemAdd =   "   Prices are expected to go Down";
      commentDem = commentDem + commentDemAdd;
 
//ATR
      double valATR=iATR(NULL, 0, 12, 0);
      string commentATR = "ATR:           ";
      commentATR=commentATR + "   Trend will probably change " + valATR;
            
//CCI
      double valCCI=iCCI(NULL,0,12,PRICE_MEDIAN,0);
      string commentCCI = "CCI:            ";
      string commentCCIAdd = "   No data ";
      if (valCCI > 100)
        commentCCIAdd =  "   Overbought " + 
                         "(a correcting down-trend is possible) ";
 
      if (valCCI < -100)
        commentCCIAdd =  "   Oversold " + 
                         "(a correcting up-trend is possible) ";
        
      commentCCI =  commentCCI + commentCCIAdd + valCCI;
 
//MFI
      double valMFI=iMFI(NULL,0,14,0);
      string commentMFI = "MFI:            ";
      string commentMFIAdd = "   No data ";
      if (valMFI > 80)
        commentMFIAdd =  "    a possible market peak ";
 
      if (valMFI < 20)
        commentMFIAdd =  "    a possible market trough ";
        
        commentMFI =  commentMFI + commentMFIAdd + valMFI;

計算は配列でも実行されます。OnArrayで終わる関数は、この目的のために使用され、データ配列の移動平均を計算するiMAOnArray関数などが一つです。いくつかのインジケーターが正反対のシグナルを出す傾向があることは興味深いものです。トレーダーにとって、シグナルがないこと自体がシグナルでもあります。トレーディングは、ポジションをオープンにする方向に関して の決定を行うだけではなく、オープンする時刻も決定する必要があります。トレーダーはより大きいか小さいタイムフレームにおける計算をプログラムコードに追加できますが、エキスパートシステム”Commentator”は、現在のタイムフレームにおけるシグナルを計算します。MQL4の使用は、トレーダーを縛るものではなく、機能性を向上させるものであることに注意しなければなりません。

MQL4で利用できる組み込みインジケーターの計算の関数は、以下で提供されています。

iAC 
iAD 
iAlligator 
iADX 
iATR 
iAO 
iBearsPower 
iBands 
iBandsOnArray 
iBullsPower 
iCCI 
iCCIOnArray 
iCustom 
iDeMarker 
iEnvelopes 
iEnvelopesOnArray 
iForce 
iFractals 
iGator 
iIchimoku 
iBWMFI 
iMomentum 
iMomentumOnArray 
iMFI 
iMA 
iMAOnArray 
iOsMA 
iMACD 
iOBV 
iSAR 
iRSI 
iRSIOnArray 
iRVI 
iStdDev 
iStdDevOnArray 
iStochastic 
iWPR


MetaQuotes Ltdによってロシア語から翻訳されました。
元の記事: https://www.mql5.com/ru/articles/1406

添付されたファイル |
Commentator.mq4 (7.03 KB)
オプティマイザでの遺伝的アルゴリズム vs シンプルな検索 オプティマイザでの遺伝的アルゴリズム vs シンプルな検索
この記事は、遺伝的アルゴリズムとシンプルな検索により取得されるものを用いて、エキスパートアドバイザーの最適化を行った結果とかかった時間を比較します。
情報ストレージとその表示 情報ストレージとその表示
この記事は、情報ストレージとその表示の便利で効率的な方法を紹介します。ターミナル標準ログファイルとCommnet()関数に対する代わりのものもこちらで紹介されます。
トレーダーツール、上級者向けのテクニカル分析のためのMQL4 トレーダーツール、上級者向けのテクニカル分析のためのMQL4
まず、トレーディングは確率の計算です。進展のエンジンとなる無為に関することわざは、それらのインジケーターやトレーディングシステムが開発された理由を明らかにします。トレーディングの多くの新人は「すでにできあがった」トレーディング理論を学習します。しかし、より多くの発見されていない市場の秘密があり、価格の動きの分析に使用されているツールは基本的に明らかにされていないテクニカルインジケーターや統計パッケージとして存在しています。マーケットの動向の理論への貢献において、Bill Williamsに感謝します。おそらくその漕ぎ手に頼るのは早すぎますが。
Expert Advisor、スクリプト、インディケータの同期 Expert Advisor、スクリプト、インディケータの同期
本稿では Expert Advisor、スクリプト、インディケータが含まれるバンドルプログラムを作成する必要性と一般的原則について考察します。