Hello ,I had given you BBsqueeze .afl  indicator long time ago...use that..i 
think it is same as per mt4 indicator..* i dont have that afl have a nice time. 
.

--- On Sun, 18/7/10, bharat <bharat_parth2...@yahoo.com> wrote:

From: bharat <bharat_parth2...@yahoo.com>
Subject: [amibroker] Re: pl. code this
To: amibroker@yahoogroups.com
Date: Sunday, 18 July, 2010, 5:41 PM















 
 



  


    
      
      
      Hi



Found full MT4 code for this.Pl. Code AFL  



===========================================================================================================

// This indicator is based on a strategy mentioned in John Carter's book, 
Mastering the Trade. The basic idea 

// behind the strategy is that markets tend to move from periods of low 
volatility to high volatility and

// visa versa. The strategy aims to capture moves from low to high volatility. 
For gauging this he uses two 

// common indicators - Bollinger Bands and Keltner Channels (ok, not so 
common!). He also uses the Momentum 

// indicator to provide a trade bias as soon as the Bollinger Bands come back 
outside the Keltner Channels.

// 

// The Squeeze_Break indicator combines this into a signal indicator and has 
the following components:

//     1. A positive green histogram means that the Bollinger Bands are outside 
the Keltner Channels

//     and the market is lightly to be trending or volatile. The stronger the 
histogram the stronger 

//     the directional price move.

//     2. A negative red histogram means that the Bollinger Bands are inside 
the Keltner Channels 

//     and the market is lightly to be consolidating. The stronger the red 
histogram the tighter

//     price action is becoming.

//     3. Incorporated into the indicator is a Momentum indicator. According to 
the strategy J. Carter

//     goes long when the Bollinger Bands break outside the Keltner Bands and 
the Momentum indicator 

//     is above the zero line. He goes short when the Momentum indicator is 
below the zero line on the 

//    break.

//     4. I've also added other indicator info in the top left hand corner to 
give a broader idea 

//     of current market conditions.

//     5. The indicator provides audio alerts when a potential breakout is 
occurring.  

// 

// This indicator tends to be better with the larger timeframes. Personally I 
don't trade on an alert 

// signal alone. It's just a handy tool for warning me of potential breakout 
trades. 

// 
===========================================================================================================

 

#property copyright "DesORegan"

#property link      "mailto: oregan_...@hotmail.com"

 

 

 

// ====================

// indicator properties

// ====================

#property indicator_separate_window

#property indicator_buffers 3

#property indicator_color1 ForestGreen

#property indicator_color2 Red

#property indicator_color3 Blue

 

 

// ===================

// User Inputs

// ===================

extern int       Boll_Period=20;

extern double    Boll_Dev=2.0;

extern int       Keltner_Period=20;

extern double    Keltner_Mul=1.5;

extern int       Momentum_Period=12;

extern int       Back_Bars=1000;

extern bool      Alert_On=true;

extern bool      On_Screen_Info=true;

 

 

// =========================

// Buffer Array Declarations

// =========================

double Pos_Diff[];   // Pos Histogram

double Neg_Diff[];   // Neg Histogram

double Momentum[];   // Momentum Indicator 

 

 

// ===========================

// Internal Array Declarations

// ===========================

double   Squeeze[];  // Used to track which "i" (index value) is above 

                     // and below zero line. 0 followed by 1 triggers alert 

                     

// =========================                        

// Internal Global Variables

// =========================

 

datetime    Last_Alert_Time = 0;  // Used to prevent continuous alerts on 
current bar                         

 

 

//+----------------------------------------------------------+

//| Custom indicator initialization function                         |

//+----------------------------------------------------------+

int init()

   {

   

   IndicatorDigits(4);  // indicator value precision

     

   

   //======================

   // Indicator Setup

   //======================

   SetIndexStyle(0,DRAW_HISTOGRAM,EMPTY,3);

   SetIndexBuffer(0,Pos_Diff);

   SetIndexStyle(1,DRAW_HISTOGRAM,EMPTY,3);

   SetIndexBuffer(1,Neg_Diff);

   SetIndexStyle(2,DRAW_LINE,STYLE_DOT);

   SetIndexBuffer(2,Momentum);   

 

 

   // ===================

   // Indicator Labels

   // ===================

   IndicatorShortName("Squeeze_Break 
(Boll:"+Boll_Period+","+DoubleToStr(Boll_Dev,1)+";Kelt:"+Keltner_Period+","+DoubleToStr(Keltner_Mul,1)+";Mom:"+Momentum_Period+")");
  

   

   

   // ====================

   // Array Initialization

   // ====================

   ArrayResize(Squeeze, Back_Bars); // Stores whether histogram is above/below 
zero line

   ArrayInitialize(Squeeze, 0);  // initialises array with 0's

                                

   

 

 

   return(0);

  }

  

  

  

  

//+----------------------------------------------------------+

//| Custom indicator deinitialization function                       |

//+----------------------------------------------------------+

int deinit()

   {

 

   ObjectsDeleteAll();   

   Comment("                                          ","\n",

            "                                          ","\n",

            "                                          ","\n",

            "                                          ","\n",

            "                                          ");

      

 

   return(0);

   }

  

  

  

  

//+----------------------------------------------------------+

//| Custom indicator iteration function                              |

//+----------------------------------------------------------+

int start()

   {  

   

   //=======================

   // Indicator Optimization

   //=======================

   int Counted_Bars = IndicatorCounted();

   if(Counted_Bars < 0) return;

   if(Counted_Bars > 0) Counted_Bars = Counted_Bars - Keltner_Period;

   int limit = Bars - Counted_Bars;

   

 

   //=======================

   // On-Screen Information

   //=======================  

   if (On_Screen_Info == true)

      { 

      double ATR =iATR(Symbol(),PERIOD_D1,14,0);

      double Todays_Range = iHigh(Symbol(),PERIOD_D1,0) - 
iLow(Symbol(),PERIOD_D1,0);

      double ADX = iADX(Symbol(),0,12,PRICE_CLOSE,MODE_MAIN,0);

      double RSI = iRSI(Symbol(),0,12,PRICE_CLOSE,0);  

      double MACD_Main = iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);

      double MACD_Signal = iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);

      double Sto_Main = iStochastic(Symbol(),0,10,3,3,MODE_SMA,1,MODE_MAIN,0);  
  

      double Sto_Signal = 
iStochastic(Symbol(),0,10,3,3,MODE_SMA,1,MODE_SIGNAL,0);

   

   

      Comment("----------------------------------------------------------",

              "\nDaily ATR(14): ",ATR," Todays Range: ",Todays_Range,

              "\nADX(12): ",NormalizeDouble(ADX,2)," RSI(12): 
",NormalizeDouble(RSI,2),

              "\nMACD(12,26,9): ",MACD_Main,", ",MACD_Signal,

              "\nStochastic(10,3,3): ",NormalizeDouble(Sto_Main,2),", 
",NormalizeDouble(Sto_Signal,2),

              "\n----------------------------------------------------------");

      }

   

 

            

          

   //======================

   // Main Indicator Loop

   //======================

   

   for(int i = limit; i >= 0; i--) //main indicator FOR loop

      {   

      

      // ======================

      // Indicator Calculations

      // ======================

      double MA_Hi = iMA(Symbol(),0,Keltner_Period,0,MODE_SMA,PRICE_HIGH,i);

      double MA_Lo = iMA(Symbol(),0,Keltner_Period,0,MODE_SMA,PRICE_LOW,i);

      double Kelt_Mid_Band = 
iMA(Symbol(),0,Keltner_Period,0,MODE_SMA,PRICE_TYPICAL,i);

      double Kelt_Upper_Band = Kelt_Mid_Band + ((MA_Hi - MA_Lo)*Keltner_Mul);

      double Kelt_Lower_Band = Kelt_Mid_Band - ((MA_Hi - MA_Lo)*Keltner_Mul);

      double Boll_Upper_Band = iBands(Symbol(),0, 
Boll_Period,Boll_Dev,0,PRICE_CLOSE, MODE_UPPER,i);

      double Boll_Lower_Band = iBands(Symbol(),0, 
Boll_Period,Boll_Dev,0,PRICE_CLOSE, MODE_LOWER,i);

 

      

      // ======================

      // Buffer Calculations

      // ======================

      

      Momentum[i] = (Close[i] - Close[i+Momentum_Period]);

   

      

      if (Boll_Upper_Band >= Kelt_Upper_Band || Boll_Lower_Band <= 
Kelt_Lower_Band)

         {

         Pos_Diff[i] = (MathAbs(Boll_Upper_Band - 
Kelt_Upper_Band)+MathAbs(Boll_Lower_Band - Kelt_Lower_Band));

         Squeeze[i] = 1;

         }

      else  

         {

         Pos_Diff[i] = 0;

         }   

         

     

      if (Boll_Upper_Band < Kelt_Upper_Band && Boll_Lower_Band > 
Kelt_Lower_Band)

         {

         Neg_Diff[i] = -(MathAbs(Boll_Upper_Band - 
Kelt_Upper_Band)+MathAbs(Boll_Lower_Band - Kelt_Lower_Band));

         Squeeze[i] = 0;

         }

      else  

         {

         Neg_Diff[i] = 0;

         }         

 

      

      // ======================

      // Trigger Check

      // ======================

      if (Squeeze[i] == 1 && Squeeze[i+1] == 0 && Momentum[i] > 0 && i == 0) // 
a cross above zero line and Mom > 0

         {         

         if (Last_Alert_Time != Time[0]) 

            {

            if (Alert_On == true) Alert("Alert: Possible Breakout - 
"+Symbol()+" - "+TimeToStr(TimeLocal()));

            Last_Alert_Time = Time[0];       

            ObjectCreate("Breakout"+Time[0],OBJ_ARROW,0,Time[0],Ask);

            ObjectSet("Breakout"+Time[0],OBJPROP_ARROWCODE,1);

            ObjectSet("Breakout"+Time[0],OBJPROP_COLOR,Blue);

            ObjectSet("Breakout"+Time[0],OBJPROP_WIDTH,2);        

            }

         }

         

         

      if (Squeeze[i] == 1 && Squeeze[i+1] == 0 && Momentum[i] < 0 && i == 0 )   
// a cross above zero line and Mom < 0

         {

         if (Last_Alert_Time != Time[0]) 

            {

            if (Alert_On == true) Alert("Alert: Possible Breakout - 
"+Symbol()+" - "+TimeToStr(TimeLocal())); 

            Last_Alert_Time = Time[0];          

            ObjectCreate("Breakout"+Time[0],OBJ_ARROW,0,Time[0],Bid);

            ObjectSet("Breakout"+Time[0],OBJPROP_ARROWCODE,1);

            ObjectSet("Breakout"+Time[0],OBJPROP_COLOR,Red);

            ObjectSet("Breakout"+Time[0],OBJPROP_WIDTH,2);               

            }

         }         

         

                 

            

      } // end of main indicator FOR loop

      

      

          

  

      

      

   return(0);

   }

   

   

   

//+----------------------------------------------------------



--- In amibroker@yahoogroups.com, "bharat" <bharat_parth2...@...> wrote:

>

> Hi

> 

> Pl. see 
> http://www.inditraders.com/metatrader/1762-mq4-indicators-metatrader.html

> This indicator is based on a strategy mentioned in John Carter's book, 
> Mastering the Trade. The basic idea 

> // behind the strategy is that markets tend to move from periods of low 
> volatility to high volatility and

> // visa versa. The strategy aims to capture moves from low to high 
> volatility. For gauging this he uses two 

> // common indicators - Bollinger Bands and Keltner Channels (ok, not so 
> common!). He also uses the Momentum 

> // indicator to provide a trade bias as soon as the Bollinger Bands come back 
> outside the Keltner Channels.

> // 

> // The Squeeze_Break indicator combines this into a signal indicator and has 
> the following components:

> // 1. A positive green histogram means that the Bollinger Bands are outside 
> the Keltner Channels

> // and the market is lightly to be trending or volatile. The stronger the 
> histogram the stronger 

> // the directional price move.

> // 2. A negative red histogram means that the Bollinger Bands are inside the 
> Keltner Channels 

> // and the market is lightly to be consolidating. The stronger the red 
> histogram the tighter

> // price action is becoming.

> // 3. Incorporated into the indicator is a Momentum indicator. According to 
> the strategy J. Carter

> // goes long when the Bollinger Bands break outside the Keltner Bands and the 
> Momentum indicator 

> // is above the zero line. He goes short when the Momentum indicator is below 
> the zero line on the 

> // break.

> // 4. I've also added other indicator info in the top left hand corner to 
> give a broader idea 

> // of current market conditions.

> // 5. The indicator provides audio alerts when a potential breakout is 
> occurring. 

> // 

> // This indicator tends to be better with the larger timeframes. Personally I 
> don't trade on an alert 

> // signal alone. It's just a handy tool for warning me of potential breakout 
> trades.

> 

> 

> make AFL for me.

> 

> thanx 

> 

> bharat

>





    
     

    
    


 



  










Reply via email to