Results 1 to 2 of 2
 0 Attachment(s)    

Thread: Good indicator but has some problems, can anyone help?

  1. #1
    Junior Member
    Join Date
    May 2010
    Posts
    3

    Default Good indicator but has some problems, can anyone help?

    Hi,

    Recently I have come accross a simple indicator that seems to give good results when looking at historic signals, but has some problems.

    Basically, the indicator draws the arrows at the intersection of the MA and the RSI of the 50 level.

    Sometimes the indicator does not draw the arrows if the conditions are fulfilled. Sometimes it puts the arrows at the current bar, but if the price moves in the wrong direction it removes these arrows.


    I do not know a thing about programming, so if there was anyone too look at the code and perhaps fix it, I would highly appreciate it. I have tried the indicator with different settings, 33 and 66 on H1 timeframes, and seemed to perform well, except for the fact that some signals are missing.

    Here's the code.

    //+------------------------------------------------------------------+
    //| Misus Entry Indicator.mq4 |
    //| |
    //| Ideas by Misus|
    //+------------------------------------------------------------------+
    #property copyright "Misus"
    #property link ""

    #property indicator_chart_window
    #property indicator_buffers 4
    #property indicator_color1 Blue
    #property indicator_color2 Red
    #property indicator_color3 Blue
    #property indicator_color4 DodgerBlue

    #include <WinUser32.mqh>
    //---- input parameters
    extern int FastEMA=14;
    extern int SlowEMA=21;
    extern int RSIPeriod=17;
    extern bool Alerts=false;
    //---- buffers
    double ExtMapBuffer1[];
    double ExtMapBuffer2[];
    double ExtMapBuffer3[];
    double ExtMapBuffer4[];
    //double rsi_sig[];
    //---- variables
    int sigCurrent=0;
    int sigPrevious=0;
    double pipdiffCurrent=0;
    double pipdiffPrevious=0;
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    //---- indicators
    SetIndexStyle(0,DRAW_LINE);
    SetIndexBuffer(0,ExtMapBuffer1);
    SetIndexStyle(1,DRAW_LINE,1,3);
    SetIndexBuffer(1,ExtMapBuffer2);
    SetIndexStyle(2,DRAW_ARROW,1,5);
    SetIndexArrow(2,233);
    SetIndexBuffer(2,ExtMapBuffer3);
    SetIndexEmptyValue(2,0.0);
    SetIndexStyle(3,DRAW_ARROW,1,5);
    SetIndexArrow(3,234);
    SetIndexBuffer(3,ExtMapBuffer4);
    SetIndexEmptyValue(3,0.0);
    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    //----

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function |
    //+------------------------------------------------------------------+
    int start()
    {
    int limit;
    int counted_bars=IndicatorCounted();
    double rsi_sig=0;
    bool entry=false;
    double entry_point=0;

    //---- check for possible errors
    if(counted_bars<0) return(-1);
    //---- last counted bar will be recounted
    if(counted_bars>0) counted_bars--;
    limit=Bars-counted_bars;

    //---- main loop
    for(int i=0; i<limit; i++)
    {
    //---- ma_shift set to 0 because SetIndexShift called abowe
    ExtMapBuffer1[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i);
    ExtMapBuffer2[i]=iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
    rsi_sig = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, i);

    pipdiffCurrent=(ExtMapBuffer1[i]-ExtMapBuffer2[i]);

    Comment("pipdiffCurrent = "+pipdiffCurrent+" ");
    if (pipdiffCurrent>0 && rsi_sig>50)
    {
    sigCurrent = 1; //Up
    }
    else if (pipdiffCurrent<0 && rsi_sig<50)
    {
    sigCurrent = 2; //Down
    }
    /*
    if (pipdiffCurrent>0)
    {
    sigCurrent = 1; //Up
    }
    else if (pipdiffCurrent<0)
    {
    sigCurrent = 2; //Down
    }
    */

    if (sigCurrent==1 && sigPrevious==2)
    {
    ExtMapBuffer4[i-1] = High[i-1]-5*Point;
    //ExtMapBuffer3[i] = Ask;
    entry=true;
    entry_point=Ask;
    }
    else if (sigCurrent==2 && sigPrevious==1)
    {
    ExtMapBuffer3[i-1] = Low[i-1]-5*Point;
    //ExtMapBuffer4[i] = Bid;
    entry=true;
    entry_point=Bid;
    }


    sigPrevious=sigCurrent;
    pipdiffPrevious=pipdiffCurrent;
    }

    //----
    if(Alerts && entry)
    {
    PlaySound("alert.wav");
    if (sigPrevious==1)
    {
    MessageBox("Entry point: buy at "+entry_point+"!!", "Entry Point", MB_OK);
    }
    else if (sigPrevious==2)
    {
    MessageBox("Entry point: sell at "+entry_point+"!!", "Entry Point", MB_OK);
    }

    entry=false;
    }
    RefreshRates();

    //----
    return(0);
    }
    //+------------------------------------------------------------------+

  2. #2
    shirley.williams
    Guest

    Default

    A trader can combine indicators to an already-successfull trading system, to make it even more profitable and reduce its drawdown. Sometimes a single indicator can create an amazing positive change in the system’s performance. It is important that the indicator has strong logic and a reason to combine in the system. A range filter would be very helpful to a trend-following system, while another lagging indicator can be correlative and useless. Experiment with several indicator to find the winning combination.

Similar Threads

  1. no indicator, pure candles, good results manual sistem, please ea funyoo
    By cmcshm1 in forum Ideas for expert advisors
    Replies: 0
    Last Post: 03-18-2013, 14:29
  2. Problems with Backtesting
    By exec in forum Expert advisors backtesting
    Replies: 1
    Last Post: 02-22-2011, 14:11
  3. Problems with programming EAs
    By bbbtrader in forum Ideas for expert advisors
    Replies: 0
    Last Post: 11-23-2010, 20:52
  4. Problems with 'if' sentence
    By [+EagleEye+] in forum MQL programming
    Replies: 3
    Last Post: 08-13-2010, 20:51

Tags for this Thread

change, color, custom indicator, indicator, indicators, level, limit, main, mq4, profitable, programming, rsi, signals, simple, system, trader, trading, trading system, trend

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •