MT4 Scalping Indicators
Forums › ProRealTime English forum › ProBuilder support › MT4 Scalping Indicators
- This topic has 6 replies, 3 voices, and was last updated 6 years ago by bluetime6.
Viewing 7 posts - 1 through 7 (of 7 total)
-
-
06/28/2018 at 4:40 PM #7463006/29/2018 at 10:50 AM #74745
Hi, why not but I can’t do anything with compiled codes (.ex4). For any conversion request, please kindly respect the rules: Free Conversion of MT4 Indicators (MQL4)
09/12/2018 at 10:25 AM #80240i think he means this one
the indicator put the light blue und lilac arrows in the chart
but i dont no what the indicator does really…
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334//+------------------------------------------------------------------+//| TMA+CG.mq4 |//| mladen |//| arrowse coded acording to idea presented by rajiv |//+------------------------------------------------------------------+#property copyright "rajivxxx"#property link "rajivxxx@gmail.com / MqlLab.ru"#property indicator_chart_window#property indicator_buffers 5#property indicator_color1 DimGray#property indicator_color2 Red#property indicator_color3 LimeGreen#property indicator_color4 MediumTurquoise#property indicator_color5 Magenta#property indicator_style1 STYLE_DOT//////////extern string TimeFrame = "current time frame";extern int HalfLength = 56;extern int Price = PRICE_WEIGHTED;extern double BandsDeviations = 2.0;extern bool Interpolate = true;extern bool alertsOn = false;extern bool alertsOnCurrent = false;extern bool alertsOnHighLow = true;extern bool alertsMessage = true;extern bool alertsSound = false;extern bool alertsEmail = false;//////////double tmBuffer[];double upBuffer[];double dnBuffer[];double wuBuffer[];double wdBuffer[];double upArrow[];double dnArrow[];//////////string IndicatorFileName;bool calculatingTma = false;bool returningBars = false;int timeFrame;//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+////////int init(){timeFrame = stringToTimeFrame(TimeFrame);HalfLength = MathMax(HalfLength,1);IndicatorBuffers(7);SetIndexBuffer(0,tmBuffer); SetIndexDrawBegin(0,HalfLength);SetIndexBuffer(1,upBuffer); SetIndexDrawBegin(1,HalfLength);SetIndexBuffer(2,dnBuffer); SetIndexDrawBegin(2,HalfLength);SetIndexBuffer(3,dnArrow); SetIndexStyle(3,DRAW_ARROW); SetIndexArrow(3,233);SetIndexBuffer(4,upArrow); SetIndexStyle(4,DRAW_ARROW); SetIndexArrow(4,234);SetIndexBuffer(5,wuBuffer);SetIndexBuffer(6,wdBuffer);if (TimeFrame=="calculateTma") { calculatingTma=true; return(0); }if (TimeFrame=="returnBars") { returningBars=true; return(0); }IndicatorFileName = WindowExpertName();return(0);}int deinit() { return(0); }//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+//////////int start(){int counted_bars=IndicatorCounted();int i,limit;if(counted_bars<0) return(-1);if(counted_bars>0) counted_bars--;limit=MathMin(Bars-1,Bars-counted_bars+HalfLength);if (returningBars) { tmBuffer[0] = limit; return(0); }if (calculatingTma) { calculateTma(limit); return(0); }if (timeFrame > Period()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,IndicatorFileName,"returnBars",0,0)*timeFrame/Period()));//////////for(i = limit; i >= 0; i--){int shift1 = iBarShift(NULL,timeFrame,Time[i]);datetime time1 = iTime (NULL,timeFrame,shift1);//////////tmBuffer[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,Price,BandsDeviations,0,shift1);upBuffer[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,Price,BandsDeviations,1,shift1);dnBuffer[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,Price,BandsDeviations,2,shift1);upArrow[i] = EMPTY_VALUE;dnArrow[i] = EMPTY_VALUE;if(High[i]>upBuffer[i] && Close[i]>Open[i] && (Close[i+1]<=Open[i+1] || High[i+1]<upBuffer[i+1])) upArrow[i] = High[i]+iATR(NULL,0,20,i);if(Low[i]<dnBuffer[i] && Close[i]<Open[i] && (Close[i+1]>=Open[i+1] || Low[i+1]>dnBuffer[i+1])) dnArrow[i] = Low[i]-iATR(NULL,0,20,i);// if (High[i+1]>upBuffer[i+1] && Close[i+1]>Open[i+1] && Close[i]<Open[i]) upArrow[i] = High[i]+iATR(NULL,0,20,i);// if ( Low[i+1]<dnBuffer[i+1] && Close[i+1]<Open[i+1] && Close[i]>Open[i]) dnArrow[i] = Low[i]-iATR(NULL,0,20,i); // fix High - Lowif (timeFrame <= Period() || shift1==iBarShift(NULL,timeFrame,Time[i-1])) continue;if (!Interpolate) continue;//////////for(int n = 1; i+n < Bars && Time[i+n] >= time1; n++) continue;double factor = 1.0 / n;for(int k = 1; k < n; k++){tmBuffer[i+k] = k*factor*tmBuffer[i+n] + (1.0-k*factor)*tmBuffer[i];upBuffer[i+k] = k*factor*upBuffer[i+n] + (1.0-k*factor)*upBuffer[i];dnBuffer[i+k] = k*factor*dnBuffer[i+n] + (1.0-k*factor)*dnBuffer[i];}}//////////if (alertsOn){if (alertsOnCurrent)int forBar = 0;else forBar = 1;if (alertsOnHighLow){if (High[forBar] > upBuffer[forBar] && High[forBar+1] < upBuffer[forBar+1]) doAlert("high penetrated upper bar");if (Low[forBar] < dnBuffer[forBar] && Low[forBar+1] > dnBuffer[forBar+1]) doAlert("low penetrated lower bar");}else{if (Close[forBar] > upBuffer[forBar] && Close[forBar+1] < upBuffer[forBar+1]) doAlert("close penetrated upper bar");if (Close[forBar] < dnBuffer[forBar] && Close[forBar+1] > dnBuffer[forBar+1]) doAlert("close penetrated lower bar");}}return(0);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+//////////void calculateTma(int limit){int i,j,k;double FullLength = 2.0*HalfLength+1.0;//////////for (i=limit; i>=0; i--){double sum = (HalfLength+1)*iMA(NULL,0,1,0,MODE_SMA,Price,i);double sumw = (HalfLength+1);for(j=1, k=HalfLength; j<=HalfLength; j++, k--){sum += k*iMA(NULL,0,1,0,MODE_SMA,Price,i+j);sumw += k;if (j<=i){sum += k*iMA(NULL,0,1,0,MODE_SMA,Price,i-j);sumw += k;}}tmBuffer[i] = sum/sumw;//////////double diff = iMA(NULL,0,1,0,MODE_SMA,Price,i)-tmBuffer[i];if (i> (Bars-HalfLength-1)) continue;if (i==(Bars-HalfLength-1)){upBuffer[i] = tmBuffer[i];dnBuffer[i] = tmBuffer[i];if (diff>=0){wuBuffer[i] = MathPow(diff,2);wdBuffer[i] = 0;}else{wdBuffer[i] = MathPow(diff,2);wuBuffer[i] = 0;}continue;}//////////if(diff>=0){wuBuffer[i] = (wuBuffer[i+1]*(FullLength-1)+MathPow(diff,2))/FullLength;wdBuffer[i] = wdBuffer[i+1]*(FullLength-1)/FullLength;}else{wdBuffer[i] = (wdBuffer[i+1]*(FullLength-1)+MathPow(diff,2))/FullLength;wuBuffer[i] = wuBuffer[i+1]*(FullLength-1)/FullLength;}upBuffer[i] = tmBuffer[i] + BandsDeviations*MathSqrt(wuBuffer[i]);dnBuffer[i] = tmBuffer[i] - BandsDeviations*MathSqrt(wdBuffer[i]);}}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+//////////void doAlert(string doWhat){static string previousAlert="";static datetime previousTime;string message;//////////if (previousAlert!=doWhat || previousTime!=Time[0]){previousAlert = doWhat;previousTime = Time[0];message= StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," THA : ",doWhat);if (alertsMessage) Alert(message);if (alertsEmail) SendMail(StringConcatenate(Symbol(),"TMA "),message);if (alertsSound) PlaySound("alert2.wav");}}//////////int stringToTimeFrame(string tfs){for(int l = StringLen(tfs)-1; l >= 0; l--){int k = StringGetChar(tfs,l);if((k > 96 && k < 123) || (k > 223 && k < 256))tfs = StringSetChar(tfs, 1, l - 32);elseif(k > -33 && k < 0)tfs = StringSetChar(tfs, 1, l + 224);}int tf=0;if (tfs=="M1" || tfs=="1") tf=PERIOD_M1;if (tfs=="M5" || tfs=="5") tf=PERIOD_M5;if (tfs=="M15"|| tfs=="15") tf=PERIOD_M15;if (tfs=="M30"|| tfs=="30") tf=PERIOD_M30;if (tfs=="H1" || tfs=="60") tf=PERIOD_H1;if (tfs=="H4" || tfs=="240") tf=PERIOD_H4;if (tfs=="D1" || tfs=="1440") tf=PERIOD_D1;if (tfs=="W1" || tfs=="10080") tf=PERIOD_W1;if (tfs=="MN" || tfs=="43200") tf=PERIOD_MN1;if (tf==0 || tf<Period()) tf=Period();return(tf);}09/12/2018 at 11:06 AM #8024809/14/2018 at 2:36 PM #8050509/14/2018 at 2:54 PM #80510You’ll find TMA channel indicator here:
1 user thanked author for this post.
09/15/2018 at 7:36 AM #80546 -
AuthorPosts
Viewing 7 posts - 1 through 7 (of 7 total)
Find exclusive trading pro-tools on
Similar topics: