MQL言語入門|自作EAに簡単に実装できるnバーストップ

nバーストップ

この記事では、初心者向けのMQL言語入門として、MT4のサンプルEA「MACD Sample.mq4」のソースコードの一部を書き換えて「nバーストップ」を実装します。

仕組みさえわかれば、あなたの自作EAにも簡単に実装できます。

ぜひあなたの勝てるEA作りに役立ててください。

 

スポンサーリンク
スポンサーリンク

nバーストップとは

nバーストップは、過去nバーの期間の高値または安値超えを基準にストップロスオーダーを設定します。

例えば、過去3日間の高値または安値超えをストップポイントとするなど。

nバーストップは、直近の価格変動を重視した手仕舞い方法で、広く使われています。

nバーストップは、通常、トレーリングを組み合わせますので、この記事でも、トレーリングを組み合わせたソースコードを作ります。

 

MetaEditor の起動

サンプルコード「MACD Sample.mq4」に実装されているトレーリングストップの一部を書き換えて、nバーストップのソースコードを作ります。

MT4の「メタクォーツ言語エディタ」をクリックします。

メタエディター起動

 

MeTaEditorが立ち上がったら、画面左側の「Navigater」内のツリーから「Experts」をダブルクリックします。

「Experts」のツリーから「MACD Sample.mq4」をダブルクリックすると、ソースコードが開きます。

MACDサンプル起動

 

nバーストップの自作

それでは、いよいよソースコードを書き換えていきます。

 

外部パラメーターの変更

カーソルを11行目に移動します。

ここでは、ユーザーが変更可能なパラメーターを設定しています。

【変更前】

input double TakeProfit =50;
input double Lots =0.1;
input double TrailingStop =30;
input double MACDOpenLevel =3;
input double MACDCloseLevel=2;
input int MATrendPeriod =26;

【変更後】

input double TakeProfit =50;
input double Lots =0.1;
input double MACDOpenLevel =3;
input double MACDCloseLevel=2;
input int MATrendPeriod =26;
input int ExitPeriod=3;
double TrailingStop;

サンプルコードのトレーリングストップでは、パラメーター「TrailingStop」を設定し、トレール幅を自分で決めた値に固定していました。

nバーストップでは、過去nバーの期間の高値安値がトレール値になるため、トレール幅が変動していきます。

そのため、パラメーター「ExitPeriod」で「n」を設定し、内部関数でトレール幅を計算するための変数「TrailingStop」を宣言しました。

 

テクニカルインジケーター変数の宣言の追加

カーソルを下に移動させます。

ここでは、テクニカルインジケーター変数の宣言を記述しています。

double MacdCurrent,MacdPrevious;
double SignalCurrent,SignalPrevious;
double MaCurrent,MaPrevious;
int cnt,ticket,total;
double ExitHigh,ExitLow;

nバーストップのストップポイントとなる過去n日間の高値または安値は、自作インジケーター「HiLoBand」で求めることにします。

そのため、HiLoバンドの変数(ExitHigh,ExitLow)の宣言を追加しました。

MQL言語入門|カスタムインジケーターの超簡単な自作方法|ハイローバンド
カスタムインジケーター「HiLoBand.mq4」の超簡単な自作方法を解説します。完成品のダウンロードもできます。MT4をこれから始めようとする初心者を対象にしています。なぜ超簡単なのかというと、既存のソースコードの一部を書き換えるだけだからです。

 

 

買いポジションのトレーリングストップ発動条件

カーソルを下に移動させます。

ここでは、買いポジションのトレーリングストップの発動条件が記述されています。

【変更前】

//--- check for trailing stop
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{

【変更後】

//--- check for trailing stop
ExitLow = iCustom(NULL,0,"HiLoBand",ExitPeriod,1,0);
if(TrailingStop<ExitLow) TrailingStop=NormalizeDouble(ExitLow,Digits);
if(OrderStopLoss()<TrailingStop)
{

まずHiLoバンドインジケーターのLoバンドででトレール幅を算出しました。

NormalizeDouble関数は、指定された精度で丸められた浮動小数点数を返します。ここでは、Digits()を用いて正規化された桁数を取得しました。

トレーリングストップの発動条件は、

「逆指値(OrderStopLoss)がトレール幅より小さいこと」

としました。

 

ストップロスオーダーの表記の変更

カーソルを下に移動させます。

ここでは、買いポジションのオーダー変更の命令が記述されています。

//--- modify order and exit
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green))
Print("OrderModify error ",GetLastError());
return;

不要になった「Bid-Point*」を削除しました。

 

売りポジションのトレーリングストップ発動条件

カーソルを下に移動させます。

ここでは、売りポジションのトレーリングストップの発動条件が記述されています。

【変更前】

//--- check for trailing stop
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
{

【変更後】

//--- check for trailing stop
ExitHigh = iCustom(NULL,0,"HiLoBand",ExitPeriod,0,0);
if(TrailingStop>ExitHigh) TrailingStop=NormalizeDouble(ExitHigh,Digits);
if((OrderStopLoss()>TrailingStop) || (OrderStopLoss()==0))
{

まずHiLoバンドインジケーターのHiバンドでトレール幅を算出しました。

トレーリングストップの発動条件は、

「逆指値(OrderStopLoss)がトレール幅より大きいこと、または逆指値がないこと」

としました。

 

ストップロスオーダーの変更

カーソルを下に移動させます。

ここでは、売りポジションのオーダー変更の命令が記述されています。

//--- modify order and exit
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red))
Print("OrderModify error ",GetLastError());
return;

不要になった「Ask+Point*」を削除しました。

 

ソースコードの書き換えは以上です。

 

まとめ

MQL言語入門として、MT4のサンプルEA「MACD Sample.mq4」のソースコードの一部を書き換えて「nバーストップ」を実装しました。

仕組みさえわかれば、自作EAに簡単に実装できます。

ぜひあなたの勝てるEA作りに役立ててください。


もっと本格的にMQL言語を使いこなしたいなら、この書籍がおすすめです。私もこの本で勉強しました。
スポンサーリンク

おすすめFX業者とVPSサービス

もしあなたがMT4のリアル口座を検討中なら『XM』がおすすめです。豊富な入出金方法、24時間日本語サポート、レバレッジ888倍、お得なボーナスなどにより、日本人の口座開設数No.1の人気FX業者です。スマホ・PC・Macすべて同じMT4口座で取引できます。


もしあなたがMT4をVPS稼働しようとお考えなら、このMT4専用VPSがおすすめです。初期費用0円なので気楽に試してみませんか♪


MT4用のPCなら、数あるメーカー直販ショップの中でも、豊富な品揃えと価格の安さから『レノボ・ショッピング』がおすすめです。

スポンサーリンク

おすすめFX業者とVPSサービス

もしあなたがMT4のリアル口座を検討中なら『XM』がおすすめです。24時間日本語サポート、レバレッジ888倍、お得なボーナスなどから、日本人の口座開設数No.1の人気FX業者です。スマホ・PC・Macすべて同じ口座で取引できます。


もしあなたがMT4をVPS稼働しようとお考えなら、このMT4専用VPSがおすすめです。初期費用0円なので気楽に試してみませんか♪


MT4用のPCなら、数あるメーカー直販ショップの中でも、豊富な品揃えと価格の安さから『レノボ・ショッピング』がおすすめです。

MQL言語入門
スポンサーリンク
スポンサーリンク
スポンサーリンク

●免責及び注意事項●
当サイトの全てのコンテンツは管理人自身による情報の提供を目的としており、投資行動を勧誘・助言するものではありません。
当サイトに掲載している全ての情報について、その正確性、完全性、有用性等について保証するものではありません。
個々の取引において生じたいかなる損失について、当サイトの管理人は一切の責任を負いかねます。
取引にあたっては、FXという金融商品のリスクを十分に理解した上で、ご自身の判断と責任でなさるようお願いいたします。
当サイトの記載内容は、予告なしに変更することがあります。

Startup!

コメント

タイトルとURLをコピーしました