Woodie's CCI Intraday.afl
上传用户:shiqiang
上传日期:2009-06-12
资源大小:1289k
文件大小:24k
源码类别:

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    Woodie's CCI Intraday
  4. //  Author/Uploader: Dennis Skoblar 
  5. //  E-mail:          DennisAndLisa@sbcglobal.net
  6. //  Date/Time Added: 2006-07-28 14:27:10
  7. //  Origin:          woodiescciclub.com
  8. //  Keywords:        Woodie's CCI, CCI
  9. //  Level:           medium
  10. //  Flags:           system,exploration,indicator
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=655
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=655
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  Here is Woodie's CCI Intaday panel which was originally coded by Crasher_FL
  17. //  and Wring. It is a modified Daily CCI Panel with the CCI14 and CC6. It is
  18. //  complete with pattern recognition,backtesting, scanning, and
  19. //
  20. //  exploration options. The Pattern Recognition helps find the ZLR, HFE,
  21. //  GB100(with a 34ema +/- 15 degree nuance), VT,FAMIR,MR and Choppy (Chop mode
  22. //  being
  23. //
  24. //  defined as the CCI bars inbetween the 100's for 10 or more bars. The reset
  25. //  out of chop is when the CCI hooks from extreme at the 200's). . The pattern
  26. //  recognition is
  27. //
  28. //  located at the top left corner next to "Signal: ".
  29. //
  30. //  1=zlr
  31. //
  32. //  2-famir
  33. //
  34. //  3=vt
  35. //
  36. //  4=gb100
  37. //
  38. //  5=momentum reversal
  39. //
  40. //  This version has the Mplay Exit Indicator in it. The MPLAY exit is a CCI
  41. //  hook to the oposite direction followed by another with the price closing in
  42. //  the oposite
  43. //
  44. //  direction of the trade. I have coded the MPLAY Indicator with the CCI
  45. //  panel. It is a series of green and red circles just below the +200 line.
  46. //  The nearest green circle
  47. //
  48. //  that appears after a pattern (any pattern, not just the coded ones) is the
  49. //  exit for a long position. The nearest red circle is the exit after a short
  50. //  pattern. Ignore all the ones
  51. //
  52. //  inbetween. The circles appear after every and any occurance of an MPLAY
  53. //  Exit, regardless if a pattern has appeared or not. Just use the nearest
  54. //  applicable circle to exit
  55. //
  56. //  a pattern entered.
  57. //
  58. //  I also added the EMA angle colors to the 100's. Turquoise= uptrend,
  59. //  Red=downtrend, Yellow=not trending. This code was originally in the cci
  60. //  panel coded by
  61. //
  62. //  Crasher, I just tweeked it to be displayed in visual format. It is
  63. //  identical to woodie's modification to the cci panel, which he uses as a
  64. //  chop inicator as well. If there is a
  65. //
  66. //  constant color, the trend is in that direction. If the colors are mixed,
  67. //  then there is a chop.
  68. //
  69. //  Use this setting for the background color like Woodie's charts...
  70. //
  71. //  Hue: 93
  72. //
  73. //  Sat: 44
  74. //
  75. //  Lum:87
  76. //
  77. //  Red:75
  78. //
  79. //  Green: 109
  80. //
  81. //  Blue: 96
  82. //
  83. //  Trade at your own risk, please use your own descretion, for educational
  84. //  purposes only.
  85. //
  86. //  go here for further updates:
  87. //
  88. // 
  89. //  http://woodiescciclub.com/forum/viewforum.php?f=17&sid=0f5f3762dff52213a0bcd2f983655cec
  90. //
  91. //  -Dennis
  92. //
  93. //------------------------------------------------------------------------------
  94. /////////////////////////////// 
  95. // CCI Woodies Style - Started by Wring 
  96. // Codded/Added by Kris 
  97. // Added by Dennis and Greg 
  98. // Version: 1.027 
  99. // Last Update: 11/24/2005 
  100. // Additions: 
  101. // timer, EMA angle, LSMA angle, trending indicator, pattern recognition (Choppy, HFE, ZLR, FAMIR, VT, GB100) 
  102. // Amibroker 4.70 
  103. /////////////////////////////// 
  104. Version(4.70); 
  105. //MarketHours = TimeNum()>=63000 AND TimeNum()<=125959; 
  106. //MArketClose= TimeNum()>=125959 AND TimeNum()<=130000; 
  107. z = CCI(14); 
  108. z6 = CCI(6); 
  109. CCI50_var = CCI(50); 
  110. LSMA25 = LinearReg(C, 25 ); 
  111. EMA34 = EMA(C,34); 
  112. PI = atan(1.00) * 4; 
  113. periods = 30; 
  114. HighHigh = HHV(H, periods); 
  115. LowLow = LLV(L, periods); 
  116. range = 25 / (HighHigh - LowLow) * LowLow; 
  117. TTMperiod = 6; 
  118. Low_ma = EMA(L, TTMperiod); 
  119. High_ma = EMA(H, TTMperiod); 
  120. Low_third = (High_ma - Low_ma) / 3 + Low_ma; 
  121. High_third = 2 * (High_ma - Low_ma) / 3 + Low_ma; 
  122. tempnum = Now( 4 ) - TimeNum(); 
  123. TimeRem = Interval() - ((int(tempnum[BarCount - 1] / 100) * 60) + (tempnum[BarCount - 1] - int(tempnum[BarCount - 1] / 100) * 100)); 
  124. if (TimeRem[BarCount - 1] < 0) TimeRem = 0; 
  125. TitleTimeRem = EncodeColor(colorLightGrey) + "Time Remaining: "; 
  126. MinuteVar = int(TimeRem / 60); 
  127. SecondsVar = int(frac(TimeRem / 60) * 60); 
  128. if (TimeRem[BarCount - 1] > 60) 
  129. TitleTimeRem = TitleTimeRem + EncodeColor(colorWhite) + MinuteVar + ":" + WriteIf(SecondsVar > 9, "", "0") + SecondsVar; 
  130. else if (TimeRem[BarCount - 1] > 20) 
  131. TitleTimeRem = TitleTimeRem + EncodeColor(colorYellow) + MinuteVar + ":" + WriteIf(SecondsVar > 9, "", "0") + SecondsVar; 
  132. else 
  133. TitleTimeRem = TitleTimeRem + EncodeColor(colorLime) + MinuteVar + ":" + WriteIf(SecondsVar > 9, "", "0") + SecondsVar; 
  134. if(SelectedValue(CCI50_var) < 0) 
  135. CCI50Title = EncodeColor(colorRed); 
  136. else 
  137. CCI50Title = EncodeColor(colorLime); 
  138. CCI50Title = CCI50Title + "CCI 50 = " + round(CCI50_var) + ", "; 
  139. stop_range = IIf(O < C, IIf((H - O) < (C - L), C - L, H - O), 
  140. IIf((O - L) < (H - C), H - C, O - L)); 
  141. StopTitle = EncodeColor(colorWhite) + "Stop = " + EncodeColor(colorYellow); 
  142. StopTitle = StopTitle + StrToNum(NumToStr(stop_range, 4.4)); 
  143. x1_EMA34 = 0; 
  144. x2_EMA34 = 1; 
  145. y1_EMA34 = 0; 
  146. y2_EMA34 = (Ref(EMA34, -1) - EMA34) / Avg * range; 
  147. c_EMA34 = sqrt((x2_EMA34 - x1_EMA34)*(x2_EMA34 - x1_EMA34) + (y2_EMA34 - y1_EMA34)*(y2_EMA34 - y1_EMA34)); 
  148. angle_EMA34 = round(180 * acos((x2_EMA34 - x1_EMA34)/c_EMA34) / PI); 
  149. TitleAngleEMA34 = EncodeColor(colorWhite) + "nEMA34 angle = "; 
  150. angle_EMA34 = IIf(y2_EMA34 > 0, - angle_EMA34, angle_EMA34); 
  151. if(SelectedValue(angle_EMA34) >= 25) 
  152. TitleAngleEMA34 = TitleAngleEMA34 + EncodeColor(colorTurquoise); 
  153. else if(SelectedValue(angle_EMA34) <= -25) 
  154. TitleAngleEMA34 = TitleAngleEMA34 + EncodeColor(colorRed); 
  155. else if(SelectedValue(angle_EMA34) >= 5) 
  156. TitleAngleEMA34 = TitleAngleEMA34 + EncodeColor(colorTurquoise); 
  157. else if(SelectedValue(angle_EMA34) <= -5) 
  158. TitleAngleEMA34 = TitleAngleEMA34 + EncodeColor(colorRed); 
  159. else 
  160. TitleAngleEMA34 = TitleAngleEMA34 + EncodeColor(colorYellow); 
  161. TitleAngleEMA34 = TitleAngleEMA34 + angle_EMA34; 
  162. x1_LSMA25 = 0; 
  163. x2_LSMA25 = 1; 
  164. y1_LSMA25 = 0; 
  165. y2_LSMA25 = (Ref(LSMA25, -1) - LSMA25) / Avg * range; 
  166. c_LSMA25 = sqrt((x2_LSMA25 - x1_LSMA25)*(x2_LSMA25 - x1_LSMA25) + (y2_LSMA25 - y1_LSMA25)*(y2_LSMA25 - y1_LSMA25)); 
  167. angle_LSMA25 = round(180 * acos((x2_LSMA25 - x1_LSMA25)/c_LSMA25) / PI); 
  168. TitleAngleLSMA25 = EncodeColor(colorWhite) + "LSMA25 angle = "; 
  169. angle_LSMA25 = IIf(y2_LSMA25 > 0, - angle_LSMA25, angle_LSMA25); 
  170. if(SelectedValue(angle_LSMA25) >= 25) 
  171. TitleAngleLSMA25 = TitleAngleLSMA25 + EncodeColor(colorTurquoise); 
  172. else if(abs(SelectedValue(angle_LSMA25)) <= -25) 
  173. TitleAngleLSMA25 = TitleAngleLSMA25 + EncodeColor(colorRed); 
  174. else if(SelectedValue(angle_LSMA25) >= 5) 
  175. TitleAngleLSMA25 = TitleAngleLSMA25 + EncodeColor(colorTurquoise); 
  176. else if(SelectedValue(angle_LSMA25) <= -5) 
  177. TitleAngleLSMA25 = TitleAngleLSMA25 + EncodeColor(colorRed); 
  178. else 
  179. TitleAngleLSMA25 = TitleAngleLSMA25 + EncodeColor(colorYellow); 
  180. TitleAngleLSMA25 = TitleAngleLSMA25 + angle_LSMA25; 
  181. TitleTrending = WriteIf((abs(angle_EMA34) >= 15) AND (abs(angle_EMA34 + angle_LSMA25) >= 50), EncodeColor(colorWhite) + ", SW = " + EncodeColor(colorLime) + "TRENDING", 
  182. WriteIf((abs(angle_EMA34) >= 5) AND (((angle_EMA34 >= 0) AND (angle_LSMA25 >= 0)) OR ((angle_EMA34 <= 0) AND (angle_LSMA25 <= 0))) AND (abs(angle_EMA34 + angle_LSMA25) >= 30), EncodeColor(colorWhite) + ", SW = " + EncodeColor(colorYellow) + "NORMAL", 
  183. EncodeColor(colorWhite) + ", SW = " + EncodeColor(colorRed) + "FLAT")); 
  184. SW = IIf((abs(angle_EMA34) >= 15) AND (abs(angle_EMA34 + angle_LSMA25) >= 50), IIf(angle_LSMA25 > 0, 2, -2), 
  185. IIf((abs(angle_EMA34) >= 5) AND (((angle_EMA34 >= 0) AND (angle_LSMA25 >= 0)) OR ((angle_EMA34 <= 0) AND (angle_LSMA25 <= 0))) AND (abs(angle_EMA34 + angle_LSMA25) >= 30), IIf(angle_LSMA25 > 0, 1, -1), 0)); 
  186. // Colour the bars for Woodies Trend Following 
  187. Plusbars = BarsSince(z < 0); 
  188. Minusbars = BarsSince(z > 0); 
  189. TrendBarCount = 6; 
  190. Color[0] = colorDefault; 
  191. Trend[0] = 0; 
  192. TTMColor[0] = colorDefault; 
  193. for( i = 1; i < BarCount; i++ ) 
  194. if (C[i] > High_third[i]) 
  195. TTMColor[i] = colorDarkGreen; 
  196. else if (C[i] < Low_third[i]) 
  197. TTMColor[i] = colorDarkRed; 
  198. else 
  199. TTMColor[i] = TTMColor[i - 1]; 
  200. if (Plusbars[i] >= TrendBarCount) 
  201. Trend[i] = 1; 
  202. else if (Minusbars[i] >= TrendBarCount) 
  203. Trend[i] = -1; 
  204. else 
  205. Trend[i] = Trend[i - 1]; 
  206. if (Trend[i] == 1) 
  207. if (Minusbars[i] == TrendBarCount - 1) 
  208. Color[i] = colorYellow; 
  209. else if (z[i] < 0) 
  210. Color[i] = colorBlack; 
  211. else 
  212. Color[i] = colorLime; 
  213. else if (Trend[i] == -1) 
  214. if (Plusbars[i] == TrendBarCount - 1) 
  215. Color[i] = colorYellow; 
  216. else if (z[i] >= 0) 
  217. Color[i] = colorBlack; 
  218. else 
  219. Color[i] = colorRed; 
  220. else 
  221. Color[i] = colorDefault; 
  222. // CCI Line 
  223. Plot(z,"CCI 14", colorBlack, styleLine | styleThick); 
  224. // Turbo CCI 
  225. Plot(z6,"CCI 6", colorDarkYellow, styleLine | styleNoLabel); 
  226. // zero line 25lsma 
  227. Plot(0,"", IIf(C > LSMA25,colorLime,IIf(C<LSMA25,colorRed,colorTeal)), 
  228. styleDots | styleNoLine | styleThick | styleNoLabel); 
  229. // CCI Histogram 
  230. Plot(z,"", Color, styleHistogram | styleThick | styleNoLabel); 
  231. // CCI 50 
  232. //Plot(CCI50_var,"CCI 50", IIf(CCI50_var < 0, colorDarkRed,colorDarkGreen), styleLine | styleNoLabel); 
  233. // Set up color for the 100s, green if 34ema above red if below 
  234. //Color = IIf(C > EMA34, colorGreen, 
  235. // IIf(C == EMA34, colorTeal, colorRed)); 
  236. //Set Color for the SW 
  237. ColorSW = IIf(abs(SW) == 2, colorLime, 
  238. IIf(abs(SW) == 1, colorYellow, colorRed)); 
  239. Color=colorWhite; 
  240. // Plot the 100s 
  241. //Plot(100,"",Color,styleDashed|styleNoLabel); 
  242. //Plot(-100,"",Color,styleDashed|styleNoLabel); 
  243. ColorANGLE_EMA = IIf(angle_EMA34 >=5, colorTurquoise, 
  244. IIf(angle_EMA34 <=-5, colorRed, colorYellow)); 
  245. //ColorANGLE_EMA1 = IIf(angle_EMA34 >=25, colorTurquoise, 
  246. // IIf(angle_EMA34 <=-25, colorRed, colorBlack)); 
  247. //ColorANGLE_EMA = IIf(abs(angle_EMA34) >=25, colorGreen, 
  248. // IIf(abs(angle_EMA34) >=15, colorYellow, colorRed)); 
  249. Plot(100,"", ColorANGLE_EMA , styleDashed | styleThick | styleNoLabel); 
  250. Plot(-100,"", ColorANGLE_EMA , styleDashed | styleThick | styleNoLabel); 
  251. // Plot the 50s 
  252. Plot(50,"", colorDarkGrey, styleDashed | styleNoLabel); 
  253. Plot(-50,"", colorDarkGrey , styleDashed | styleNoLabel); 
  254. //Plot(50,"", TTMColor, styleDots | styleNoLine | styleNoLabel); 
  255. //Plot(-50,"", TTMColor, styleDots | styleNoLine | styleNoLabel); 
  256. // Plot the 200s 
  257. Plot(200,"", ColorSW, styleThick | styleNoLabel); 
  258. Plot(-200,"", ColorSW, styleThick | styleNoLabel); 
  259. // Plot the grids 
  260. PlotGrid(0); 
  261. PlotGrid(50); 
  262. PlotGrid(-50); 
  263. PlotGrid(-100); 
  264. PlotGrid(100); 
  265. PlotGrid(-200); 
  266. PlotGrid(200); 
  267. // choppy 
  268. A= (HHV(z,10)<=100 AND LLV(z,10)>=-100); 
  269. B= (Ref(z,-1)>200 AND z<200) OR (Ref(z,-1)<-200 AND z>-200); 
  270. bs_a=BarsSince(A); 
  271. bs_b=BarsSince(B); 
  272. bars = IIf( bs_A < Bs_B, bs_a, 0); 
  273. // ZLR Long 
  274. uptrend_a=BarsSince(z<0); 
  275. uptrend_b=BarsSince(z>0); 
  276. Linex_long=Ref(z,-1)>100 AND z<100; 
  277. barsfromline_long=BarsSince(Linex_long); 
  278. CCIhook_long=z>Ref(z,-1) AND Ref(z,-1)>-100 AND Ref(z,-1)<Ref(z,-2) AND Ref(z,-2)>-100 AND z>0; 
  279. SW_trendinglong= sw==1 OR sw==2; 
  280. zlrlong= (Ref(angle_ema34,-2)>=5 AND Ref(angle_ema34,-1)>=5 AND angle_ema34>=5) AND SW_trendinglong AND z<120 AND barsfromline_long<10 AND CCIhook_long AND (uptrend_a>=6 AND z>-100 OR 
  281. (uptrend_b<6 AND LLV(z,uptrend_b)>-100 AND z>-100 AND (Ref(uptrend_a,-6)>=6 AND z>-100 OR Ref(uptrend_a,-5)>=6 AND z>-100 OR Ref(uptrend_a,-4)>=6 AND z>-100 OR Ref(uptrend_a,-3)>=6 AND z>-100 OR 
  282. Ref(uptrend_a,-2)>=6 AND z>-100 OR Ref(uptrend_a,-1)>=6 AND z>-100))); 
  283. PlotShapes(IIf(zlrlong,shapeDigit1,shapeNone),colorLime,0,0,-15); 
  284. // ZLR Short 
  285. downtrend_a=BarsSince(z>0); 
  286. downtrend_b=BarsSince(z<0); 
  287. Linex_short=Ref(z,-1)<=-100 AND z>=-100; 
  288. barsfromline_short=BarsSince(Linex_short); 
  289. CCIhook_short=z<Ref(z,-1) AND Ref(z,-1)<100 AND Ref(z,-1)>Ref(z,-2) AND Ref(z,-2)<100 AND z<0; 
  290. SW_trendingshort= sw==-1 OR sw==-2; 
  291. zlrshort= (Ref(angle_ema34,-2)<=-5 AND Ref(angle_ema34,-1)<=-5 AND angle_ema34<=-5) AND SW_trendingshort AND z>-120 AND barsfromline_short<10 AND CCIhook_short AND (downtrend_a>=6 AND z<100 OR 
  292. (downtrend_b<6 AND HHV(z,downtrend_b)<100 AND z<100 AND (Ref(downtrend_a,-6)>=6 AND z<100 OR Ref(downtrend_a,-5)>=6 AND z<100 OR Ref(downtrend_a,-4)>=6 AND z<100 OR 
  293. Ref(downtrend_a,-3)>=6 AND z<100 OR Ref(downtrend_a,-2)>=6 AND z<100 OR Ref(downtrend_a,-1)>=6 AND z<100))); 
  294. PlotShapes(IIf(zlrshort,shapeDigit1+ shapePositionAbove,shapeNone),colorRed,0,0,-15); 
  295. // Famir Short 
  296. Famir_downtrend_a=BarsSince(z<0); 
  297. Famir_downtrend_b=BarsSince(z>0); 
  298. FamirLinex_short=Ref(z,-1)>=100 AND z<100; 
  299. Famir_barsfromline_short=BarsSince(FamirLinex_short); 
  300. Famir_pivotshort= (Ref(z,-2)<Ref(z,-1)AND Ref(z,-1)<=55 AND Ref(z,-2)<=55) OR (Ref(z,-3)<Ref(z,-1)AND Ref(z,-1)<=55 AND Ref(z,-2)<=55 AND Ref(z,-3)<=55) 
  301. OR (Ref(z,-4)<Ref(z,-1) AND Ref(z,-1)<=55 AND Ref(z,-2)<=55 AND Ref(z,-3)<=55); 
  302. Famirhook_short=Famir_pivotshort AND z<Ref(LLV(z,Famir_barsfromline_short),-1) AND (z>=-55 AND z<=55) AND C<Lsma25; 
  303. Famirshort=  Famir_barsfromline_short<10 AND Famirhook_short AND (Famir_downtrend_a>=6 OR 
  304. (Famir_downtrend_b<6 AND (Ref(Famir_downtrend_a,-6)>=6 OR Ref(Famir_downtrend_a,-5)>=6 OR Ref(Famir_downtrend_a,-4)>=6 OR 
  305. Ref(Famir_downtrend_a,-3)>=6 OR Ref(Famir_downtrend_a,-2)>=6 OR Ref(Famir_downtrend_a,-1)>=6))) AND C<LSMA25; 
  306. PlotShapes(IIf(famirShort,shapeDigit2+ shapePositionAbove,shapeNone),colorRed,0,0,-15); 
  307. // Famir Long 
  308. Famir_uptrend_a=BarsSince(z<0); 
  309. Famir_uptrend_b=BarsSince(z>0); 
  310. FamirLinex_long=Ref(z,-1)<=-100 AND z>-100; 
  311. Famir_barsfromline_long=BarsSince(FamirLinex_long); 
  312. Famir_pivotlong= (Ref(z,-2)>Ref(z,-1)AND Ref(z,-1)>=-55 AND Ref(z,-2)>=-55) OR (Ref(z,-3)>Ref(z,-1) AND Ref(z,-1)>=-55 AND Ref(z,-2)>=-55 AND Ref(z,-3)>=-55) 
  313. OR (Ref(z,-4)>Ref(z,-1) AND Ref(z,-1)>=-55 AND Ref(z,-2)>=-55 AND Ref(z,-3)>=-55); 
  314. Famirhook_long=Famir_pivotlong AND z>Ref(HHV(z,Famir_barsfromline_long),-1) AND (z>=-55 AND z<=55) AND C>Lsma25; 
  315. Famirlong= Famir_barsfromline_long<10 AND Famirhook_long AND (Famir_uptrend_a<6 OR 
  316. (Famir_uptrend_b>=6 AND(Ref(Famir_uptrend_a,-6)<6 OR Ref(Famir_uptrend_a,-5)<6 OR Ref(Famir_uptrend_a,-4)<6 OR Ref(Famir_uptrend_a,-3)<6 OR 
  317. Ref(Famir_uptrend_a,-3)<6 OR Ref(Famir_uptrend_a,-2)<6 OR Ref(Famir_uptrend_a,-1)<6))) AND C>LSMA25; 
  318. PlotShapes(IIf(famirlong,shapeDigit2,shapeNone),colorLime,0,0,-15); 
  319. // HFE 
  320. HFEshort=(Ref(z,-1)>200 AND z<200); 
  321. HFElong=(Ref(z,-1)<-200 AND z>-200); 
  322. HFE= (Ref(z,-1)>200 AND z<200) OR (Ref(z,-1)<-200 AND z>-200); 
  323. PlotShapes(IIf(Ref(z,-1)>200 AND z<200,shapeDownTriangle,shapeNone),IIf(Ref(z,-1)>200 AND z<200,colorYellow,shapeNone),0,200,-20); 
  324. PlotShapes(IIf(Ref(z,-1)<-200 AND z>-200,shapeUpTriangle,shapeNone),IIf(Ref(z,-1)<-200 AND z>-200,colorYellow,shapeNone),0,-200,-20); 
  325. // VT Long 
  326. vtLinex_long=Ref(z,-1)<=-200 AND z>-200; 
  327. vt_barsfromline_long=BarsSince(vtLinex_long); 
  328. vtlong_A = z<-200; 
  329. vtlong_B = Ref(z,-1)<=Ref(z,-2) OR 
  330. Ref(z,-2)<=Ref(z,-3) OR 
  331. Ref(z,-3)<=Ref(z,-4) OR 
  332. Ref(z,-4)<=Ref(z,-5) OR 
  333. Ref(z,-5)<=Ref(z,-6) OR 
  334. Ref(z,-6)<=Ref(z,-7) OR 
  335. Ref(z,-7)<=Ref(z,-8); 
  336. vtlong_bs_A = BarsSince(vtlong_A); 
  337. vtlong_bs_B = BarsSince(vtlong_b); 
  338. Vtlong_bars = vtlong_bs_A>=5 AND vtlong_bs_B<=0; 
  339. vt_pivotlong= Vtlong_bars; 
  340. swinghibars=BarsSince(z>Ref(HHV(z,vt_barsfromline_long),-1)); 
  341. vthook_long= vt_pivotlong AND z>Ref(HHV(z,vt_barsfromline_long),-1); 
  342. vtlong= vt_barsfromline_long<=11 AND (Ref(HHV(z,vt_barsfromline_long),-1)<0 OR HHV(z,vt_barsfromline_long)<=0) AND vthook_long AND C>Lsma25 AND Ref(swinghibars>=2,-1) AND z>-100; 
  343. PlotShapes(IIf(vtlong,shapeDigit3,shapeNone),colorLime,0,Min(z,0),-45); 
  344. // VT Short 
  345. vtLinex_short=Ref(z,-1)>=200 AND z<200; 
  346. vt_barsfromline_short=BarsSince(vtLinex_short); 
  347. vtshort_A = z>200 ; 
  348. vtshort_B =Ref(z,-1)>=Ref(z,-2) OR 
  349. Ref(z,-2)>=Ref(z,-3) OR 
  350. Ref(z,-3)>=Ref(z,-4) OR 
  351. Ref(z,-4)>=Ref(z,-5) OR 
  352. Ref(z,-5)>=Ref(z,-6) OR 
  353. Ref(z,-6)>=Ref(z,-7) OR 
  354. Ref(z,-7)>=Ref(z,-8); 
  355. vtshort_bs_A = BarsSince(vtshort_A); 
  356. vtshort_bs_B = BarsSince(vtshort_b); 
  357. Vtshort_bars = vtshort_bs_A>=5 AND vtshort_bs_B<=0; 
  358. vt_pivotshort= Vtshort_bars; 
  359. swinglowbars= BarsSince(z<Ref(LLV(z,vt_barsfromline_short),-1)); 
  360. vthook_short= vt_pivotshort AND z<Ref(LLV(z,vt_barsfromline_short),-1); 
  361. vtshort= vt_barsfromline_short<=11 AND (Ref(LLV(z,vt_barsfromline_short),-1)>0 OR LLV(z,vt_barsfromline_short)>0) AND vthook_short AND C<Lsma25 AND Ref(swinglowbars>=2,-1) AND z<100; 
  362. PlotShapes(IIf(vtshort,shapeDigit3+ shapePositionAbove,shapeNone),colorRed,0,Max(z,0),-45); 
  363. // GB 100 Long 
  364. uptrend_a=BarsSince(z<0); 
  365. uptrend_b=BarsSince(z>0); 
  366. Linex_longGB=Ref(z,-1)>100 AND z<100; 
  367. barsfromline_longGB=BarsSince(Linex_longGB); 
  368. CCIhook_longGB= Ref(z,-1)<-100 AND z>-100; 
  369. GB100long= barsfromline_longGB<20 AND angle_EMA34>=5 AND CCIhook_longGB AND (uptrend_b<6 AND(Ref(uptrend_a,-6)>=6 OR Ref(uptrend_a,-5)>=6 OR Ref(uptrend_a,-4)>=6 OR Ref(uptrend_a,-3)>=6 OR 
  370. Ref(uptrend_a,-2)>=6 OR Ref(uptrend_a,-1)>=6)); 
  371. PlotShapes(IIf(GB100long,shapeDigit4,shapeNone),colorLime,0,0,-60); 
  372. // GB100 Short 
  373. downtrend_a=BarsSince(z>0); 
  374. downtrend_b=BarsSince(z<0); 
  375. Linex_shortGB=Ref(z,-1)<-100 AND z>-100; 
  376. barsfromline_shortGB=BarsSince(Linex_shortGB); 
  377. CCIhook_shortGB=Ref(z,-1)>100 AND z<100; 
  378. GB100short= barsfromline_shortGB<20 AND angle_EMA34<=-5 AND CCIhook_shortGB AND 
  379. (downtrend_b<6 AND (Ref(downtrend_a,-6)>=6 OR Ref(downtrend_a,-5)>=6 OR Ref(downtrend_a,-4)>=6 OR 
  380. Ref(downtrend_a,-3)>=6 OR Ref(downtrend_a,-2)>=6 OR Ref(downtrend_a,-1)>=6)); 
  381. PlotShapes(IIf(GB100short,shapeDigit4+ shapePositionAbove,shapeNone),colorRed,0,0,-60); 
  382. // MR Long 
  383. MRuptrend_a=BarsSince(z<0); 
  384. MRuptrend_b=BarsSince(z>0); 
  385. MRLinex_long=Ref(z,-1)>100 AND z<100; 
  386. MRbarsfromline_long=BarsSince(MRLinex_long); 
  387. MRCCIhook_long=z>Ref(z,-1) AND Ref(z,-1)<=Ref(z,-2) AND Ref(z,-2)<Ref(z,-3) AND z>-100 AND z<100; 
  388. MRlong= (Ref(angle_ema34,-2)>=5 AND Ref(angle_ema34,-1)>=5 AND angle_ema34>=5) AND Ref(z,-1)<=0 AND MRCCIhook_long AND (MRuptrend_a>=6 AND z>-100 OR 
  389. (MRuptrend_b<6 AND LLV(z,MRuptrend_b)>-100 AND z>-100 AND (Ref(MRuptrend_a,-6)>=6 AND z>-100 OR Ref(MRuptrend_a,-5)>=6 AND z>-100 OR Ref(MRuptrend_a,-4)>=6 AND z>-100 OR Ref(MRuptrend_a,-3)>=6 AND z>-100 OR 
  390. Ref(MRuptrend_a,-2)>=6 AND z>-100 OR Ref(MRuptrend_a,-1)>=6 AND z>100))); 
  391. PlotShapes(IIf(MRlong,shapeDigit5,shapeNone),colorLime,0,0,-50); 
  392. // MR Short 
  393. MRdowntrend_a=BarsSince(z>0); 
  394. MRdowntrend_b=BarsSince(z<0); 
  395. MRLinex_short=Ref(z,-1)<=-100 AND z>=-100; 
  396. MRbarsfromline_short=BarsSince(MRLinex_short); 
  397. MRCCIhook_short=z<Ref(z,-1) AND Ref(z,-1)>=Ref(z,-2) AND Ref(z,-2)>Ref(z,-3) AND z<100 AND z>-100; 
  398. MRshort= (Ref(angle_ema34,-2)<=-5 AND Ref(angle_ema34,-1)<=-5 AND angle_ema34<=-5) AND Ref(z,-1)>=0 AND MRCCIhook_short AND (MRdowntrend_a>=6 AND z<100 OR 
  399. (MRdowntrend_b<6 AND HHV(z,MRdowntrend_b)<100 AND z<100 AND (Ref(MRdowntrend_a,-6)>=6 AND z<100 OR Ref(MRdowntrend_a,-5)>=6 AND z<100 OR Ref(MRdowntrend_a,-4)>=6 AND z<100 OR 
  400. Ref(MRdowntrend_a,-3)>=6 AND z<100 OR Ref(MRdowntrend_a,-2)>=6 AND z<100 OR Ref(MRdowntrend_a,-1)>=6 AND z<100))); 
  401. PlotShapes(IIf(MRshort,shapeDigit5+ shapePositionAbove,shapeNone),colorRed,0,0,-50);
  402. // Columns for exploration 
  403. Filter =(zlrlong OR famirlong OR Vtlong OR gb100long OR mrlong  OR hfe OR zlrshort OR famirshort OR vtshort OR gb100short OR mrlong OR (A OR bars)) AND 1 ; 
  404. Buy = (zlrlong OR famirlong OR Vtlong OR gb100long OR mrlong);// AND MarketHours; 
  405. Sell= (z<Ref(z,-1) AND Ref(z,-1)<Ref(z,-2) AND C<O);// OR MArketClose; ; 
  406. Short = (zlrshort OR famirshort OR Vtshort OR gb100short OR mrshort); //AND MarketHours; 
  407. Cover = (z>Ref(z,-1) AND Ref(z,-1)>Ref(z,-2) AND C>O);// OR MArketClose; 
  408. AddColumn( IIf(zlrlong,1,IIf(zlrshort,-1,0)) ,"ZLR",1.0,colorWhite,IIf(zlrlong,colorGreen,IIf(zlrshort,colorRed,colorBlack))); 
  409. AddColumn(IIf(famirlong,1,IIf(famirShort,-1,0)),"Famir",1.0,colorWhite,IIf(famirlong,colorGreen,IIf(famirShort,colorRed,colorBlack))); 
  410. AddColumn(IIf(vtlong,1,IIf(vtShort,-1,0)),"Vegas",1.0,colorWhite,IIf(vtlong,colorGreen,IIf(vtShort,colorRed,colorBlack))); 
  411. AddColumn(IIf(gb100long,1,IIf(gb100Short,-1,0)),"GB100",1.0,colorWhite,IIf(gb100long,colorGreen,IIf(gb100Short,colorRed,colorBlack))); 
  412. AddColumn( IIf(mrlong,1,IIf(mrShort,-1,0)) ,"MR",1.0,colorWhite,IIf(mrlong,colorGreen,IIf(mrShort,colorRed,colorBlack))); 
  413. AddColumn(IIf(hfelong,1,IIf(hfeshort,-1,0)),"HFE",1.0,colorWhite,IIf(hfelong,colorGreen,IIf(hfeshort,colorRed,colorBlack))); 
  414. AddColumn(IIf(A OR bars,1,IIf(A OR bars,-1,0)),"Choppy",1.0,colorWhite,IIf(A OR bars,colorDarkYellow,IIf(A OR bars,colorDarkYellow,colorBlack))); 
  415. //Plot Sell Arrows 
  416. //Sell1=ExRem(Sell,Buy); 
  417. //Cover1=ExRem(Cover,Short); 
  418. //PlotShapes(IIf(Sell1,shapeDownArrow,shapeNone),colorLime,0,200,10); 
  419. //PlotShapes(IIf(Cover1,shapeDownArrow,shapeNone),colorRed,0,200,10); 
  420. //Signal Title 
  421. Signaltitle= WriteIf(zlrlong,EncodeColor(colorYellow) + "ZLR ", 
  422. WriteIf(zlrshort,EncodeColor(colorYellow) + "ZLR ", WriteIf(MRShort,EncodeColor(colorYellow) + "MR ", 
  423. WriteIf(MRlong,EncodeColor(colorYellow) + "MR ", 
  424. WriteIf(Famirshort,EncodeColor(colorYellow) + "FAMIR ", 
  425. WriteIf(Famirlong,EncodeColor(colorYellow) + "FAMIR ",WriteIf(HFE,EncodeColor(colorYellow) + "HFE ",WriteIf(VTlong,EncodeColor(colorYellow) + "VT ", 
  426. WriteIf(VTshort,EncodeColor(colorYellow) + "VT ",WriteIf(GB100long,EncodeColor(colorYellow) + "GB100 ", 
  427. WriteIf(Gb100short,EncodeColor(colorYellow) + "GB100 "," "))))))))))); 
  428. //Choppy Title 
  429. ChoppyTitle= WriteIf(A,EncodeColor(colorYellow) + "CHOPPY",WriteIf(bars,EncodeColor(colorYellow) + "CHOPPY","")); 
  430. //Exit Title 
  431. //Exittitle=WriteIf(Sell1,EncodeColor(colorLime) + "MLAY EXIT LONG",WriteIf(Cover1,EncodeColor(colorRed) + "MPLAY EXIT SHORT","")); 
  432. //Distance from EMA34
  433. //Ctoema=round(C-EMA34);
  434. //Ctitle= WriteIf(Ctoema>0," points above EMA,",WriteIf(Ctoema<0," points below EMA,"," on EMA,"));
  435. //Number of trending bars
  436. //anglelimit= ( angle_ema34<5 AND angle_ema34>-5)  OR (angle_ema34<5 AND angle_ema34>-5);
  437. //angletitle= BarsSince(anglelimit);
  438. // Price Panel
  439. Lastprice=Ref(C,-1);
  440. Lastpricetitlehi= WriteIf(H>Ref(H,-1),EncodeColor(colorLime) + Ref(H,-1) + "  " + H , EncodeColor(colorBlack)+ Ref(H,-1) + "  " + H);
  441. Lastpricetitlelo= WriteIf(L<Ref(L,-1),EncodeColor(colorRed) + Ref(L,-1) + "  " + L , EncodeColor(colorBlack)+ Ref(L,-1) + "  " + L);
  442. //Title 
  443. Title = "" + Name() + ", " + Interval(2) + ", " + Date() + "n" + 
  444. //EncodeColor(colorBlack) + "CCI 14 = " + round(z) + EncodeColor(colorWhite) + ", " + EncodeColor(colorDarkYellow) + 
  445. //"CCI 6 = " + round(z6) + EncodeColor(colorWhite) + ", " + 
  446. TitleTimeRem + EncodeColor(colorWhite) + 
  447. TitleAngleEMA34 +// EncodeColor(colorWhite) + ", " + TitleAngleLSMA25 + 
  448. TitleTrending + "n" + Lastpricetitlehi + "n" + EncodeColor(colorSkyblue) + C + "n" + Lastpricetitlelo + "n" +
  449. EncodeColor(colorWhite)+"Signal = "+Signaltitle + ChoppyTitle; //+ EncodeColor(colorWhite) + Ctoema + Ctitle +  EncodeColor(colorWhite) + " " + angletitle + " " + "bars trending, " + "  " + " "+Exittitle; 
  450. //Mplay Exit 
  451. MplayExitLong= z<Ref(z,-1) AND Ref(z,-1)<Ref(z,-2) AND C<O; 
  452. MplayExitShort= z>Ref(z,-1) AND Ref(z,-1)>Ref(z,-2) AND C>O; 
  453. PlotShapes(IIf(MplayExitLong,shapeSmallCircle,shapeNone),colorLime,0,200,-10); 
  454. PlotShapes(IIf(MplayExitShort,shapeSmallCircle,shapeNone),colorRed,0,200,-10);