MENU
  • 必要証拠金計算ツール
  • FX複利計算シミュレーター
  • 余力に応じたロット計算ツール
  • お問い合わせ
FXあれこれ
  • 必要証拠金計算ツール
  • FX複利計算シミュレーター
  • 余力に応じたロット計算ツール
  • お問い合わせ
  1. ホーム
  2. MQL
  3. 【MQL4】ZigZagでフィボナッチリトレースメントを自動で引くインジケーター

【MQL4】ZigZagでフィボナッチリトレースメントを自動で引くインジケーター

2025 6/30
MQL
2025年6月26日2025年6月30日
当ページのリンクには広告が含まれています。

直近のZIgZagでフィボナッチリトレースメントを引くインジケーターを作りました。

38.2%や61.8%地点への反発を狙いやすくなります。

現在進行形でZigZagが更新されているときは一つ前のZigZagでフィボナッチを引き、そうでない場合は最新のZigZagでフィボナッチを引くようにしています。

目次

ソースコード

//+------------------------------------------------------------------+
//|                                              ZigZagFibnacchi.mq4 |
//|                                  Copyright 2025, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window

input int InpDepth=12;     // Depth
input int InpDeviation=5;  // Deviation
input int InpBackstep=3;   // Backstep
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
  return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
    int zigCnt=0;
    datetime zigTime1=NULL;
    datetime zigTime2=NULL;
    double zig1=0;
    double zig2=0;
    if(iCustom(NULL,0,"ZigZag",InpDepth,InpDeviation,InpBackstep,0,0)>0)
    {
        for (int i=0; i<100; i++)
        {
            double zig = iCustom(NULL,0,"ZigZag",InpDepth,InpDeviation,InpBackstep,0,i);
            if(zig!=0)
            {
                zigCnt++;
            }
            
            if(zigCnt==2 && zigTime1==NULL)
            {
                zigTime1=iTime(NULL,0,i);
                zig1=zig;
            }
            if(zigCnt==3)
            {
                zigTime2=iTime(NULL,0,i);
                zig2=zig;
                ObjectsDeleteAll();
    
                if(zig1>zig2)
                {
                    ObjectCreate(0,(string)zigTime1,OBJ_FIBO,0,zigTime2,iLow(NULL,0,iBarShift(NULL,0,zigTime2)),zigTime1,iHigh(NULL,0,iBarShift(NULL,0,zigTime1)));
                }
                if(zig1<zig2)
                {
                    ObjectCreate(0,(string)zigTime1,OBJ_FIBO,0,zigTime2,iHigh(NULL,0,iBarShift(NULL,0,zigTime2)),zigTime1,iLow(NULL,0,iBarShift(NULL,0,zigTime1)));
                }
                return(rates_total);
            }
    
        }
    }
    else
    {
        for (int i=0; i<100; i++)
        {
            double zig = iCustom(NULL,0,"ZigZag",InpDepth,InpDeviation,InpBackstep,0,i);
            if(zig!=0)
            {
                zigCnt++;
            }
            
            if(zigCnt==1 && zigTime1==NULL)
            {
                zigTime1=iTime(NULL,0,i);
                zig1=zig;
            }
            if(zigCnt==2)
            {
                zigTime2=iTime(NULL,0,i);
                zig2=zig;
                ObjectsDeleteAll();
    
                if(zig1>zig2)
                {
                    ObjectCreate(0,(string)zigTime1,OBJ_FIBO,0,zigTime2,iLow(NULL,0,iBarShift(NULL,0,zigTime2)),zigTime1,iHigh(NULL,0,iBarShift(NULL,0,zigTime1)));
                }
                if(zig1<zig2)
                {
                    ObjectCreate(0,(string)zigTime1,OBJ_FIBO,0,zigTime2,iHigh(NULL,0,iBarShift(NULL,0,zigTime2)),zigTime1,iLow(NULL,0,iBarShift(NULL,0,zigTime1)));
                }
                return(rates_total);
            }
    
        }
    }
    return(rates_total);
}
//+------------------------------------------------------------------+
MQL
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
  • 【FX基礎】トレンドの有無を確認する方法やインジケーター
  • ハイレバレッジの考え方を間違えると絶対負ける絶対的な理由

関連記事

  • とりあえずロジックのサインを確認するテストインジケーター
    2025年7月2日
  • 【MQL】で開いていないチャートのデータを取得できない問題を解決するスクリプト
    2025年6月24日
  • 【MQL】MQL4で使えるSymbolInfoDouble
    2025年6月24日
  • 【MQL】MQL4で使えるSymbolInfoInteger
    2025年6月24日
  • 【MQL4】iWPRの使い方【ウィリアムズ%R】
    2025年6月18日
  • 【MQL4】iStochasticの使い方【ストキャスティクス】
    2025年6月18日
  • 【MQL4】iStdDevOnArrayの使い方【配列に対する標準偏差】
    2025年6月18日
  • 【MQL4】iStdDevの使い方【標準偏差】
    2025年6月18日

コメント

コメントする コメントをキャンセル

新着記事
  • とりあえずロジックのサインを確認するテストインジケーター
    2025年7月2日
    MQL
人気記事
  • ボリンジャーバンドの「長所」と「短所」、そして実践的なトレード手法2選!
    2025年6月2日
    FXの基礎 7
  • 【MT4インジケーター】マルチタイムADX
    2025年6月2日
    MQL 6
  • FXで負けている人がやっていること【10選】
    2025年6月6日
    FXの基礎 5
カテゴリー
  • FXの基礎 (5)
  • MQL (45)
  • XM (7)
  • お知らせ (1)
  • トレード戦略 (1)
  • ハイレバの基本的な考え方 (1)
  • 証拠金計算ツール (1)
スポンサーリンク

\ すぐ始められる!/

XMでトレードする
目次

© FXあれこれ.

目次