Advertisement
Guest User

IDDQD-alpha-0.51

a guest
Oct 31st, 2014
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.19 KB | None | 0 0
  1. //╔════════════════════════════════════════════════════════════════════════════╗
  2. //║ < IDDQD-α > ║
  3. //╟──────────────┬─────────────────────────────────────────────────────────────╢
  4. //║ Description: │ An indicator conglomerate combining Wavetrend from LB, ║
  5. //║ │ RSI and MFI with buy and sell signals ║
  6. //╟──────────────┼─────────────────────────────────────────────────────────────╢
  7. //║ Authors: │ liHard, Lazybear for Wavetrend ║
  8. //╟──────────────┼─────────────────────────────────────────────────────────────╢
  9. //║ Version: │ 0.51 2014_10_8 ║
  10. //╚══════════════╧═════════════════════════════════════════════════════════════╝
  11.  
  12. study(title="IDDQD-α-0.51", shorttitle="IDDQD-α-0.51")
  13.  
  14. alt_symb = input(title="Symbol", type=symbol, defval="BTCE:BTCUSD")
  15. set_symbol = input(false, "Set symbol")
  16. close_src = set_symbol ? security(alt_symb, period, close) : close
  17. volume_src = set_symbol ? security(alt_symb, period, volume) : volume
  18. hlc3_src = set_symbol ? security(alt_symb, period, hlc3) : hlc3
  19.  
  20. //---------------------------------------------------------------------
  21. //--- Wavetrend -------------------------------------------------------
  22. wt_n1 = input(10, "WT Channel Length")
  23. wt_n2 = input(21, "WT Average Length")
  24. wt_ob_lev1 = input(74, "WT Overbought Level 1")
  25. //wt_ob_lev2 = input(53, "WT Overbought Level 2")
  26. wt_os_lev1 = input(15, "WT Oversold Level 1")
  27. //wt_os_lev2 = input(-53, "WT Oversold Level 2")
  28. wt_ap = hlc3_src
  29. wt_esa = ema(wt_ap, wt_n1)
  30. wt_d = ema(abs(wt_ap - wt_esa), wt_n1)
  31. wt_ci = (wt_ap - wt_esa) / (0.015 * wt_d)
  32. wt_tci = ema(wt_ci, wt_n2)
  33. wt1 = wt_tci
  34. wt2 = sma(wt1,4)
  35.  
  36. //---------------------------------------------------------------------
  37. //--- RSI -------------------------------------------------------------
  38. rsi_length = input(title="RSI length", type=integer, defval=14, minval=1, maxval=2000)
  39. rsi_ob_lev = input(70, "RSI overbought level")
  40. rsi_os_lev = input(30, "RSI oversold level")
  41. rsi = rsi(close_src, rsi_length)
  42.  
  43. //---------------------------------------------------------------------
  44. //--- MFI -------------------------------------------------------------
  45. mfi_length = input(title="MFI length", type=integer, defval=14, minval=1, maxval=2000)
  46. mfi_ob_lev = input(80, "MFI overbought level")
  47. mfi_os_lev = input(20, "MFI oversold level")
  48. mfi_src = hlc3_src
  49. mfi_upper = sum(volume_src * (change(mfi_src) <= 0 ? 0 : mfi_src), mfi_length)
  50. mfi_lower = sum(volume_src * (change(mfi_src) >= 0 ? 0 : mfi_src), mfi_length)
  51. mfi = rsi(mfi_upper, mfi_lower)
  52.  
  53. rsi_mfi_dif = mfi - rsi //correlation(rsi, mfi, 5)
  54.  
  55. //---------------------------------------------------------------------
  56. //--- buy/sell signals ------------------------------------------------
  57. wt_cor = (wt1+100)*0.5
  58.  
  59. //---------------------------------------------------------------------
  60. //--- ob/os calc 0 ----------------------------------------------------
  61. rsi_win = input(3, "RSI window length", minval=1)
  62. mfi_win = input(3, "MFI window length", minval=1)
  63. wt_win = input(3, "WT window length", minval=1)
  64. wt_overbought = highest(wt_cor, wt_win) > wt_ob_lev1 ? 1 : 0
  65. wt_oversold = lowest(wt_cor, wt_win) < wt_os_lev1 ? 1 : 0
  66. mfi_overbought = highest(mfi, mfi_win) > mfi_ob_lev ? 1 : 0
  67. mfi_oversold = lowest(mfi, mfi_win) < mfi_os_lev ? 1 : 0
  68. rsi_overbought = highest(rsi, rsi_win) > rsi_ob_lev ? 1 : 0
  69. rsi_oversold = lowest(rsi, rsi_win) < rsi_os_lev ? 1 : 0
  70. //rsi_over_lev = rsi_overbought == 1 ? rsi_ob_lev : rsi_oversold == 1 ? rsi_os_lev : na
  71.  
  72. overbought_0 = rsi_overbought + mfi_overbought + wt_overbought >= 3
  73. oversold_0 = rsi_oversold + mfi_oversold + wt_oversold >= 3
  74. stupid_bgcolor_0 = overbought_0 ? #FF0000 : oversold_0 ? #00FF00 : #000000
  75. over_lev = overbought_0 ? 45 : oversold_0 ? 55 : na
  76.  
  77. wt_over_lev = wt_overbought ? 40 : wt_oversold ? 60 : na
  78. wt_stupid_bgcolor = wt_overbought ? #A00080 : wt_oversold ? #00A080 : #000000
  79.  
  80. //---------------------------------------------------------------------
  81. //--- plot ------------------------------------------------------------
  82. //plotshape(over_lev, "ob_os", shape.circle, location.absolute, stupid_bgcolor_0, 50, 0)
  83. plot(over_lev, color=stupid_bgcolor_0, style=linebr, linewidth=4)
  84.  
  85. plot(wt_over_lev, color=wt_stupid_bgcolor, style=linebr, linewidth=2)
  86.  
  87. wt_ob_line = hline(wt_ob_lev1, title="WT overbought", color=#252545)
  88. mfi_ob_line = hline(mfi_ob_lev, title="MFI overbought", color=#204020)
  89. rsi_ob_line = hline(rsi_ob_lev, title="RSI overbought", color=#000000)
  90. hline(50, color=#606060)
  91. rsi_os_line = hline(rsi_os_lev, title="RSI oversold", color=#000000)
  92. mfi_os_line = hline(mfi_os_lev, title="MFI oversold", color=#204020)
  93. wt_os_line = hline(wt_os_lev1, title="WT overbought", color=#252545)
  94. fill(rsi_ob_line, rsi_os_line, color=#505070, transp=70)
  95.  
  96. p2_diff = input( 20.0, "RSI MFI p2_diff")
  97. p1_diff = input( 10.0, "RSI MFI p1_diff")
  98. n1_diff = input(-10.0, "RSI MFI n1_diff")
  99. n2_diff = input(-20.0, "RSI MFI n2_diff")
  100. p2_color = #FF0000
  101. p1_color = #FFFF00
  102. n0_color = #000000
  103. n1_color = #0000FF
  104. n2_color = #00FF00
  105. dif_color = rsi_mfi_dif > p2_diff ? p2_color :
  106. rsi_mfi_dif > p1_diff ? p1_color :
  107. rsi_mfi_dif < n1_diff ? n1_color :
  108. rsi_mfi_dif < n2_diff ? n2_color :
  109. n0_color
  110. rsi_mfi_pos_dif = rsi_mfi_dif > p2_diff
  111. rsi_mfi_neg_dif = rsi_mfi_dif < n2_diff
  112.  
  113. mfi_gt_plot = plot(rsi_mfi_dif > 0 ? mfi : na, color=#000000, style=linebr)
  114. mfi_lt_plot = plot(rsi_mfi_dif < 0 ? mfi : na, color=#000000, style=linebr)
  115. //mfi_rsi_pos_dif_plot = plot(rsi_mfi_pos_dif ? mfi : na, color=#308010, style=linebr)
  116. //mfi_rsi_neg_dif_plot = plot(rsi_mfi_neg_dif ? mfi : na, color=#308010, style=linebr)
  117. //rsi_mfi_over_lev = rsi_mfi_pos_dif ? 35 : rsi_mfi_neg_dif ? 65 : na
  118. //plot(rsi_mfi_over_lev, color=dif_color, style=linebr, linewidth=1)
  119. //plot(rsi_mfi_dif+50, title="rsi_mfi_cor", color=#00FFFF, style=line, linewidth=1)
  120. //mfi_plot = plot(mfi, title="MFI", color=#000000, style=line)
  121. rsi_plot = plot(rsi, title="RSI", color=#FFFFFF, style=line, linewidth=1)
  122. fill(mfi_gt_plot, rsi_plot, #FF0000, 70)
  123. fill(mfi_lt_plot, rsi_plot, #00FF00, 75)
  124. plot(wt_cor, title="WT", color=#0060A0, style=line, linewidth=1)
  125. //fill(mfi_rsi_pos_dif_plot, rsi_plot, #FF0000, 80)
  126. //fill(mfi_rsi_neg_dif_plot, rsi_plot, #00FF00, 80)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement