← Դեպի փաստաթղթեր
LootX

Ալերտներ սկրիպտներից

Կազմվել է: 2026-10-01 docs.lootx.trade
Основы

1Ալերտներ սկրիպտներից

Ինչպես LootScript-սկրիպտը հայտնում է պայմանի կատարմանը՝ alert() և alertcondition(), դրանց հաճախականությունը, պայմանների ակտիվացումը, ուր հասնում են ծանուցումները և ինչից զուրկ են սկրիպտային ալերտները։

Սկրիպտը կարող է ձեզ տեղեկացնել, որ կենդանի շուկայում կատարվել է պայման՝ breakout մակարդակի անցում, delta-ի spike կամ գծերի հատում։ Այս համար LootScript-ում կան երկու ֆունկցիա՝ alert(), որը սկրիպտը կանչում է ինքնուրույն, և alertcondition(), այն պայմանը, որը դուք ակտիվացնում եք ձեռքով։

Սբազվածությունը անցնում է նույն pipeline-ով, ինչ մնացած տերմինալի ծանուցումները՝ գրառում time and sales-ում՝ Ծանուցումներ, ձայն և վիզուալ badge։ Բոլորը հաշվարկվում են ձեր տերմինալում՝ ձեր համակարգչին վրա. ալերտները աշխատում են, միայն եթե տերմինալը բաց է և սկրիպտը տեղադրված է գրաֆիկի վրա։

Երկու եղանակ

alert() alertcondition()
Ո՞վ որոշում է զանգը Կոդը (սկրիպտը) Դուք՝ պայմանը պետք է ակտիվացվի
Ե՞րբ է գործում Ըստ ընտրված հաճախականության, այդ թվում՝ անփակ բարում Միայն բարի փակմանը, ոչ հաճախ քան մեկ անգամ մեկ բարի համար
Տեքստ Любая строка, можно собрать из чисел Ֆիքսված տեքստ կոդում
Որտեղ միացվում է Завжди, երբ սկրիպտը գրաֆիկին է Галочкой в консоли редактора

Եթե ալերտը պետք է միշտ աշխատի — օգտագործեք alert(). Եթե սկրիպտը հայտարարում է մի քանի սիգնալ, բայց զանգել պետք է միայն որոշներին — հայտարարեք դրանք alertcondition()-ով և ակտիվացրեք անհրաժեշտները։

alert(): ալերտը կոդից

TEXT
alert(message, freq = alert.freq_once_per_bar_close)

message — տող. թվեր նրա մեջ տեղադրեք՝ str.tostring-ով, օրինակ՝ "Цена " + str.tostring(close). Տեքստը գալիս է ծանուցման մեջ այնպես, ինչպես է — տերմինալը այն չի փոխում և չի ուղղում։

Հաճախականությունը задаётся константой.

Հաճախականություն Ե՞րբ է զանգում
alert.freq_once_per_bar_close Լռելյայն. Մի անգամ, երբ բարն փակվեց՝ հաջորդ բարի առաջին թարմացման պահին,փակված արժեքներով
alert.freq_once_per_bar Առաջին մարտի պահին, երբ կանչը կատարվում է այդ բարում, նույնիսկ եթե բարն դեռ ձևավորվում է. հետ՝ լռում է մինչև հաջորդ բար
alert.freq_all Ամեն recalculation կենդանի բարի վրա, որտեղ կանչը կատարվել է

Հաճախականությունը հաշվարկվում է յուրաքանչյուր alert() կանչի համար առանձին. Երկու կանչ մեկ սկրիպտում չեն լռեցնում մեկը մյուսին. Մի recalculation — առավելագույնը 16 ալերտ, մնացածները մերժվում են։

Օրինակ՝ ալերտ՝ delta-ի spike-ի վրա, հենց այն հայտնվի ձևավորվող բարում:

Loot
indicator("Всплеск дельты", overlay = false)
mult = input.float(3.0, "Во сколько раз больше обычного", minval = 1.5, step = 0.5)
base = ta.sma(math.abs(delta.value), 50)
spike = delta.available and math.abs(delta.value) > base * mult
plot(delta.value, "Дельта", style = plot.style_columns, color = delta.value >= 0 ? color.teal : color.red)
if spike {
    alert("Всплеск дельты: " + str.tostring(delta.value, "#.##"), freq = alert.freq_once_per_bar)
}

Այն տեղերում, որտեղ delta չկա, delta.available-ը false է և ալերտը լռում է — մանրամասներ na-ի կանոնի մասին՝ բաժնում Данные рынка.

alertcondition(): պայման, որը դուք ակտիվացնում եք

TEXT
alertcondition(condition, title, message)

condition — լոգիկ արտահայտություն, title — պայմանի անունը, message — ծանուցման տեքստը. title-ն և message-ը պետք է լինեն լտի տողեր կոդում — դրանցից թվեր չեք sastavlyaete: Եթե message չկա, ծանուցման մեջ կիրակի title-ը։

Պայմն ձայնարկվում է միայն բարի փակմամբ, ոչ ավելի հաճախ քան մեկ անգամ մեկ բարի համար և միայն եթե այն ակտիվացված է. Լռելյայն բոլոր պայմանները անջատված են։

Ավելացրեք սկրիպտը գրաֆիկին

Խմբագրիչում սեղմեք Ավելացնել գրաֆիկին։

Բացեք թաբը «Արդյունք»

Կոդի տակ գտնվող կոնսոլում ընտրեք Արդյունք թաբը. այնտեղ ցուցադրված են շարերի արժեքները վերջին բարում և ցանկը «Условия алертов (alertcondition) — ակտիվացրե՛ք անհրաժեշտը»:

Ակտիվացրե՛ք պայմանները

Մարկացրեք այն պայմանները, որոնցով ուզում եք ստանալ ծանուցումներ. Եթե սկրիպտը կանգնած է մի քանի գրաֆիկներում, յուրաքանչյուրը ունի իր ցանկը։

Պատմությունը լուռ է

Ալերտները հնչում են միայն կենդանի թարմացումներում. Առաջին հաշվարկը՝ գրաֆիկի բեռնումից, գործիքի փոփոխությունից կամ հին պատմության բեռնումից հետո, համարվում է պատմություն՝ ուստի անցյալ բարերի վրա ոչ alert(), ոչ alertcondition() չի աշխատի. Այս պատճառով, սկրիպտը գրաֆիկին ավելացնելուց հետո դուք ոչ մի զանգվածային անցյալի ծանուցումներ չեք ստանա.

Պայմանի աշխատառությունը պատմության վրա տեսնելու համար նկարեք այն plotshape-ով՝ այն ցույց կտա յուրաքանչյուր բար, որտեղ ալերտը կաշխայի։

Ուր է գնում ալերտը

Յուրաքանչյուր սրակտիկացում՝

  • Գրառվում է time and sales-ում՝ «Ծանուցումներ» աղբյուրով «Սկրիպտային ալերտ». Գրառման մեջ ցույց են տրվում հաղորդագրության տեքստը, սկրիպտի անունը և, alertcondition()-ի համար, պայմանի անվանումը. time and sales-ը բացվում է առանձին պատուհանով կամ workspace վահանակով; ֆիլտր Աղբյուրներ-ը թողնում է միայն սկրիպտային ալերտները։
  • Միացնում է ձայնը. Ձայնը ընտրում են Կարգավորումներ → Ծանուցումներ, «Звуки» բաժնում՝ տողը «Скриптовый алерт»: ցանկ ձայների և անջատիչ, որը կարող եք անջատել ձայնը։
  • Ցուցադրում է badge՝ «Սկրիպտի անունը: հաղորդագրություն»։
  • Осветляет workspace tab-ը, որտեղ կանգնած է գրաֆիկը սկրիպտով։

Մյուս տերմինալի ծանուցումները նկարագրված են էջում Алерты и уровни.

Մատյան: log.*

Պայմանների отладка-ի համար կա մատյան: log.info, log.warning և log.error գրում են տողը Մատյան թաբում՝ նույն տեղում, որտեղ գտնվում են Խնդիրներ և Արդյունք:

  • Մատյանը, ինչպես ալերտները, գրանցվում է միայն կենդանի թարմացումներով — պատմության վրա լռում է։
  • Մի բարի համար՝ ոչ ավելի քան 16 տող; մնացածները մերժվում են։
  • Կոնսոլը պահպանում է վերջին 256 տողերը. ավելի հին տողերը տեղը զիջվում են, դրանց թիվը ցուցադրվում է որպես «вытеснено строк». Очистить կոճակը մաքրում է մատյանը։
Loot
indicator("Проверка условия", overlay = true)
len = input.int(20, "Канал, баров", minval = 2, maxval = 500)
upper = ta.highest(high, len)[1]
plot(upper, "Верх канала", color = color.teal)
if barstate.islast {
    log.info("Закрытие " + str.tostring(close) + ", верх канала " + str.tostring(upper))
}

Օրինակ՝ пробой канала

Սկրիպտը բացում է ալիքի վերին սահմանը, նշում է пробои եռանկյուններով և հայտնում դրանց մասին երկու ձևով՝ alert() միշտ ձայն է տալիս, իսկ պայմանը «Пробой вверх» ձայնում է միայն եթե դուք այն ակտիվացրել եք։

Loot
indicator("Пробой канала с алертом", overlay = true)
len = input.int(20, "Канал, баров", minval = 2, maxval = 500)
upper = ta.highest(high, len)[1]
breakUp = ta.crossover(close, upper)
plot(upper, "Верх канала", color = color.teal)
plotshape(breakUp, "Пробой", style = shape.triangleup, location = location.belowbar, color = color.teal, size = size.small)
if breakUp {
    alert("Пробой вверх, цена " + str.tostring(close), alert.freq_once_per_bar_close)
}
alertcondition(breakUp, "Пробой вверх", "Цена закрылась выше канала")

Սահմանը վերցվում է shift [1]-ով — նախորդ բարերից, հակառակ դեպքում ընթացիկ максимумը միշտ կլինի ալիքի ներսում. Հաճախականությունfreq_once_per_bar_close նշանակում է, որ ալերտը կհնչի բարի փակվելուց հետո, և եռանկյունը գրաֆիկում կմնա հենց այնտեղ, որտեղ ալերտը հնչեց. Իրական կյանքի սկրիպտներում սովորաբար թողնում են մեկ եղանակը; այստեղ երկուսը՝ համեմատության համար։

Դրանից հետո

https://docs.lootx.trade/hy/loot/alerts