PR

MQL4のiDeMarker関数の使い方|MQL4初心者向けガイド

ノートパソコン プログラミング MQL4初心者講座
Adeela WasimによるPixabayからの画像
この記事は約22分で読めます。
[PR] 記事内に広告が含まれています。

MetaTrader 4(MT4)のプログラミング言語であるMQL4には、様々なテクニカルインディケーターを取得するための関数が用意されています。その中でも、トレーダーにとって重要な「デマーカー」を取得するための関数がiDeMarker関数です。このガイドでは、初心者向けにiDeMarker関数の使い方とそのパラメータについて詳しく説明します。

iDeMarker関数とは?

ノートパソコン プログラミング

Adeela WasimによるPixabayからの画像

iDeMarker関数は、MT4のプラットフォーム上でデマーカーインディケーターの値を取得するための関数です。

デマーカーインディケーターは、トレンドの強さや反転ポイントを見極めるために使用されます。

この関数を利用することで、プログラム内でデマーカーの値を簡単に取得し、分析に活用できますよ。

MT4を使ったトレード戦略にデマーカーを取り入れることで、より効果的なトレードが可能になります。

iDeMarker関数の基本構文

iDeMarker関数の基本的な構文は以下の通りです。

double iDeMarker(
  string symbol,   // 通貨ペア名
  int timeframe,   // タイムフレーム
  int period,      // デマーカーの期間
  int shift        // シフト(取得するバーの位置)
);

それぞれのパラメータについて詳しく説明しますね。

symbol:通貨ペアの名前を文字列で指定します。例えば、”EURUSD”や”USDJPY”など、取引したい通貨ペアの名前を入力します。

timeframe:タイムフレームを指定します。例えば、1時間足ならPERIOD_H1、日足ならPERIOD_D1など、分析したい時間の枠を選びます。

period:デマーカーインディケーターの計算に使用する期間を指定します。一般的には14が使われますが、目的に応じて変更できます。

shift:取得するデータのシフトを指定します。0は最新のバー、1は一つ前のバーという意味です。

iDeMarker関数の実際の使用例

具体的な例を見てみましょう。

ここでは、EURUSDの1時間足のデマーカー値を取得する例を示します。

double demarker_value = iDeMarker("EURUSD", PERIOD_H1, 14, 0);
Print("Current DeMarker value: ", demarker_value);

このコードは、現在のEURUSDの1時間足におけるデマーカー値を取得し、その値をプリントします。

このようにして、iDeMarker関数を使うことで、プログラム内でデマーカーの値を簡単に取得できます。

これを活用することで、トレードの判断材料として役立てることができますね。

デマーカーインディケーターの活用方法

デマーカーインディケーターは、トレンドの強さや売られ過ぎ、買われ過ぎの状態を判断するために使用されます。

通常、0.7以上の値は買われ過ぎ、0.3以下の値は売られ過ぎとされます。

これらの値を参考にして、売買のタイミングを見極めることができます。

例えば、デマーカーが0.7を超えたときに売りポジションを持ち、0.3を下回ったときに買いポジションを持つといった戦略が考えられます。

このようにして、デマーカーインディケーターを活用することで、トレードの成功率を高めることができますよ。

iDeMarker関数を用いたEAの作成

iDeMarker関数を活用して、自動売買プログラム(EA)を作成することも可能です。

EA内でデマーカーの値を監視し、特定の条件が満たされたときに自動的に売買を行うようにプログラムすることで、トレードを効率化できます。

以下に、簡単なEAのサンプルコードを示します。このEAはデマーカーの値に基づいて自動的にトレードを行います。

int OnInit()
{
  // 初期化コード
  return(INIT_SUCCEEDED);
}

void OnTick()
{
  double demarker_value = iDeMarker("EURUSD", PERIOD_H1, 14, 0);
  if(demarker_value > 0.7)
  {
    // 売り注文
    OrderSend("EURUSD", OP_SELL, 0.1, Bid, 3, 0, 0, "Sell order", 0, 0, clrRed);
  }
  else if(demarker_value < 0.3)
  {
    // 買い注文
    OrderSend("EURUSD", OP_BUY, 0.1, Ask, 3, 0, 0, "Buy order", 0, 0, clrGreen);
  }
}

