Money Moves [Premium Algo V2]
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «money moves [premium algo v2](2).pine» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
«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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.