#property indicator_chart_window #property indicator_buffers 22 extern string Print_Signal = "Choose whether to print signal symbol above/below or in the middle of the candle"; // Show Signal on the Candle extern bool PrintOnBar =false; extern bool Confirmation_Signals_Only = false; extern int Symbol_Width = 2;// extern string Distance = "Display Signal Symbol x pips above or below signal candle"; // Symbol Distance from Candle in Pips extern int Symbol_Distance = 0; extern string Banana1C_Settings = "Options for Banana Signals Based on 1 Candle Pullbacks "; extern bool Show1C = true; extern bool Show1C_Empty = true; extern int Sell_Banana1a_Arrow = 129; extern int Buy_Banana1a_Arrow = 129; extern int Sell_Banana1b_Arrow = 140; extern int Buy_Banana1b_Arrow = 140; extern bool Universal_Bull_Bear_Colours = true; extern color Bullish_Signal_Colour = clrDodgerBlue; extern color Bearish_Signal_Colour = clrDeepPink; extern color BU_Banana1a_Colour = clrDodgerBlue; extern color BE_Banana1a_Colour = clrDeepPink; extern color BU_Banana1b_Colour = clrDodgerBlue; extern color BE_Banana1b_Colour = clrDeepPink; extern string Seed_Settings = "Option to Show Seed Signals Based on 1 Candle or 2 Candle Pullbacks. "; extern bool Show1C_Seed = true; extern bool Show2C_Seed = true; extern bool Show3C_Seed = true; extern bool PrintSeedOnBar = true; //extern bool CheckImpulse_seed =false; extern int Sell_Seed_Arrow = 159; extern int Buy_Seed_Arrow = 159; extern color BU_Seed_Colour = clrDodgerBlue; extern color BE_Seed_Colour = clrDeepPink; extern string Banana2C_Settings = "Options for Banana Signals Based on 2 Candle Pullbacks "; extern bool Show2C = true; // Show 2C Solid Signal extern bool Show2C_Empty = true; // Show 2C Empty Signal //extern int Symbol_Distance = 5; // Symbol Distance from Candle in Pips extern int Sell_Banana2_Arrow = 141; // 2C Bear Banana extern int Buy_Banana2_Arrow = 141; // 2C Bull Banana extern color BU_Banana2_Colour = clrDodgerBlue; extern color BE_Banana2_Colour = clrDeepPink; extern int Sell_Banana2a_Arrow = 130; // 2C Bear Banana extern int Buy_Banana2a_Arrow = 130; // 2C Bull Banana extern color BU_Banana2a_Colour = clrDodgerBlue; extern color BE_Banana2a_Colour = clrDeepPink; extern string Banana3C_Settings = "Options for Banana Signals Based on 3 Candle Pullbacks "; extern bool Show3C = true; // Show 3CPB Banana //extern int Symbol_Distance = 5; // Symbol Distance from Candle in Pips extern int Sell_Banana3_Arrow = 142; // 3C Bear Banana extern int Buy_Banana3_Arrow = 142; // 3C Bull Banana extern color BU_Banana3_Colour = clrDodgerBlue; extern color BE_Banana3_Colour = clrDeepPink; extern string Banana4C_Settings = "Options for Banana Signals Based on 4 Candle Pullbacks "; //4 candle pullback banana extern bool Show4C = true; // Show 3CPB Banana //extern int Symbol_Distance = 5; // Symbol Distance from Candle in Pips extern int Sell_Banana4_Arrow = 143; // 4C Bear Banana extern int Buy_Banana4_Arrow = 143; // 4C Bull Banana extern color BU_Banana4_Colour = clrDodgerBlue; extern color BE_Banana4_Colour = clrDeepPink; extern string Banana5C_Settings = "Options for Banana Signals Based on 5 Candle Pullbacks "; //5 candle pullback banana extern bool Show5C = true; // Show 3CPB Banana extern int Sell_Banana5_Arrow = 144; // 4C Bear Banana extern int Buy_Banana5_Arrow = 144; // 4C Bull Banana //extern int Symbol_Distance = 5; // Symbol Distance from Candle in Pips extern color BU_Banana5_Colour = clrDodgerBlue; extern color BE_Banana5_Colour = clrDeepPink; extern string Universal_Symbol_Comment = "If you don't want to see numbers turn this to true and set symbol code in the next 2 fields"; extern bool Universal_Symbol = false; // Use one symbol instead of numbers extern int Buy_Universal_Arrow = 159 ; extern int Sell_Universal_Arrow = 159 ; extern string Strategy_Settings1 = "Aggressive Settings changes everything - Use with Hunt Gator Aggressive Setting [Advanced Mode] "; extern bool Aggressive =true; // Turn Agressive Mode On? extern string Strategy_Settings2 = " Turn Aggresive Mode on but then also Check Impulse, Check Close, Check H1 Trend for M5 or M15"; extern bool Passive_Aggressive = false; // extern string Check_Impulse = "Only show signlas with at least 3 candle Bullish or Bearish Impulse Move"; extern bool CheckImpulse = false;// Check for 3 Candle Impulse extern string Strategy_Settings3 = "Freestyle Settings means no filters based on moving averages. Just price. Use with Caution [Expert Mode] "; extern bool FreeStyle =false; // Turn Freestyle Mode On? extern string Strategy_Settings4 = "Check that signal candle is a confirmation candle, bullish for buy signal bearish for sell signal"; extern bool CheckClose =false;//Check if Close is above/below mid for signal bar. extern string Lobot_Settings1 = "Filter signals based on the Solid Line - Set to False by default"; //LOBOT EMA Filters extern bool Filter_EMA_Solid = false; // Filter EMA (Solid Line) //extern int EMA_Solid_Value = 20; // Solid Line Filter extern string Lobot_Settings2 = "Filter signals based on the Dashed Line - Set to True by default(do not change)"; //LOBOT EMA Filters extern bool Filter_EMA_Dashed = true; // Filter EMA Dashed //extern int EMA_Dashed_Value =10; // Dashed Line Filter extern string Description_Crossover = "Filter Signals based on Dashed and Solid Line Crossover - Note: When Aggressive mode on, this is set to true by default"; extern bool Filter_MA_Crossover = true; // EMA Crossover Check Banana extern string Always_Sync_with_h1_ = "Filter Signals on M1, M5 or M15 if against H1 Solid Line"; extern bool Always_Sync_with_h1 = false; // Filter Signals on M1, M5 or M15 if against H1 Solid Line extern string HTF_Trend_Filter2 = "The following are optional trend based filters, set to false by default"; extern bool Filter_EMA100 = false; // Filter 5xHTF Solid Line extern bool Filter_EMA50 = false ; // Fitler 5xHTF Dashed Line extern bool Filter_EMA25 = false; // Filter //to limit history bars //extern bool Limit_History = false; // Limit Signal History? //extern double Limit_History_Bars = 10;// Number of Bars History // END IMMY extern bool Chart_on_Foreground = false; //Chart on Foreground extern string Alerts_Settings = "Settings for Various types of Signal Alerts, Email, Push Notification, On Screen Sound, On Screen Popup"; extern bool Alert_Email = false; // Send Eemail Alert extern bool Alert_Push = false; // Send Push Notification extern bool Alert_Sound = false; // Play Sound File at Alert extern bool Alert_Pop = false; // Show Pop Up Alert int Alert_Sleep_Time=1; extern string SoundName = "wait.wav"; //Sound File Name double BU_Banana1a_Signal[], BE_Banana1a_Signal[], BU_Banana1b_Signal[], BE_Banana1b_Signal[], BU_Seed1c_Signal[], BE_Seed1c_Signal[], BU_Seed2c_Signal[], BE_Seed2c_Signal[], BU_Seed3c_Signal[], BE_Seed3c_Signal[], BU_Banana2a_Signal[], BE_Banana2a_Signal[], // 2a = Empty signal BU_Banana2_Signal[], BE_Banana2_Signal[], BU_Banana3_Signal[], BE_Banana3_Signal[], BU_Banana4_Signal[], BE_Banana4_Signal[], BU_Banana5_Signal[], BE_Banana5_Signal[]; //BU_Banana6_Signal[], BE_Banana6_Signal[]; // Banana Signal Symbol //double BU_TC_Signal [], BE_TC_Signal [];// Trend Candle Signal double pip, pip_distance; double LastLow, LastHigh; double EMA_Dashed, EMA_Solid,EMA5, EMA3,EMA10,EMA20, EMA100, EMA50, EMA25; //V5.0.1 int i; bool BE_Banana1a, BU_Banana1a, BE_Banana1b, BU_Banana1b, BE_Seed1c, BU_Seed1c, //8.1 BE_Seed2c, BU_Seed2c, //8.1 BE_Seed3c, BU_Seed3c, //8.2 BU_Banana2a, BE_Banana2a, // 2a = Empty Number BU_Banana2, BE_Banana2, BU_Banana3, BE_Banana3, BE_Banana4,BU_Banana4, BE_Banana5, BU_Banana5, BE_Banana6, BU_Banana6; // v5.9 removed GoodSize v.6.8 (2,3,4 candle separate symbols) string Timeframe,LastAlert; int Counter=0; int errcheck; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ void OnInit() { if(Digits == 3 || Digits == 5 || Digits ==1) pip = Point * 10; if(Digits ==2) pip = Point *100; if((Period()<=5 ) && Digits==2) pip_distance = Point *10; if((Period()>5) && Digits==2) pip_distance = Point *100; if(Digits == 3 || Digits == 5 || Digits ==1 ) pip_distance = Point * 1; else pip = Point; ChartSetInteger(0, CHART_FOREGROUND, Chart_on_Foreground); if (Period() == 1) {Timeframe = "1 Minute"; } if (Period() == 5) {Timeframe = "5 Minute"; } if (Period() == 15) {Timeframe = "15 Minute"; } if (Period() == 30) {Timeframe = "30 Minute"; } if (Period() == 60) {Timeframe = "1 Hour"; } if (Period() == 240) {Timeframe = "4 Hour"; } if (Period() == 1440) {Timeframe = "Daily"; } if (Period() == 10080) {Timeframe = "Weekly";} if (Period() == 43200) {Timeframe = "Monthly"; } //-----Number of candles retraced Based Symbols if (Universal_Bull_Bear_Colours) { (BU_Banana1b_Colour = Bullish_Signal_Colour); (BU_Banana2_Colour = Bullish_Signal_Colour); BU_Banana3_Colour = Bullish_Signal_Colour ; BU_Banana4_Colour = Bullish_Signal_Colour ; BU_Banana5_Colour = Bullish_Signal_Colour ; BE_Banana1b_Colour = Bearish_Signal_Colour ; BE_Banana2_Colour = Bearish_Signal_Colour ; BE_Banana3_Colour = Bearish_Signal_Colour ; BE_Banana4_Colour = Bearish_Signal_Colour ; BE_Banana5_Colour = Bearish_Signal_Colour ; } if (Universal_Symbol) { Buy_Banana1a_Arrow = Buy_Universal_Arrow ; Buy_Banana1b_Arrow = Buy_Universal_Arrow ; Buy_Banana2_Arrow = Buy_Universal_Arrow ; Buy_Banana3_Arrow = Buy_Universal_Arrow ; Buy_Banana4_Arrow = Buy_Universal_Arrow ; Buy_Banana5_Arrow = Buy_Universal_Arrow ; Sell_Banana1a_Arrow = Sell_Universal_Arrow ; Sell_Banana1b_Arrow = Sell_Universal_Arrow ; Sell_Banana2_Arrow = Sell_Universal_Arrow ; Sell_Banana3_Arrow = Sell_Universal_Arrow ; Sell_Banana4_Arrow = Sell_Universal_Arrow ; Sell_Banana5_Arrow = Sell_Universal_Arrow ; } //---- indicators // 2 Candle Banana - Solid SetIndexStyle(0,DRAW_ARROW,NULL,Symbol_Width,BU_Banana2_Colour); SetIndexBuffer(0, BU_Banana2_Signal); SetIndexArrow(0, Buy_Banana2_Arrow); SetIndexLabel(0, "ATM Index 0 - Bull 2C Signal"); SetIndexStyle(1,DRAW_ARROW,NULL,Symbol_Width,BE_Banana2_Colour); SetIndexBuffer(1, BE_Banana2_Signal); SetIndexArrow(1, Sell_Banana2_Arrow); SetIndexLabel(1, "ATM Index 1 - Bear 2C Signal"); // 2 Candle Banana - Empty SetIndexStyle(18,DRAW_ARROW,NULL,Symbol_Width,BU_Banana2a_Colour); SetIndexBuffer(18, BU_Banana2a_Signal); SetIndexArrow(18, Buy_Banana2a_Arrow); SetIndexLabel(18, "Bull 2C Empty Banana Signal - ATM Index Null"); SetIndexStyle(20,DRAW_ARROW,NULL,Symbol_Width,BE_Banana2a_Colour); SetIndexBuffer(20, BE_Banana2a_Signal); SetIndexArrow(20, Sell_Banana2a_Arrow); SetIndexLabel(20, "Bear 2C Empty Banana Signal- ATM Index Null"); // 3 Candle Banana SetIndexStyle(2,DRAW_ARROW,NULL,Symbol_Width,BU_Banana3_Colour); SetIndexBuffer(2, BU_Banana3_Signal); SetIndexArrow(2, Buy_Banana3_Arrow); SetIndexLabel(2, "ATM Index 0 - Bull 3C Banana Signal"); SetIndexStyle(3,DRAW_ARROW,NULL,Symbol_Width,BE_Banana3_Colour); SetIndexBuffer(3, BE_Banana3_Signal); SetIndexArrow(3, Sell_Banana3_Arrow); SetIndexLabel(3, "ATM Index 1 - Bear 3C Banana Signal"); // 4 Candle Banana SetIndexStyle(4,DRAW_ARROW,NULL,Symbol_Width,BU_Banana4_Colour); SetIndexBuffer(4, BU_Banana4_Signal); SetIndexArrow(4, Buy_Banana4_Arrow); SetIndexLabel(4, "ATM Index 0 - Bull 4C Banana Signal"); SetIndexStyle(5,DRAW_ARROW,NULL,Symbol_Width,BE_Banana4_Colour); SetIndexBuffer(5, BE_Banana4_Signal); SetIndexArrow(5, Sell_Banana4_Arrow); SetIndexLabel(5, "ATM Index 1 - Bear 4C Banana Signal "); // 5 Candle Banana SetIndexStyle(6,DRAW_ARROW,NULL,Symbol_Width,BU_Banana5_Colour); SetIndexBuffer(6, BU_Banana5_Signal); SetIndexArrow(6, Buy_Banana5_Arrow); SetIndexLabel(6, "ATM Index 0 - Bull 5C Banana Signal "); SetIndexStyle(7,DRAW_ARROW,NULL,Symbol_Width,BE_Banana5_Colour); SetIndexBuffer(7, BE_Banana5_Signal); SetIndexArrow(7, Sell_Banana5_Arrow); SetIndexLabel(7, "ATM Index 1 - Bear 5C Banana Signal"); // 1 Candle Banana Grey Signal only as a warning shot before 2 appears. SetIndexStyle(8,DRAW_ARROW,NULL,Symbol_Width,BU_Banana1a_Colour); SetIndexBuffer(8, BU_Banana1a_Signal); SetIndexArrow(8, Buy_Banana1a_Arrow); SetIndexLabel(8, "Bull 1C Banana Alert - ATM Index Null"); SetIndexStyle(9,DRAW_ARROW,NULL,Symbol_Width,BE_Banana1a_Colour); SetIndexBuffer(9, BE_Banana1a_Signal); SetIndexArrow(9, Sell_Banana1a_Arrow); SetIndexLabel(9, "Bear 1C Banana Alert - ATM Index Null"); // 1 Candle Banana - Colour Tradeable Signal with Extra Parameters SetIndexStyle(10,DRAW_ARROW,NULL,Symbol_Width,BU_Banana1b_Colour); SetIndexBuffer(10, BU_Banana1b_Signal); SetIndexArrow(10, Buy_Banana1b_Arrow); SetIndexLabel(10, "ATM Index 0 - Bull 1C Banana Signal "); SetIndexStyle(11,DRAW_ARROW,NULL,Symbol_Width,BE_Banana1b_Colour); SetIndexBuffer(11, BE_Banana1b_Signal); SetIndexArrow(11, Sell_Banana1b_Arrow); SetIndexLabel(11, "ATM Index 1 - Bear 1C Banana Signal "); //Seed Signals SetIndexStyle(12,DRAW_ARROW,NULL,Symbol_Width,BU_Seed_Colour); SetIndexBuffer(12, BU_Seed1c_Signal); SetIndexArrow(12, Buy_Seed_Arrow); SetIndexLabel(12, "Bull Seed 1c Alert - ATM Index Null"); SetIndexStyle(13,DRAW_ARROW,NULL,Symbol_Width,BE_Seed_Colour); SetIndexBuffer(13, BE_Seed1c_Signal); SetIndexArrow(13, Sell_Seed_Arrow); SetIndexLabel(13, "Bear Seed 1c Alert - ATM Index Null"); SetIndexStyle(14,DRAW_ARROW,NULL,Symbol_Width,BU_Seed_Colour); SetIndexBuffer(14, BU_Seed2c_Signal); SetIndexArrow(14, Buy_Seed_Arrow); SetIndexLabel(14, "Bull Seed2c Alert - ATM Index Null"); SetIndexStyle(15,DRAW_ARROW,NULL,Symbol_Width,BE_Seed_Colour); SetIndexBuffer(15, BE_Seed2c_Signal); SetIndexArrow(15, Sell_Seed_Arrow); SetIndexLabel(15, "Bear Seed2c Alert - ATM Index Null"); SetIndexStyle(16,DRAW_ARROW,NULL,Symbol_Width,BU_Seed_Colour); SetIndexBuffer(16, BU_Seed3c_Signal); SetIndexArrow(16, Buy_Seed_Arrow); SetIndexLabel(16, "Bull Seed3c Alert - ATM Index Null"); SetIndexStyle(17,DRAW_ARROW,NULL,Symbol_Width,BE_Seed_Colour); SetIndexBuffer(17, BE_Seed3c_Signal); SetIndexArrow(17, Sell_Seed_Arrow); SetIndexLabel(17, "Bear Seed3c Alert - ATM Index Null"); //---- // return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //---- // //////---- } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate (const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { if(errcheck==1) return(rates_total); int limit=rates_total-prev_calculated; int BarsOnChart=Bars(Symbol(),0); if(limit> BarsOnChart-10) limit=BarsOnChart-10; // if(Limit_History) // limit=Limit_History_Bars ; // for the panel 4.10 change 12/12/17 //---- for(i=limit; i>0; i--) { ResetBuffers(i); double H = High[i]; double H1 = High[i+1]; double H2 = High[i+2]; double H3 = High[i+3]; double H4 = High[i+4]; double H5 = High[i+5]; double H6 = High[i+6]; double H7 = High[i+7]; double H8 = High[i+8]; double L = Low[i]; double L1 = Low[i+1]; double L2 = Low[i+2]; double L3 = Low[i+3]; double L4 = Low[i+4]; double L5 = Low[i+5]; double L6 = Low[i+6]; double L7 = Low[i+7]; double L8 = Low[i+8]; double O = Open[i]; //if(O==L) O=L; //if(O==H) O=H; double O1 = Open[i+1]; double C = Close[i]; double C1 = Close[i+1]; double Mid = (H+L)/2; double Mid1 = (H1+L1)/2; double OneThird = (H-L)/3; double Quarter =(H-L)/4; double Quarter1 =(H1-L1)/4; double OneFifth = (H-L)/5; double OneTenth = (H-L)/10; double LowerQuarters = (L+Quarter); double LowerQuarters1 = (L1+Quarter1); double UpperQuarters = (H-Quarter); double UpperQuarters1 = (H1-Quarter1); double LowerFifths = (L+OneFifth); double UpperFifths = (H-OneFifth); double UpperTenths = (H-OneTenth); double LowerTenths = (L+OneTenth); // double LowerQuarters1 = (((Mid1)+L1)/2); // double UpperQuarters1 = (((Mid1)+H1)/2); double HighestForX1 = High[ArrayMaximum(High, 2,i )]; double LowestForX1 = Low[ArrayMinimum(Low, 2, i)]; double HighestForX2 = High[ArrayMaximum(High, 10, i)];// Highest for Bullish TC double LowestForX2 = Low[ArrayMinimum(Low, 10, i)];// Lowest for Bearish TC double HighestForX3 = High[ArrayMaximum(High, 11, i)];// Highest for Bullish TC double LowestForX3 = Low[ArrayMinimum(Low, 11, i)]; double HighestForX4 = High[ArrayMaximum(High, 12, i)];// Highest for Bullish TC double LowestForX4 = Low[ArrayMinimum(Low, 12, i)];// Lowest for Bearish TC double HighestForX5 = High[ArrayMaximum(High, 13, i)];// Highest for Bullish TC double LowestForX5 = Low[ArrayMinimum(Low, 13, i)];// Lowest for Bearish TC // double BuImpulse1C = (H2>H3 && H3>H4) ;// Bullish Impulse move means last three candles had series of higher highs and higher lows. // double BeImpulse1C = (L2=H2 && L>=EMA5) && (!CheckImpulse || (H2>=H3 && (H3>=H4 || Close[i+3]>Open[i+3]) && L>L4 )) ){ //&& L=L1 && L1<=L2 && H<=EMA5) && (!CheckImpulse || ( L2<=L3 && (L3<=L4 || (Close[i+3]=H1&& H>H1 && H1>H2 BE_Banana1a=true; }else{ BE_Banana1a=false; } // 1 Candle Bananna - Extra Measures with 1.5 candle pullback (e..g bullish setup: first candle has high but also a bearish candle) if( (Show1C)&& (H<=H1 && H1>=H2 && L<=L1 && L<=EMA5) && (!CheckClose || C>=Mid) && ((!CheckImpulse || (H2>=H3 && (H3>=H4 || Close[i+3]>Open[i+3]) && L>L4)) && (C1=Mid1)))) ) //&& L<=EMA5 && L=L1 && L1<=L2 && H>=H1 && H>=EMA5) && (!CheckClose || C<=Mid ) && ((!CheckImpulse || (L2<=L3 && (L3<=L4 || Close[i+3]O1 || (C1>=UpperQuarters1 && O1<=Mid1))) ) //&& H>H1 && H1>H2 && H>=EMA5 BE_Banana1b=true; else BE_Banana1b=false; //2 Candle Banana - Empty if( (H<=H1 && H1<=H2 && H2>=H3 && L>EMA5) && (!CheckClose || C>=Mid) && (!CheckImpulse || (H3>=H4 && (H4>=H5 || (Close[i+4]>Open[i+4])) && L>L5 )) && (Show2C_Empty) ) //&& L=HighestForX2 && L=L1 && L1>=L2 && L2<=L3 && HH1 && H1>H2 && L2<=LowestForX2 BE_Banana2a=true; else BE_Banana2a=false; //2 Candle Banana - Solid if( (H<=H1 && H1<=H2 && H2>=H3 && L=Mid) && (!CheckImpulse || (H3>=H4 && (H4>=H5 || (Close[i+4]>Open[i+4])) && L>L5 )) && (Show2C) ) //&& L=HighestForX2 && L=L1 && L1>=L2 && L2<=L3 && H>EMA5) && (!CheckClose || C<=Mid) && (!CheckImpulse || (L3<=L4 && (L4<=L5 || (Close[i+4]H1 && H1>H2 && L2<=LowestForX2 BE_Banana2=true; else BE_Banana2=false; //3 Candle Banana if( (H<=H1 && H1<=H2 && H2<=H3 && H3>=H4 ) && (!CheckClose || C>=Mid) && (!CheckImpulse || (H4>=H5 && (H5>=H6 || (Close[i+5]>Open[i+5])) && L>L6 ))&& (Show3C) ) //&& L=HighestForX3 BU_Banana3=true; else BU_Banana3=false; if( (Show3C)&& (L>=L1 && L1>=L2 && L2>=L3 && L3<=H4 ) && (!CheckClose || C<=Mid) && (!CheckImpulse || (L4<=L5 && (L5<=L6 || (Close[i+5]H1 && H1>H2 && H2>H3 && (!L3<=LowestForX3 BE_Banana3=true; else BE_Banana3=false; //4 Candle Banana if ( Show4C && (H<=H1 && H1<=H2 && H2<=H3 && H3<=H4 && H4>=H5) && (!CheckClose || C>=Mid) && (!CheckImpulse || (H5>=H6 && (H6>=H7 || (Close[i+6]>Open[i+6])) && L>L7 )) )//&& L=HighestForX4 BU_Banana4=true; else BU_Banana4=false; if( (Show4C) && (L>=L1 && L1>=L2 && L2>=L3 && L3>=L4 && L4<=L5) && (!CheckClose || C<=Mid) && (!CheckImpulse ||(L5<=L6 && (L6<=L7 || Close[i+6]H1 && H1>H2 && H2>H3 && L4<=LowestForX4 BE_Banana4=true; else BE_Banana4=false; //5 Candle Banana if ((Show5C)&& (H<=H1 && H1<=H2 && H2<=H3 && H3<=H4 && H4<=H5 && H5>=H6) && (!CheckClose || C>=Mid) && (!CheckImpulse ||(H6>=H7 && (H7>=H8 || (Close[i+7]>Open[i+7])) && L>H8 )) )//&& L=HighestForX5 BU_Banana5=true; else BU_Banana5=false; if((Show5C)&& (L>=L1 && L1>=L2 && L2>=L3 && L3>=L4 && L4>=L5 && L5<=L6) && (!CheckClose || C<=Mid) && (!CheckImpulse ||(L6<=L7 && (L7<=L8 || (Close[i+7H1 && H1>H2 && H2>H3 && L5<=LowestForX5 BE_Banana5=true; else BE_Banana5=false; //6 Candle Banana if ((H<=H1 && H1<=H2 && H2<=H3 && H3<=H4 && H4<=H5 && H5<=H6 && H6>=H7 ) )//&& L=HighestForX5 BU_Banana6=true; else BU_Banana6=false; if((L>=L1 && L1>=L2 && L2>=L3 && L3>=L4 && L4>=L5 && L5>=L6 && L6<=L7 ) ) //&& H>H1 && H1>H2 && H2>H3 && L5<=LowestForX5 BE_Banana6=true; else BE_Banana6=false; //+------------------------------------------------------------------+ //|SEEDS | //+------------------------------------------------------------------+ //---- 1c Bullish Seed if ((H<=H1 && L>=L1 && H1>H2) && (Show1C_Seed)) //to add the 1 cande seed // && H1>H2 && (!CheckImpulse_seed || (H2>=H3 && H3>=H4)) BU_Seed1c=true; else BU_Seed1c=false; // 1C Bearish Seed if ((L>=L1 && H<=H1) && L1=L1) && H1<=H2 && H2>H3 ) && (Show2C_Seed)) //to add the 2candel PB Seed BU_Seed2c=true; else BU_Seed2c=false; // 2C Bearish Seed if (((L>=L1&& H<=H1) && L1>=L2 && L2=L1) && H1<=H2 && H2<=H3 && H3>H4 ) && (Show3C_Seed)) //the 3 candle Seed BU_Seed3c=true; else BU_Seed3c=false; // 3c Bearish Seed if (((L>=L1&& H<=H1) && L1>=L2 && L2>=L3 && L30 && !BU_Banana1b && !BU_Banana2 && !BU_Banana3 && !BU_Banana4 && !BU_Banana5 ) // bullish Banana --- // && L<=LowestForX1 { if(!Immy_Bullish()) continue; if(PrintOnBar) BU_Banana1a_Signal[i]= Mid ; else { BU_Banana1a_Signal[i]= Low[i]-pip_distance*Symbol_Distance; LastLow=L; Alerts(i); } } else { if(BE_Banana1a >0 && !BE_Banana1b && !BE_Banana2 && !BE_Banana3 && !BE_Banana4 && !BE_Banana5 ) // bearish Banana //&& H>=HighestForX1 && !BE_Banana1b { if(!Immy_Bearish()) continue; if(PrintOnBar) BE_Banana1a_Signal[i]= Mid ; else { BE_Banana1a_Signal[i]= High[i]+pip_distance*Symbol_Distance; LastHigh=H; Alerts(i); } } } //Coloured if(BU_Banana1b >0 && !BU_Banana2 && !BU_Banana3 && !BU_Banana4 && !BU_Banana5 ) // bullish Banana --- // && L<=LowestForX1 { if(!Immy_Bullish()) continue; if(PrintOnBar) BU_Banana1b_Signal[i]= Mid; else { BU_Banana1b_Signal[i]= Low[i]-pip_distance*Symbol_Distance; LastLow=L; Alerts(i); } } else { if(BE_Banana1b >0 && !BE_Banana2 && !BE_Banana3 && !BE_Banana4 && !BE_Banana5 ) // bearish Banana //&& H>=HighestForX1 { if(!Immy_Bearish()) continue; if(PrintOnBar) BE_Banana1b_Signal[i]= Mid ; else { BE_Banana1b_Signal[i]= High[i]+pip_distance*Symbol_Distance; LastHigh=H; Alerts(i); } } } //+------------------------------------------------------------------+ //|2C Banana Signals - Empty | //+------------------------------------------------------------------+ if(BU_Banana2a >0 && !BU_Banana2 && !BU_Banana3 && !BU_Banana4 && !BU_Banana5 ) // bullish Banana --- // && L<=LowestForX1 { if(!Immy_Bullish()) continue; if(PrintOnBar) BU_Banana2a_Signal[i]= Mid ; else { BU_Banana2a_Signal[i]= Low[i]-pip_distance*Symbol_Distance; LastLow=L; Alerts(i); } } else { if(BE_Banana2a >0 && !BE_Banana2 && !BE_Banana3 && !BE_Banana4 && !BE_Banana5 ) // bearish Banana //&& H>=HighestForX1 { if(!Immy_Bearish()) continue; if(PrintOnBar) BE_Banana2a_Signal[i]= Mid ; else { BE_Banana2a_Signal[i]= High[i]+pip_distance*Symbol_Distance; LastHigh=H; Alerts(i); } } } //+------------------------------------------------------------------+ //|2C Banana Signals - Solid | //+------------------------------------------------------------------+ if(BU_Banana2 >0 && !BU_Banana3 && !BU_Banana4 && !BU_Banana5 ) // bullish Banana --- // && L<=LowestForX1 { if(!Immy_Bullish()) continue; if(PrintOnBar) BU_Banana2_Signal[i]= Mid ; else { BU_Banana2_Signal[i]= Low[i]-pip_distance*Symbol_Distance; LastLow=L; Alerts(i); } } else { if(BE_Banana2 >0 && !BE_Banana3 && !BE_Banana4 && !BE_Banana5 ) // bearish Banana //&& H>=HighestForX1 { if(!Immy_Bearish()) continue; if(PrintOnBar) BE_Banana2_Signal[i]= Mid ; else { BE_Banana2_Signal[i]= High[i]+pip_distance*Symbol_Distance; LastHigh=H; Alerts(i); } } } //+------------------------------------------------------------------+ //|3C Banana Signals | //+------------------------------------------------------------------+ if(BU_Banana3 >0 && !BU_Banana4 && !BU_Banana5 ) // bullish Banana ---- && L<=LowestForX ---- && L<=LowestForX1 { if(!Immy_Bullish()) continue; if(PrintOnBar) BU_Banana3_Signal[i]= Mid ; else { BU_Banana3_Signal[i]= Low[i]-pip_distance*Symbol_Distance; LastLow=L; Alerts(i); } } else { if(BE_Banana3 >0 && !BE_Banana4 && !BE_Banana5 ) // bearish Banana && H>=HighestForX1 { if(!Immy_Bearish()) continue; if(PrintOnBar) BE_Banana3_Signal[i]= Mid ; else { BE_Banana3_Signal[i]= High[i]+pip_distance*Symbol_Distance; LastHigh=H; Alerts(i); } } } //+------------------------------------------------------------------+ //|4C Banana Signals | //+------------------------------------------------------------------+ if(BU_Banana4 >0 && !BU_Banana5 ) // bullish Banana ---- && L<=LowestForX ---- && L<=LowestForX1 { if(!Immy_Bullish()) continue; if(PrintOnBar) BU_Banana4_Signal[i]= Mid ; else { BU_Banana4_Signal[i]= Low[i]-pip_distance*Symbol_Distance; LastLow=L; Alerts(i); } } else { if(BE_Banana4 >0 && !BE_Banana5 ) // 4C bearish Banana { if(!Immy_Bearish()) continue; if(PrintOnBar) BE_Banana4_Signal[i]= Mid ; else { BE_Banana4_Signal[i]= High[i]+pip_distance*Symbol_Distance; LastHigh=H; Alerts(i); } } } //+------------------------------------------------------------------+ //|5C Banana Signals | //+------------------------------------------------------------------+ if(BU_Banana5 >0 && !BU_Banana6 ) // bullish Banana ---- && L<=LowestForX ---- && L<=LowestForX1 { if(!Immy_Bullish()) continue; if(PrintOnBar) BU_Banana5_Signal[i]= Mid ; else { BU_Banana5_Signal[i]= Low[i]-pip_distance*Symbol_Distance; LastLow=L; Alerts(i); } } else { if(BE_Banana5 >0 && !BE_Banana6 ) // 4C bearish Banana { if(!Immy_Bearish()) continue; if(PrintOnBar) BE_Banana5_Signal[i]= Mid ; else { BE_Banana5_Signal[i]= High[i]+pip_distance*Symbol_Distance; LastHigh=H; Alerts(i); } } } //+------------------------------------------------------------------+ //|1C Seed Signals | //+------------------------------------------------------------------+ if(BU_Seed1c >0 ) // && !BU_Banana1a bullish 1c Seed && !BU_Banana2 && !BU_Banana3 && !BU_Banana4 && !BU_Banana5 { if(!Immy_Bullish()) continue; if(PrintSeedOnBar) BU_Seed1c_Signal[i]= Mid ; else { BU_Seed1c_Signal[i]= Low[i]-pip_distance*Symbol_Distance; LastLow=L; Alerts(i); } } else { if(BE_Seed1c >0 ) //&& !BE_Banana1a bearish Banana //&& H>=HighestForX1&& !BE_Banana3 && !BE_Banana4 && !BE_Banana5 { if(!Immy_Bearish()) continue; if(PrintSeedOnBar) BE_Seed1c_Signal[i]= Mid ; else { BE_Seed1c_Signal[i]= High[i]+pip_distance*Symbol_Distance; LastHigh=H; Alerts(i); } } } //+------------------------------------------------------------------+ //|2C Seed Signals | //+------------------------------------------------------------------+ if(BU_Seed2c >0 ) //&&!BU_Banana2 bullish 1c Seed && !BU_Banana2 && !BU_Banana3 && !BU_Banana4 && !BU_Banana5 { if(!Immy_Bullish()) continue; if(PrintSeedOnBar) BU_Seed2c_Signal[i]= Mid ; else { BU_Seed2c_Signal[i]= Low[i]-pip_distance*Symbol_Distance; LastLow=L; Alerts(i); } } else { if(BE_Seed2c >0 ) //&& !BE_Banana2 bearish Banana //&& H>=HighestForX1&& !BE_Banana3 && !BE_Banana4 && !BE_Banana5 { if(!Immy_Bearish()) continue; if(PrintSeedOnBar) BE_Seed2c_Signal[i]= Mid ; else { BE_Seed2c_Signal[i]= High[i]+pip_distance*Symbol_Distance; LastHigh=H; Alerts(i); } } } //+------------------------------------------------------------------+ //|3C Seed Signals | //+------------------------------------------------------------------+ if(BU_Seed3c >0 ) // { if(!Immy_Bullish()) continue; if(PrintSeedOnBar) BU_Seed3c_Signal[i]= Mid ; else { BU_Seed3c_Signal[i]= Low[i]-pip_distance*Symbol_Distance; LastLow=L; Alerts(i); } } else { if(BE_Seed3c >0 ) // { if(!Immy_Bearish()) continue; if(PrintSeedOnBar) BE_Seed3c_Signal[i]= Mid ; else { BE_Seed3c_Signal[i]= High[i]+pip_distance*Symbol_Distance; LastHigh=H; Alerts(i); } } } //end of signals } return(rates_total); } //+------------------------------------------------------------------+ //|Immy Bool | //+------------------------------------------------------------------+ bool Immy_Bearish() { if( (!Filter_EMA_Dashed || (Low[i]EMA_Dashed && (Close[i]>EMA_Solid ||Low[i]>EMA_Solid )) ) && // v5.0.1 6.7 (!Filter_EMA_Solid || High[i]>=EMA_Solid || Close[i]>=EMA_Solid ) && //v5.0.1 (!Filter_MA_Crossover || ((EMA_Dashed > EMA_Solid))) && //V5.4 Filter MA Crossover 10 must be above 20 for Bullish vv // V5.7 removed this code (High[i] > EMA_Dashed) && (!Filter_EMA100 || ((Close[i] > EMA100)&& (EMA50 > EMA100)) ) &&// V7.4 (!Filter_EMA50 || (( Close[i] > EMA50 )&& (EMA10 > EMA50)) )&& (!Filter_EMA25 || (( Close[i] > EMA25 )&& (EMA10 > EMA25))) ) return (true); else return (false); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void ResetBuffers(int shift) { BU_Banana1a_Signal[shift] = EMPTY_VALUE; BE_Banana1a_Signal[shift] = EMPTY_VALUE; BU_Banana1b_Signal[shift] = EMPTY_VALUE; BE_Banana1b_Signal[shift] = EMPTY_VALUE; BU_Banana2_Signal[shift] = EMPTY_VALUE; BE_Banana2_Signal[shift] = EMPTY_VALUE; BU_Banana2a_Signal[shift] = EMPTY_VALUE; BE_Banana2a_Signal[shift] = EMPTY_VALUE; BU_Banana3_Signal[shift] = EMPTY_VALUE; BE_Banana3_Signal[shift] = EMPTY_VALUE; BU_Banana4_Signal[shift] = EMPTY_VALUE; BE_Banana4_Signal[shift] = EMPTY_VALUE; BU_Banana5_Signal[shift] = EMPTY_VALUE; BE_Banana5_Signal[shift] = EMPTY_VALUE; //Seed BU_Seed1c_Signal[shift] = EMPTY_VALUE; BE_Seed1c_Signal[shift] = EMPTY_VALUE; BU_Seed2c_Signal[shift] = EMPTY_VALUE; BE_Seed2c_Signal[shift] = EMPTY_VALUE; BU_Seed3c_Signal[shift] = EMPTY_VALUE; BE_Seed3c_Signal[shift] = EMPTY_VALUE; return; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void Alerts(int BarShift) { if(BarShift>2) return; // 1 candle banana string T_Text0=" 1 Candle Banana Signal"; if(BU_Banana1a_Signal[BarShift]!=EMPTY_VALUE) T_Text0=" 1 Candle Bullish Banana"; if(BE_Banana1a_Signal[BarShift]!=EMPTY_VALUE) T_Text0=" 1 Candle Bearish Banana"; // 2 candle banana string T_Text1=" 2 Candle Banana Signal"; if(BU_Banana2_Signal[BarShift]!=EMPTY_VALUE) T_Text1=" 2 Candle Bullish Banana"; if(BE_Banana2_Signal[BarShift]!=EMPTY_VALUE) T_Text1=" 2 Candle Bearish Banana"; // 3candle banana string T_Text3=" 3 Candle Banana Signal"; if(BU_Banana3_Signal[BarShift]!=EMPTY_VALUE) T_Text3=" 3 Candle Bullish Banana"; if(BE_Banana3_Signal[BarShift]!=EMPTY_VALUE) T_Text3=" 3 Candle Bearish Banana"; // 4candle banana string T_Text4=" 4 Candle Banana Signal"; if(BU_Banana4_Signal[BarShift]!=EMPTY_VALUE) T_Text4=" 4 Candle Bullish Banana"; if(BE_Banana4_Signal[BarShift]!=EMPTY_VALUE) T_Text4=" 4 Candle Bearish Banana"; // 5 candle banana string T_Text5=" 5 Candle Banana Signal"; if(BU_Banana5_Signal[BarShift]!=EMPTY_VALUE) T_Text5=" 5 Candle Bullish Banana"; if(BE_Banana5_Signal[BarShift]!=EMPTY_VALUE) T_Text4=" 5 Candle Bearish Banana"; }