Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //╔════════════════════════════════════════════════════════════════════════════╗
- //║ < IDDQD-α > ║
- //╟──────────────┬─────────────────────────────────────────────────────────────╢
- //║ Description: │ An indicator conglomerate combining Wavetrend from LB, ║
- //║ │ RSI and MFI with buy and sell signals ║
- //╟──────────────┼─────────────────────────────────────────────────────────────╢
- //║ Authors: │ liHard, Lazybear for Wavetrend ║
- //╟──────────────┼─────────────────────────────────────────────────────────────╢
- //║ Version: │ 0.51 2014_10_8 ║
- //╚══════════════╧═════════════════════════════════════════════════════════════╝
- study(title="IDDQD-α-0.51", shorttitle="IDDQD-α-0.51")
- alt_symb = input(title="Symbol", type=symbol, defval="BTCE:BTCUSD")
- set_symbol = input(false, "Set symbol")
- close_src = set_symbol ? security(alt_symb, period, close) : close
- volume_src = set_symbol ? security(alt_symb, period, volume) : volume
- hlc3_src = set_symbol ? security(alt_symb, period, hlc3) : hlc3
- //---------------------------------------------------------------------
- //--- Wavetrend -------------------------------------------------------
- wt_n1 = input(10, "WT Channel Length")
- wt_n2 = input(21, "WT Average Length")
- wt_ob_lev1 = input(74, "WT Overbought Level 1")
- //wt_ob_lev2 = input(53, "WT Overbought Level 2")
- wt_os_lev1 = input(15, "WT Oversold Level 1")
- //wt_os_lev2 = input(-53, "WT Oversold Level 2")
- wt_ap = hlc3_src
- wt_esa = ema(wt_ap, wt_n1)
- wt_d = ema(abs(wt_ap - wt_esa), wt_n1)
- wt_ci = (wt_ap - wt_esa) / (0.015 * wt_d)
- wt_tci = ema(wt_ci, wt_n2)
- wt1 = wt_tci
- wt2 = sma(wt1,4)
- //---------------------------------------------------------------------
- //--- RSI -------------------------------------------------------------
- rsi_length = input(title="RSI length", type=integer, defval=14, minval=1, maxval=2000)
- rsi_ob_lev = input(70, "RSI overbought level")
- rsi_os_lev = input(30, "RSI oversold level")
- rsi = rsi(close_src, rsi_length)
- //---------------------------------------------------------------------
- //--- MFI -------------------------------------------------------------
- mfi_length = input(title="MFI length", type=integer, defval=14, minval=1, maxval=2000)
- mfi_ob_lev = input(80, "MFI overbought level")
- mfi_os_lev = input(20, "MFI oversold level")
- mfi_src = hlc3_src
- mfi_upper = sum(volume_src * (change(mfi_src) <= 0 ? 0 : mfi_src), mfi_length)
- mfi_lower = sum(volume_src * (change(mfi_src) >= 0 ? 0 : mfi_src), mfi_length)
- mfi = rsi(mfi_upper, mfi_lower)
- rsi_mfi_dif = mfi - rsi //correlation(rsi, mfi, 5)
- //---------------------------------------------------------------------
- //--- buy/sell signals ------------------------------------------------
- wt_cor = (wt1+100)*0.5
- //---------------------------------------------------------------------
- //--- ob/os calc 0 ----------------------------------------------------
- rsi_win = input(3, "RSI window length", minval=1)
- mfi_win = input(3, "MFI window length", minval=1)
- wt_win = input(3, "WT window length", minval=1)
- wt_overbought = highest(wt_cor, wt_win) > wt_ob_lev1 ? 1 : 0
- wt_oversold = lowest(wt_cor, wt_win) < wt_os_lev1 ? 1 : 0
- mfi_overbought = highest(mfi, mfi_win) > mfi_ob_lev ? 1 : 0
- mfi_oversold = lowest(mfi, mfi_win) < mfi_os_lev ? 1 : 0
- rsi_overbought = highest(rsi, rsi_win) > rsi_ob_lev ? 1 : 0
- rsi_oversold = lowest(rsi, rsi_win) < rsi_os_lev ? 1 : 0
- //rsi_over_lev = rsi_overbought == 1 ? rsi_ob_lev : rsi_oversold == 1 ? rsi_os_lev : na
- overbought_0 = rsi_overbought + mfi_overbought + wt_overbought >= 3
- oversold_0 = rsi_oversold + mfi_oversold + wt_oversold >= 3
- stupid_bgcolor_0 = overbought_0 ? #FF0000 : oversold_0 ? #00FF00 : #000000
- over_lev = overbought_0 ? 45 : oversold_0 ? 55 : na
- wt_over_lev = wt_overbought ? 40 : wt_oversold ? 60 : na
- wt_stupid_bgcolor = wt_overbought ? #A00080 : wt_oversold ? #00A080 : #000000
- //---------------------------------------------------------------------
- //--- plot ------------------------------------------------------------
- //plotshape(over_lev, "ob_os", shape.circle, location.absolute, stupid_bgcolor_0, 50, 0)
- plot(over_lev, color=stupid_bgcolor_0, style=linebr, linewidth=4)
- plot(wt_over_lev, color=wt_stupid_bgcolor, style=linebr, linewidth=2)
- wt_ob_line = hline(wt_ob_lev1, title="WT overbought", color=#252545)
- mfi_ob_line = hline(mfi_ob_lev, title="MFI overbought", color=#204020)
- rsi_ob_line = hline(rsi_ob_lev, title="RSI overbought", color=#000000)
- hline(50, color=#606060)
- rsi_os_line = hline(rsi_os_lev, title="RSI oversold", color=#000000)
- mfi_os_line = hline(mfi_os_lev, title="MFI oversold", color=#204020)
- wt_os_line = hline(wt_os_lev1, title="WT overbought", color=#252545)
- fill(rsi_ob_line, rsi_os_line, color=#505070, transp=70)
- p2_diff = input( 20.0, "RSI MFI p2_diff")
- p1_diff = input( 10.0, "RSI MFI p1_diff")
- n1_diff = input(-10.0, "RSI MFI n1_diff")
- n2_diff = input(-20.0, "RSI MFI n2_diff")
- p2_color = #FF0000
- p1_color = #FFFF00
- n0_color = #000000
- n1_color = #0000FF
- n2_color = #00FF00
- dif_color = rsi_mfi_dif > p2_diff ? p2_color :
- rsi_mfi_dif > p1_diff ? p1_color :
- rsi_mfi_dif < n1_diff ? n1_color :
- rsi_mfi_dif < n2_diff ? n2_color :
- n0_color
- rsi_mfi_pos_dif = rsi_mfi_dif > p2_diff
- rsi_mfi_neg_dif = rsi_mfi_dif < n2_diff
- mfi_gt_plot = plot(rsi_mfi_dif > 0 ? mfi : na, color=#000000, style=linebr)
- mfi_lt_plot = plot(rsi_mfi_dif < 0 ? mfi : na, color=#000000, style=linebr)
- //mfi_rsi_pos_dif_plot = plot(rsi_mfi_pos_dif ? mfi : na, color=#308010, style=linebr)
- //mfi_rsi_neg_dif_plot = plot(rsi_mfi_neg_dif ? mfi : na, color=#308010, style=linebr)
- //rsi_mfi_over_lev = rsi_mfi_pos_dif ? 35 : rsi_mfi_neg_dif ? 65 : na
- //plot(rsi_mfi_over_lev, color=dif_color, style=linebr, linewidth=1)
- //plot(rsi_mfi_dif+50, title="rsi_mfi_cor", color=#00FFFF, style=line, linewidth=1)
- //mfi_plot = plot(mfi, title="MFI", color=#000000, style=line)
- rsi_plot = plot(rsi, title="RSI", color=#FFFFFF, style=line, linewidth=1)
- fill(mfi_gt_plot, rsi_plot, #FF0000, 70)
- fill(mfi_lt_plot, rsi_plot, #00FF00, 75)
- plot(wt_cor, title="WT", color=#0060A0, style=line, linewidth=1)
- //fill(mfi_rsi_pos_dif_plot, rsi_plot, #FF0000, 80)
- //fill(mfi_rsi_neg_dif_plot, rsi_plot, #00FF00, 80)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement