Jump to content

CycleIdentifier2 Indicator


sam_konna

Recommended Posts

Butterfly Indicator

 

How about Butterfly Indicators, it is REPAINT or NOT ?

 

I Mixed too with Bollinger Bands Periode 21 Deviation 2 & CycleIdnetifier2;Seems can be nice Trading System at GBP/USD & USD/CHF m30 (if all both Indicators not REPAINT !)

 

Here's look up the screenshoot :

 

http://img82.imageshack.us/img82/5817/bfly.gif

 

 

DOWNLOAD LINK :

 

http://www.forexsharing.com/229899

 

Please give a comment & let me know, are all of this indicators repaint ?

 

 

Many Thanks;

 

 

:-bd

Link to comment
Share on other sites

Example of Repaint Indicator

 

http://img93.imageshack.us/img93/6703/joechalhoubfxforecaster.gif

 

 

RULES :

 

JoeChalhoub_FXForecaster predicts the future movement of prices

 

 

I trade this indicator as follows:

 

For Sell:

 

I measure the lower band (violet) and compare it to the higher band (violet). if lower volume is bigger I am in sell so I wait till a peak is formed and I sell.

 

For Buy:

 

I measure the higher band (violet) and compare it to the lower band (violet). if higher volume is bigger I am in Buy so I wait till a Trough is formed and I Buy.

 

 

 

The way I see it :

 

1. I would trade only when the pink bar is visible.

 

2. The best time to get in would be when the pink bar shows up (or down) for the very first time. A good exit point would be when the Pink bar hides behind the black bar (again as soon as this happens, I would exit)

 

3. The Black bar more or less shows the trend - if it is above the zero line, the trend is up and vice versa.

 

4. If the Black bar points up, and if the Pink Bar has just shown UP for the first time, it would be a great time to enter a long trade. And as soon as this Pink Bar goes behind the black bar (hides), I would exit the trade. Same logic would apply on the opposite side for a short trade.

 

 

DOWNLOAD LINK :

 

http://www.forexsharing.com/60739

Link to comment
Share on other sites

Re: CycleIdentifier2 Indicator

 

Oh Sam_konna that indicators will make you crazy.... they repaint and move all over the place...

 

Very good reversal and not repainting indicator you have here

 

http://www.indo-investasi.com/viewtopic.php?f=40&t=4477&hilit=TFX

 

And if you need Trading simulator go to

 

http://www.4shared.com/dir/17716478/cae6de7c/sharing.html

 

:-bd

 

Barbara

Link to comment
Share on other sites

Re: CycleIdentifier2 Indicator

 

Barbara; Did you mean both of them ?

 

Anyway, thanks for your refrences (CST4X); I'll be check it out :-bd

 

Yes both of them and you welcome Sam :D

 

Barbara

 

p.s. butterfly is like ZIGZAG so he is moving more then repainting... but is bad anyway :P

Link to comment
Share on other sites

Re: CycleIdentifier2 Indicator

 

Thanks a lot for the info, anyway how about the Cycleiddentifier2 ?

 

I already Download & put the TFX Reversal Bar at H1, can you give me an idea, which pair suit the best for this indicator ?

 

 

Cycleidentifier2 is moving and repainting so bad bad bad... well I don't use trend bar, only reversal and oscillator on H4 chart (is better then H1), I have it now on GBPUSD and looks very nice... I enter on revesal dot signal and take as much as I can :D BUT you need to look overall situation for how much you think you can get ... so look the news and some other good indis if you have... Good Luck Sam

 

Barbara

 

p.s. you have a picture... it's bad X_X but you can see GBPUSD :D

Link to comment
Share on other sites

  • 1 month later...
  • 5 weeks later...

Re: CycleIdentifier2 Indicator

 

no need for broken links....here you go

 

 

//+------------------------------------------------------------------+
//|                                              CycleIdentifier2.mq4 |
//  |  
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""

#property indicator_separate_window
#property indicator_buffers 6
#property indicator_color1 DarkGray

#property indicator_color2 Lime
#property indicator_color3 Red
#property indicator_color4 DarkGreen
#property indicator_color5 Brown

#property indicator_minimum -1.2
#property indicator_maximum 1.2

extern int       PriceActionFilter=1;
extern int       Length=3;
extern int       MajorCycleStrength=4;
extern bool      UseCycleFilter=false;
extern int       UseFilterSMAorRSI=1;
extern int       FilterStrengthSMA=12;
extern int       FilterStrengthRSI=21;

double LineBuffer[];
double MajorCycleBuy[];
double MajorCycleSell[];
double MinorCycleBuy[];
double MinorCycleSell[];
double ZL1[];

double CyclePrice = 0.0, Strength =0.0, SweepA = 0.0, SweepB = 0.0;
int Switch = 0, Switch2 = 0,	SwitchA = 0, SwitchB = 0, SwitchC = 0, SwitchD = 0, SwitchE = 0, SwitchAA = 0, SwitchBB = 0;
double Price1BuyA = 0.0, Price2BuyA = 0.0;
int Price1BuyB = 1.0, Price2BuyB = 1.0;
double Price1SellA = 0.0, Price2SellA = 0.0;
int Price1SellB = 0.0, Price2SellB = 0.0;
bool ActiveSwitch = True, BuySwitchA = FALSE, BuySwitchB = FALSE, SellSwitchA = FALSE, SellSwitchB = FALSE;
int BuySellFac = 01;
bool Condition1, Condition2, Condition3, Condition6;

int init()  {
  SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
  SetIndexBuffer(0,LineBuffer);
  
  SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,3);
  SetIndexBuffer(1,MajorCycleBuy);
  
  SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID,3);
  SetIndexBuffer(2,MajorCycleSell);
  
  SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID,1);
  SetIndexBuffer(3,MinorCycleBuy);
  
  SetIndexStyle(4,DRAW_HISTOGRAM,STYLE_SOLID,1);
  SetIndexBuffer(4,MinorCycleSell);
  
  SetIndexStyle(5,DRAW_NONE);
  SetIndexBuffer(5,ZL1);
  
  SetIndexEmptyValue(1,0.0);
  SetIndexEmptyValue(2,0.0);
  SetIndexEmptyValue(3,0.0);
  SetIndexEmptyValue(4,0.0);
  SetIndexEmptyValue(5,0.0);  
  return(0);
}

int deinit() {return(0);}