このコードは、デマーカーの値が0.7を超えたときに売り注文を出し、0.3を下回ったときに買い注文を出すように設定されています。

このようにして、iDeMarker関数を活用したEAを作成することで、トレードの自動化を実現できますね。

これにより、トレードの効率化と成功率の向上が期待できます。

iDeMarker関数の実際の使用例

具体的な例を見てみましょう。ここでは、EURUSDの1時間足のデマーカー値を取得する例を示します。

iDeMarker関数は、トレンドの強さや反転ポイントを判断するために使われるデマーカーインディケーターの値を取得するためのものです。この関数を使うことで、MQL4プログラム内で簡単にデマーカーの値を取得し、それをトレード戦略に組み込むことができます。

まず、iDeMarker関数の基本的な構文をおさらいしましょう。iDeMarker関数は、以下のように書きます。

double iDeMarker(
  string symbol,   // 通貨ペア名
  int timeframe,   // タイムフレーム
  int period,      // デマーカーの期間
  int shift        // シフト(取得するバーの位置)
);

次に、各パラメータの意味を確認しましょう。symbolは通貨ペアの名前を表します。例えば、”EURUSD”のように指定します。timeframeはタイムフレームを指定します。例えば1時間足ならPERIOD_H1、日足ならPERIOD_D1です。

periodはデマーカーの計算に使用する期間を指定します。一般的には14が使われます。shiftは取得するデータのシフトを指定します。0は最新のバー、1は一つ前のバーという意味です。

実際のコード例

ここでは、EURUSDの1時間足におけるデマーカーの値を取得する具体的な例を見てみましょう。以下のコードは、デマーカー値を取得し、その値をプリントするものです。

double demarker_value = iDeMarker("EURUSD", PERIOD_H1, 14, 0);
Print("Current DeMarker value: ", demarker_value);

このコードを実行すると、現在のEURUSDの1時間足のデマーカー値が取得され、その値が出力されます。例えば、デマーカー値が0.65であれば、「Current DeMarker value: 0.65」と表示されます。

デマーカーインディケーターの活用方法

デマーカーインディケーターは、トレンドの強さや売られ過ぎ、買われ過ぎの状態を判断するために使用されます。デマーカー値が0.7以上なら買われ過ぎ、0.3以下なら売られ過ぎとされます。これをトレード戦略に組み込むことで、より効果的なエントリーポイントやエグジットポイントを見つけることができます。

例えば、デマーカー値が0.7を超えた時に売りポジションを持ち、0.3を下回った時に買いポジションを持つといった戦略が考えられます。このようにデマーカーインディケーターを活用することで、トレードの精度を高めることができますよ。

自動売買プログラム(EA)での活用例

iDeMarker関数を使って自動売買プログラム(エキスパートアドバイザー、EA)を作成することも可能です。以下に、デマーカーの値を使って売買を自動化するEAの簡単な例を示します。

int OnInit()
{
  // 初期化コード
  return(INIT_SUCCEEDED);
}

void OnTick()
{
  double demarker_value = iDeMarker("EURUSD", PERIOD_H1, 14, 0);
  if(demarker_value > 0.7)
  {
    // 売り注文
    OrderSend("EURUSD", OP_SELL, 0.1, Bid, 3, 0, 0, "Sell order", 0, 0, clrRed);
  }
  else if(demarker_value < 0.3)
  {
    // 買い注文
    OrderSend("EURUSD", OP_BUY, 0.1, Ask, 3, 0, 0, "Buy order", 0, 0, clrGreen);
  }
}

このコードは、デマーカー値が0.7を超えた場合に自動的に売り注文を出し、0.3を下回った場合に買い注文を出すように設定されています。これにより、トレードの機会を逃さずに利益を最大化することができます。

EAの改良と最適化

基本的なEAの作成方法を理解したところで、次に考えるべきはEAの改良と最適化です。EAをより効果的にするためには、以下のポイントに注意することが重要です。

まず、リスク管理です。EAが自動的にトレードを行う際、適切なリスク管理を行うことが必要です。たとえば、各トレードのロットサイズを資金に応じて調整する、ストップロスを設定するなどです。これにより、大きな損失を避けることができます。

次に、バックテストを行うことが重要です。バックテストとは、過去の市場データを使ってEAのパフォーマンスを検証することです。これにより、EAの強みと弱みを把握し、必要な改良を加えることができます。

また、パラメータの最適化も重要です。デマーカーの期間やシフトの値など、EAのパラメータを最適化することで、より良い結果を得ることができます。パラメータの最適化には、MT4のオプティマイザー機能を活用するのが便利です。

さらに、複数のインディケーターを併用することで、トレードの精度を高めることができます。デマーカーインディケーターだけでなく、他のオシレーターやトレンドフォローインディケーターも組み合わせて使うことで、相場の変動に対する判断力を向上させることができます。

最後に、定期的なモニタリングと調整です。EAは自動で動作しますが、市場の状況は常に変化します。定期的にEAのパフォーマンスをモニターし、必要に応じて調整を行うことが成功の鍵となります。

具体的な改良例

ここでは、先ほどの基本的なEAにいくつかの改良を加えた例を示します。具体的には、リスク管理のためのストップロスとテイクプロフィットの設定、およびパラメータの最適化です。

int OnInit()
{
  // 初期化コード
  return(INIT_SUCCEEDED);
}

void OnTick()
{
  double demarker_value = iDeMarker("EURUSD", PERIOD_H1, 14, 0);
  double lot_size = 0.1;
  double stop_loss = 50; // ストップロスを50ピップスに設定
  double take_profit = 100; // テイクプロフィットを100ピップスに設定

  if(demarker_value > 0.7)
  {
    // 売り注文
    OrderSend("EURUSD", OP_SELL, lot_size, Bid, 3, Bid + stop_loss * Point, Bid - take_profit * Point, "Sell order", 0, 0, clrRed);
  }
  else if(demarker_value < 0.3)
  {
    // 買い注文
    OrderSend("EURUSD", OP_BUY, lot_size, Ask, 3, Ask - stop_loss * Point, Ask + take_profit * Point, "Buy order", 0, 0, clrGreen);
  }
}

この改良版のEAは、売り注文や買い注文を出す際に、それぞれストップロスとテイクプロフィットを設定しています。これにより、リスク管理が強化され、損失を最小限に抑えることができます。

バックテストと最適化の方法

EAの効果を確認するためには、バックテストと最適化が欠かせません。MT4では、ストラテジーテスターを使って簡単にバックテストを行うことができます。以下は、バックテストと最適化の基本的な手順です。

まず、MT4の「ツール」メニューから「ストラテジーテスター」を選択します。次に、テストするEAを選び、テストする通貨ペアや期間を設定します。「設定」タブでパラメータを調整し、「スタート」をクリックすると、バックテストが開始されます。

バックテストの結果を分析し、必要に応じてパラメータを調整します。最適化を行う場合は、「最適化」オプションを有効にし、最適化するパラメータの範囲を設定します。これにより、最も効果的なパラメータを見つけることができます。

最適化の結果を元に、EAを再調整し、実際の取引に適用する前に、必ずデモ口座でのテストを行いましょう。これにより、リアルな市場環境でEAのパフォーマンスを確認することができます。

複数のインディケーターを併用する方法

最後に、複数のインディケーターを併用する方法について説明します。デマーカーインディケーターだけでなく、他のインディケーターを組み合わせることで、トレードの精度を向上させることができます。以下に、デマーカーと移動平均線を併用したEAの例を示します。

int OnInit()
{
  // 初期化コード
  return(INIT_SUCCEEDED);
}

void OnTick()
{
  double demarker_value = iDeMarker("EURUSD", PERIOD_H1, 14, 0);
  double ma_value = iMA("EURUSD", PERIOD_H1, 50, 0, MODE_SMA, PRICE_CLOSE, 0);
  double lot_size = 0.1;
  double stop_loss = 50; // ストップロスを50ピップスに設定
  double take_profit = 100; // テイクプロフィットを100ピップスに設定

  if(demarker_value > 0.7 && Close[1] > ma_value)
  {
    // 売り注文
    OrderSend("EURUSD", OP_SELL, lot_size, Bid, 3, Bid + stop_loss * Point, Bid - take_profit * Point, "Sell order", 0, 0, clrRed);
  }
  else if(demarker_value < 0.3 && Close[1] < ma_value)
  {
    // 買い注文
    OrderSend("EURUSD", OP_BUY, lot_size, Ask, 3, Ask - stop_loss * Point, Ask + take_profit * Point, "Buy order", 0, 0, clrGreen);
  }
}

このコードでは、デマーカーインディケーターと50期間の単純移動平均線(SMA)を併用しています。デマーカー値が0.7を超え、かつ前のバーの終値が移動平均線を上回っている場合に売り注文を出し、デマーカー値が0.3を下回り、前のバーの終値が移動平均線を下回っている場合に買い注文を出すように設定されています。

このように、複数のインディケーターを併用することで、より確実なトレード判断が可能となり、リスクを低減することができます。

デマーカーインディケーターの活用方法

デマーカーインディケーターは、トレンドの強さや売られ過ぎ、買われ過ぎの状態を判断するために使用されます。通常、0.7以上の値は買われ過ぎ、0.3以下の値は売られ過ぎとされます。

このインディケーターを利用することで、トレンドの反転ポイントを見つけやすくなりますよ。特に、トレンドの強さを確認する際に便利です。買われ過ぎの状態は、価格が急激に上がり過ぎている可能性があるため、売りのサインと考えられます。一方、売られ過ぎの状態は、価格が下がり過ぎている可能性があるため、買いのサインと考えられます。

デマーカーインディケーターの値が中間(0.3から0.7の間)にある場合、トレンドが明確でないことを示していることが多いです。このような場合は、他のインディケーターと組み合わせて使うことで、より精度の高い分析が可能になりますね。

また、デマーカーインディケーターは他のインディケーターと同様に、一定期間の価格変動を元に計算されます。期間の設定によって結果が異なるため、自分のトレードスタイルに合った設定を見つけることが重要です。

トレード戦略に組み込む

デマーカーインディケーターを使用したトレード戦略を実装することで、エントリーポイントやエグジットポイントをより正確に判断することができます。例えば、デマーカーが0.7を超えたときに売りポジションを持ち、0.3を下回ったときに買いポジションを持つといった方法です。

具体的なトレード戦略の一つに、デマーカーインディケーターと移動平均線を組み合わせる方法があります。移動平均線はトレンドの方向性を示す指標で、これとデマーカーインディケーターを併用することで、より精度の高いトレードが可能になります。

例えば、デマーカーインディケーターが0.7を超えたときに、移動平均線も上昇している場合、トレンドが強く継続する可能性が高いため、売りのタイミングを逃さないようにします。一方で、デマーカーが0.3を下回ったときに、移動平均線が下降している場合、買いのチャンスと捉えます。

もう一つの戦略は、デマーカーインディケーターを複数のタイムフレームで確認する方法です。例えば、短期と長期のデマーカーを同時に見て、両方が同じシグナルを出している場合にエントリーするという方法です。これにより、シグナルの信頼性が向上します。

また、デマーカーインディケーターの値が急激に変動する場合、それがトレンドの転換点を示す可能性があります。このような急変動を見逃さず、迅速に対応することが重要です。

最後に、デマーカーインディケーターを使ったトレード戦略を実行する際には、リスク管理も忘れないようにしましょう。損切りラインを設定して、損失を最小限に抑えることが成功の鍵です。

iDeMarker関数の応用例

MQL4のiDeMarker関数は、デマーカーインディケーターの値を取得するために使用されますが、具体的にどのように応用できるかについて詳しく見ていきましょう。

デマーカーインディケーターはトレンドの強さや反転ポイントを見極めるのに役立つため、iDeMarker関数を利用した様々なトレード戦略を構築できますね。

ここでは、iDeMarker関数を使ったいくつかの応用例を紹介し、トレード戦略のアイデアを提供します。

また、実際のコード例を通じて、どのように実装すればよいかを具体的に説明しますよ。

トレンドフォロー戦略

トレンドフォロー戦略は、現在の市場の動きに追随する手法です。デマーカーインディケーターを利用して、トレンドが強いときにエントリーし、トレンドが弱くなったときにエグジットする方法が一般的です。

例えば、デマーカーの値が0.7を超えると買い、0.3を下回ると売るというシンプルな戦略を実装できます。

以下はその具体例です。

void OnTick()
{
  double demarker = iDeMarker(Symbol(), 0, 14, 0);
  if(demarker > 0.7)
  {
    if(OrdersTotal() == 0)
    {
      OrderSend(Symbol(), OP_BUY, 0.1, Ask, 2, 0, 0, "Buy order", 0, 0, clrGreen);
    }
  }
  else if(demarker < 0.3)
  {
    if(OrdersTotal() == 0)
    {
      OrderSend(Symbol(), OP_SELL, 0.1, Bid, 2, 0, 0, "Sell order", 0, 0, clrRed);
    }
  }
}

このコードは、デマーカーの値が0.7を超えると自動的に買い注文を出し、0.3を下回ると売り注文を出します。

このようにして、トレンドの強いときにトレードを行うことで、利益を最大化することができます。

リバージョントレード戦略

リバージョントレード戦略は、価格が一時的に極端な値に達したときに逆張りをする手法です。デマーカーインディケーターを利用して、買われ過ぎや売られ過ぎの状態を判断し、エントリーポイントを見つけます。

デマーカーが0.7を超えた場合は売り、0.3を下回った場合は買いという戦略を取ることができます。

具体的なコード例は以下の通りです。

void OnTick()
{
  double demarker = iDeMarker(Symbol(), 0, 14, 0);
  if(demarker > 0.7)
  {
    if(OrdersTotal() == 0)
    {
      OrderSend(Symbol(), OP_SELL, 0.1, Bid, 2, 0, 0, "Sell order", 0, 0, clrRed);
    }
  }
  else if(demarker < 0.3)
  {
    if(OrdersTotal() == 0)
    {
      OrderSend(Symbol(), OP_BUY, 0.1, Ask, 2, 0, 0, "Buy order", 0, 0, clrGreen);
    }
  }
}

このコードは、デマーカーが買われ過ぎ(0.7以上)で売り、売られ過ぎ(0.3以下)で買うという逆張り戦略を実装しています。

これにより、極端な値動きから利益を狙うことができます。

レンジ相場でのトレード

レンジ相場では、価格が一定の範囲内で動くため、デマーカーインディケーターを使って反転ポイントを見極めることが重要です。

デマーカーが0.7を超えたときに売り、0.3を下回ったときに買うことで、レンジ内での利益を狙います。

次のコードは、レンジ相場でのトレード戦略の例です。

void OnTick()
{
  double demarker = iDeMarker(Symbol(), 0, 14, 0);
  if(demarker > 0.7 && demarker < 1.0)
  {
    if(OrdersTotal() == 0)
    {
      OrderSend(Symbol(), OP_SELL, 0.1, Bid, 2, 0, 0, "Sell order", 0, 0, clrRed);
    }
  }
  else if(demarker < 0.3 && demarker > 0.0)
  {
    if(OrdersTotal() == 0)
    {
      OrderSend(Symbol(), OP_BUY, 0.1, Ask, 2, 0, 0, "Buy order", 0, 0, clrGreen);
    }
  }
}

このコードは、デマーカーの値がレンジ内での反転ポイントを示したときにトレードを行います。

レンジ相場では、このような戦略を使って小さな利益を積み重ねることができますよ。

まとめ

iDeMarker関数は、様々なトレード戦略に応用できる強力なツールです。トレンドフォロー戦略、リバージョントレード戦略、レンジ相場でのトレード戦略など、目的に応じて使い分けることで、効果的なトレードが可能になります。

実際にコードを組んで試しながら、自分に合った方法を見つけてくださいね。

まとめ

iDeMarker関数は、MT4でデマーカーインディケーターの値を取得するための強力なツールです。

初心者の方でも、基本的な使い方とパラメータを理解すれば、自分のトレード戦略に組み込むことができます。

例えば、デマーカーインディケーターを使って市場のトレンドを判断したり、過剰に売買されている状態を識別することができます。

具体的には、デマーカーの値が0.7以上のときは買われ過ぎ、0.3以下のときは売られ過ぎと判断できますよ。

また、iDeMarker関数を使用して、これらの情報を自動売買システム(EA)に組み込むことも可能です。

EAを使えば、特定の条件が満たされたときに自動で売買注文を出すことができるので、トレードの効率を大幅に向上させることができますね。

iDeMarker関数のパラメータ

iDeMarker関数のパラメータについておさらいしましょう。

この関数には以下の4つのパラメータがあります:

  • symbol: 通貨ペアの名前を指定します。例えば、”EURUSD”など。
  • timeframe: タイムフレームを指定します。例えば、1時間足ならPERIOD_H1、日足ならPERIOD_D1です。
  • period: デマーカーの計算に使用する期間を指定します。一般的には14が使われます。
  • shift: 取得するデータのシフトを指定します。0は最新のバー、1は一つ前のバーという意味です。

これらのパラメータを適切に設定することで、正確なデマーカー値を取得することができます。

具体的な使い方の例

具体的な使い方の例として、EURUSDの1時間足のデマーカー値を取得するコードを紹介します。

double demarker_value = iDeMarker("EURUSD", PERIOD_H1, 14, 0);
Print("Current DeMarker value: ", demarker_value);

このコードは、現在のEURUSDの1時間足におけるデマーカー値を取得し、その値をプリントします。

デマーカーインディケーターの活用方法

デマーカーインディケーターは、トレンドの強さや売られ過ぎ、買われ過ぎの状態を判断するために使用されます。

通常、0.7以上の値は買われ過ぎ、0.3以下の値は売られ過ぎとされます。

デマーカーインディケーターを使用したトレード戦略を実装することで、エントリーポイントやエグジットポイントをより正確に判断することができます。

例えば、デマーカーが0.7を超えたときに売りポジションを持ち、0.3を下回ったときに買いポジションを持つといった方法です。

iDeMarker関数を用いたEAの作成

iDeMarker関数を活用して、自動売買プログラム(EA)を作成することも可能です。

EA内でデマーカーの値を監視し、特定の条件が満たされたときに自動的に売買を行うようにプログラムすることで、トレードを効率化できます。

int OnInit()
{
  // 初期化コード
  return(INIT_SUCCEEDED);
}

void OnTick()
{
  double demarker_value = iDeMarker("EURUSD", PERIOD_H1, 14, 0);
  if(demarker_value > 0.7)
  {
    // 売り注文
    OrderSend("EURUSD", OP_SELL, 0.1, Bid, 3, 0, 0, "Sell order", 0, 0, clrRed);
  }
  else if(demarker_value < 0.3)
  {
    // 買い注文
    OrderSend("EURUSD", OP_BUY, 0.1, Ask, 3, 0, 0, "Buy order", 0, 0, clrGreen);
  }
}

このコードは、デマーカーの値が0.7を超えたときに売り注文を出し、0.3を下回ったときに買い注文を出すように設定されています。

まとめ

iDeMarker関数は、MT4でデマーカーインディケーターの値を取得するための強力なツールです。

初心者の方でも、基本的な使い方とパラメータを理解すれば、自分のトレード戦略に組み込むことができます。

是非、このガイドを参考にして、デマーカーインディケーターを活用した効果的なトレードを行ってくださいね。

コメント

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