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

Կոմպիլյացիայի և կատարման սխալներ

Կազմվել է: 2026-10-01 docs.lootx.trade
Справочник

1Կոմպիլյացիայի և կատարման սխալներ

Բոլոր LS կոդերը, որոնք ցույց են տալիս Խմբագիրը և գրաֆիկը՝ հաղորդման տեքստը, պատճառը և շտկման եղանակը, հաճախակի սխալների օրինակներ, կատարման սահմաններ և դեպքեր, երբ սխալի փոխարեն ստացվում է na։

Յուրաքանչյուր հաղորդագրություն կոմպիլյատորի և LootScript-ի կատարողի կողմից սկսվում է LS2008 տիպի կոդով։ Կոդը չի փոխվում տարբերակների շնորհիվ և չի կախված ինտերֆեյսի լեզվից, այդ պատճառով հեշտ է դրա միջոցով որոնել։ Այստեղ հավաքված են բոլոր կոդերը, որոնք կարող է ցույց տալ տերմինալը՝ հաղորդման տեքստով, պատճառով և շտկման եղանակով.

Հաղորդագրությունները ցուցադրվում են ռուսերեն՝ եթե տերմինալի ինտերֆեյսը ռուսերեն է, և անգլերեն՝ ցանկացած այլ լեզվի դեպքում։ Ստորև՝ առաջինը—հաճախ հանդիպող սխալները, այնուհետ՝ կատարման սխալները և ավարտում՝ ամբողջական աղյուսակը։

Որտեղ են երևում սխալները

Կոմպիլյացիայի ժամանակ. Խմբագիրը կոմպիլացնում է სკրիպտը ամեն տիպի հավաքման կանգում։ Մինչև գտնվածը հայտնվում է «Խնդիրներ» թաբում խմբագրիչի ստորին մասում՝ կոդով, տեքստով և դիրքով՝ «Стр 6:6» տեսքով։ Տողի վրա երկակի կտտոցը տեղափոխում է կուրսորը սխալի տեղը։ Խմբագրիչի վերնագրում արտացոլվում է ամփոփը՝ «ок · 12 мс», «предупреждений: 2» կամ «ошибок: 1»։

Կատարման ժամանակ. Կոմպիլյացիոն սխալներ չպահպանող սկրիպտը կարող է կանգնել որոշ բարի վրա՝ օրինակ՝ եթե գործողությունների բյուջեն վերջացել է, ինդեքսը вышел за границы массива կամ անհայտ է գործիքը։ Այդ դեպքում «Արդյունք» թաբում կհայտնվի տող՝ «Սկրիպտը կանգնեցվել է՝ LS6004: …», և նույն պատճառը կտեսնեք Ստրատեգիայի թեստեր պատուհանում։ Մյուս սկրիպտները, վահանակները և ինքն տերմինալը շարունակվում են աշխատել։

Դիագնոստիկան ունի երեք մակարդակ՝

Մակարդակ Ի՞նչ է նշանակում Ի՞նչ է կատարվում գրաֆիկում
Սխալ Սկրիպտը չի համակերպվել Սկրիպտը գրաֆիկ չի ավելացվում: «Սկրիպտը սխալներով գրաֆիկ չի ավելացվում — siehe Խնդիրներ». Եթե սկրիպտը արդեն գրաֆիկների վրա է՝ այնտեղ կմնա նախկին աշխատանքային տարբերակը
Նախազգուշացում Սկրիպտը համարվել է, բայց արդյունքը կարող է խաբել, օրինակ՝ այն կարող է փոփոխվել կենդանի բարի վրա Սկրիպտը աշխատում է
Սведение Սկրիպտը համարվել է, բայց իր որոշ կարգավորումներից մեկը ոչինչ չի անում Սկրիպտը աշխատում է

Ինչպես դասավորվում են կոդերը

Կոդեր Փուլի անվանում Ի՞նչ մասին է
LS0001–LS0009 Տեքստի ընթերցում Նիշեր, տողեր, թվեր, գույներ, #version դիրեկտիվ
LS1000–LS1012 Պարսում Սառիչներ, բլոկներ, օպերատորների կարգ, սկրիպտի հայտարարություն
LS2000–LS2030 Տիպեր և անուններ Անհայտ անուններ, տիպեր, արգումենտներ, na
LS3000–LS3033 Ծրագրի իմաստ ta.* ճյուղերում, ռեկուրսիա, ստրատեգիաներ, գրադարաններ, request.security
LS4000–LS4009 Կոմպիլյացիայի սահմաններ Զգալի թվով σειրեր, արտանետումներ, կանչեր
LS5000–LS5013 Պերերիսովկա և թեստերի ազնվություն Ամբողջություններ, որոնք պատմության վրա կտարբերվեն կենդանի ժամանակից
LS6000–LS6036 Կատարում Բյուջեներ, ինդեքսներ, կոլեկցիաներ, տողեր, գրաֆիկական օբյեկտներ
LS0999 Ներքին ձախողում Կոմպիլյատորի սխալ — անհրաժեշտ է հայտնել աջակցությանը

Հաճախ հանդիպող կոմպիլյացիոն սխալներ

LS1009 — սկրիպտի հայտարարություն չկա

«Нет объявления скрипта — начните с indicator(“Название”)». Ֆայլի առաջին օպերատորը պետք է լինի indicator(...), strategy(...) կամ library(...)։ Այդ նույն սխալը տալիս է, եթե հայտարարությունն ունի, բայց դրանից վեր ինչ-որ բան է գրված։ Հաշմանդամները և #version 1 դիրեկտիվը չեն խանգարում։

Loot
// Так нельзя: объявление не первое
len = input.int(14, "Длина")
indicator("RSI")
Loot
indicator("RSI")
len = input.int(14, "Длина")

Ֆայլում երկրորդ հայտարարությունը տալիս է LS1008՝ մի սկրիպտին թույլատրվում է միայն մեկը։

LS2002 — անհայտ անուն

«Неизвестное имя «…» — проверьте написание или объявите его выше». Հաճախ դա տպագրական սխալ է կամ ֆունկցիան կանչվել է առանց namespace-ի։ Բոլոր ինդիկատոր ֆունկցիաները գտնվում են ta-ում, մաթեմատիկականը — math-ում, գույները — color-ում։

Loot
avg = sma(close, 20)
Loot
avg = ta.sma(close, 20)

Նույն սխալը կգտնվի, եթե փոփոխականը կարդացվեց այն տողից վեր։ Լրիվ անունների ցուցակը՝ ֆունկցիաների ուղեցույցում։

LS2008 — na-ով համեմատում

«Сравнение с na всегда ложно — используйте na(x)». Ինչպիսի նիշով էլ լինի na-ի համեմատությունը (==, !=), այն միշտ տալիս է false, ուստի կոմպիլյատորը արգելում է նման գրել։

Loot
x = ta.sma(close, 50)
plot(x == na ? close : x)
Loot
x = ta.sma(close, 50)
plot(na(x) ? close : x)

Կարճ տարբերակը?? է՝ plot(x ?? close)։

LS2014 — արժեքը փոխվում է բար-բար այնտեղ, որտեղ պետք է լինի կոնստանտ

««…» в «…» требует значение не слабее input, а передано series — возьмите input.*(…) или литерал». ta.*-երի համար պատուհանի երկարությունը պետք է հայտնի լինի մինչ առաջին բար։ Բարերով ընտրվող երկարությունը չի անցնում։

Loot
len = close > open ? 10 : 20
avg = ta.sma(close, len)

Համեմատեք երկու տարբերակները և ընտրեք արդյունքը, ոչ թե երկարությունը՝

Loot
fast = ta.sma(close, 10)
slow = ta.sma(close, 20)
avg  = close > open ? fast : slow

Եթե երկարությունը պետք է օգտագործողի կողմից տրվի, վերցրեք այն input.int(...)-ից։

LS3004 — ta.* կանչը կախված է ճյուղի փոփոխականից

«Аргумент «…» нельзя вычислить вне ветки — вынесите вызов ta.* на верхний уровень». ta.* ֆունկցիաները հիշում են անցյալ բարի տվյալները, ուստի կոմպիլյատորը դրանց հաշվարկը անում է յուրաքանչյուր բարի համար, նույնիսկ եթե կանչը հանգեցված է if-ի ներսում։ Եթե արգումենտը հայտարարված է միայն ճյուղի ներսում, այն մյուս բարի վրա չի լինի։

Loot
var float avgBody = na
if close > open {
    body = close - open
    avgBody := ta.sma(body, 10)
}
Loot
body    = close - open
avgBody = ta.sma(body, 10)

LS2017, LS2007, LS1006 — տողեր, պայմաններ և համեմատություններ

Այս երեք սխալների ընդհանուր պատճառը՝ LootScript-ը չի կատարում տիպերի լռելյայն կոնվերտացիա։

Կոդ Հաղորդագրություն Ինչպես շտկել
LS2017 «Строку нельзя складывать с числом (… + …) — используйте str.tostring(…)» "RSI " + str.tostring(r) փոխարեն "RSI " + r
LS2007 «Условие должно быть bool, а здесь …» if volume > 0՝ ոչ թե if volume — թվերին «ճշմարտականություն» չի վերագրվում
LS1006 «Сравнения не сцепляются — напишите a < b and b < c» low < close and close < high փոխարեն low < close < high

LS2018 և LS2019 — անունը արդեն զբաղված է

««…» уже объявлено в этой области» (LS2018) — փոփոխականը հայտարարվել է երկրորդ անգամ =-ով։ Մնա փոփոխականը փոխելու համար օգտագործեք :=։

Loot
level = high
level := low

««…» затеняет встроенное имя — выберите другое» (LS2019) — փոփոխականը, ֆունկցիան կամ տիպը անվանվել է այնպես, ինչպես built-in շարքը կամ ֆունկցիան՝ close, time, hour, volume. Փոխանակեք անունը՝ օրինակ startHour։ Տարածքային անուններ նման color կամ position կարելի է օգտագործել փոփոխականների անվան համար։

LS2004 և LS2005 — կանչի արգումենտները

««…» ожидает … аргумент(ов), а передано …» (LS2004) և «У «…» нет параметра «…»» (LS2005). Սովորեք կանչի signature-ները ֆունկցիաների ուղեցույցում: արգումենտների անունները և քանակը պետք է համապատասխանեն։

Loot
plot(close, colour = color.red)
Loot
plot(close, color = color.red)

LS3011 և LS5011 — ստրատեգիաներ

«strategy.* доступно только в strategy(…)» (LS3011): հայտերն ու դիրքի վիճակը հասանելի են միայն այն սկրիպտների համար, որոնք հայտարարված են strategy(...)-ով։ Փոխարինեք indicator("…")-ը strategy("…")-ով։

«Стратегия читает «…»: у order book և time and sales տվյալների պատմություն չկա, բեքթեստը կլինի շեղում» (LS5011): Ստրատեգիան իջնում է պատմության վրա, իսկ book.* և tape.* տվյալներին պատմություն չկա — անցյալ բոլոր բարերին այնտեղ na է։

Loot
strategy("Перекос стакана")
if book.imbalance(10) > 0.5 {
    strategy.entry("L", strategy.long)
}

Պատմության համար order book-ի արժեքները վերցրեք depth տարածքից՝ այնտեղից ստացված արժեքները հասանելի կլինեն պատմության յուրաքանչյուր բարի համար։

Loot
strategy("Перекос стакана")
if depth.imbalance(1.0) > 0.5 {
    strategy.entry("L", strategy.long)
}

LS5000–LS5006 — перерисовка-ի նախազգուշացումներ

Այս նախազգուշացումները չեն պատնեշում սկրիպտի աշխատանքը։ Նրանց նպատակն է ասել, որ պատմության վրա գիծը կարող է տարբերվել նրանից, ինչ էր տեսել կենդանի բարը:

  • LS5001 — գրաֆիկին հասնում է արժեք, որը գոյություն ունի միայն կենդանի բարի վրա (barstate.isrealtime, barstate.isnew).
  • LS5000 — գրաֆիկին հասնում է varip-ը՝ այն կուտակում է կենդանի բարի տիկները, որոնք պատմության մեջ չկան։
  • LS5006 — գրաֆիկին հասնում են book.* կամ tape.*՝ պատմության վրա շարքը դատարկ է։
  • LS5003 — request.security-ից ստացվում է վերակարգ timeframe առանց [1]՝ անփակված բարը կարող է փոխվել։
  • LS5002 — lookahead = true request.security-ում՝ պատմության վրա սկրիպտը տեսնում է ապագան։
  • LS5005 — math.random կամ timenow ցուցադրվում են՝ երկու անցում կտան տարբեր գծեր։

Եթե նպատակդ միայն կենդանի առևտուրն է, կարելի է այս նախազգուշացումները թողնել։

LS3016 — կարգավորումը ընդունվել է, բայց ոչինչ չի անում

Սա сведениե է, ոչ սխալ։ Վстречается import-ված կամ այլ փոխանցված սկրիպտներում՝ երբ կարգավորումը պահպանված է համատեղելիության համար, բայց տերմինալում այն ոչ մի ազդեցություն չունի։ Հաղորդագրության երկրորդ մասը բացատրում է պատճառը։

Ինչ է գրված Բացատրություն հաղորդման մեջ
maxBarsBack հայտարարությունում Պատմությունը բեռնվում է ամբողջությամբ շարքով
format, precision, scale հայտարարությունում Տերմինալը կառավարում է արժեքների մասշտաբն ու ֆորմատը
timeframe հայտարարությունում Սկրիպտը հաշվվում է գրաֆիկի timeframe-ով; այլ timeframe-ի համար օգտագործեք request.security
Գծի բարակություն, ոճ կամ այլ ցուցիչներ, որոնք մատակարարեն արտահայտությամբ, ոչ թե կոնստանտով (օր. գույնը կարող է փոխվել բարերով) Այս հավաքածուն այս կարգավորումները կկարդա միայն որպես կոնստանտներ
color չորրորդ և հաջորդ plot-երի համար Վահանակը պատկերում է միայն առաջին երեք շարքերը
location.absolute plotshape կամ plotchar-ում Նշման համար չկա հենվող շարք
display, որը այս շարքի համար չկա Այս շարքը չունի համապատասխան մակերես

Կատարման սխալներ

Կատարման սխալը կանգնեցնում է սկրիպտը այն բարի վրա, որտեղ այն տեղի է ունեցել։ Տեքստը ցույց է տրվում «Արդյունք» թաբում որպես «Սկրիպտը կանգնեցվել է՝ LS6004: …»։

