Advertisement
saisri

signals good

Jul 15th, 2012
296
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.63 KB | None | 0 0
  1. _SECTION_BEGIN("CMP");
  2. GfxSelectFont("arial", 13, 700 ); GfxSetBkMode( colorWhite );
  3. GfxSetTextColor( ParamColor("Color",colorWhite) );
  4. Hor=Param("Horizontal Position",120,10,1200,1);
  5. Ver=Param("Vertical Position",185,100,50,50);
  6. GfxTextOut(""+C,Hor , Ver );
  7.  
  8.  
  9. _SECTION_END();
  10.  
  11. /*Developed by Tudor Marcelin - Art Invest*/
  12. HLper=Param("EMA period",21,3,35);
  13. Lagper=Param("Lag period",10,3,35);
  14.  
  15. HL=EMA(H-L,HLper);
  16. LagEMA=Ref(HL,(-1)*Lagper);
  17.  
  18. VCF=100*(HL-LagEMA)/LagEMA;
  19. //ATR
  20. procedure ATRf(Hp,Lp,Cp,per)
  21. {
  22.  
  23. TR=Max(Hp-Lp,Max(abs(Hp-Ref(Cp,-1)),abs(Ref(Cp,-1)-Lp)));
  24.  
  25. TRI=Wilders(TR,per);
  26. return TRI;
  27. }
  28.  
  29. //Moving Average
  30. procedure MAList(type)
  31. {
  32. global MAType;
  33. global MAName;
  34. chList =
  35. ParamList("Type",
  36. List = "1 - EMA,2 - WMA,3 - DEMA,4 - WILDERS", type-1);
  37. for( i=0; i<5; i++)
  38. {if( StrExtract(List, i) == chList ) MAType = i+1;}
  39. MAName =
  40. WriteIf(MAType == 1,"EMA",
  41. WriteIf(MAType == 2,"WMA",
  42. WriteIf(MAType == 3,"DEMA",
  43. WriteIf(MAType == 4,"WILDERS",""))));
  44. }
  45.  
  46.  
  47. procedure MAFormula(array,per,type)
  48. {
  49. CallFormula =
  50. IIf(type == 1,EMA(array,Per),
  51. IIf(type == 2,WMA(array,Per),
  52. IIf(type == 3,DEMA(array,Per),
  53. IIf(type == 4,Wilders(array,Per),Null))));
  54. return CallFormula;
  55. }
  56.  
  57. MAList(2);
  58.  
  59.  
  60. _SECTION_BEGIN("Heikin Ashi Smoothed");
  61. per1=Param("MA1 period",6,1,10);
  62. per2=Param("MA2 period",2,1,10);
  63. /*
  64. HaOpen = IIf(BarIndex()>0,(Ref((O+H+L+C)/4,-1) + Ref(O,-1))/2 ,Open);
  65. HaClose = IIf(BarIndex()>0,((O+H+L+C)/4 +HaOpen+Max(H,HaOpen)+Min(L,HaOpen))/4,Close);
  66. HaHigh = Max( H, Max( HaClose, HaOpen ) );
  67. HaLow = Min( L, Min( HaClose, HaOpen ) );
  68. */
  69.  
  70. mO=MAFormula(O,per1,MAType);
  71. mH=MAFormula(H,per1,MAType);
  72. mL=MAFormula(L,per1,MAType);
  73. mC=MAFormula(C,per1,MAType);
  74.  
  75. HaClose1 = IIf(BarIndex()>0,(MO+MH+ML+MC)/4,Close);
  76. HaOpen1 = IIf(BarIndex()>0,AMA( Ref( HaClose1, -1 ), 0.5 ),Open);
  77.  
  78. HaClose=EMA(HaClose1,per2);
  79. HaOpen=EMA(HaOpen1,per2);
  80.  
  81. HaHigh = Max( mH, Max( HaClose, HaOpen ) );
  82. HaLow = Min(mL, Min( HaClose, HaOpen ) );
  83.  
  84. _SECTION_END();
  85.  
  86. //O=HaOpen;
  87. //H=HaHigh;
  88. //L=HaLow;
  89. //C=HaClose;
  90.  
  91. _SECTION_BEGIN("Absolute Strength Index weekly");
  92. /*Developed by Tudor Marcelin - Art Invest*/
  93.  
  94. //ASI weekly
  95. function ASIw(per)
  96. {
  97. AW=0;
  98. MW=0;
  99. DW=0;
  100.  
  101. for( i = 0; i < per; i=i+1 )
  102. {
  103.  
  104. AW=IIf(TimeFrameGetPrice( "HaClose", inWeekly, -i )>TimeFrameGetPrice( "HaClose", inWeekly, -i-1 ), AW+(TimeFrameGetPrice( "HaClose", inWeekly, -i )/TimeFrameGetPrice( "HaClose", inWeekly, -i-1 ))-1,AW);
  105.  
  106. MW=IIf(TimeFrameGetPrice( "HaClose", inWeekly, -i )==TimeFrameGetPrice( "HaClose", inWeekly, -i-1 ), MW+1/per,MW);
  107.  
  108. DW=IIf(TimeFrameGetPrice( "HaClose", inWeekly, -i )<TimeFrameGetPrice( "HaClose", inWeekly, -i-1 ), DW+(TimeFrameGetPrice( "HaClose", inWeekly, -i-1 )/TimeFrameGetPrice( "HaClose", inWeekly, -i ))-1,DW);
  109.  
  110. }
  111.  
  112.  
  113. result = IIf (DW+MW/2==0, 100, 100-100/(1+(AW+MW/2)/(DW+MW/2)));
  114. return result;
  115. }
  116.  
  117. PeriodASIw= Param("PeriodASI weekly", 13, 1, 250, 1);
  118. PeriodStochw=Param("PeriodStoch weekly", 8, 1, 250, 1);
  119. PeriodSKw=Param("PeriodSK weekly", 5, 1, 250, 1);
  120. PeriodSDw=Param("PeriodSD weekly", 5, 1, 250, 1);
  121.  
  122. StoASIw= IIf(HHV( ASIw( PeriodASIw) , PeriodStochw ) - LLV(ASIw( PeriodASIw ), PeriodStochw ) >0,
  123. 100*(( ASIw( PeriodASIw) - LLV( ASIw( PeriodASIw ) , PeriodStochw ) ) / ( (
  124. HHV( ASIw( PeriodASIw) , PeriodStochw ) ) - LLV(ASIw( PeriodASIw ), PeriodStochw ) )),100);
  125.  
  126. SKw=MA(StoASIw,PeriodSKw);
  127. SDw=MA(SKw,PeriodSDw);
  128. _SECTION_END();
  129.  
  130. _SECTION_BEGIN("Absolute Strength Index daily");
  131.  
  132. //ASI Daily
  133. function ASI(per)
  134. {
  135. A=0;
  136. M=0;
  137. D=0;
  138.  
  139. for( i = 0; i < per; i=i+1 )
  140. {
  141.  
  142. A=IIf(Ref(HaClose, - i)>Ref(HaClose, - i-1), A+(Ref(HaClose, - i)/Ref(HaClose, - i-1))-1,A);
  143.  
  144. M=IIf(Ref(HaClose, - i)==Ref(HaClose, - i-1), M+1/per,M);
  145.  
  146. D=IIf(Ref(HaClose, - i)<Ref(HaClose, - i-1), D+(Ref(HaClose, - i-1)/Ref(HaClose, - i))-1,D);
  147.  
  148. }
  149.  
  150.  
  151. result = IIf (D+M/2==0, 100, 100-100/(1+(A+M/2)/(D+M/2)));
  152.  
  153. return result;
  154. }
  155.  
  156. PeriodASI= Param("PeriodASI daily", 13, 1, 250, 1);
  157. PeriodStoch=Param("PeriodStoch daily", 8, 1, 250, 1);
  158. PeriodSK=Param("PeriodSK daily", 5, 1, 250, 1);
  159. PeriodSD=Param("PeriodSD daily", 5, 1, 250, 1);
  160. _SECTION_END();
  161.  
  162. StoASI= IIf(HHV( ASI( PeriodASI) , PeriodStoch ) - LLV(ASI( PeriodASI ), PeriodStoch ) >0,
  163. 100*(( ASI( PeriodASI) - LLV( ASI( PeriodASI ) , PeriodStoch ) ) / ( (
  164. HHV( ASI( PeriodASI) , PeriodStoch) ) - LLV(ASI( PeriodASI ), PeriodStoch ) )),100);
  165.  
  166. SK=MA(StoASI,PeriodSK);
  167. SD=MA(SK,PeriodSD);
  168.  
  169. _SECTION_BEGIN("Trend indentification");
  170.  
  171. StopMode = ParamToggle("Stop Mode", "Yes|No" );
  172. TrendArrows = ParamToggle("Trend Arrows", "Yes|No" );
  173. ColorMode = ParamToggle("Color Mode", "Standard|Trend" );
  174.  
  175. StopATRFactor1 = Param("Chandelier ATR 1", 1.5, 0.5, 10, 0.1 );
  176. StopATRFactor2= Param("Chandelier ATR 2", 2, 0.5, 10, 0.1 );
  177. StopATRPeriod = Param("Chandelier ATR period", 14, 3, 50 );
  178.  
  179. // calculate support and resistance levels
  180. sup1 = HaClose - StopATRFactor1* ATRf(HaHigh,HaLow,HaClose,StopATRPeriod );
  181. sup2 = HaLow - StopATRFactor2 * ATRf(HaHigh,HaLow,HaClose,StopATRPeriod );
  182. res1 = HaClose + StopATRFactor1 * ATRf(HaHigh,HaLow,HaClose,StopATRPeriod );
  183. res2 = HaHigh + StopATRFactor2 * ATRf(HaHigh,HaLow,HaClose,StopATRPeriod );
  184.  
  185.  
  186. // calculeaza trailing stop
  187. trailARRAY1 = Null;
  188. trailARRAY2 = Null;
  189. trailstop1 = 0;
  190. trailstop2 = 0;
  191. Started[0]=0;
  192. for( i = 1; i < BarCount; i++ )
  193. {
  194. if( Started[ i ] == 0 ) continue;
  195.  
  196. if( HaClose[ i ] > trailstop1 AND HaClose[ i - 1 ] > trailstop1 )
  197. trailstop1 = Max( trailstop1, sup1[ i ] );
  198. else
  199. if( HaClose[ i ] < trailstop1 AND HaClose[ i - 1 ] < trailstop1 )
  200. trailstop1 = Min( trailstop1, res1[ i ] );
  201. else
  202. trailstop1 = IIf( HaClose[ i ] > trailstop1, sup1[ i ], res1[ i ] );
  203.  
  204. trailARRAY1[ i ] = trailstop1;
  205.  
  206. if( HaClose[ i ] > trailstop2 AND HaClose[ i - 1 ] > trailstop2 )
  207. trailstop2 = Max( trailstop2, sup2[ i ] );
  208. else
  209. if( HaClose[ i ] < trailstop2 AND HaClose[ i - 1 ] < trailstop2 )
  210. trailstop2 = Min( trailstop2, res2[ i ] );
  211. else
  212. trailstop2 = IIf( HaClose[ i ] > trailstop2, sup2[ i ], res2[ i ] );
  213.  
  214. trailARRAY2[ i ] = trailstop2;
  215. }
  216.  
  217. if( ColorMode == 0 ) // coloreaza pretul
  218. {
  219. Color=colorBlack;
  220. }
  221. else
  222. {
  223. Color=IIf(HaClose> trailArray1 AND HaClose> trailArray2 , colorGreen, IIf(HaClose> trailArray2 AND HaClose<trailArray1,colorLime,
  224. IIf(HaClose< trailArray1 AND HaClose< trailArray2,colorRed, IIf(HaClose< trailArray2 AND HaClose> trailArray1,colorPink,colorGold))));
  225. }
  226.  
  227. // semnalele de cumparare
  228. Cond1b = ((Cross( HaClose, trailArray2 ) OR (Cross( HaClose, trailArray1 )
  229. 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);
  230. Cond2b = (EMA(Close,21)>EMA(Close,34) AND HaClose> trailArray1 AND HaClose> trailArray2 AND Close>Ref(HHV(Close,5),-1) );
  231. Cond3b = HaClose>trailArray2 AND SKw>=SDw AND SDw>5 ;
  232.  
  233. //semnalele de vanzare
  234. Cond1s = ((Cross( trailArray2, HaClose ) OR (Cross( trailArray1, HaClose )
  235. AND NOT Ref(HaClose,-1)>trailArray2)));// AND NOT EMA(C,21)>EMA(C,34));
  236. Cond2s = HaClose< trailArray1 AND SKw<SDw AND Cross(80,SDw) AND Close<Ref(Close,-1)
  237. AND Ref(Close,-1)<Ref(EMA(Close,34),-1);
  238.  
  239.  
  240. Buy = (Cond1b OR Cond2b OR Cond3b) AND NOT VCF<5;
  241. SL=Param("Stop Loss factor",7,1,15);
  242. Cond3s=Close<(1-SL/100)*ValueWhen(Buy,HaLow) AND SKw<SDw;
  243.  
  244. 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)));
  245.  
  246. Buy=ExRem(Buy,Sell);
  247. Sell=ExRem(Sell,Buy);
  248.  
  249. //Plot( Close,"Price",colorBlack,styleCandle);
  250. PlotOHLC(HaOpen,HaHigh,HaLow,HaClose,"Price",color,styleCandle);
  251.  
  252.  
  253. if( StopMode == 0 ) // plot moving averages
  254. {
  255. Plot( trailARRAY1,"Alert stop level", colorGrey40, styleDots|styleNoLine );
  256. Plot( trailARRAY2,"Action stop level", colorBlack , styleDots|styleNoLine);
  257. }
  258.  
  259. if( TrendArrows == 0 ) // plot moving averages
  260. {
  261. PlotShapes(Buy*shapeSmallUpTriangle,IIf(Cond1b,colorBlue,IIf(Cond2b,colorTeal,colorGreen)),0,HaLow);
  262. PlotShapes(Sell*(shapeDownArrow ),IIf(Cond1s,colorBlue,IIf(Cond2s,colorGold,colorRed)),0,HaHigh);
  263. }
  264.  
  265. TrendUp=C>trailArray2;
  266. TrendDown=C<trailArray2;
  267.  
  268.  
  269. _SECTION_END();
  270. _SECTION_BEGIN("Background Color");
  271. BKswitch = ParamToggle("Background Color","On,Off");
  272.  
  273. OUTcolor = ParamColor("Outer Panel Color",colorLightBlue);
  274. INUPcolor = ParamColor("Inner Panel Upper",colorLightYellow);
  275. INDNcolor = ParamColor("Inner Panel Lower",colorSeaGreen);
  276. TitleColor = ParamColor("Title Color ",ColorRGB(245,245,245));
  277.  
  278. if (NOT BKswitch)
  279. {
  280. SetChartBkColor(OUTcolor); // color of outer border
  281. SetChartBkGradientFill(INUPcolor,INDNcolor,TitleColor); // color of inner panel
  282. }
  283. _SECTION_END();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement