Клоун - "Математик"
Начнем
Стартегия
Проходим регистрацию на TraidingView
У тебя выпадает данное меню, где нажимаем "Открыть"
Отступление: в TW есть индикаторы и стратегии, написание стратегии отличается от написание индикатора.
В появившемся поле удаляем содержимое: нажимаем ctrl+A и Delete.
//@version=5
strategy("_st_BuyLine", overlay=true, margin_long=100, margin_short=100)
/////////////////ЛИНИЯ/////////////////////
sma_lenth_low = 10
mult_low = 0.5// input.float(0.5,minval=0.1,step = 0.05,group = "________",title = "Отклонение")
oscSrc_low = ohlc4 //input.source(ohlc4,"Источник",group = "________")
dataSmple_low = 100
pcntBelow_low = 33
value_low = ta.sma(ta.percentile_nearest_rank(oscSrc_low,dataSmple_low,100-pcntBelow_low),sma_lenth_low)*mult_low
vwma90_1 = ta.vwma(ohlc4, 90)*0.5
cand = input.source(close, group = "_______________", title = "Касание")
line_x = input.string(defval = "Больше", title = "Риск", options = ["Больше","Меньше"])
line_1 = line_x == "Больше" ? value_low : line_x == "Меньше" ? vwma90_1 : na
plot(line_1, color = color.new(color.green,20), linewidth = 4)
plot(line_1, color = color.new(color.orange,0), linewidth = 0)
/////////////LMACD///////////////////////////////
// Getting //
fast_length = 12
slow_length = 26
src = close
signal_length = 9
sma_source = false
sma_signal = false
// Calculating //
fast_ma = sma_source ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
lmacd = math.log(fast_ma) - math.log(slow_ma)
signal = sma_signal ? ta.sma(lmacd, signal_length) : ta.ema(lmacd, signal_length)
hist = lmacd - signal
////////////////////УСЛОВИЯ/////////////////////
m = input.bool(true, title = "MACD")
mac = m ? hist<=0 and hist[1] > hist:true// and hist[2]>hist[1] : true
mc = input.bool(true, title = "угол MACD")
mc_1 = mc ? hist[2]<hist[1] : true
mf = input.bool(true, title = "MFI")
mfi = mf ? ta.mfi(close,14) < 40 : true
rsi = input.bool(true, title = 'RSI')
rsi_p = input.int(40,title = 'Период RSI')
rsi_1 = rsi ? ta.sma(ta.rsi(close,rsi_p),14)>ta.sma(ta.rsi(close[1],rsi_p),14) and ta.rsi(close,rsi_p)<50 : true //ta.rsi(close[1],rsi_p)<ta.rsi(close,rsi_p) and ta.rsi(close[1],rsi_p)<ta.rsi(close[2],rsi_p) and ta.rsi(close[3],rsi_p)>ta.rsi(close[2],rsi_p) and ta.sma(ta.rsi(close,rsi_p),14)>ta.rsi(close,rsi_p): true
cond_allbuy = cand<line_1 and mac and mc_1 and mfi and rsi_1// and ta.rsi(close,14)<37
cond_back = input.bool(true, title = "Тень", group = "Покупки")
green_100 = color.new(color.aqua,75)
bgcolor(cond_allbuy and cond_back ? green_100 : na)
/////////////////////////////////////////////
line_100 = input.bool(true,title="Стратегия", group = "Покупки")
cond_sell = strategy.position_avg_price*2 < high
plot(strategy.position_avg_price*2,color=color.new(color.red, 0),style = plot.style_linebr)
plot(strategy.position_avg_price,style = plot.style_linebr)
if (line_100)
strategy.order("Buy100", strategy.long, when = cond_allbuy)
strategy.close_all(when = cond_sell)
///////////////////////////////////////////////////
///////////УЧЕТ ПОКУПКИ И ПРОДАЖИ/////////////
var size_vk = input.int(10, title = "Размер взноса")
var x = 0.0
var qty = 0
var dep = 0
var cash = 0.0
var price_sell_avg = 0.00
var zak = 0
var bank = 0
if (cond_allbuy and line_100)
qty +=1
x += close
price_sell_avg := x/qty
dep := size_vk*qty
cash := (dep*(close/strategy.position_avg_price))-dep
if (cond_sell)
bank += dep*2
zak += 1
x := 0.0
qty := 0
dep := 0
cash := 0.0
price_sell_avg := 0.00
//////////////////ТАБЛИЦА//////////////////////////////////////////////////////////////////////
tab = input.bool(true, title = "Таблица")
if(tab)
var tbl = table.new(position.top_right, 2, 5,bgcolor = color.new(color.aqua,10), border_width = 2)
table.cell(tbl, 0, 0, "Инвестированно", text_color=color.white)
table.cell(tbl, 0, 1, "Совершенных сделок", text_color=color.white)
table.cell(tbl, 0, 2, "Заработано", text_color=color.white)
table.cell(tbl, 0, 3, "Закрытая позиция", text_color=color.white)
table.cell(tbl, 0, 4, "Банк", text_color=color.white)
table.cell(tbl, 1, 0, str.tostring(dep)+"quot;, text_color=color.white)
table.cell(tbl, 1, 1, str.tostring(qty), text_color=color.white)
table.cell(tbl, 1, 2, str.tostring(cash,'#.#')+"quot;, text_color=color.white)
table.cell(tbl, 1, 3, str.tostring(zak), text_color=color.white)
table.cell(tbl, 1, 4, str.tostring(bank), text_color=color.white)
Нажимаем "Сохранить" и "Добавить на график"
Индикатор
Делаем шаги выше, только выбираем во вкладке "Открыть" - "Новый индикатор"
Также удаляем содержимое поля и вставляем данный код:
//@version=5
indicator("_in_All_line", overlay = true)
/////////////////ЛИНИЯ СТОИМОСТИ////////////////////////////////////////////////
sma_lenth_low = 10
mult_low = 0.5// input.float(0.5,minval=0.1,step = 0.05,group = "________",title = "Отклонение")
oscSrc_low = ohlc4 //input.source(ohlc4,"Источник",group = "________")
dataSmple_low = 100
pcntBelow_low = 33
value_low = ta.sma(ta.percentile_nearest_rank(oscSrc_low,dataSmple_low,100-pcntBelow_low),sma_lenth_low)*mult_low
line_stoim = input.bool(true, title = 'Стоимость', group = "Линии")
line_1 = line_stoim == true ? value_low : na
plot(line_1, color = color.new(color.green,20), linewidth = 4)
plot(line_1, color = color.new(color.orange,0), linewidth = 0)
////////////////SMA_1440/////////////////
line_sma = input.bool(true, title = 'SMA 1440', group = "Линии")
line_2 = line_sma == true ? ta.sma(close,1440) : na
plot(line_2, color = color.new(color.red,20), linewidth = 4)
plot(line_2, color = color.new(color.blue,0), linewidth = 0)
///////////////////ZONA/////////////////////////////////////////////////////////
src = ohlc4
line_zona = input.bool(true,title = 'Зоны Покупок', group = "Линии")
vwma90_1 = ta.vwma(src, 89)*0.5
vwma90_2 = ta.vwma(src, 89)*0.5967
vwma90_3 = ta.vwma(src, 89)*0.67
line_z1 = line_zona == true ? vwma90_1 : na
line_z2 = line_zona == true ? vwma90_2 : na
line_z3 = line_zona == true ? vwma90_3 : na
p1 = plot(line_z3,color=color.new(color.green, 100), linewidth=0)
p2 = plot(line_z2,color=color.new(color.green, 100), linewidth=0)
p3 = plot(line_z1,color=color.new(color.green, 100), linewidth=0)
fill(p1, p2, color=color.new(color.green, 90))
fill(p2, p3, color=color.new(color.green, 75))
////////////////////////////////////////////////////////////////////////////////
///////////////////////ПРОДАЖА///////////////////////////
sell = input.bool(false,title = 'Зона Продажа', group = "Линии")
short = ta.vwma(ohlc4,40)*1.9
short1 = ta.vwma(ohlc4,40)*1.5
xsell = sell ? short : na
ysell = sell ? short1 : na
s1 = plot(xsell,color = color.new(color.red,100))
s2 = plot(ysell,color = color.new(color.red,100))
fill(s1, s2, color=color.new(color.red, 70))
/////////////////WARN_BUY///////////////////////
wa = input.bool(true,title = 'Warn BUY', group = "Линии")
warn = ta.ema(y,1)*0.7118108
warn1 = ta.ema(y,1)*0.660967
xwarn = wa ? warn : na
ywarn = wa ? warn1 : na
fill(plot(xwarn, color = color.new(color.white,100)),plot(ywarn,color = color.new(color.white,100)), color = color.new(color.white,87), fillgaps = true)
/////////////////////////////////
bull_line = input.bool(true, title = 'Bull_Line', group = "Линии")
x1 = ta.ema(close,140)*1.02
x2 = ta.ema(close,140)
y1 = ta.ema(close,105)*1.032
y2 = ta.ema(close,140)*0.97
//fill(plot(y1,color = color.new(color.green,100)),plot(y2,color = color.new(color.green,100)), color = color.new(color.green,90))
l1 = (y1-x1)>0 ? x1 : na
l2 = (y1-x1)>0 ? y1 : na
b_l1 = bull_line ? l1 : na
b_l2 = bull_line ? l2 : na
b_x1 = bull_line ? x1 : na
b_x2 = bull_line ? x2 : na
b_y1 = bull_line ? y1 : na
b_y2 = bull_line ? y2 : na
fill(plot(b_l2,color = color.new(color.green,100)),plot(b_l1,color = color.new(color.green,100)), color = color.new(color.green,80), fillgaps = true)
fill(plot(b_x1,color = color.new(color.green,100)),plot(b_x2,color = color.new(color.green,100)), color = color.new(color.yellow,40), fillgaps = true)
fill(plot(b_x1,color = color.new(color.green,100)),plot(b_y2,color = color.new(color.green,100)), color = color.new(color.green,80), fillgaps = true)
////////////////////////////////////////////////////////////////////////////////
////////////////Метки/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////Pi_cy///////////////////////////////////////////////////////////////
pi = input.bool(false, title = "Pi_cycle", group = "Метки")
piema = ta.sma(close,350)*2
piem = ta.sma(close,111)
cond_pi = ta.crossunder(piema,piem)
bgcolor(cond_pi and pi ? color.new(color.red,50): na)
////////////WARN_buy////////////////////////////////////////////////////////////
WB = input.bool(false, title = "Warn_Buy", group = "Метки")
WB_cond = warn1 < low and low < warn
bgcolor(WB and WB_cond ? color.new(color.green,80): na)
////////////Zone////////////////////////////////////////////////////////////
zn = input.bool(false, title = "Zone", group = "Метки")
zn_3 = vwma90_3 > low and vwma90_2 < low and zn
plotshape(zn_3, color = color.new(color.green,0), style = shape.circle, location = location.belowbar)
zn_2 = vwma90_2 > low and vwma90_1 < low and zn
plotshape(zn_2, color = color.new(color.green,0), style = shape.circle, text = "Z2", textcolor = color.new(color.green,0), location = location.belowbar)
zn_1 = vwma90_1 > low and vwma90_2 > low and zn
plotshape(zn_1, color = color.new(color.white,0), style = shape.circle, text = "LONG", textcolor = color.new(color.white,0), location = location.belowbar)
////////////BUY_LINE////////////////////////////////////////////////////////////
buy_l = input.bool(false, title = "BUY_line", group = "Метки")
buy_li = value_low > low and buy_l
plotshape(buy_li, color = color.new(color.white,0), style = shape.arrowup, size = size.normal, text = "B/L", textcolor = color.new(color.white,0), location = location.belowbar)
bgcolor(buy_li ? color.new(color.white,80): na)
///////////////////////////EMA140//////////////////////
green = color.new(color.green,40)
red = color.new(color.red,40)
white = color.new(color.white,40)
blue = color.new(color.blue,40)
//////////////////////////
oneon = input.bool(true, title = 'EMA_140')
a = 140
aaa = ta.ema(close,a)
bb = (close/aaa)-1
// plot(oneon ? bb:na)
cond_buy = bb <-0.3
cond_sell = bb > 1.6
on_buy = oneon and cond_buy
on_sell = oneon and cond_sell
plotshape(on_buy, style=shape.circle, location = location.belowbar, size = size.tiny, color = green)
plotshape(on_sell, style=shape.circle, location = location.abovebar, size = size.tiny, color = red)
ta= -0.27
// hline( oneon ? ta :na , linestyle=hline.style_solid,color = color.yellow)
//////////
twoon = input.bool(false, title = "Мои_Покупки")
price = ta.ema(low,1)
sma_lenth = 10
mult = 0.5
oscSrc = ohlc4
dataSmple = 100
pcntBelow = 33
value = ta.sma(ta.percentile_nearest_rank(oscSrc,dataSmple,100-pcntBelow),sma_lenth)*0.5
dd = value/close
colo = dd> 0.60 and twoon ? color.green:na
// plot(twoon?(close/value)-1:na,title="Green",color=color.green,linewidth=1,editable=false)//,style = plot.style_area)
// hline(twoon?0.1:na,color = color.white)
cond1 = ((close/value)-1)<0.2
tw_buy = cond1 and twoon
plotshape(tw_buy, style=shape.circle, location = location.belowbar, size = size.tiny, color = white)
// hline(twoon?2.4:na,color = color.white)
cond2 = ((close/value)-1)>3
tw_sell = cond2 and twoon
plotshape(tw_sell, style=shape.circle, location = location.abovebar, size = size.tiny, color = red)
Сохраняем и Добавляем на график
Так же в поиске индикаторов можешь найти "BTC 1D Safety trade", который у него в платных.
soon🔜cypherfrog