Pine Script-ից ներմուծում
Ինչպես տեղափոխել ինդիկատորը Pine Script-ից LootScript՝ որտեղ է ներմուծման կոճակը, ինչ է կոնվերտերը ինքնուրույն փոխում, ինչը նշում է վերանայման համար և ինչպես վերջնականացնել արդյունքը.
Եթե ինդիկատորը արդեն գրված է Pine Script-ով, ձեռքով վերագրել այն հարկ չի լինի. տերմինալը կոնվերտացնում է .pine ֆայլը в LootScript՝ փոխելով սինտաքսը և անունները, ավելացնում բացակայող հատվածները և ֆայլի սկզբում գրում է նշումներ՝ ինչ է փոխվել եւ որտեղ կոնվերտերը ստիպված էր գուշակել.
Կոնվերտերը թարգմանիչ է, ոչ համատեղելիության շերտ. այն չի երաշխավորում նույն թվերը, ինչ սկզբնական среда-ն, եւ չի ավելացնում տերմինալում չկան ֆունկցիաները. այդ պատճառով ներմուծումից հետո բացեք սկրիպտը, կարդացեք նշումները եւ ստուգեք այն գրաֆիկի վրա. LootScript-ը անկախ մշակված լեզու է եւ կապ չունի TradingView-ի հետ՝ սինտաքսը դիտմամբ նման է, բայց լեզուները համատեղելի չեն.
Ինչպես ներմուծել
Բացեք Ինդիկատորներ պատուհանը
Սեղմեք ƒ գրաֆիկի վահանակի վրա — կբացվի Ինդիկատորներ պատուհանը.
Սեղմեք «Ներմուծում…»
Կոճակը գտնվում որոնման տողի մոտ. Ընտրեք .pine, .loot կամ .txt ֆայլ. .loot ֆայլը կընթանա գրադարան՝ ինչպես կա. .pine ֆայլը (կամ տեքստային ֆայլը, որը նման է Pine Script-ին) կանցնի կոնվերտերի միջով.
Կարդացեք արդյունքը
ՈՒղղակիորեն որոնման տողի տակ կհայտնվի մեկը հետևյալ տողերից:
- «Ներմուծված «…»» — նշումներ չկան, սկրիպտը պատրաստ է;
- «Ներմուծված «…»: կոնվերտերի նշումներ — N, տես. սկրիպտի վերնամասը»;
- «Ներմուծված «…», բայց սկրիպտը չի կոմպիլացվում (սխալներ: N)…» — առաջին սխալի տեքստի կողքին.
Պատուհանը կփոխվի դեպի բաժին Իմ скрипտները, իսկ որոնման դաշտում կհայտնվի նոր սկրիպտի անունը.
Բացեք սկրիպտը Խմբագրիչում
Կարդացեք վերնամասի նշումները եւ շտկեք այն, ինչն ցույց է տալիս: ինչպես նշված է ստորեւ.
Ներմուծումը չի վերագրագրում նույն անունով գոյություն ունեցող սկրիպտը՝ նորին կտրամադրվի սուֆիքս, օրինակ -2. Նախնական ֆայլը չի փոխվում.
Սկրիպտների թղթապանակի միջոցով
Դուք կարող եք պարզապես տեղադրել имя.pine ֆայլը սկրիպտների թղթապանակում — Windows-ում դա %APPDATA%\TradingTerminal\scripts. Հաջորդ մեկնարկի ժամանակ տերմինալը կստեղծի հարակից имя.loot. Եթե имя.loot արդեն կա, այն չի փոխվի — ձեր ուղղումները չեն կորչի. նորից կոնվերտակայելու համար (օր.՝ տերմինալի թարմացումից հետո) հեռացրեք .loot և թողեք .pine.
Ինչ է կատարում կոնվերտերը
- Աղքատված ինդենտացիաններ → փակագծեր.
if,else if,else, ցիկլերի եւ ֆունկցիաների բլոկները ստանում են{}. շարունակական տողերը միացվում են մեկ տողի. - Ֆունկցիաներ.
f(x) =>դառնում էfunc f(x), իսկ ֆունկցիայի վերջին արտահայտությունը վառեցվում է որպես ցուցադրվածreturn. - Ցիկլներ.
for i = 0 to 9դառնում է կիսաբացfor i in 0 .. 10. Ուղղությունը որոշվում է քայլից կամ սահմանների լիտերալներից; եթե դա ցույց չունի, կոնվերտերը համարում է ցիկլը աճող և նշում է դա. - Պայմանական արտահայտություններ.
if-ը, եթե ճյուղերի մեջ միայն մեկ արտահայտություն կա, փոխվում է տեռների (?:) տեսքի;switch-ը ստանում է փակագծեր. - Թափանցիկություն → ալֆա. Pine Script-ում թափանցիկությունը 0…100 է, որտեղ 0-ը — ոչ թափանցիկ. LootScript-ում ալֆան 0…255 է, որտեղ 255-ը — ոչ թափանցիկ.
color.new(c, 50)կդառնաcolor.new(c, 128), իսկtransp=արգումենտը մտցվում էcolor.new(…)-ի մեջ: - Անուններ. Անչափավոր ֆունկցիաների՝ namespace-ը չունեցող անունները ստանում են namespace-ը.
sma→ta.sma.study→indicator,security→request.security,tostring→str.tostring,syminfo.*→sym.*,timeframe.*→tf.*. Կարճinput(…)ձևը ստանում է տիպ՝input.int,input.sourceև այլն. - Ցուցված անուններ. Զգուշացեք այն փոփոխված անուններից, որոնց LootScript-ում անունը բանալիչ-բառ է կամ namespace (
delta,oi,tf,sym,func…). Նաև նման փոփոխված փոփոխվողը կստանա ստորակետ ‘_’ վերջում՝ օրինակdelta→delta_. - Անպետք արգումենտներ. Պարամետրեր, որոնցը LootScript ֆունկցիայում չեն, հեռացվում են.
- Հայտարարություն. Եթե ֆայլում չկար
indicator(…)կամstrategy(…), կոնվերտերը կավելացնիindicator՝ ֆայլի անունով. - Մեկնաբանություններ եւ դատարկ տողեր մնում են իրենց տեղերում.
Կոնվերտերը չի մերժում որևէ ֆայլ. տողը, որը նա չի հասկացել, չի ջնջվում, այլ թողնվում է որպես մեկնաբանություն // [не разобрано] … նույն տեղում.
Վերնամասի նշումներ
Վերնամասի առաջին տողը նշում է ֆայլի ծագումը՝ «Импортировано из скрипта на Pine Script (версия 5). Заметки конвертера:». Հետո յուրաքանչյուր փոփոխության համար մեկ տող՝ ըստ աղբյուրային ֆայլի տողերի թվի՝ «Строка N: вид: что — подробности». Նշումները գրվում են ինտերֆեյսի լեզվով.
| Նշման տեսակ | Ինչ է նշանակում | Պետք է ստուգել? |
|---|---|---|
| վերանվանված | Անունը փոխարինվել է LootScript-анալոգով | ոչ |
| հաշվարկված | Թափանցիկությունը վերածվել է ալֆայի | ոչ |
| վերագրված | Մարկափն օգտագործված է այլ ձեւով՝ ցիկլ, return, կարճ input տիպ |
դիտել |
| անունը «…» զբաղված է LootScript-ում | Փոփոխականին ավելացվել է ստորակետ | ոչ |
| indicator(…) հայտարարություն չի եղել | Հայտարարությունը ավելացվել է ֆայլի անունից | ոչ |
| պարամետրը հանված է | LootScript ֆունկցիայում նման պարամետր չկա | այո |
| գուշակում | Կոնվերտերը ենթադրել է՝ ցիկլի ուղղություն, ինփութ-տիպ եւ այլն | այո |
| այս build-ում չկա | Արդյունքում կան կանչեր, որոնք այստեղի build-ում բացակայում են — սկրիպտը չի կոմպիլացվի unknown name սխալի հետ |
այո |
| չվերծված | Տողը չի վերծանվել, թողնվել է որպես մեկնաբանություն | այո |
Երբ ստուգումը ավարտեք, վերնամասը կարելի է ջնջել — դա սովորական մեկնաբանություններ են.
Օրինակ
Նփոքր ինդիկատոր Pine Script-ով՝ բարի տատանման սյունակներ, որոնք լուսավորվում են երբ տատանումը առնվազն կրկնակի է միջինի նկատմամբ.
//@version=5
indicator("Range spike", overlay=false)
len = input.int(20, "Length")
avgRange(n) =>
r = high - low
ta.sma(r, n)
base = avgRange(len)
spike = high - low > base * 2
plot(high - low, style=plot.style_columns, color=spike ? color.orange : color.new(color.gray, 60))
plot(base, color=color.blue, trackprice=true)Իսկ կոնվերտերը այն գրում է այսպես՝
// Импортировано из скрипта на Pine Script (версия 5). Заметки конвертера:
//
// Строка 6: переписано: avgRange — неявный возврат последнего оператора записан как return
// Строка 9: пересчитано: transp → alpha — прозрачность 0…100 пересчитана в альфу 0…255
// Строка 10: аргумент снят: plot: trackprice — такого параметра в LootScript нет
indicator("Range spike", overlay = false)
len = input.int(20, "Length")
func avgRange(n) {
r = high - low
return ta.sma(r, n)
}
base = avgRange(len)
spike = high - low > base * 2
plot(high - low, color = spike ? color.orange : color.new(color.gray, 102), style = plot.style_columns)
plot(base, color = color.blue)Ֆունկցիան ստացավ փակագծեր եւ return, թափանցիկությունը 60 դարձավ ալֆա 102, իսկ trackprice արգումենտը հեռացվեց — նման պարամետրը չկա: նշումը «պարամետրը հանված է» խնդրում է ստուգել՝ արդյոք այդ պարամետրը դատարկ չէր ըստ իմաստի. այստեղ այն պարզապես նկարում էր վերջին արժեքի գիծը, և սկրիպտը աշխատում է առանց դրա.
Ինչպես ստուգել եւ կատարել լրացումներ
- Կարդացեք վերնամասը. Սկսեք այն տողերից, որոնք նշված են
պարամետրը հանված է,գուշակում,այս build-ում չկաեւչվերծվածտեսակներով. - Դիտեք Խմբագրիչի կոնսոլի ներդիրի՝ «Խնդիրներ». Սխալներով սկրիպտը գրաֆիկին չի ավելացվի.
- Ավելացրեք գրաֆիկին և համեմատեք այն, ինչ ցույց էր տալիս բնօրինակը, պատմության մի քանի հատվածներում.
- Խնդրեք օգնականին. Բացեք ИИ-помощника եւ գրեք
/fix— նա կոմպիլացնում է սկրիպտը, կընդգրկի այն մոմերի վրա և կաշխատի սխալների ուղղման վրա. Можно добавить уточнение:/fix разбери заметки конвертера в шапке. Կարելի օգտագործել/explain՝ որպեսզի պարզեն, թե ինչ է անում սկրիպտը.
Ինչ չի տեղափոխվում
- Ֆունկցիաներ, որոնք տերմինալում չկան. Անունը մնում է կոդում, նշումը
այս build-ում չկաու կոմպիլյացիայի սխալը ցույց են տալիս նույն տեղը. փոխարինեք կանչը ձեռքով կամ խնդրեք օգնականին առաջարկել անալոգ: - Բազմատող տողեր, այլ գրադարանների ներմուծում, ֆունկցիաների արտահանում. Կոնվերտերը տեղափոխում է այն, ինչը կարող է գրի դնել, եւ նշում է մնացածը.
- Ավել քան երեք գծիկ. Գրաֆիկի վահանակը նկարում է միայն սկրիպտի առաջին երեք
plot-երը. հավելյալ գծերը բաժանեք տարբեր սկրիպտների մեջ. - Նկատական առեւտուր.
strategy(…)հայտարարությունը տեղափոխվում է, բայց LootScript-ի ստրատեգիան առեւտուր է անում միայն Ստրատեգիայի թեստեր — սիմուլյացված հաշվով.