Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- _SECTION_BEGIN("CMP");
- GfxSelectFont("arial", 13, 700 ); GfxSetBkMode( colorWhite );
- GfxSetTextColor( ParamColor("Color",colorWhite) );
- Hor=Param("Horizontal Position",120,10,1200,1);
- Ver=Param("Vertical Position",185,100,50,50);
- GfxTextOut(""+C,Hor , Ver );
- _SECTION_END();
- /*Developed by Tudor Marcelin - Art Invest*/
- HLper=Param("EMA period",21,3,35);
- Lagper=Param("Lag period",10,3,35);
- HL=EMA(H-L,HLper);
- LagEMA=Ref(HL,(-1)*Lagper);
- VCF=100*(HL-LagEMA)/LagEMA;
- //ATR
- procedure ATRf(Hp,Lp,Cp,per)
- {
- TR=Max(Hp-Lp,Max(abs(Hp-Ref(Cp,-1)),abs(Ref(Cp,-1)-Lp)));
- TRI=Wilders(TR,per);
- return TRI;
- }
- //Moving Average
- procedure MAList(type)
- {
- global MAType;
- global MAName;
- chList =
- ParamList("Type",
- List = "1 - EMA,2 - WMA,3 - DEMA,4 - WILDERS", type-1);
- for( i=0; i<5; i++)
- {if( StrExtract(List, i) == chList ) MAType = i+1;}
- MAName =
- WriteIf(MAType == 1,"EMA",
- WriteIf(MAType == 2,"WMA",
- WriteIf(MAType == 3,"DEMA",
- WriteIf(MAType == 4,"WILDERS",""))));
- }
- procedure MAFormula(array,per,type)
- {
- CallFormula =
- IIf(type == 1,EMA(array,Per),
- IIf(type == 2,WMA(array,Per),
- IIf(type == 3,DEMA(array,Per),
- IIf(type == 4,Wilders(array,Per),Null))));
- return CallFormula;
- }
- MAList(2);
- _SECTION_BEGIN("Heikin Ashi Smoothed");
- per1=Param("MA1 period",6,1,10);
- per2=Param("MA2 period",2,1,10);
- /*
- HaOpen = IIf(BarIndex()>0,(Ref((O+H+L+C)/4,-1) + Ref(O,-1))/2 ,Open);
- HaClose = IIf(BarIndex()>0,((O+H+L+C)/4 +HaOpen+Max(H,HaOpen)+Min(L,HaOpen))/4,Close);
- HaHigh = Max( H, Max( HaClose, HaOpen ) );
- HaLow = Min( L, Min( HaClose, HaOpen ) );
- */
- mO=MAFormula(O,per1,MAType);
- mH=MAFormula(H,per1,MAType);
- mL=MAFormula(L,per1,MAType);
- mC=MAFormula(C,per1,MAType);
- HaClose1 = IIf(BarIndex()>0,(MO+MH+ML+MC)/4,Close);
- HaOpen1 = IIf(BarIndex()>0,AMA( Ref( HaClose1, -1 ), 0.5 ),Open);
- HaClose=EMA(HaClose1,per2);
- HaOpen=EMA(HaOpen1,per2);
- HaHigh = Max( mH, Max( HaClose, HaOpen ) );
- HaLow = Min(mL, Min( HaClose, HaOpen ) );
- _SECTION_END();
- //O=HaOpen;
- //H=HaHigh;
- //L=HaLow;
- //C=HaClose;
- _SECTION_BEGIN("Absolute Strength Index weekly");
- /*Developed by Tudor Marcelin - Art Invest*/
- //ASI weekly
- function ASIw(per)
- {
- AW=0;
- MW=0;
- DW=0;
- for( i = 0; i < per; i=i+1 )
- {
- AW=IIf(TimeFrameGetPrice( "HaClose", inWeekly, -i )>TimeFrameGetPrice( "HaClose", inWeekly, -i-1 ), AW+(TimeFrameGetPrice( "HaClose", inWeekly, -i )/TimeFrameGetPrice( "HaClose", inWeekly, -i-1 ))-1,AW);
- MW=IIf(TimeFrameGetPrice( "HaClose", inWeekly, -i )==TimeFrameGetPrice( "HaClose", inWeekly, -i-1 ), MW+1/per,MW);
- DW=IIf(TimeFrameGetPrice( "HaClose", inWeekly, -i )<TimeFrameGetPrice( "HaClose", inWeekly, -i-1 ), DW+(TimeFrameGetPrice( "HaClose", inWeekly, -i-1 )/TimeFrameGetPrice( "HaClose", inWeekly, -i ))-1,DW);
- }
- result = IIf (DW+MW/2==0, 100, 100-100/(1+(AW+MW/2)/(DW+MW/2)));
- return result;
- }
- PeriodASIw= Param("PeriodASI weekly", 13, 1, 250, 1);
- PeriodStochw=Param("PeriodStoch weekly", 8, 1, 250, 1);
- PeriodSKw=Param("PeriodSK weekly", 5, 1, 250, 1);
- PeriodSDw=Param("PeriodSD weekly", 5, 1, 250, 1);
- StoASIw= IIf(HHV( ASIw( PeriodASIw) , PeriodStochw ) - LLV(ASIw( PeriodASIw ), PeriodStochw ) >0,
- 100*(( ASIw( PeriodASIw) - LLV( ASIw( PeriodASIw ) , PeriodStochw ) ) / ( (
- HHV( ASIw( PeriodASIw) , PeriodStochw ) ) - LLV(ASIw( PeriodASIw ), PeriodStochw ) )),100);
- SKw=MA(StoASIw,PeriodSKw);
- SDw=MA(SKw,PeriodSDw);
- _SECTION_END();
- _SECTION_BEGIN("Absolute Strength Index daily");
- //ASI Daily
- function ASI(per)
- {
- A=0;
- M=0;
- D=0;
- for( i = 0; i < per; i=i+1 )
- {
- A=IIf(Ref(HaClose, - i)>Ref(HaClose, - i-1), A+(Ref(HaClose, - i)/Ref(HaClose, - i-1))-1,A);
- M=IIf(Ref(HaClose, - i)==Ref(HaClose, - i-1), M+1/per,M);
- D=IIf(Ref(HaClose, - i)<Ref(HaClose, - i-1), D+(Ref(HaClose, - i-1)/Ref(HaClose, - i))-1,D);
- }
- result = IIf (D+M/2==0, 100, 100-100/(1+(A+M/2)/(D+M/2)));
- return result;
- }
- PeriodASI= Param("PeriodASI daily", 13, 1, 250, 1);
- PeriodStoch=Param("PeriodStoch daily", 8, 1, 250, 1);
- PeriodSK=Param("PeriodSK daily", 5, 1, 250, 1);
- PeriodSD=Param("PeriodSD daily", 5, 1, 250, 1);
- _SECTION_END();
- StoASI= IIf(HHV( ASI( PeriodASI) , PeriodStoch ) - LLV(ASI( PeriodASI ), PeriodStoch ) >0,
- 100*(( ASI( PeriodASI) - LLV( ASI( PeriodASI ) , PeriodStoch ) ) / ( (
- HHV( ASI( PeriodASI) , PeriodStoch) ) - LLV(ASI( PeriodASI ), PeriodStoch ) )),100);
- SK=MA(StoASI,PeriodSK);
- SD=MA(SK,PeriodSD);
- _SECTION_BEGIN("Trend indentification");
- StopMode = ParamToggle("Stop Mode", "Yes|No" );
- TrendArrows = ParamToggle("Trend Arrows", "Yes|No" );
- ColorMode = ParamToggle("Color Mode", "Standard|Trend" );
- StopATRFactor1 = Param("Chandelier ATR 1", 1.5, 0.5, 10, 0.1 );
- StopATRFactor2= Param("Chandelier ATR 2", 2, 0.5, 10, 0.1 );
- StopATRPeriod = Param("Chandelier ATR period", 14, 3, 50 );
- // calculate support and resistance levels
- sup1 = HaClose - StopATRFactor1* ATRf(HaHigh,HaLow,HaClose,StopATRPeriod );
- sup2 = HaLow - StopATRFactor2 * ATRf(HaHigh,HaLow,HaClose,StopATRPeriod );
- res1 = HaClose + StopATRFactor1 * ATRf(HaHigh,HaLow,HaClose,StopATRPeriod );
- res2 = HaHigh + StopATRFactor2 * ATRf(HaHigh,HaLow,HaClose,StopATRPeriod );
- // calculeaza trailing stop
- trailARRAY1 = Null;
- trailARRAY2 = Null;
- trailstop1 = 0;
- trailstop2 = 0;
- Started[0]=0;
- for( i = 1; i < BarCount; i++ )
- {
- if( Started[ i ] == 0 ) continue;
- if( HaClose[ i ] > trailstop1 AND HaClose[ i - 1 ] > trailstop1 )
- trailstop1 = Max( trailstop1, sup1[ i ] );
- else
- if( HaClose[ i ] < trailstop1 AND HaClose[ i - 1 ] < trailstop1 )
- trailstop1 = Min( trailstop1, res1[ i ] );
- else
- trailstop1 = IIf( HaClose[ i ] > trailstop1, sup1[ i ], res1[ i ] );
- trailARRAY1[ i ] = trailstop1;
- if( HaClose[ i ] > trailstop2 AND HaClose[ i - 1 ] > trailstop2 )
- trailstop2 = Max( trailstop2, sup2[ i ] );
- else
- if( HaClose[ i ] < trailstop2 AND HaClose[ i - 1 ] < trailstop2 )
- trailstop2 = Min( trailstop2, res2[ i ] );
- else
- trailstop2 = IIf( HaClose[ i ] > trailstop2, sup2[ i ], res2[ i ] );
- trailARRAY2[ i ] = trailstop2;
- }
- if( ColorMode == 0 ) // coloreaza pretul
- {
- Color=colorBlack;
- }
- else
- {
- Color=IIf(HaClose> trailArray1 AND HaClose> trailArray2 , colorGreen, IIf(HaClose> trailArray2 AND HaClose<trailArray1,colorLime,
- IIf(HaClose< trailArray1 AND HaClose< trailArray2,colorRed, IIf(HaClose< trailArray2 AND HaClose> trailArray1,colorPink,colorGold))));
- }
- // semnalele de cumparare
- Cond1b = ((Cross( HaClose, trailArray2 ) OR (Cross( HaClose, trailArray1 )
- AND NOT Ref(HaClose,-1)<trailArray2 )) AND NOT EMA(Close,21)<EMA (Close,34) );// AND C>Ref(HHV(C,3),-1) AND H>Ref(HHV(H,3),-1);
- Cond2b = (EMA(Close,21)>EMA(Close,34) AND HaClose> trailArray1 AND HaClose> trailArray2 AND Close>Ref(HHV(Close,5),-1) );
- Cond3b = HaClose>trailArray2 AND SKw>=SDw AND SDw>5 ;
- //semnalele de vanzare
- Cond1s = ((Cross( trailArray2, HaClose ) OR (Cross( trailArray1, HaClose )
- AND NOT Ref(HaClose,-1)>trailArray2)));// AND NOT EMA(C,21)>EMA(C,34));
- Cond2s = HaClose< trailArray1 AND SKw<SDw AND Cross(80,SDw) AND Close<Ref(Close,-1)
- AND Ref(Close,-1)<Ref(EMA(Close,34),-1);
- Buy = (Cond1b OR Cond2b OR Cond3b) AND NOT VCF<5;
- SL=Param("Stop Loss factor",7,1,15);
- Cond3s=Close<(1-SL/100)*ValueWhen(Buy,HaLow) AND SKw<SDw;
- Sell =((Cond1s OR Cond2s) AND NOT VCF<5) OR Cond3s;//OR (ADX(8)>20 AND ADX(8)<Ref(ADX(8),-1) AND Cross(85,RSI(5)));
- Buy=ExRem(Buy,Sell);
- Sell=ExRem(Sell,Buy);
- //Plot( Close,"Price",colorBlack,styleCandle);
- PlotOHLC(HaOpen,HaHigh,HaLow,HaClose,"Price",color,styleCandle);
- if( StopMode == 0 ) // plot moving averages
- {
- Plot( trailARRAY1,"Alert stop level", colorGrey40, styleDots|styleNoLine );
- Plot( trailARRAY2,"Action stop level", colorBlack , styleDots|styleNoLine);
- }
- if( TrendArrows == 0 ) // plot moving averages
- {
- PlotShapes(Buy*shapeSmallUpTriangle,IIf(Cond1b,colorBlue,IIf(Cond2b,colorTeal,colorGreen)),0,HaLow);
- PlotShapes(Sell*(shapeDownArrow ),IIf(Cond1s,colorBlue,IIf(Cond2s,colorGold,colorRed)),0,HaHigh);
- }
- TrendUp=C>trailArray2;
- TrendDown=C<trailArray2;
- _SECTION_END();
- _SECTION_BEGIN("Background Color");
- BKswitch = ParamToggle("Background Color","On,Off");
- OUTcolor = ParamColor("Outer Panel Color",colorLightBlue);
- INUPcolor = ParamColor("Inner Panel Upper",colorLightYellow);
- INDNcolor = ParamColor("Inner Panel Lower",colorSeaGreen);
- TitleColor = ParamColor("Title Color ",ColorRGB(245,245,245));
- if (NOT BKswitch)
- {
- SetChartBkColor(OUTcolor); // color of outer border
- SetChartBkGradientFill(INUPcolor,INDNcolor,TitleColor); // color of inner panel
- }
- _SECTION_END();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement