ATR_Trailingを使用したエキスパートアドバイザー(EA)は、オープンポジションのストップロスをチャネルの境界に沿って移動させます。ストップロスは、ストップロスが現在の価格に固定される場合に、新しくクローズしたバーのデータに基づいてバーが変わるときのみ修正されます。
このエキスパートアドバイザーは、チャートに直接インジケーターを表示する機能を提供します。インジケーターを手動でチャートにインストールする必要はありません。EAをチャートにインストールすると、自動的にインジケーターが表示されるので、とても便利です。このインジケーターは、常にEAの入力パラメーターと同じものを持っています。
以下は、その機能を実装するためのコードです:
//+------------------------------------------------------------------+ //| エキスパートにCChartクラスを含める | //+------------------------------------------------------------------+ #include <Charts\Chart.mqh> //---- グローバル変数の宣言(CChart型) CChart cchart; //+------------------------------------------------------------------+ //| エキスパート初期化関数 | //+------------------------------------------------------------------+ int OnInit() { //---- ATR_Trailingインジケーターのハンドルを取得 InpInd_Handle=iCustom(Symbol(),PERIOD_CURRENT,"ATR_Trailing",Period_ATR,Sell_Factor,Buy_Factor); if(InpInd_Handle==INVALID_HANDLE) Print(" ATR_Trailingインジケーターのハンドル取得に失敗"); //--- エラーコードをゼロにリセット ResetLastError(); //--- cchartオブジェクトは現在のチャート(ID=0)で動作します cchart.Attach(0); //---- チャートにATR_Trailingインジケーターを追加 if(!cchart.IndicatorAdd(0,InpInd_Handle)) Print(" チャートにATR_Trailingインジケーターの追加に失敗");
エキスパートアドバイザーの入力パラメーター:
//+----------------------------------------------+ //| エキスパートアドバイザーの入力パラメーター | //+----------------------------------------------+ input int Period_ATR=14; //ATRの期間 input double Sell_Factor=2.0; input double Buy_Factor=2.0; input uint Deviation=10; //スリッページ
画像:

Exp_ATR_Trailingの作動チャート
コメント 0