#property indicator_chart_window #property indicator_color1 Blue #property indicator_color2 Red #property indicator_width1 1 #property indicator_width2 1 #property indicator_color3 Blue #property indicator_color4 Red #property indicator_width3 1 #property indicator_width4 1 #property indicator_buffers 4 double TrendUp[],TrendDown[]; double UpBuffer[]; double DnBuffer[]; int changeOfTrend; extern int Nbr_Periods=10; extern double Multiplier=4.0; //---- input parameters extern int sidFontSize=30; extern string sidFontName="Ariel"; extern string NoteRedGreenBlue="Red/Green/Blue each 0..255"; extern int sidRed=30; extern int sidGreen= 30; extern int sidBlue = 30; extern int sidXPos = 30; extern int sidYPos = 150; extern bool tagDisplayText=true; extern string tagText= extern int tagFontSize=15; extern string tagFontName="Ariel"; extern int tagRed=30; extern int tagGreen= 30; extern int tagBlue = 30; extern int tagXPos = 200; extern int tagYPos = 300; //---- data string SID = "Symbol"; int sidRGB = 0; string TAG = "Tag"; int tagRGB = 0; string tf; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexBuffer(0,TrendUp); SetIndexStyle(0,DRAW_LINE,1,1); SetIndexLabel(0,"Trend Up"); SetIndexBuffer(1,TrendDown); SetIndexStyle(1,DRAW_LINE,1,1); SetIndexLabel(1,"Trend Down"); SetIndexStyle(2,DRAW_ARROW,EMPTY); SetIndexStyle(3,DRAW_ARROW,EMPTY); SetIndexBuffer(2,UpBuffer); SetIndexBuffer(3,DnBuffer); SetIndexArrow(2,233); SetIndexArrow(3,234); SetIndexLabel(3,"Up Signal"); SetIndexLabel(4,"Down Signal"); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- ObjectDelete(SID); ObjectDelete(TAG); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { double ClosePrice=Close[0]; // watermark(TAG, tagText, tagFontSize, tagFontName, tagRGB, tagXPos, tagYPos); string str=StringConcatenate LTP : ",ClosePrice); watermarkclose(TAG,str,22,tagFontName,tagRGB,80,20); int i,flag,flagh,trend[]; double up[],dn[],medianPrice,atr; int counted_bars=IndicatorCounted(); if(counted_bars < 0) return(-1); if(counted_bars>0) counted_bars--; int limit=Bars-counted_bars; if(counted_bars==0) limit-=1+1; //Print(limit); int size=ArraySize(TrendUp); ArrayResize(trend,size); ArrayResize(up,size); ArrayResize(dn,size); //---- for(i=limit; i>=1; i--) { TrendUp[i]=EMPTY_VALUE; TrendDown[i]=EMPTY_VALUE; atr=iATR(NULL,0,Nbr_Periods,i); //Print("atr: "+atr[i]); medianPrice=(High[i]+Low[i])/2; //Print("medianPrice: "+medianPrice[i]); up[i]=medianPrice+(Multiplier*atr); //Print("up: "+up[i]); dn[i]=medianPrice-(Multiplier*atr); //Print("dn: "+dn[i]); trend[i]=1; if(Close[i]>up[i+1]) { trend[i]=1; if(trend[i+1]==-1) changeOfTrend=1; //Print("trend: "+trend[i]); } else if(Close[i]<dn[i+1]) { trend[i]=-1; if(trend[i+1]==1) changeOfTrend=1; //Print("trend: "+trend[i]); } else if(trend[i+1]==1) { trend[i]=1; changeOfTrend=0; } else if(trend[i+1]==-1) { trend[i]=-1; changeOfTrend=0; } if(trend[i]<0 && trend[i+1]>0) { flag=1; //Print("flag: "+flag); } else { flag=0; //Print("flagh: "+flag); } if(trend[i]>0 && trend[i+1]<0) { flagh=1; //Print("flagh: "+flagh); } else { flagh=0; //Print("flagh: "+flagh); } if(trend[i]>0 && dn[i]<dn[i+1]) dn[i]=dn[i+1]; if(trend[i]<0 && up[i]>up[i+1]) up[i]=up[i+1]; if(flag==1) up[i]=medianPrice+(Multiplier*atr); if(flagh==1) dn[i]=medianPrice-(Multiplier*atr); //-- Draw the indicator if(trend[i]==1) { TrendUp[i]=dn[i]; if(changeOfTrend==1) { TrendUp[i+1] = TrendDown[i+1]; changeOfTrend= 0; } } else if(trend[i]==-1) { TrendDown[i]=up[i]; if(changeOfTrend==1) { TrendDown[i+1]= TrendUp[i+1]; changeOfTrend = 0; } } if(trend[i]==1 && trend[i+1]==-1) { UpBuffer[i] = iLow(Symbol(),0,i)-(3*Point); DnBuffer[i] = EMPTY_VALUE; } if(trend[i]==-1 && trend[i+1]==1) { UpBuffer[i] = EMPTY_VALUE; DnBuffer[i] = iHigh(Symbol(),0,i)+(3*Point); } } WindowRedraw(); //---- return(0); } //+------------------------------------------------------------------+ void watermarkclose(string obj,string text,int fontSize,string fontName,color colour,int xPos,int yPos) { ObjectCreate(obj,OBJ_LABEL,0,0,0); ObjectSetText(obj,text,fontSize,fontName,Red); ObjectSet(obj,OBJPROP_CORNER,0); ObjectSet(obj,OBJPROP_XDISTANCE,xPos); ObjectSet(obj,OBJPROP_YDISTANCE,yPos); ObjectSet(obj,OBJPROP_BACK,true); } //+------------------------------------------------------------------+
clinttaylor91: What sort of things could cause this?
int size=ArraySize(TrendUp); ArrayResize(trend,size); ArrayResize(up,size); ArrayResize(dn,size); |
|
whroeder1:
|
Thank you for the reply.
Im just starting out with programming so I'm trying to take on board what you say, but i don't understand yet sorry,
Are you suggesting i delete the trendup? and then how do u make them no visible buffers?
Appreciate the help!
That version is repainting
Mladen Rakic:
That version is repainting
That version is repainting
Thank you for the reply. The download link from this website states its non repainting but i guess it does repaint which is unfortunate.
Thanks for the assistance guys.
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
aIm currently in the process of building an Ea,
Upon testing in mt4, the indicator I'm using which is a non repainting super trend doesn't refresh itself and i have to frequently manual mouse click refresh an after this
theres a signal for entry however my Ea doesn't pick this up and no trades are placed because the signal was to late. The indicator gives arrows for signal entries and my ea is built to enter once these arrow signals appear.
I have notice also with an updated version of this indicator by the same author, theres no need to refresh the indicator and the indicator will only print on the close of the bar previous so it doesn't reprint like a moving average or similar,
so this is another issue i would like to get info on how to fix.
So i would like to get the indicator to only print the result on the bar back from the current bar so false signals are not triggered.
The indicator does this without my Ea turned on so i believe theres something not quiet right with the code
I must warn this is not my code its the work of someone else and this EA is only for me not for selling etc so credit is due to the original owner. The reason I'm using this version over a newer one is that this code was
freely provided with the download but the new one is compiled and i need to figure out what the triggers are for the trend changes in order to make the EA buy/sell.
What sort of things could cause this?
Any help would be greatly appreciated guys!!
Thanks,