Хэджирование криповалют (Hedging Cryptocurrency)
При написании скрипта автор мотивировался статьей о хэджировании криптовалют. Для работы с данным скрипом необходима установить дневной таймфрейм.
Скрипт "Hedging Cryptocurrency", по своей сути, является стохастическим осциллятором данных спрэда между ценой (годичной давности) на BTC и равноценным количестве выбранного альткоина. Стоит сразу заметить, что для корректного использования данного скрипта необходима выбирать инструмент вида XXX/USD (где XXX - выбранный альткоин, а USD - стабильный альткоин, привязанный к доллару). В настройках можно включать/выключать сигналы на покупку (зеленые точки) и продажу (красные точки) альткоина. Закрывать сделку можно, когда осциллятор перешагнет нулевую отметку. ВАЖНО, что для хэджирования криптовалют, при открытии сделки на альткоин, необходимо также открыть сделку и на BTC , но уже в обратном направлении. Кроме всего перечисленного сам осциллятор имеет градацию зеленых и красных оттенков, которые говорят об условной перекупленности и перепроданности соответственно. Добавлю, что индикатор чаще ошибается при низкой корреляции между инструментами, поэтому в такие моменты он начинает сигнализировать черными крестиками. В этих ситуациях скрипт не гарантирует ту точность, которую может предложить.
На TradingView его можно найти по ЭТОЙ ССЫЛКЕ.
Код открытый, поэтому можно поизучать:
study(title="Hedging Altcoins", shorttitle="HedgAlt", precision=2) sym = input(title="BTC on your favorite exchange", type=symbol, defval="BITSTAMP:BTCUSD") src = input(close, title="Altcoin price type") length = input(90, title="Stochastic Lenght", minval=1, maxval=365) cor = input(365, title="Correlation Coeff", minval=1, maxval=365) // recommended 1 year ris_fal = input(16, title="Rising or Falling Period", minval=1) hints = input(type=bool, defval=false, title="Buy/Sell Hint") BTC = security(sym, period, src) coef = BTC[365]/src[365] // or fix in code manually - BTC/Altcoin (1 year ago) correl = correlation(src, BTC, cor) spread = round(BTC-(coef*src)) max_spread = highest(spread, length) min_spread = lowest(spread, length) stoch_spread = (stoch(spread, max_spread, min_spread, length)-50)*(-1) // ---- Plot colors ---- col_38_50 = #00ff00 // 50 Зеленый col_25_38 = #33ff33 // 38 col_13_25 = #77ff77 // 25 col_0_13 = #bbffbb // 13 col_m13_0 = #ffbbbb //-13 col_m25_m13 = #ff7777 //-25 col_m38_m25 = #ff3333 //-38 col_m50_m38 = #ff0000 //-50 Красный color_now=(stoch_spread>=0 ? (stoch_spread<=13 ? col_0_13 : (stoch_spread<=25 ? col_13_25 : (stoch_spread<=38 ? col_25_38 : col_38_50))) : (stoch_spread>=-13 ? col_m13_0 : (stoch_spread>=-25 ? col_m25_m13 : (stoch_spread>=-38 ? col_m38_m25 : col_m50_m38)))) // --------------------- h0 = hline(0) trans = hints ? 25 : 100 warning = correl<0.7 ? na : (correl>-0.7 ? na : stoch_spread) buy_now = stoch_spread<=0 ? (falling(stoch_spread, ris_fal) ? stoch_spread : na ) : na sell_now = stoch_spread>=0 ? (rising(stoch_spread, ris_fal) ? stoch_spread : na ) : na plot(stoch_spread, style=area, color=color_now, transp=60) plot(sell_now, title="SELL NOW!", color=#ff0000, style=circles, linewidth=4, transp=trans) plot(buy_now, title="BUY NOW!", color=#00ff00, style=circles, linewidth=4, transp=trans) plot(warning, title="STOP TRAIDING!", color=black, style=cross, linewidth=4, transp=0)