← К каталогу
Исходный код · ID 4244

Money Moves [Premium Algo V2]

money moves [premium algo v2](2).pine

Похожие материалы по тегам

#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit3.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit2.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

«Money Moves [Premium Algo V2]» — это индикатор для TradingView, наложенный на график цены. Он объединяет несколько модулей технического анализа: расчёт направленных сигналов на основе ATR-стопов, обнаружение концепций Smart Money (BOS/CHoCH), отображение облака тренда на основе нескольких скользящих средних, ленту тренда с возможностью использования данных другого таймфрейма, а также систему управления рисками с уровнями тейк-профита и стоп-лосса.

Индикатор генерирует визуальные метки LONG и SHORT при смене направления, определяет точки разворота (Swing Points) и уровни пробития (BOS/CHoCH), отображает их на графике в виде линий и меток. Встроенная система управления рисками позволяет настраивать несколько уровней тейк-профита, безубыточность и стоп-лосс с возможностью отображения соответствующих точек и линий.

Дополнительно предусмотрены трейлинг стоп-лосс с настраиваемым типом (процент, ATR или абсолютное значение), условие для оповещений по различным событиям (вход, стоп-лосс, тейк-профит, трейлинг) и информационная таблица с данными о текущем тренде. Все параметры настраиваются пользователем через панель настроек индикатора.

Настройки программы

НастройкаОписание
colors Цветовая схема индикатора: тёмная или светлая
Show_Signals Включает или отключает отображение меток LONG и SHORT на графике
length Период расчёта основного индикатора
mult Чувствительность основного алгоритма (множитель ATR)
SFilter Фильтр сигналов, влияющий на чувствительность генерации торговых сигналов
t_type Тип торговой стратегии: Default, Scalping, Intraday или Swing
ma2On Включает или отключает отображение облака тренда (Vortex Cloud)
TBSENSIII Чувствительность облака тренда (Vortex Cloud)
plotRibsw Включает или отключает отображение ленты тренда на графике
xfixtf Включает или отключает использование данных другого таймфрейма для ленты тренда
labelSwitch Включает или отключает отображение информационной таблицы с данными о тренде
plotRibbonPos Позиция ленты тренда на графике: сверху или снизу
xtf Выбранный таймфрейм для отображения ленты тренда
showSMC Включает или отключает отображение концепций Smart Money (BOS/CHoCH)
showSwing Включает или отключает отображение точек Swing (HH, LH, HL, LL)
swingSize Количество баров, проверяемых при поиске точек разворота Swing
bosConfType Тип подтверждения BOS/CHoCH: по закрытию свечи или по фитилю
bosStyle Стиль линий BOS/CHoCH: сплошной, пунктирный или точечный
bosWidth Толщина линий BOS/CHoCH
Show_PR Отображает или скрывает сигналы верхней и нижней точки на графике
TBSensi Чувствительность сигналов верхней/нижней точки
Show_SL_TP Отображает или скрывает точки тейк-профита и стоп-лосса на графике
isTPl Включает или отключает первый уровень тейк-профита
tp Процент первого уровня тейк-профита
isTP2 Включает или отключает второй уровень тейк-профита
tp2 Процент второго уровня тейк-профита
isTP3 Включает или отключает третий уровень тейк-профита
tp3 Процент третьего уровня тейк-профита
isSLl Включает или отключает уровень безубыточности (Breakeven)
isSLl2 Включает или отключает уровень стоп-лосса
levels Отображает или скрывает уровни тейк-профита и стоп-лосса в виде меток на графике
lvlLines Включает или отключает отображение линий уровней на графике
linesStyle Стиль линий уровней: сплошной, пунктирный или точечный
lvlDistance Расстояние между линиями уровней на графике
lvlDecimals Количество десятичных знаков для отображения значений уровней
atrRisk Процент риска для расчёта уровней стоп-лосса в системе автоматического управления риском
atrLen Период расчёта ATR для системы автоматического управления риском
ShowTrailingSl Включает или отключает отображение трейлинг стоп-лосса на графике
sl_type Тип расчёта трейлинг стоп-лосса: процентный, по ATR или абсолютный
sl_perc Процентное значение трейлинг стоп-лосса при типе '%'
atr_length Период ATR для расчёта трейлинг стоп-лосса
atr_mult Множитель ATR для расчёта трейлинг стоп-лосса
sl_absol Абсолютное значение трейлинг стоп-лосса при соответствующем типе
Получить полный код

Поиск по коду файла

indicator('Money Moves [Premium Algo V2]', overlay=true)

colors = input.string(title='Color Scheme', defval='DARK', options=['DARK', 'LIGHT'] , group = "Color Scheme")
bullcolor = colors == 'DARK' ? #00DBFF : color.rgb(0, 255, 8) 
bearcolor = colors == 'DARK' ? #E91E63 : color.rgb(255, 0, 0)

Show_Signals   = input.bool(true, title="Show Signal", tooltip="Show Long & Short Signals" , group = "Signal's Settings")
var int length = input(title='Period', defval=1 , group = "Signal's Settings")
var float mult = input.float(title='TBSensitivity', step=0.1, defval=10 , group = "Signal's Settings")
var float SFilter = input.float(title='Signal Filter', step=0.1, defval=1.0 , group = "Signal's Settings")

t_type = input.string("Default","Strategy",options = ["Default","Scalping","Intraday","Swing"] , group = "Signal's Settings")

if t_type == "Default"

    length := length
    mult := mult
    SFilter := SFilter

if t_type == "Scalping"
    length := 10
    mult := 10
    SFilter := 0.5

if t_type == "Intraday"
    length := 2
    mult := 15
    SFilter := 0.5

if t_type == "Swing"
    length := 10
    mult := 5
    SFilter := 1.2

ma2On = input.bool(true, title="Vortex Cloud", group = "Cloud")
TBSENSIII = input.int(2, title="Vortex Cloud Sensitivity",group = "Cloud")

plotRibsw = input(title='Show Trend Ribbon', defval=true , inline = "RIBBON" , group = "Chart Features")
xfixtf = input(title='MTF', defval=false , inline = "RIBBON", group = "Chart Features")
labelSwitch = input(title='Table', defval=false, inline = "RIBBON", group = "Chart Features")
plotRibbonPos = input.string(title='Ribbon Position', options=['Top', 'Bottom'], defval='Bottom', group = "Chart Features")
xtf = input.timeframe(title='Select MTF Ribbon', defval='D', group = "Chart Features")

color CLEAR = color.rgb(0,0,0,100)
showSMC = input.bool(true, 'Show Smart Money Concepts', tooltip='Show Market Structure', group='Market Structure')
showSwing = input.bool(false, 'Show Swing Points', tooltip='Show or hide HH, LH, HL, LL' , group="Market Structure")
swingSize = input.int(10, 'Swing Length', tooltip='The number of left and right bars checked when searching for a swing point. Higher value = less swing points plotted and lower value = more swing points plotted.' , group="Market Structure")
bosConfType = input.string('Candle Close', 'BOS/CHoCH Confirmation', ['Candle Close', 'Wicks'], tooltip='Choose whether candle close/wick above previous swing point counts as a BOS/CHoCH.' , group="Market Structure")
choch = true
bosStyle = input.string('Solid', 'Line Style', ['Solid', 'Dashed', 'Dotted'], group="Market Structure")
bosWidth = input.int(1, 'Width', minval=1, group="Market Structure")

Show_PR   = input.bool(true, title="Show Top/Bottom", tooltip="Show's Top/Bottem - 'Don't Buy' = Green/Blue Cross | 'Don't Sell' = Red/Pink Cross " , group = "Top / Bottom")
TBSensi   = input.int(5, title="Top/Bottom Sensitivity", tooltip="The Greater The Value The Stronger The Top/Bottom" , group = "Top / Bottom")

atr = mult * ta.atr(length)
longStop = hl2 - atr * SFilter
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? math.max(longStop, longStopPrev) : longStop

shortStop = hl2 + atr * SFilter
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop

dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and close > shortStopPrev ? 1 : dir == 1 and close < longStopPrev ? -1 : dir

longColor = color.blue
shortColor = color.blue

longCond = bool(na)
shortCond = bool(na)
longCond := ta.crossover(close[1], shortStopPrev)
shortCond := ta.crossunder(close[1], longStopPrev)

longCond2 = bool(na)
shortCond2 = bool(na)
longCond2 := ta.crossover(close[1], shortStopPrev)
shortCond2 := ta.crossunder(close[1], longStopPrev)

longCond3 = bool(na)
shortCond3 = bool(na)
longCond3 := ta.crossover(close[1], shortStopPrev)
shortCond3 := ta.crossunder(close[1], longStopPrev)

