Was wondering if someone could convert the SuperIchi indicator to TOS

Sorigby

New member
Platform
  1. Thinkorswim
Been using this indicator for a bit, but I have to have a trading view screen open while I use it. Also, because I don't have a subscription on TV, I cannot use it on the 10-minute time frame. Would love if someone could convert this.


// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © LuxAlgo

//@version=5
indicator("SuperIchi [LUX]",'SuperIchi [LUX]',overlay=true,max_lines_count=500)
tenkan_len = input(9,'Tenkan          ',inline='tenkan')
tenkan_mult = input(2.,'',inline='tenkan')

kijun_len = input(26,'Kijun             ',inline='kijun')
kijun_mult = input(4.,'',inline='kijun')

spanB_len = input(52,'Senkou Span B ',inline='span')
spanB_mult = input(6.,'',inline='span')

offset = input(26,'Displacement')
//------------------------------------------------------------------------------
avg(src,length,mult)=>
atr = ta.atr(length)*mult
up = hl2 + atr
dn = hl2 - atr
upper = 0.,lower = 0.
upper := src[1] < upper[1] ? math.min(up,upper[1]) : up
lower := src[1] > lower[1] ? math.max(dn,lower[1]) : dn

os = 0,max = 0.,min = 0.
os := src > upper ? 1 : src < lower ? 0 : os[1]
spt = os == 1 ? lower : upper
max := ta.cross(src,spt) ? math.max(src,max[1]) : os == 1 ? math.max(src,max[1]) : spt
min := ta.cross(src,spt) ? math.min(src,min[1]) : os == 0 ? math.min(src,min[1]) : spt
math.avg(max,min)
//------------------------------------------------------------------------------
tenkan = avg(close,tenkan_len,tenkan_mult)
kijun = avg(close,kijun_len,kijun_mult)

senkouA = math.avg(kijun,tenkan)
senkouB = avg(close,spanB_len,spanB_mult)
//------------------------------------------------------------------------------
tenkan_css = #2157f3
kijun_css = #ff5d00

cloud_a = color.new(color.teal,80)
cloud_b = color.new(color.red,80)

chikou_css = #7b1fa2

plot(tenkan,'Tenkan-Sen',tenkan_css)
plot(kijun,'Kijun-Sen',kijun_css)

plot(ta.crossover(tenkan,kijun) ? kijun : na,'Crossover',#2157f3,3,plot.style_circles)
plot(ta.crossunder(tenkan,kijun) ? kijun : na,'Crossunder',#ff5d00,3,plot.style_circles)

A = plot(senkouA,'Senkou Span A',na,offset=offset-1)
B = plot(senkouB,'Senkou Span B',na,offset=offset-1)
fill(A,B,senkouA > senkouB ? cloud_a : cloud_b)

plot(close,'Chikou',chikou_css,offset=-offset+1,display=display.none)
 

barbaros

Administrator
Staff member
Same as this at https://b4indicators.com/threads/b4-atr-ichimoku.193/#post-765

Code:
# B4 ATR Ichimoku
#
# # This software is licensed for individual use only.
# NOT FOR REDISTRIBUTION PRIVATE/CONFIDENTIAL
# Copyright (c) 2021 B4 Signals
#
# Get support at: https://b4signals.com
#
# v1.0 - barbaros
# v1.1 - barbaros - candle colors

input tenkan_period = 9;
input tenkan_mult = 2.0;
input kijun_period = 26;
input kijun_mult = 4.0;
input spanB_period = 52;
input spanB_mult = 6.0;
input showCloud = yes;
input colorBars = yes;

DefineGlobalColor("Bullish", Color.GREEN);
DefineGlobalColor("Bearish", Color.RED);

script _avg {
    input src = close;
    input length = 9;
    input mult = 2;

    def _atr = ATR(length) * mult;
    def up = hl2 + _atr;
    def dn = hl2 - _atr;
    def upper = if src[1] < upper[1] then Min(up, upper[1]) else up;
    def lower = if src[1] > lower[1] then Max(dn, lower[1]) else dn;
  
    def os = if src > upper then 1 else if src < lower then 0 else os[1];
    def spt = if os == 1 then lower else upper;
    def _max = if src crosses spt then Max(src, _max[1]) else if os == 1 then Max(src, _max[1]) else spt;
    def _min = if src crosses spt then Min(src, _min[1]) else if os == 0 then Min(src, _min[1]) else spt;

    plot return = (_max + _min) / 2;
}


plot Tenkan = _avg(close, tenkan_period, tenkan_mult);
plot Kijun = _avg(close, kijun_period, kijun_mult);
plot TKCrossUp = Tenkan crosses above Kijun;
plot TKCrossDown = Tenkan crosses below Kijun;

def Direction = if TKCrossUp then 1 else if TKCrossDown then -1 else Direction[1];

def senkouA = (kijun + tenkan) / 2;
def senkouB = _avg(close,spanB_period,spanB_mult);

Tenkan.SetDefaultColor(Color.CYAN);
Tenkan.SetLineWeight(2);
Tenkan.HideBubble();
Tenkan.HideTitle();

Kijun.SetDefaultColor(Color.MAGENTA);
Kijun.SetLineWeight(2);
Kijun.HideBubble();
Kijun.HideTitle();

TKCrossUp.SetDefaultColor(Color.CYAN);
TKCrossUp.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
TKCrossUp.SetLineWeight(3);
TKCrossUp.HideBubble();
TKCrossUp.HideTitle();

TKCrossDown.SetDefaultColor(Color.MAGENTA);
TKCrossDown.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
TKCrossDown.SetLineWeight(3);
TKCrossDown.HideBubble();
TKCrossDown.HideTitle();

AddCloud(if showCloud then senkouA[spanB_period] else Double.NaN, if showCloud then senkouB[spanB_period] else Double.NaN, GlobalColor("Bullish"), GlobalColor("Bearish"));

AssignPriceColor(if !colorBars then Color.CURRENT
    else if Direction == 1 and close > Kijun then GlobalColor("Bullish")
    else if Direction == -1 and close < Kijun then GlobalColor("Bearish")
    else Color.GRAY);
 
Last edited:
Top