AFL which you have mentioned  is available here.Check and tweak.

--- In [email protected], cas soni <soni...@...> wrote:
>
> 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...@...> wrote:
> 
> From: bharat <bharat_parth2...@...>
> Subject: [amibroker] Re: pl. code this
> To: [email protected]
> 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_...@..."
> 
>  
> 
>  
> 
>  
> 
> // ====================
> 
> // 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 [email protected], "bharat" <bharat_parth2005@> 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