sectionLongs = 0
sectionLongs := nz(sectionLongs[1])
sectionShorts = 0
sectionShorts := nz(sectionShorts[1])

if longCond
    sectionLongs += 1
    sectionShorts := 0
    sectionShorts

if shortCond
    sectionLongs := 0
    sectionShorts += 1
    sectionShorts

sectionLongs2 = 0
sectionLongs2 := nz(sectionLongs2[1])
sectionShorts2 = 0
sectionShorts2 := nz(sectionShorts2[1])

if longCond2
    sectionLongs2 += 1
    sectionShorts2 := 0
    sectionShorts2

if shortCond2
    sectionLongs2 := 0
    sectionShorts2 += 1
    sectionShorts2

sectionLongs3 = 0
sectionLongs3 := nz(sectionLongs3[1])
sectionShorts3 = 0
sectionShorts3 := nz(sectionShorts3[1])

if longCond3
    sectionLongs3 += 1
    sectionShorts3 := 0
    sectionShorts3

if shortCond3
    sectionLongs3 := 0
    sectionShorts3 += 1
    sectionShorts3

pyrl = 1

pyr2 = 1

pyr3 = 1

longCondition = longCond and sectionLongs <= pyrl
shortCondition = shortCond and sectionShorts <= pyrl

longCondition2 = longCond2 and sectionLongs2 <= pyr2
shortCondition2 = shortCond2 and sectionShorts2 <= pyr2

longCondition3 = longCond3 and sectionLongs3 <= pyr3
shortCondition3 = shortCond3 and sectionShorts3 <= pyr3

last_open_longCondition = float(na)
last_open_shortCondition = float(na)
last_open_longCondition := longCondition ? open : nz(last_open_longCondition[1])
last_open_shortCondition := shortCondition ? open : nz(last_open_shortCondition[1])

last_open_longCondition2 = float(na)
last_open_shortCondition2 = float(na)
last_open_longCondition2 := longCondition2 ? open : nz(last_open_longCondition2[1])
last_open_shortCondition2 := shortCondition2 ? open : nz(last_open_shortCondition2[1])

last_open_longCondition3 = float(na)
last_open_shortCondition3 = float(na)
last_open_longCondition3 := longCondition3 ? open : nz(last_open_longCondition3[1])
last_open_shortCondition3 := shortCondition3 ? open : nz(last_open_shortCondition3[1])

last_longCondition = float(na)
last_shortCondition = float(na)
last_longCondition := longCondition ? time : nz(last_longCondition[1])
last_shortCondition := shortCondition ? time : nz(last_shortCondition[1])

in_longCondition = last_longCondition > last_shortCondition
in_shortCondition = last_shortCondition > last_longCondition

last_longCondition2 = float(na)
last_shortCondition2 = float(na)
last_longCondition2 := longCondition2 ? time : nz(last_longCondition2[1])
last_shortCondition2 := shortCondition2 ? time : nz(last_shortCondition2[1])

in_longCondition2 = last_longCondition2 > last_shortCondition2
in_shortCondition2 = last_shortCondition2 > last_longCondition2

last_longCondition3 = float(na)
last_shortCondition3 = float(na)
last_longCondition3 := longCondition3 ? time : nz(last_longCondition3[1])
last_shortCondition3 := shortCondition3 ? time : nz(last_shortCondition3[1])

in_longCondition3 = last_longCondition3 > last_shortCondition3
in_shortCondition3 = last_shortCondition3 > last_longCondition3

Show_SL_TP   = input.bool(false, title="Show TP/SL Points" , group = "AUTO RISK MANAGEMENT v1" , tooltip="Show Take Profit | Stop Loss Points")

isTPl = input(true, 'TP - 1' , group = "AUTO RISK MANAGEMENT v1" , inline = "ARM")
isTPs = isTPl
tp = input(0.25, 'Take Profit % - 1')
long_tp = isTPl and Show_SL_TP and ta.crossover(high, (1 + tp / 100) * last_open_longCondition) and longCondition == 0 and in_longCondition == 1
short_tp = isTPs  and Show_SL_TP  and ta.crossunder(low, (1 - tp / 100) * last_open_shortCondition) and shortCondition == 0 and in_shortCondition == 1

isTP2 = input(true, 'TP - 2', group = "AUTO RISK MANAGEMENT v1" , inline = "ARM")
isTPs2 = isTP2
tp2 = input(0.75, 'Take Profit % - 2')
long_tp2 = isTP2  and Show_SL_TP  and ta.crossover(high, (1 + tp2 / 100) * last_open_longCondition2) and longCondition2 == 0 and in_longCondition2 == 1
short_tp2 = isTPs2  and Show_SL_TP  and ta.crossunder(low, (1 - tp2 / 100) * last_open_shortCondition2) and shortCondition2 == 0 and in_shortCondition2 == 1

isTP3 = input(true, 'TP - 3', group = "AUTO RISK MANAGEMENT v1" , inline = "ARM")
isTPs3 = isTP3
tp3 = input.float(1.0, 'Take Profit % - 3')
long_tp3 = isTP3  and Show_SL_TP  and ta.crossover(high, (1 + tp3 / 100) * last_open_longCondition) and longCondition == 0 and in_longCondition == 1
short_tp3 = isTPs3 and Show_SL_TP and   ta.crossunder(low, (1 - tp3 / 100) * last_open_shortCondition) and shortCondition == 0 and in_shortCondition == 1

isSLl = input(false, 'Breakeven', group = "AUTO RISK MANAGEMENT v1" , inline = "ARM2")
isSLs = isSLl
sl = 0.0
sl := input.float(0.4, 'Break Even %')
long_sl = isSLl  and Show_SL_TP and ta.crossunder(low, (1 - sl / 100) * last_open_longCondition) and longCondition == 0 and in_longCondition == 1
short_sl = isSLs  and Show_SL_TP and ta.crossover(high, (1 + sl / 100) * last_open_shortCondition) and shortCondition == 0 and in_shortCondition == 1

isSLl2 = input(false, 'Stop Loss', group = "AUTO RISK MANAGEMENT v1" , inline = "ARM2")
isSLs2 = isSLl2
sl2 = 0.0
sl2 := input.float(0.4, 'Stop Loss %')
long_sl2 = isSLl2  and Show_SL_TP and ta.crossunder(low, (1 - sl2 / 100) * last_open_longCondition2) and longCondition2 == 0 and in_longCondition2 == 1
short_sl2 = isSLs2  and Show_SL_TP and ta.crossover(high, (1 + sl2 / 100) * last_open_shortCondition2) and shortCondition2 == 0 and in_shortCondition2 == 1

levels      = input.bool(false, "Show TP/SL Levels" , group = "AUTO RISK MANAGEMENT v2")
lvlLines    = input.bool(false, "Show Lines ", inline="levels", group = "AUTO RISK MANAGEMENT v2")
linesStyle  = input.string("SOLID", "", ["SOLID", "DASHED", "DOTTED"], inline="levels", group = "AUTO RISK MANAGEMENT v2")
lvlDistance = input.int(1, "Distance", 1, inline="levels2", group = "AUTO RISK MANAGEMENT v2")
lvlDecimals = input.int(2, "   Decimals", 1, 8, inline="levels2", group = "AUTO RISK MANAGEMENT v2")
atrRisk     = input.int(1, "Risk % ", 1, group = "AUTO RISK MANAGEMENT v2" , inline="levels3")
atrLen      = input.int(14, "  ATR Length", 1, group = "AUTO RISK MANAGEMENT v2" , inline="levels3")
decimals  = lvlDecimals == 1 ? "#.#" : lvlDecimals == 2 ? "#.##" : lvlDecimals == 3 ? "#.###" : lvlDecimals == 4 ? "#.####" : lvlDecimals == 5 ? "#.#####" : lvlDecimals == 6 ? "#.######" : lvlDecimals == 7 ? "#.#######" : "#.########"

long_close = long_tp or long_sl ? 1 : 0
short_close = short_tp or short_sl ? 1 : 0

long_close2 = long_tp2 or long_sl2 ? 1 : 0
short_close2 = short_tp2 or short_sl2 ? 1 : 0

long_close3 = long_tp3 ? 1 : 0
short_close3 = short_tp3 ? 1 : 0

last_long_close = float(na)
last_short_close = float(na)
last_long_close := long_close ? time : nz(last_long_close[1])
last_short_close := short_close ? time : nz(last_short_close[1])

last_long_close2 = float(na)
last_short_close2 = float(na)
last_long_close2 := long_close2 ? time : nz(last_long_close2[1])
last_short_close2 := short_close2 ? time : nz(last_short_close2[1])

last_long_close3 = float(na)
last_short_close3 = float(na)
last_long_close3 := long_close3 ? time : nz(last_long_close3[1])
last_short_close3 := short_close3 ? time : nz(last_short_close3[1])

bton(b) =>
    b ? 1 : 0

plotchar(long_tp and last_longCondition > nz(last_long_close[1]), char='✅', text='TP1 LONG', title='TP Long', size=size.tiny, location=location.abovebar, color=color.new(color.green, 0))
plotchar(long_tp2 and last_longCondition2 > nz(last_long_close2[1]), char='✅', text='TP2 LONG', title='TP Long 2', size=size.tiny, location=location.abovebar, color=color.new(color.green, 0))

plotchar(short_tp and last_shortCondition > nz(last_short_close[1]), char='✅', text='TP1 SHORT', title='TP Short', size=size.tiny, location=location.belowbar, color=color.new(color.red, 0))
plotchar(short_tp2 and last_shortCondition2 > nz(last_short_close2[1]), char='✅', text='TP2 SHORT', title='TP Short 2', size=size.tiny, location=location.belowbar, color=color.new(color.red, 0))

plotchar(long_tp3 and last_longCondition3 > nz(last_long_close3[1]), char='✅', text='TP3 LONG', title='TP Long', size=size.tiny, location=location.abovebar, color=color.new(color.green, 0))
plotchar(short_tp3 and last_shortCondition3 > nz(last_short_close3[1]), char='✅', text='TP3 SHORT', title='TP Short', size=size.tiny, location=location.belowbar, color=color.new(color.red, 0))

plotchar(long_sl and last_longCondition > nz(last_long_close[1]) and isSLl, char='🟢', text='BE LONG', title='Break Even Long', size=size.tiny, location=location.abovebar, color=color.new(color.green, 0))
plotchar(short_sl and last_shortCondition > nz(last_short_close[1]) and isSLl , char='🔴', text='BE SHORT', title='Break Even Short', size=size.tiny, location=location.belowbar, color=color.new(#fd4d4d, 0))

plotchar(long_sl2 and last_longCondition2 > nz(last_long_close2[1]), char='⛔', text='SL LONG', title='Stop Loss Long ', size=size.tiny, location=location.abovebar, color=color.new(color.red, 0))
plotchar(short_sl2 and last_shortCondition2 > nz(last_short_close2[1]), char='⛔', text='SL SHORT', title='Stop Loss Short ', size=size.tiny, location=location.belowbar, color=color.new(color.red, 0))

lsl2 = long_sl2 and last_longCondition2 > nz(last_long_close2[1]) ? (1 - sl2 / 100) * last_open_longCondition2 : na

ssl2 = short_sl2 and last_shortCondition2 > nz(last_short_close2[1]) ? (1 + sl2 / 100) * last_open_shortCondition2 : na

plotshape(dir == 1 and dir[1] == -1 and Show_Signals ? longStop : na, title='BUY', style=shape.labelup, location=location.belowbar, size=size.small, text='LONG', textcolor=color.new(color.white, 0), color=bullcolor)

plotshape(dir == -1 and dir[1] == 1 and Show_Signals ? shortStop : na, title='SELL', style=shape.labeldown, location=location.abovebar, size=size.small, text='SHORT', textcolor=color.new(color.white, 0), color=bearcolor)

barcolor(dir == 1 ? bullcolor : bearcolor)

bull = dir == 1 and dir[1] == -1 and Show_Signals ? longStop : na
bear = dir == -1 and dir[1] == 1 and Show_Signals ? shortStop : na

trigger = bull ? 1 : 0
countBull = ta.barssince(bull)
countBear = ta.barssince(bear)
atrBand = ta.atr(atrLen) * atrRisk
atrStop = trigger == 1 ? low - atrBand : high + atrBand

lastTrade(src) => ta.valuewhen(dir == 1 and dir[1] == -1 and Show_Signals ? longStop : na or dir == -1 and dir[1] == 1 and Show_Signals ? shortStop : na , src, 0)

entry = levels ? label.new(time, close, "ENTRY " + str.tostring(lastTrade(close), decimals), xloc.bar_time, yloc.price, color.gray, label.style_label_left, color.white, size.normal) : na
label.set_x(entry, label.get_x(entry) + math.round(ta.change(time) * lvlDistance))
label.set_y(entry, lastTrade(close))
label.delete(entry[1])

stop_y = lastTrade(at

Показано первые 50% кода (символов: 24835)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
2 483,50₽ ≈ $30.35