LS6004 և LS6005 — սկրիպտը շատ časa է աշխատում

«Սկրիպտը սպառել է գործողությունների բյուջեն մեկ բարի համար — պարզեցրեք ցիկլը» (LS6004) և «Սկրիպտը գերազանցել է անցման ժամանակի սահմանը» (LS6005). Յուրաքանչյուր բարի համար բյուջեն 2 000 000 օպերացիա է։ Ժամանակի սահմանը նույնպես գործունեություն ունի՝ ամբողջ անցումը պատմության վրա — 2 վայրկյան, մեկ տիկ կենդանի բարի վրա — 20 մս։ Հաճախ պատճառը անսահման ցիկլն է կամ յուրաքանչյուր բարի վրա չափազանց շատ տվյալների համատեղումը։

Loot
var int n = 0
i = 0
while i < 10 {
    n := n + 1
}
Loot
var int n = 0
i = 0
while i < 10 {
    n := n + 1
    i := i + 1
}

LS6002 և LS5004 — ապագայում ընթերցում

Պատմության ինդեքսը x[n] չի կարող բացասական լինել — close[-1] կմիանար հաջորդ բարին։ Եթե բացասական թիվը գրված է ուղղակիորեն, կոմպիլյատորը կպատժի դա անմիջապես (LS5004)। Եթե այն ստացվել է հաշվարկով, սկրիպտը կկանգնի և ցույց կտա «Отрицательное смещение истории — читать буду нельзя» (LS6002) սխալը։ Ինդեքսը, որը գերազանցում է բեռնված բարերի քանակը, չի համարվում սխալ՝ այն վերադարձնում է na։

LS6001, LS6007, LS6019 — կոլեկցիաներ և օբյեկտներ

  • LS6001 «Индекс … вне границ» — array.get, array.set կամ matrix.get կանչը դուրս է մեջտեղից։ Ստուգեք array.size(a)-ը մինչ դիմումը։
  • LS6007 «Обращение к пустому объекту (na)» — կոլեկցիան հայտարարված է, բայց չի ստեղծվել՝ var array<float> a = na, ապա a.push(x). Ստեղծեք այն array.new<float>()-ով։
  • LS6019 «Объект рисования уже удалён или вытеснен по потолку — создайте его заново». Միաժամանակ գոյություն ունեն 500 օբյեկտներ նույն տեսակի; ամենահինը հանում է հին մեկը։ Բարձրացրեք սահմանը maxLinesCount, maxLabelsCount կամ maxBoxesCount հայտարարությունում կամ վերօգտագործեք օբյեկտը set_*-ով։

LS6017 և LS6018 — request.security-ում գործիքն ու timeframe-ը

«Символ «…» неизвестен — проверьте формат «ПЛОЩАДКА:СИМВОЛ» или задайте ignore_invalid_symbol = true» (LS6017) և «Таймфрейм «…» не разбирается — ожидается «5», «60», «4h», «1D», «1W»» (LS6018). Սահմանելով ignore_invalid_symbol = true, անհայտ սիմվոլը կվերադարձնի na՝ ոչ թե կանգնեցում։

Կատարման սահմաններ

Ինչն է սահմանափակված Սահման Կոդը գերազանցման դեպքում
Օպերացիաներ մեկ բարի համար 2 000 000 LS6004
Պատմության / կենդանի բարի անցման ժամանակ 2 ս / 20 մս LS6005
Աղյուսակի տարրեր 100 000 LS6003
Տառապոդում զույգեր 50 000 LS6003
Մատրիցայի տարրեր 1 000 000 LS6003
ta.* պատուհանի երկարությունը 100 000 բար LS6034
Մեկ տողի երկարությունը 100 000 նիշ LS6014
Աղյուսակի բջիջներ 2000 LS6029
Տերմալային դաշտի շերտեր 4 (0-ից մինչև 3) LS6036
Գծային օբյեկտների մեկ տեսակի քանակը 500 ըստ լռելյայն հինը տեղահանվում են
request.security-ում տարբեր «ինստրումենտ + timeframe» զույգեր 8 —
request.security կանչերի քանակը 32 LS4009 կոմպիլյացիայում

Երբ սխալ չկա, բայց արժեք չկա

Ամենա շատ դեպքեր, որոնք մյուս լեզուներում կհանգեցնեին runtime crash-ին, LootScript-ում վերադարձնում են na՝ գրաֆիկը չկոտրելու համար։

  • Արիթմետիկան na-ով վերադարձնում է na: օրինակ close - x՝ եթե x դատարկ է՝ արդյունքը նույնպես դատարկ է։
  • x[n] երբ n թեխն է ավելի մեծ՝ քան պատմության սկիզբը — na.
  • ամբողջ թվով բաժանումի ժամանակ զրոյով բաժանումը — na, իսկ հարմարվող (դիրք ունեցող) բաժանումը չի կանգնեցնում սկրիպտը։
  • book.*, tape.* և screener.* պատմական բարերի վրա — na.
  • footprint cluster-ներ, delta, open interest և order book-ի պատմությունը — na այն բարերի վրա, որտեղ տվյալներ չկան։ Ստուգեք cluster.available, delta.available և հարակից ֆլագները։
  • ta.* առաջին բարերի վրա՝ մինչև պատուհանը լցված է — na。

na գրաֆիկին երբեք չի նկարվում որպես զրո։ Լայն գիծը ընդհատվում է։ Եթե պետք է փոխարինել արժեք, օգտագործեք nz(x), x ?? запасное կամ fixnan(x)։

Բոլոր կոդերը

LS0001–LS0009 և LS0999 — տեքստի ընթերցում

Կոդ Հաղորդագրություն Ի՞նչ անել
LS0001 Անսպասելի նիշ «…» Հեռացրեք այն նիշը, որը լեզվում թույլատված չէ
LS0002 Տողը փակված չէ — ավելացրեք փակող ուղակովորդը նույն տողի վերջում Փակեք մատնանշիչը նույն տողում
LS0003 Բլոկային մեկնաբանությունն փակված չէ — ավելացրեք */ Փակեք /* … */
LS0004 Անծանոթ escape-հաջորդականություն «…» տողում Աջակցվում են \n, \r, \t, \0, \\, \", \' և \u{…}; միայն \-ը կրկնեք
LS0005 Սխալ թվային լիտերալ «…» Ստուգեք թվի ձևը
LS0006 Թիվը «…» չի տեղավորվում տիպում Փոքրացրեք թիվը
LS0007 Սխալ գույնի լիտերալ «…» — սպասվում է #RRGGBB կամ #RRGGBBAA Վերցրեք 6 կամ 8 հեքս հաշվական նիշ
LS0008 Եռանիշ բաժանարար _-ը ստարտի, վերջի կամ կրկնվող դիրքում է Գրեք 1_000_000
LS0009 Սխալ #version դիրեկտիվ — սպասվում է #version <թիվ> առաջին տողում Դոդեք #version 1 առաջին տողում
LS0999 Կոմպիլյատորը չի կարողացել ֆայլը մշակել — սա բիլդի խափանում է, հաղորդեք աջակցությանը Հաղորդեք աջակցությանը՝ կցելով սկրիպտը

LS1000–LS1012 — պարսում

Կոդ Հաղորդագրություն Ի՞նչ անել
LS1000 Անսպասելի: … Ստուգեք տողը ավելորդ նիշերի համար
LS1001 Սպասվում էր «…», բայց հանդիպեց … Հաճախ փակագծերը չկան
LS1002 Սպասվում էր արտահայտություն, բայց հանդիպեց … Հեռացրեք բացասական բանական արժեքների բացակայությունը
LS1004 Սպասվում էր անուն, բայց հանդիպեց … После var, func, . պետք է անուն
LS1005 Սպասվում էր բլոկ ափագծված { }, բայց չկա … Ավելացրեք { … }
LS1006 Համեմատությունները չեն շղթայվում — գրեք a < b and b < c Բաժանել երկու համեմատության մեջ and-ով
LS1008 Երկրորդ հայտարարություն սկրիպտի — մի սկրիպտին թույլատրվում է միայն մեկ հայտարարություն Թողեք միայն մեկը
LS1009 Սկրիպտի հայտարարություն չկա — սկսեք indicator("Название")-ից Առաջին տողի վրա indicator, strategy կամ library
LS1010 Զգալի ներգնա խորըությունը (ավելի քան 64) — տեղափոխեք մի մասը ֆունկցիայի մեջ Բաժանեք արտահայտությունները կամ բլոկները
LS1012 if / for / while մարմինը պետք է լինի { ... } Ավելացրեք {}

LS2000–LS2030 — տիպեր և անուններ

Կոդ Հաղորդագրություն Ի՞նչ անել
LS2000 Տիպերի անհամապատասխանություն: սպասվում էր …, ստացվեց … Հաղորդեք ճիշտ տիպը
LS2001 Չի կարելի վերափոխել …-ը …-ի Վերափոխեք հստակ՝ str.tostring, math.round
LS2002 Անհայտ անուն «…» — ստուգեք հորինումը կամ հայտարարեք այն վերևում Շտկեք տպագրությունը, ավելացրեք namespace (ta.) կամ հայտարարեք վերևում
LS2003 «…» — ոչ ֆունկցիա, կանչել չի կարելի Հեռացրեքալ ()-երը: դա շարք կամ կոնստանտ է
LS2004 «…» սպասում է … արգումենտ(ներ), իսկ տրված է … Ս›հեք signatures-ները ուղեցույցում
LS2005 «…»-ն չունի պարամետր «…» Շտկեք պարամետրերի անունը
LS2006 Արգումենտը «…» փոխանցվում է կրկնությամբ Հեռացրեք կրկնությունը
LS2007 Պայմանին անհրաժեշտ է bool, իսկ այստեղ … Բացահայտեք համեմատությունը՝ x > 0, not na(x)
LS2008 na-ով համեմատությունը միշտ կեղծ է — օգտագործեք na(x) na(x) փոխարեն x == na
LS2014 «…» в «…» պահանջում է input-ի մակարդակի արժեք, բայց փոխանցվել է series — օգտագործեք input.*(...) կամ լիտերալ Լիտերալ կամ input.*-ով փոխանցեք
LS2015 «…» հայտարարված է որպես կոնստանտ — նրան հարցափոխել нельзя; հայտարարեք var-ով input.* կարգավորումները, ցիկլի փոփոխականները և ֆունկցիայի պարամետրերը չեն փոխվում — պատճենեք արժեքը ձեր փոփոխականում
LS2017 Տողը չի կարելի գումարել թվի հետ — օգտագործեք str.tostring(...) str.tostring կամ str.format
LS2018 «…» արդեն հայտարարված է այս առակայությունում Օգործեք := նոր արժեքի համար կամ ընտրեք այլ անուն
LS2019 «…» ծածկում է բիլտին անունը — ընտրեք այլ անուն Փոխանվեք անունը
LS2020 Ճյուղերը տալիս են տարբեր տիպեր: … և … Առաջացրեք երկու ճյուղերը նույն տիպի
LS2021 switch առանց default ճյուղի — ավելացրեք => ... Ավելացրեք => արժեք
LS2022 «…»-ի էլեմենտի տիպը չի ենթադրվում — նշեք այն array.new<float>()
LS2028 Տիպի հայտարարության ֆիլդը «…» չունի տիպ — գրեք այն վրա float price объявления type-ի մեջ
LS2029 export «…»: экспортируемая функция должна иметь объявлены типы всех параметров и результата Ուշադրություն — նշեք բոլոր տիպերը
LS2030 «…» в «…» читается до первого бара — нужен литерал или именованная константа Հայտարարություններում թույլատրվում են միայն կոնստանտ արժեքներ

LS3000–LS3033 — ծրագրի իմաստ

Կոդ Հաղորդագրություն Ի՞նչ անել
LS3002 «…» կանչում է ինքն իրեն — ռեկուրսիան verboten է LootScript-ում Փոխարինեք ռեկուրսիան ցիկլով
LS3003 Փոխադարձ ռեկուրսիան արգելված է: … Խափանեք անվերջ ցիկլը
LS3004 արգումենտը «…» չի հաշվարկվում ճյուղից դուրս — վեր թռչեցրեք ta.* կանչը վերև Հաշվեք արգումենտները և կանչը if-ից դուրս
LS3006 «…» ծածկում է արտաքին անունը (նախազգուշացում) Փոխանվեք ներքին փոփոխականի անունը
LS3007 «…» գտնվում է ցիկլի դուրսում break և continue-ը միայն ցիկլի մեջ են
LS3008 return-ը ֆունկցիայի դուրսում return-ը միայն ֆունկցիայի մարմնում է
LS3009 export «…» հնարավոր է միայն library(…)-ում Հեռացրեք export կամ դարձեք գրադարան
LS3010 «…» առանց կանգառի մակարդակի (profit/loss/stop/limit/trail) — դատարկ օպերացիա (նախազգուշացում) Բացشفեք stop, take կամ trailing
LS3011 strategy.* հասանելի է միայն strategy(...)-ում Հայտարարեք որպես strategy(...)
LS3012 Գրադարաններում չի կարելի նկարել կամ հայտարարել input-ներ: … Ներդրում և կարգավորումները տեղափոխեք ինդիկատորին
LS3013 «…» request.security ներսում չի դառնա արժեքարգ/string — հայտարարեք input վերև և փոխանցեք Հայտարարեք input.* վերև և փոխանցեք փոփոխականը
LS3016 Կարգավորումը «…» ընդունվել է, բայց ոչինչ չի անում (սведение) Կարող եք թողնել կամ հեռացնել այն
LS3018 Գրադարան «…» չի գտնվել գրադարանների թղթապանակում — անունը վերցվում է library(“…”, N)-ից, ոչ ֆայլի անունից Ստուգեք գրադարանի հայտարարության մեջ տրված անունը
LS3019 Գրադարանների տարբերակները չեն գտնվել — նշեք տեղադրված տարբերակը Ցույց տվեք տեղադրված տարբերակը
LS3020 «…» request.security ներսում: order book և time and sales տվյալների վրա պատմություն չկա այլ սերիայի վրա Հեռացրեք book.*, tape.* արտահայտությունից
LS3025 Ֆունկցիա «…» հայտարարվում է, բայց չի կանչվում — նրա մարմինը միայն փորձարկվել է (նախազգուշացում) Կանչեք ֆունկցիան կամ հեռացրեք այն
LS3026 «…» պահանջում է stop, որի հաշվով հաշվարկել չափը: loss/stop պետք է նշված լինի մեջ կամ strategy.exit-ում Ավելացրեք stop-ը կամ օգտագործեք strategy.exit
LS3028 Այս բիլդը չի աջակցում՝ … Սարդարեք առանց այդ կառուցվածքի
LS3029 switch ճյուղը խճճված է — կրկնությունը անհասանելի է Հեռացրեք կրկնությունը
LS3030 «…» — գրաֆիկի փոփոխական է, բայց request.security հաշվարկվում է այլ series-ով; փոխանցեք արժեքը input.* կամ հաշվեք ներսում Հաշվեք ներսում կամ օգտագործեք input.*
LS3031 Գրադարանները ներառում են միմյանց՝ պտույտով Խափանեք ներառումների շրջանակը
LS3032 Գրադարանում «…» թույլատրվում են միայն ֆունկցիաների հայտարարություններ և import-ներ — այստեղ կա ավելին Հեռացրեք ավելորդ կոդը գրադարանից
LS3033 Գրադարան «…» չի համարկվում (…) — բացեք այն խմբագրիչում և շտկեք Շտկեք այդ գրադարանի սխալը

LS4000–LS4009 — կոմպիլյացիայի սահմաններ

Կոդ Հաղորդագրություն Ի՞նչ անել
LS4000 Շատ ta.* կանչեր: …՝ առավելագույնը 512 — հեռացրեք անիմաստ ta.*-երը կամ վերօգտագործեք փոփոխականներ Սահմանափակեք ta.* կանչերը և պատմող փոփոխականները
LS4001 Ծրագրի չափը շատ մեծ է (ավելի քան 4096 ներդրումներ) — պարզեցրեք ֆունկցիաները Խմբավորեք և նվազեցրեք пользовательские ֆունկցիաների կանչերը
LS4002 Շատ plot-եր — վահանակը չի կարող նկարել ավելի քան երեք շարք Ամբողջ արտանետումների քանակը (plot, plotshape, plotchar, bgcolor) — մինչև 64; նկարվում են առաջին երեք plot-երը
LS4009 Շատ request.security կանչեր: …, սահման 32 Միավորեք կանչերը

LS5000–LS5013 — պերերիսովկա և թեստեր

Կոդ Հաղորդագրություն Ի՞նչ անել
LS5000 varip-ը հասնում է ցուցադրման՝ պատմության վրա բերվելու դեպքում այն կլինի այլ (перерисовка) (նախազգուշացում) Օգտագործեք var, եթե պետք է նույն պատմությունը
LS5001 Միայն կենդանի բարի արժեքն է հասնում ցուցադրման — պատմության վրա այս արժեքը չի լինի (նախազգուշացում) Օգտագործեք barstate.isconfirmed
LS5002 lookahead = true ընթերցում է ապագայում — պատմության վրա արդյունքը անիրատեսական է (նախազգուշացում) Հեռացրեք lookahead = true
LS5003 Մեծագույն timeframe առանց [1] — անփակված բարը կարող է վերափոխվել; ավելացրեք [1] (նախազգուշացում) request.security(…, close[1])
LS5004 Նեղ գոտու բացասական ինդեքսը տեղափոխում է ցուցադրման անցյալը — պատմության վրա գիծը կարող է ճանաչել ապագան Հեռացրեք բացասական ինդեքսները x[-n]
LS5005 Նետդետերմինացված արժեքը հասնում է ցուցադրման — երկու անցում կտան տարբեր գծեր (նախազգուշացում) Մի ցուցադրեք math.random կամ timenow գրաֆիկում
LS5006 Տվյալները հասանելի են միայն կենդանի ժամանակում — պատմության վրա շարքը դատարկ է (նախազգուշացում) Պատմության համար օգտագործեք depth.* order book-ի տվյալների փոխարեն
LS5011 Ստրատեգիան ընթերցում է book.* կամ tape.* — նրանց վրա պատմություն չկա, բեքթեստը կլիներ սխալ Հեռացրեք book.* և tape.*-ը ստրատեգիայից
LS5012 Ստրատեգիան «օգտագործում է lookahead» («…») — զեկույցը նշվում է որպես անիրագործելի իրական ժամանակում (նախազգուշացում) Հեռացրեք lookahead = true
LS5013 «…» միացված է: հայտերը կատարվում են բարի փակման ժամանակ — զեկույցը նշված է (сведение) Հեռացրեք processOrdersOnClose, եթե պետք է իրականիստичный զեկույց

LS6000–LS6036 — կատարում

Կոդ Հաղորդագրություն Ի՞նչ անել
LS6001 Ինդեքսը … դուրս է սահմանների Ստուգեք կոլեկցիայի չափը մինչև դիմումը
LS6002 Բացասական տեղաշարժ պատմության մեջ — ապագայում ընթերցելն արգելված է Պատմության ինդեքսը պետք է ≥ 0
LS6003 Ամբողջ կոլեկցիայի չափը գերազանցվել է (…) — կոլեկցիան ստեղծվել է տողում … Սահմանափակեք աճը՝ հեռացնելով հին տարրերը
LS6004 Սկրիպտը սպառել է մեկ բարի օպերացիոն բյուջեն — պարզեցրեք ցիկլը Ստուգեք ելքի պայմանը ցիկլում
LS6005 Սկրիպտը գերազանցել է անցման ժամանակը Նվազեցրեք աշխատանքի վրա մեկ բարի համար
LS6007 Միացումն ուղղված է դատարկ օբյեկտին (na) Ստեղծեք կոլեկցիան կամ օբյեկտը մինչև դրանից օգտվելը
LS6014 Տողը երկար է ավելի քան 100000 նիշ — կրճատեք կամ հավաքեք մասերով Կրճատեք տողը
LS6015 Անհայտ ժամային գոտի «…» — պետք է IANA նույնականիչ, օրինակ Europe/Berlin Օգտագործեք IANA ձևաչափի անուն
LS6017 Սիմվոլը «…» անհայտ է — ստուգեք ֆորմատը «ՊԼՈՇԱԴԿԱ:SYMBOL» կամ նշանակեք ignore_invalid_symbol = true Շտկեք սիմվոլի ձևաչափը
LS6018 timeframe «…» չի ընթեռնվում — սպասվում է «5», «60», «4h», «1D», «1W» Շտկեք timeframe-ը
LS6019 Գծային օբյեկտը արդեն ջնջված է կամ տեղահանվել է սահմանափակումից — իր վերանշանակեք կամ ստեղծեք նորը Ստուգեք օբյեկտի հենակետը կամ բարձրացրեք սահմանը
LS6020 str.format: մի {…} placeholder-ին չի տրվել արգումենտ Տվեք արգումենտ յուրաքանչյուր {n}-ին
LS6021 str.match: regex-ն սպառել է բյուջեն — պարզեցրեք regex-ը Պարզեցրեք արտահայտությունը
LS6026 Սկրիպտի ընդհանուր կոլեկցիաների բյուջեն սպառվել է (… բջիջ) — տողից եկող կոլեկցիան չի տեղավորվում Կրճատեք կամ սահմանափակեք կոլեկցիաները
LS6027 Անվավեր արգումենտ «…» մեջ … Օրինակ՝ բացասական չափ array.new-ում
LS6028 Տողերի բյուջեն սպառվել է (…) — վերօգտագործեք տողերը նորերով յուրաքանչյուր բարի վրա Մի միտք կազմեք նոր տողեր յուրաքանչյուր բարի համար
LS6029 Աղյուսակում ավելի քան 2000 բջիջ — վահանակի բարձրագույն ոսկեզօծ Կրճատեք աղյուսակը
LS6030 Աղյուսակի բջիջը գտնվում է ցանցի սահմաններից դուրս: … Սյունի և տողի համար օգտագործեք ճիշտ ներբեռնված չափերը
LS6031 Ներքին ֆունկցիան «…» հայտարարված է, բայց չի իրականացված — սա բիլդի дэֆեկտ է, հաղորդեք աջակցություն Հաղորդեք աջակցությանը
LS6032 Handle-ը չի վերաբերում ճիշտ տեսակի օբյեկտին — օբյեկտը ազատվել է կամ handle-ը այլ պրոգրանից է Մի պահեք հին handle-եր դեպի ջնջված օբյեկտներ
LS6033 Փող … դուրս է տիպի հայտարարությունից — սա բիլդի սխալ է, հաղորդեք աջակցություն Հաղորդեք աջակցությանը
LS6034 Արագ պատուհանի երկարությունը … մեծ է 100000-ի — այդ պատուհանը չի տեղավորվի հիշողությունում Փոքրացրեք պատուհանի երկարությունը
LS6035 Ցիկլի քայլը հավասար է զրոյին — հաշվիչը չի շարժվում, և վերջը անհասանելի է by-ը in for չի կարող լինել զրո
LS6036 Տերմալ շերտը … դուրս է 0…3 միջակայքից layer-ը պետք է լինի 0-ից 3վա մեջ
Կոդեր, որոնք այս տարբերակը չի վերադարձնում

Այս համարները շարքայինորեն ամրագրված են լեզվում, սակայն այս վերսիայում տերմինալը դրանք չի ցուցադրում: LS1003, LS1007, LS1011, LS2016, LS3000, LS3001, LS3005, LS4003, LS4004, LS5007, LS6000, LS6006, LS6008, LS6022, LS6023. Օրինակ, հայտարարությունը առաջին տողում չլինելը հիմա հաշվարկվում է որպես LS1009, իսկ զրոյով բաժանումը չի կանգնեցնում սկրիպտը LS6000-ով։

Դրանից հետո

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