Price Data Components
Indicators Used
2
Views
0
Downloads
0
Favorites
Ultra
//+------------------------------------------------------------------+
//| Ultra |
//| Copyright 2012, CompanyName |
//| http://www.companyname.net |
//+------------------------------------------------------------------+
/*
Ultra by rkdius [Jan 2017]
*/
#property version "1.60"
#property strict
#property indicator_chart_window
//--- input parameters
enum mode
{
Standard,
Fibonacci,
Prime
};
extern mode Pmode=Fibonacci; // Mode
extern int N_Bars=48; // Period (No of M5 Bars)
extern int RSI=10; // RSI Period
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
enum ScaleMode
{
smFix,// Fixed
smATR // ATR Function
};
input ScaleMode sc_mode=smFix; // Scale Zero Level Mode
extern int ZeroShift=5; // Scale Zero Level Shift
//--- Moving Average
extern int l_MA=16; // MA Period
extern ENUM_MA_METHOD MAmet=MODE_EMA; // MA Method
extern ENUM_APPLIED_PRICE MAprice=PRICE_TYPICAL; // MA Applied Price
extern ENUM_TIMEFRAMES MA_TF=PERIOD_H1; // MA Timeframe
extern color clrLevelMA=HotPink; // MA Color
extern ENUM_LINE_STYLE StyleMA = 0; // MA Line Style
extern int WidthMA = 3; // MA Line Width
//---
extern double Ratio=1.0; // Spread/ATR % Ratio
//---
extern color clrLevelPP=Crimson; // Pivot Point Color
extern ENUM_LINE_STYLE StylePP = 0; // Line Style
extern int WidthPP = 3; // Line Width
extern color clrLevel1=MediumSeaGreen; // Level 1 Color
extern ENUM_LINE_STYLE Style1 = 0; // Line Style
extern int Width1 = 2; // Line Width
extern color clrLevel2=SteelBlue; // Level 2 Color
extern ENUM_LINE_STYLE Style2 = 0; // Line Style
extern int Width2 = 2; // Line Width
extern color clrLevel3=Orange; // Level 3 Color
extern ENUM_LINE_STYLE Style3 = 0; // Line Style
extern int Width3 = 2; // Line Width
extern color clrLevel4=OrangeRed; // Level 4 Color
extern ENUM_LINE_STYLE Style4 = 0; // Line Style
extern int Width4 = 2; // Line Width
extern color clrRange=Purple; // ATR Range Color
extern ENUM_LINE_STYLE StyleRng = 2; // Line Style
extern int WidthRng = 1; // Line Width
extern color clrAskBid=Blue; // Ask/Bid Color
extern color clrSpreadAlert=Red; // Spread Alert Color
extern color clrScaleColor=Black; // Scale Color
ENUM_LINE_STYLE StyleAskBid=0; // Bid Line Style
//---
input bool debugmode=false;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
double x,xR1,xR2,xR3,xR4,xS1,xS2,xS3,xS4,xPP,xPHi,xPLo;
double x0,x100,xRSI,RSILevel,minRSILevel,maxRSILevel;
double RSIBuffer[];
int PivotBar=0;
ENUM_TIMEFRAMES inpTimeFrame=PERIOD_M5; // Pivot Period
ENUM_TIMEFRAMES ATRTimeFrame=PERIOD_M1;
int xShift=9; // X-Axis Shift
int xLen=2; // Line Length
double RSIindSize;
long XZoom=-1;
double pip1=1/pow(10,Digits-1);
string sMA="";
string debug_comment="";
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(1);
SetIndexBuffer(0,RSIBuffer);
return (0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int deinit()
{
DrawLevel("RSI",0,0,2,0,3);
DrawLevel("minRSI",0,0,3,0,2);
DrawLevel("maxRSI",0,0,3,0,2);
DrawLevel("PHi",0,StyleRng,WidthRng,clrRange,3);
DrawLevel("L_R4",0,Style4,Width4,clrLevel4,0);
DrawLevel("L_R3",0,Style3,Width3,clrLevel3,0);
DrawLevel("L_R2",0,Style2,Width2,clrLevel2,0);
DrawLevel("L_R1",0,Style1,Width1,clrLevel1,0);
DrawLevel("L_PP",0,StylePP,WidthPP,clrLevelPP,0);
DrawLevel("L_S1",0,Style1,Width1,clrLevel1,0);
DrawLevel("L_S2",0,Style2,Width2,clrLevel2,0);
DrawLevel("L_S3",0,Style3,Width3,clrLevel3,0);
DrawLevel("L_S4",0,Style4,Width4,clrLevel4,0);
DrawLevel("PLo",0,StyleRng,WidthRng,clrRange,3);
DrawLevel("Ask",0,StyleAskBid,1,clrAskBid,3);
DrawLevel("Bid",0,StyleRng,WidthRng,clrAskBid,3);
// DrawRect("Spread",0,0,0,0,0);
DrawRSITrail("RSITrailBack",0,0,0,0,0,false);
DrawRSITrail("RSITrailFront",0,0,0,0,0,false);
DrawRSITrail("RSIOver",0,0,0,5,Purple,false);
DrawRSITrail("RSI50",0,0,0,5,Purple,false);
DrawRSITrail("RSIMid",0,0,0,5,Purple,false);
DrawRSITrail("RSIUnder",0,0,0,5,Purple,false);
DrawLevel(sMA,0,0,0,0,0);
// DrawRect("RSIBack",0,0,0,0,0);
Scale(false,0,0);
return (0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
debug_comment="";
double mod=1.0;
double priceMin=ChartGetDouble(0,CHART_PRICE_MIN,0);
double priceMax=ChartGetDouble(0,CHART_PRICE_MAX,0);
//--- Pivot Points
double xOpen=iOpen(NULL,inpTimeFrame,PivotBar);
double xClose=iClose(NULL,inpTimeFrame,PivotBar);
double xHigh=iHigh(NULL,inpTimeFrame,PivotBar);
double xLow=iLow(NULL,inpTimeFrame,PivotBar);
double PxPP=(xHigh+xLow+xClose)/3;
double PxRange=xHigh-xLow;
double div=0.0;
//+------------------------------------------------------------------+
if(Period()<PERIOD_D1)
{
inpTimeFrame=PERIOD_M5;
ATRTimeFrame=PERIOD_M1;
}
else
{
inpTimeFrame=PERIOD_H4;
ATRTimeFrame=PERIOD_H1;
}
//+------------------------------------------------------------------+
for(int i=1;i<N_Bars;i++)
{
mod=(double)(N_Bars-i);
mod*=(double)(iVolume(NULL,inpTimeFrame,PivotBar+i));
xOpen+=mod*iOpen(NULL,inpTimeFrame,PivotBar+i);
xClose+=mod*iClose(NULL,inpTimeFrame,PivotBar+i);
xHigh+=mod*iHigh(NULL,inpTimeFrame,PivotBar+i);
xLow+=mod*iLow(NULL,inpTimeFrame,PivotBar+i);
div+=mod;
}
div+=1.0;
debug_comment+="\nmod="+DoubleToStr(mod,Digits);
debug_comment+="\ndiv="+DoubleToStr(div,Digits);
xOpen/=div;
xClose/=div;
xHigh/=div;
xLow/=div;
xPP=(xHigh+xLow+xClose)/3;
/* xPP=(iHigh(NULL,inpTimeFrame,iHighest(NULL,inpTimeFrame,MODE_HIGH,N_Bars,0))
+iLow(NULL,inpTimeFrame,iLowest(NULL,inpTimeFrame,MODE_LOW,N_Bars,0))+xClose)/3; // */
double xATR=iHigh(NULL,ATRTimeFrame,iHighest(NULL,ATRTimeFrame,MODE_HIGH,5*N_Bars,0))
-iLow(NULL,ATRTimeFrame,iLowest(NULL,ATRTimeFrame,MODE_LOW,5*N_Bars,0));
double xRange=(xHigh-xLow)+xATR;
xPHi = xLow + xATR;
xPLo = xHigh - xATR;
double spread=(Ask-Bid);
debug_comment+="\nxOpen="+DoubleToStr(xOpen,Digits);
debug_comment+="\nxClose="+DoubleToStr(xClose,Digits);
debug_comment+="\nxHigh="+DoubleToStr(xHigh,Digits);
debug_comment+="\nxLow="+DoubleToStr(xLow,Digits);
debug_comment+="\nxRange="+DoubleToStr(xRange,Digits);
debug_comment+="\nxPP="+DoubleToStr(xPP,Digits);
//---
ChartGetInteger(NULL,CHART_SCALE,0,XZoom);
if(XZoom<3) xLen=-2;
else xLen=0;
//--- Standard Pivot
if(Pmode==Standard)
{
xR1 = (2 * xPP) - (xLow) + xATR/2;
xS1 = (2 * xPP) - (xHigh) - xATR/2;
xR2 = xPP + (xRange);
xS2 = xPP - (xRange);
xR3 = (xHigh) + 2*(xPP - xLow) + 2*xATR;
xS3 = (xLow) - 2*(xHigh - xPP) - 2*xATR;
}
//--- Fibonacci's Pivot
else if(Pmode==Fibonacci)
{
//xR1 = xPP + 0.382 * xRange;
//xR2 = xPP + 0.618 * xRange;
//xR3 = xPP + 1.000 * xRange;
//xR4 = xPP + 1.618 * xRange;
//xS1 = xPP - 0.382 * xRange;
//xS2 = xPP - 0.618 * xRange;
//xS3 = xPP - 1.000 * xRange;
//xS4 = xPP - 1.618 * xRange;
xR1 = xPP + 0.236 * xRange;
xR2 = xPP + 0.382 * xRange;
xR3 = xPP + 0.618 * xRange;
xR4 = xPP + 1.0 * xRange;
xS1 = xPP - 0.236 * xRange;
xS2 = xPP - 0.382 * xRange;
xS3 = xPP - 0.618 * xRange;
xS4 = xPP - 1.0 * xRange;
}
else if(Pmode==Prime)
{
xR1 = xPP + (89 * xRange / 197);
xR2 = xPP + (89 * xRange / 103);
xR3 = xPP + (89 * xRange / 73);
xR4 = xPP + (89 * xRange / 53);
xS1 = xPP - (89 * xRange / 197);
xS2 = xPP - (89 * xRange / 103);
xS3 = xPP - (89 * xRange / 73);
xS4 = xPP - (89 * xRange / 53);
}
//+------------------------------------------------------------------+
//| RSI Indicator |
//+------------------------------------------------------------------+
for(int i=0;i<=RSI;i++)
{
RSIBuffer[i]=iRSI(NULL,0,RSI,PRICE_CLOSE,i);
}
RSIindSize=0.2*(priceMax-priceMin);//*pow(10,Digits-1);//*iATR(NULL,PERIOD_D1,5,0)*sqrt(Period()+5);
debug_comment+="\nRSIindSize="+DoubleToStr(RSIindSize,Digits);
debug_comment+="\nPeriod="+DoubleToStr(Period(),Digits);
//if (RSIindSize>(priceMax-priceMin)) RSIindSize=pow(10,Digits-1)*(xRange);
x0=xPP-RSIindSize;//((xR3-xS3)*5)/4;
x100=xPP+RSIindSize;//((xR3-xS3)*5)/4;
int minRSIidx=ArrayMinimum(RSIBuffer,RSI,0);
xRSI=RSIBuffer[minRSIidx];
minRSILevel=x0+(xRSI *(x100-x0)/100);
int maxRSIidx=ArrayMaximum(RSIBuffer,RSI,0);
xRSI=RSIBuffer[maxRSIidx];
maxRSILevel=x0+(xRSI *(x100-x0)/100);
xRSI=RSIBuffer[0];
RSILevel=x0+(xRSI *(x100-x0)/100);
double x30=30 *(RSIindSize*2)/100;
DrawRSITrail("RSIMid",x0,x100,0,1,Lavender,false);
DrawRSITrail("RSI50",(x0+x100)/2,(x0+x100)/2,0,1,clrScaleColor,false);
DrawRSITrail("RSIOver",x100,(x100-x30),0,1,LightCyan,true);
DrawRSITrail("RSIUnder",x0,(x0+x30),0,1,LightCyan,true);
DrawRSITrail("RSITrailBack",maxRSILevel,minRSILevel,0,5,Thistle,true);
if(minRSIidx>maxRSIidx) DrawRSITrail("RSITrailFront",maxRSILevel,RSILevel,0,5,clrMistyRose,true);
else DrawRSITrail("RSITrailFront",minRSILevel,RSILevel,0,5,clrMistyRose,true);
DrawRSITrail("RSI",RSILevel,RSILevel,0,3,Purple,false);
//+------------------------------------------------------------------+
//| Moving Average |
//+------------------------------------------------------------------+
double vMA=iMA(NULL,MA_TF,l_MA,0,MAmet,MAprice,0);
sMA="M"+IntegerToString(MA_TF);
if(MA_TF>=60) sMA="H"+IntegerToString(MA_TF/60);
switch(MA_TF)
{
case PERIOD_D1:
sMA="D1";
break;
case PERIOD_W1:
sMA="WK";
break;
case PERIOD_MN1:
sMA="MN";
break;
default:
break;
}
debug_comment+="\nMA_TF="+(DoubleToStr(MA_TF,Digits)
+"\npriceMax="+DoubleToStr(priceMax-pip1/10,Digits)
+"\npriceMin="+DoubleToStr(priceMin-pip1/10,Digits)
+"\nvMA="+DoubleToStr(vMA,Digits));
sMA+="-MA("+IntegerToString(l_MA)+")";
if(vMA>priceMax) DrawLevel(sMA,priceMax-pip1/6,StyleMA,5,clrLevelMA,12);
else if(vMA<priceMin) DrawLevel(sMA,priceMin+pip1/6,StyleMA,5,clrLevelMA,12);
else DrawLevel(sMA,vMA,StyleMA,WidthMA,clrLevelMA,4);
//+------------------------------------------------------------------+
//| Dynamic Pivot Levels |
//+------------------------------------------------------------------+
DrawLevel("L_PP",xPP,StylePP,WidthPP,clrLevelPP,3);
DrawLevel("PHi",xPHi,StyleRng,WidthRng,clrRange,5);
DrawLevel("PLo",xPLo,StyleRng,WidthRng,clrRange,5);
debug_comment+="\nN_Bars ="+(IntegerToString(N_Bars));
if(xR2-xS2<(5/pow(10,Digits-1)))
{
DrawLevel("L_R4",xR4,Style4,Width4,clrLevel4,3);
DrawLevel("L_S4",xS4,Style4,Width4,clrLevel4,3);
DrawLevel("L_S3",xS3,Style3,Width3,clrLevel3,2);
DrawLevel("L_R3",xR3,Style3,Width3,clrLevel3,2);
DrawLevel("L_R2",0,Style2,Width2,clrLevel2,2);
DrawLevel("L_S2",0,Style2,Width2,clrLevel2,2);
DrawLevel("L_R1",0,Style1,Width1,clrLevel1,2);
DrawLevel("L_S1",0,Style1,Width1,clrLevel1,2);
}
else
{
DrawLevel("L_R4",xR4,Style4,Width4,clrLevel4,3);
DrawLevel("L_S4",xS4,Style4,Width4,clrLevel4,3);
DrawLevel("L_S3",xS3,Style3,Width3,clrLevel3,2);
DrawLevel("L_R3",xR3,Style3,Width3,clrLevel3,2);
DrawLevel("L_R2",xR2,Style2,Width2,clrLevel2,2);
DrawLevel("L_S2",xS2,Style2,Width2,clrLevel2,2);
DrawLevel("L_R1",xR1,Style1,Width1,clrLevel1,2);
DrawLevel("L_S1",xS1,Style1,Width1,clrLevel1,2);
}
//+------------------------------------------------------------------+
//| Spread Alert |
//+------------------------------------------------------------------+
debug_comment+="\nSpread="+DoubleToStr(spread,Digits)
+"\nxATR="+DoubleToStr(xATR,Digits)
+"\n%ratio="+DoubleToStr(spread/xATR*100,Digits);
if(spread/xATR*100>Ratio)
{
DrawScale("Ask",Ask,2,1,clrSpreadAlert,8);
DrawScale("Bid",Bid,StyleAskBid,1,clrSpreadAlert,8);
if(Period()<PERIOD_D1) Scale(true,clrSpreadAlert,3);
}
else
{
DrawScale("Ask",Ask,2,1,clrAskBid,8);
DrawScale("Bid",Bid,StyleAskBid,1,clrAskBid,8);
if(Period()<PERIOD_D1) Scale(true,clrScaleColor,1);
}
//---
if(debugmode) Comment(debug_comment);
Sleep(1000);
return (0);
}
//+------------------------------------------------------------------+
//| FUNCTIONS |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| void DrawLevel() |
//| Created by Asteris, modified by Cubicrey [March, 2010] |
//| Website: http://www.indo-investasi.com |
//| modified by rkdius |
//+------------------------------------------------------------------+
void DrawLevel(string a_name_0,double ad,int a_style,int Width,color a_color,int a_len)
{
double l_price=ad;
int l_timeA;
int l_timeB;
double diff=Period()*60;
l_timeA=(int)(Time[0] + xShift*diff);
l_timeB=(int)(Time[0] - (xLen-xShift) * diff);
if(ad>0.0)
{
if(ObjectFind(a_name_0)!=0)
{
ObjectCreate(a_name_0,OBJ_TREND,0,l_timeA-(int)(a_len*diff),l_price,l_timeB+(int)(a_len*diff),l_price);
ObjectSet(a_name_0,OBJPROP_RAY,False);
ObjectSet(a_name_0,OBJPROP_COLOR,a_color);
ObjectSet(a_name_0,OBJPROP_WIDTH,Width);
ObjectSet(a_name_0,OBJPROP_STYLE,a_style);
ObjectSet(a_name_0,OBJPROP_SELECTABLE,false);
ObjectSet(a_name_0,OBJPROP_HIDDEN,true);
return;
}
ObjectSet(a_name_0,OBJPROP_RAY,False);
{
ObjectMove(a_name_0,0,l_timeA-(int)(a_len*diff),l_price);
ObjectMove(a_name_0,1,l_timeB+(int)(a_len*diff),l_price);
}
ObjectSet(a_name_0,OBJPROP_COLOR,a_color);
ObjectSet(a_name_0,OBJPROP_WIDTH,Width);
ObjectSet(a_name_0,OBJPROP_STYLE,a_style);
ObjectSet(a_name_0,OBJPROP_SELECTABLE,false);
ObjectSet(a_name_0,OBJPROP_HIDDEN,true);
return;
}
if(ObjectFind(a_name_0)>=0) ObjectDelete(a_name_0);
}
//+------------------------------------------------------------------+
void DrawScale(string a_name_0,double ad,int a_style,int Width,color a_color,int a_len)
{
double l_price=ad;
int l_timeA;
int l_timeB;
double diff=Period()*60;
l_timeA=(int)(Time[0] + 4 * diff);
l_timeB=(int)(Time[0] + 4 * diff - a_len * diff);
if(ad>0.0)
{
if(ObjectFind(a_name_0)!=0)
{
ObjectCreate(a_name_0,OBJ_TREND,0,l_timeA,l_price,l_timeB,l_price);
ObjectSet(a_name_0,OBJPROP_RAY,False);
ObjectSet(a_name_0,OBJPROP_COLOR,a_color);
ObjectSet(a_name_0,OBJPROP_WIDTH,Width);
ObjectSet(a_name_0,OBJPROP_STYLE,a_style);
ObjectSet(a_name_0,OBJPROP_SELECTABLE,false);
ObjectSet(a_name_0,OBJPROP_HIDDEN,true);
return;
}
ObjectSet(a_name_0,OBJPROP_RAY,False);
ObjectMove(a_name_0,0,l_timeA,l_price);
ObjectMove(a_name_0,1,l_timeB,l_price);
ObjectSet(a_name_0,OBJPROP_COLOR,a_color);
ObjectSet(a_name_0,OBJPROP_WIDTH,Width);
ObjectSet(a_name_0,OBJPROP_STYLE,a_style);
ObjectSet(a_name_0,OBJPROP_SELECTABLE,false);
ObjectSet(a_name_0,OBJPROP_HIDDEN,true);
return;
}
if(ObjectFind(a_name_0)>=0) ObjectDelete(a_name_0);
}
//+------------------------------------------------------------------+
void Scale(bool drawscale,color clrScale,int sWidth)
{
#define ZPERIOD PERIOD_M15
double l_zero,tmp_zero;
//--- Option 1 - Fixed
l_zero=iClose(NULL,ZPERIOD,ZeroShift)+((iOpen(NULL,ZPERIOD,ZeroShift)-iClose(NULL,ZPERIOD,ZeroShift))/2);
if(sc_mode==smATR)
{
//--- Option 2 - ATR Function
tmp_zero=iClose(NULL,ZPERIOD,1)+((iOpen(NULL,ZPERIOD,1)-iClose(NULL,ZPERIOD,1))/2);
double prev_bar=iClose(NULL,ZPERIOD,RSI)+((iOpen(NULL,ZPERIOD,RSI)-iClose(NULL,ZPERIOD,RSI))/2);
if(prev_bar<tmp_zero) l_zero-=iATR(NULL,ATRTimeFrame,N_Bars,0);
else if(prev_bar>tmp_zero) l_zero+=iATR(NULL,ATRTimeFrame,N_Bars,0);
//--- */
}
debug_comment+="\nl_zero="+(DoubleToStr(l_zero,Digits));
// int zoom = (int)(XZoom -1);
// if(zoom<1) zoom=1;
int zoom=(XZoom<2)?1:(int)(XZoom-1);
if(drawscale==true)
{
DrawRect("+Over",l_zero+80*pip1,l_zero+100*pip1,0,sWidth,clrScale,6/zoom);
DrawScale("+70",l_zero+70*pip1,0,1,clrScaleColor,4/zoom);
DrawScale("+60",l_zero+60*pip1,0,1,clrScaleColor,4/zoom);
DrawScale("+50",l_zero+50*pip1,0,1,clrScaleColor,8/zoom);
DrawScale("+40",l_zero+40*pip1,0,1,clrScaleColor,4/zoom);
DrawScale("+30",l_zero+30*pip1,0,1,clrScaleColor,4/zoom);
DrawScale("+25",l_zero+25*pip1,0,1,clrScaleColor,2/zoom);
DrawScale("+20",l_zero+20*pip1,0,1,clrScaleColor,4/zoom);
DrawScale("+15",l_zero+15*pip1,0,1,clrScaleColor,2/zoom);
DrawScale("+10",l_zero+10*pip1,0,1,clrScaleColor,4/zoom);
DrawScale("+5",l_zero+5*pip1,0,1,clrScaleColor,2/zoom);
DrawScale("Zero",l_zero,0,1,Black,16/zoom);
DrawScale("-5",l_zero-5*pip1,0,1,clrScaleColor,2/zoom);
DrawScale("-10",l_zero-10*pip1,0,1,clrScaleColor,4/zoom);
DrawScale("-15",l_zero-15*pip1,0,1,clrScaleColor,2/zoom);
DrawScale("-20",l_zero-20*pip1,0,1,clrScaleColor,4/zoom);
DrawScale("-25",l_zero-25*pip1,0,1,clrScaleColor,2/zoom);
DrawScale("-30",l_zero-30*pip1,0,1,clrScaleColor,4/zoom);
DrawScale("-40",l_zero-40*pip1,0,1,clrScaleColor,4/zoom);
DrawScale("-50",l_zero-50*pip1,0,1,clrScaleColor,8/zoom);
DrawScale("-60",l_zero-60*pip1,0,1,clrScaleColor,4/zoom);
DrawScale("-70",l_zero-70*pip1,0,1,clrScaleColor,4/zoom);
DrawRect("-Over",l_zero-80*pip1,l_zero-100*pip1,0,sWidth,clrScale,6/zoom);
//DrawRect("pipATR",Close[1]+iATR(NULL,0,ZeroShift,0),Close[1]-iATR(NULL,0,ZeroShift,0),2,1,clrSilver,5);
DrawRect("1pip",l_zero+pip1,l_zero-pip1,0,sWidth,clrScale,2/zoom);
// DrawRect("SLine",l_zero+80*pip1,l_zero-80*pip1,0,sWidth,clrScale,0);
}
else
{
DrawRect("+Over",0,0,0,0,0,0);
DrawScale("+70",0,0,0,0,0);
DrawScale("+60",0,0,0,0,0);
DrawScale("+50",0,0,0,0,0);
DrawScale("+40",0,0,0,0,0);
DrawScale("+30",0,0,0,0,0);
DrawScale("+25",0,0,0,0,0);
DrawScale("+20",0,0,0,0,0);
DrawScale("+15",0,0,0,0,0);
DrawScale("+10",0,0,0,0,0);
DrawScale("+5",0,0,0,0,0);
DrawScale("Zero",0,0,0,0,0);
DrawScale("-5",0,0,0,0,0);
DrawScale("-10",0,0,0,0,0);
DrawScale("-15",0,0,0,0,0);
DrawScale("-20",0,0,0,0,0);
DrawScale("-25",0,0,0,0,0);
DrawScale("-30",0,0,0,0,0);
DrawScale("-40",0,0,0,0,0);
DrawScale("-50",0,0,0,0,0);
DrawScale("-60",0,0,0,0,0);
DrawScale("-70",0,0,0,0,0);
DrawRect("-Over",0,0,0,0,0,0);
DrawRect("1pip",0,0,0,0,0,0);
//DrawRect("pipATR",0,0,0,0,0,0);
}
return;
}
//+------------------------------------------------------------------+
void DrawRSITrail(string a_name_0,double ask,double bid,int a_style,int Width,color a_color,bool fill)
{
int l_timeA;
int l_timeB;
double diff=Period()*60;
int ax,bx;
if(XZoom<3){ ax=7; bx=4; }
else { ax=5; bx=2; }
l_timeA=(int)(Time[0] + (ax+xShift)*diff);
l_timeB=(int)(Time[0] + (ax+xShift+bx)*diff);
if(ask>0.0)
{
if(ObjectFind(a_name_0)!=0)
{
ObjectCreate(a_name_0,OBJ_RECTANGLE,0,l_timeA,ask,l_timeB,bid);
ObjectSet(a_name_0,OBJPROP_COLOR,a_color);
ObjectSet(a_name_0,OBJPROP_WIDTH,Width);
ObjectSet(a_name_0,OBJPROP_STYLE,a_style);
ObjectSet(a_name_0,OBJPROP_BACK,fill);
ObjectSet(a_name_0,OBJPROP_SELECTABLE,false);
ObjectSet(a_name_0,OBJPROP_HIDDEN,true);
return;
}
ObjectMove(a_name_0,0,l_timeA,ask);
ObjectMove(a_name_0,1,l_timeB,bid);
ObjectSet(a_name_0,OBJPROP_COLOR,a_color);
ObjectSet(a_name_0,OBJPROP_WIDTH,Width);
ObjectSet(a_name_0,OBJPROP_STYLE,a_style);
ObjectSet(a_name_0,OBJPROP_BACK,fill);
ObjectSet(a_name_0,OBJPROP_SELECTABLE,false);
ObjectSet(a_name_0,OBJPROP_HIDDEN,true);
return;
}
if(ObjectFind(a_name_0)>=0) ObjectDelete(a_name_0);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
void DrawRect(string a_name_0,double ask,double bid,int a_style,int Width,color a_color,int a_len)
{
int l_timeA;
int l_timeB;
double diff=Period()*60;
l_timeA=(int)(Time[0] + 4 * diff);
l_timeB=(int)(Time[0] + 4 * diff - a_len * diff);
if(ask>0.0)
{
if(ObjectFind(a_name_0)!=0)
{
ObjectCreate(a_name_0,OBJ_RECTANGLE,0,l_timeA,ask,l_timeB,bid);
ObjectSet(a_name_0,OBJPROP_COLOR,a_color);
ObjectSet(a_name_0,OBJPROP_WIDTH,Width);
ObjectSet(a_name_0,OBJPROP_STYLE,a_style);
ObjectSet(a_name_0,OBJPROP_BACK,false);
ObjectSet(a_name_0,OBJPROP_SELECTABLE,false);
ObjectSet(a_name_0,OBJPROP_HIDDEN,true);
return;
}
ObjectMove(a_name_0,0,l_timeA,ask);
ObjectMove(a_name_0,1,l_timeB,bid);
ObjectSet(a_name_0,OBJPROP_COLOR,a_color);
ObjectSet(a_name_0,OBJPROP_WIDTH,Width);
ObjectSet(a_name_0,OBJPROP_STYLE,a_style);
ObjectSet(a_name_0,OBJPROP_BACK,false);
ObjectSet(a_name_0,OBJPROP_SELECTABLE,false);
ObjectSet(a_name_0,OBJPROP_HIDDEN,true);
return;
}
if(ObjectFind(a_name_0)>=0) ObjectDelete(a_name_0);
}
//+------------------------------------------------------------------+*/
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---