You did not give the  link.

Lionel

 

From: amibroker@yahoogroups.com [mailto:amibro...@yahoogroups.com] On Behalf
Of bharat
Sent: Sunday, July 18, 2010 9:06 PM
To: amibroker@yahoogroups.com
Subject: [amibroker] Re: pl. code this

 

  

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

--- In amibroker@yahoogroups.com <mailto:amibroker%40yahoogroups.com> , 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: amibroker@yahoogroups.com <mailto:amibroker%40yahoogroups.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_...@..."
> 
> 
> 
> 
> 
> 
> 
> // ====================
> 
> // 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 <mailto:amibroker%40yahoogroups.com> ,
"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
> 
> >
>



<<image001.jpg>>

<<image002.jpg>>

Reply via email to