int start() {
  int counted_bars=IndicatorCounted();
  if(counted_bars<0) return(-1);
 // if(counted_bars>0) counted_bars--;
 // int position=Bars-1;
  int position=Bars-counted_bars;
  if (position<0) position=0;

  int rnglength = 250;
  double range = 0.0, srange = 0.0;
  for (int pos = position; pos >=0; pos--)
  {
     srange = 0.0;
     int j = 0;
     for (int i=0;i<rnglength;i++)
     {
        j++;
        int posr = pos + i;
        if (posr >= Bars)
           break;
           
        srange = srange + (High[posr] - Low[posr]);
     }
     range = srange / j * Length;
     int BarNumber = Bars-pos; //??????????
     if (BarNumber < 0)
           BarNumber = 0;

     CyclePrice = iMA(NULL, 0, PriceActionFilter, 0, MODE_SMMA, PRICE_CLOSE, pos);
     
     if (UseFilterSMAorRSI == 1)
           ZL1[pos] = ZeroLag(CyclePrice,FilterStrengthSMA, pos);
     if (UseFilterSMAorRSI == 2)
           ZL1[pos] = ZeroLag( iRSI(NULL, 0, 14, CyclePrice, FilterStrengthRSI ), FilterStrengthRSI, pos);

     if (ZL1[pos] > ZL1[pos+1]) 
         SwitchC = 1;
     if (ZL1[pos] < ZL1[pos+1]) 
         SwitchC = 2;
         
     if (BarNumber <= 1)
     {
        if (Strength == 0)
    		  SweepA  = range;
    		else
    		  SweepA = Strength;
        Price1BuyA  = CyclePrice;
        Price1SellA  = CyclePrice;
     }
     
     /* ***************************************************************** */
     
     if (BarNumber > 1)
     {
        if (Switch > -1)
        {
           if (CyclePrice < Price1BuyA)
           {
              
                 if (UseCycleFilter && (SwitchC == 2) && BuySwitchA )
                 {
		           MinorCycleBuy[pos + BarNumber - Price1BuyB] = 0; //MinorBuySell
		           LineBuffer[pos + BarNumber - Price1BuyB ] = 0; //line
	            }
	      
	            if (!UseCycleFilter && BuySwitchA)
	            {
		           MinorCycleBuy[pos +BarNumber - Price1BuyB] = 0;
		           LineBuffer[pos +BarNumber - Price1BuyB] = 0;
	            }
	            Price1BuyA = CyclePrice;
                 Price1BuyB = BarNumber;
                 BuySwitchA = TRUE;
           }
           else if (CyclePrice > Price1BuyA)
           {
 
  			      SwitchA = BarNumber - Price1BuyB;
        
	            if (!UseCycleFilter)
	            {
		           MinorCycleBuy[pos +SwitchA] = -1;//MinorBuySell - DarkGreen
		           LineBuffer[pos +SwitchA] = -1;//line
	            }
	      
	            if (UseCycleFilter && SwitchC  == 1)
	            {
		           MinorCycleBuy[pos +SwitchA] = -1;  //MinorBuySell
		           LineBuffer[pos +SwitchA] = -1; //line
		           SwitchD = 1; 
	            }
	            else
	            {
		           SwitchD = 0;
		         }
		   
                 BuySwitchA = TRUE;
	
	            double cyclePrice1 = iMA(NULL, 0, PriceActionFilter, 0, MODE_SMMA, PRICE_CLOSE, pos + SwitchA);
                 if (ActiveSwitch)
                 {  
                       Condition1 = CyclePrice - cyclePrice1 >= SweepA; 
                 }
                 else
                 {
                       Condition1 = CyclePrice >= cyclePrice1 * (1 + SweepA / 1000);
                 }
                 if (Condition1 && SwitchA >= BuySellFac) 
                 {
                       Switch =  - 1;
                       Price1SellA = CyclePrice;
                       Price1SellB = BarNumber;
                       SellSwitchA = FALSE;
                       BuySwitchA = FALSE;
                 }            
           }
        }
        if(Switch < 1)
        {
           if (CyclePrice > Price1SellA)
           {
              if (UseCycleFilter && SwitchC == 1 && SellSwitchA )
              {
			     MinorCycleSell[pos +BarNumber - Price1SellB] = 0; //MinorBuySell
			     LineBuffer[pos +BarNumber - Price1SellB ] = 0; //line
		      }
		      if (!UseCycleFilter && SellSwitchA )
		      {
                  MinorCycleSell[pos +BarNumber - Price1SellB] = 0;//MinorBuySell
                  LineBuffer[pos +BarNumber - Price1SellB] = 0;//line
              }
              Price1SellA = CyclePrice;
              Price1SellB = BarNumber;
              SellSwitchA = TRUE;   
	       }
	       else if (CyclePrice < Price1SellA)
	       {
		      SwitchA = BarNumber - Price1SellB;
              if (!UseCycleFilter)
              {
                 MinorCycleSell[pos +SwitchA] = 1; // MinorBuySell darkRed
                 LineBuffer[pos +SwitchA] = 1; //"CycleLine"
		      }
     			if (UseCycleFilter && (SwitchC == 2))
     			{
			     MinorCycleSell[pos +SwitchA] = 1;//MinorBuySell darkRed
			     LineBuffer[pos +SwitchA] = 1;//CycleLine
			     SwitchD  = 2;
		      } 
		      else
		         SwitchD  = 0;

              SellSwitchA = TRUE;
		      double cyclePrice2 = iMA(NULL, 0, PriceActionFilter, 0, MODE_SMMA, PRICE_CLOSE, pos + SwitchA);
              
		      if (ActiveSwitch)
			     Condition1 = (cyclePrice2 - CyclePrice) >= SweepA;
		      else 
			     Condition1 = CyclePrice <= (cyclePrice2 * (1 - SweepA / 1000));

		      if (Condition1 && SwitchA >= BuySellFac)
		      {
			      Switch = 1;
                 Price1BuyA = CyclePrice;
                 Price1BuyB = BarNumber;
                 SellSwitchA = FALSE;
                 BuySwitchA = FALSE;
              }
           } 
        }
     }
     
     LineBuffer[pos] = 0;
     MinorCycleBuy[pos] = 0;
     MinorCycleSell[pos] = 0;

     if (BarNumber == 1)
     {
        if (Strength == 0)
           SweepB  = range *  MajorCycleStrength;
        else
           SweepB = Strength * MajorCycleStrength;
           
        Price2BuyA = CyclePrice;
        Price2SellA = CyclePrice;
     }     
           
     if (BarNumber > 1)
     {
        if (Switch2  >  - 1)
        {
           if (CyclePrice < Price2BuyA)
           {
              if (UseCycleFilter && SwitchC == 2 && BuySwitchB )
			   {
			      MajorCycleBuy [pos +BarNumber - Price2BuyB] = 0; //MajorBuySell,green
	//		      LineBuffer[pos + BarNumber - Price2BuyB ] = 0; //line -----
              }
              if (!UseCycleFilter && BuySwitchB )
              {
                 MajorCycleBuy [pos +BarNumber - Price2BuyB] = 0;//MajorBuySell,green
 	//			      LineBuffer[pos + BarNumber - Price2BuyB ] = 0; //line-----------
              }
		      Price2BuyA = CyclePrice;
              Price2BuyB = BarNumber;
              BuySwitchB = TRUE;
           } 
           else if (CyclePrice > Price2BuyA)
           {
		      SwitchB = BarNumber - Price2BuyB;

              if (!UseCycleFilter)
              {  
                    MajorCycleBuy [pos +SwitchB] = -1; //MajorBuySell green
     //               LineBuffer[pos + SwitchB] = -1; //line--------------
              }
              if (UseCycleFilter && SwitchC  == 1)
              {
                 MajorCycleBuy [pos +SwitchB] = -1; //MajorBuySell green
    //             LineBuffer[pos + SwitchB] = -1; //line-----------------
                 SwitchE  = 1;
              } 
              else
			     SwitchE  = 0;

              BuySwitchB = TRUE;
		      double cyclePrice3 = iMA(NULL, 0, PriceActionFilter, 0, MODE_SMMA, PRICE_CLOSE, pos + SwitchB);
              if (ActiveSwitch) 
                 Condition6 = CyclePrice - cyclePrice3 >= SweepB;
              else
                 Condition6 = CyclePrice >= cyclePrice3 * (1 + SweepB / 1000);

		      if (Condition6 && SwitchB >= BuySellFac)
		      {
                    Switch2 =  - 1;
                    Price2SellA = CyclePrice;
                    Price2SellB = BarNumber;
                    SellSwitchB = FALSE;
                    BuySwitchB = FALSE;
              }
           }
        }

        if (Switch2  < 1)
        {
           if (CyclePrice  > Price2SellA )
           {
		      if (UseCycleFilter && SwitchC  == 1 && SellSwitchB )
			   { 
			         MajorCycleSell [pos +BarNumber - Price2SellB] = 0; //"MajorBuySell",red 
	//			      LineBuffer[pos + BarNumber - Price2SellB ] = 0; //line -----
		     }
		      if (!UseCycleFilter && SellSwitchB )
			   {
			       MajorCycleSell [pos +BarNumber - Price2SellB] = 0;//"MajorBuySell",red 
    //              LineBuffer[pos + BarNumber - Price2SellB ] = 0; //line -----
              }
		      Price2SellA = CyclePrice;
              Price2SellB = BarNumber;
              SellSwitchB = TRUE;
	       }
	       else if (CyclePrice < Price2SellA)
	       {
              SwitchB = BarNumber - Price2SellB ;

     			if (!UseCycleFilter) 
     			{
     			   MajorCycleSell[pos + SwitchB] = 1; //"MajorBuySell",red 
    // 		      LineBuffer[pos + SwitchB ] = 1; //line -----
		      }
	         if (UseCycleFilter && SwitchC  == 2)
	         {
     				MajorCycleSell [pos + SwitchB] = 1; //"MajorBuySell",red 
     //		      LineBuffer[pos + SwitchB ] = 1; //line -----
	       		SwitchE  = 2;
		      }
		      else
			     SwitchE  = 0;

              SellSwitchB = TRUE;
            double cyclePrice4 = iMA(NULL, 0, PriceActionFilter, 0, MODE_SMMA, PRICE_CLOSE, pos + SwitchB);
		      if (ActiveSwitch)
                 Condition6 = cyclePrice4 - CyclePrice >= SweepB;
		      else
                 Condition6 = CyclePrice <= cyclePrice4 * (1.0 - SweepB / 1000.0);

		      if (Condition6 && SwitchB >= BuySellFac)
		      {
			        Switch2 = 1;
                    Price2BuyA = CyclePrice;
                    Price2BuyB = BarNumber;
                    SellSwitchB = FALSE;
                    BuySwitchB = FALSE;
              }
           }
        }
     }
     LineBuffer[pos] = 0;
     MajorCycleSell[pos] = 0;
     MajorCycleBuy[pos] = 0;
  }
  return(0);
}

double ZeroLag(double price, int length, int pos)
{   
  if (length < 3)
  {
     return(price);
  }
  double aa = MathExp(-1.414*3.14159 / length);
  double bb = 2*aa*MathCos(1.414*180 / length);
  double CB = bb;
  double CC = -aa*aa;
  double CA = 1 - CB - CC;
  double CD = CA*price + CB*ZL1[pos+1] + CC*ZL1[pos+2];
  return(CD);
}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...