Կարգավորումներ և արտապատկերում
1Կարգավորումներ և արտապատկերում
input.* կարգավորումները ցուցիչի պատուհանում, plot գծերը և դրանց ոճերը, hline մակարդակները, fill լցոնումները, ֆոնը և մոմերի գույնը, մարկերները, ստորագրությունները, հատվածները, ուղղանկյունները, աղյուսակները, գույներն ու թափանցիկությունը։ Սահմանափակումներ՝ երեք պատկերվող plot և 500 օբյեկտ յուրաքանչյուր տեսակից։
Այս էջը վերաբերում է նրան, ինչ օգտատերը տեսնում է և կարող է փոխել։ Այստեղ նկարագրված են կարգավորումները, որոնք սկրիպտը տեղադրում է ցուցիչի պատուհանում, գծերը և դրանց ոճերը, մակարդակներն ու լցոնումները, ֆոնը և մոմերի գույնը, մարկերները, ստորագրությունները, հատվածները, ուղղանկյուններն ու աղյուսակները, ինչպես նաև գույներն ու թափանցիկությունը։ Վերջում կա բաժին սահմանափակումների մասին, որոնք արժե իմանալ նախապես։
Կարգավորումներ. input.*
Յուրաքանչյուր input.* կանչ դառնում է տող Մուտքային տվյալներ ներդիրում՝ ցուցիչի կարգավորումների պատուհանում։ Տողերը идут այն հերթականությամբ, որով կանչերը գրված են սկրիպտում։ Առաջին արգումենտը սահմանում է լռելյայն արժեքը, երկրորդը՝ տողի ստորագրությունը։
| Կանչ | Ինչ կհայտնվի կարգավորումների պատուհանում |
|---|---|
input.int |
Դաշտ ամբողջ թվի համար |
input.float |
Դաշտ կոտորակային թվի համար |
input.bool |
Դրոշակ |
input.color |
Գույնի ընտրություն |
input.string |
Բացվող ցուցակ, եթե տրված է options; առանց դրա՝ տեքստային դաշտ |
input.source |
Բացվող ցուցակ շարքերից՝ open, high, low, close, hl2, hlc3, ohlc4, hlcc4, volume |
input.enum |
Բացվող ցուցակ՝ վերոհիշյալ վերաթվարկման ստորագրություններից |
input.timeframe |
Տեքստային դաշտ; options-ի դեպքում՝ բացվող ցուցակ |
input.symbol |
Տեքստային դաշտ |
Ստորև բերված օրինակը մի սկրիպտում հավաքում է հինգ տեսակի կարգավորումներ.
indicator("Средняя на выбор", overlay = true)
enum Basis {
sma = "Простая"
ema = "Экспоненциальная"
wma = "Взвешенная"
}
basis = input.enum(Basis.ema, "Тип средней")
length = input.int(50, "Период", minval = 1, maxval = 500)
src = input.source(close, "Источник")
lineColor = input.color(color.orange, "Цвет линии")
showBg = input.bool(false, "Подсвечивать фон")
avg = switch basis {
Basis.sma => ta.sma(src, length)
Basis.ema => ta.ema(src, length)
=> ta.wma(src, length)
}
plot(avg, "Средняя", color = lineColor, linewidth = 2)
bgcolor(showBg and close > avg ? color.new(color.teal, 40) : na, title = "Фон")Կարգավորումների պատուհանում կստացվի «Тип средней» բացվող ցուցակ՝ կետերով «Простая», «Экспоненциальная» և «Взвешенная»։ Ներքևում կլինեն ժամանակաշրջանի դաշտը, աղբյուրների ցուցակը, գույնի ընտրությունը և դրոշակը։ Ինչպես հայտարարել վերաթվարկումներ, պատմված է բաժնում Սեփական տիպեր և վերաթվարկումներ.
Թվերի և տողերի պարամետրեր
minval-ը ևmaxval-ը սահմանում են սահմանները՝ դաշտը չի ընդունի ժամանակաշրջանminval-ից փոքր կամmaxval-ից մեծ։step-ըinput.float-ում սահմանում է, թե քանիս նիշ տասնորդականից հետո ցույց կտա դաշտը՝step = 0.1դեպքում տեսանելի է մեկ նիշ։ Դաշտում սլաքներ չկան, արժեքը մուտքագրվում է ստեղնաշարից։options-ըinput.string-ում ևinput.timeframe-ում դաշտը դարձնում է բացվող ցուցակ։ Լռելյայն արժեքը պարտադիր պետք է լինի կետերից մեկը, այլապես կոմպիլյատորը սխալ կտա։tooltip,groupևinlineկոմպիլյատորն ընդունում է, բայց կարգավորումների պատուհանի տեսքի վրա նրանք առայժմ չեն ազդում։
indicator("Цена для расчёта")
mode = input.string("Закрытие", "Считать по", options = ["Закрытие", "Середина свечи"])
price = mode == "Закрытие" ? close : hl2
plot(ta.rsi(price, 14), "RSI", color = color.purple)input.source-ի լռելյայն արժեք կարող է լինել նաև շուկայական տվյալների շարք, օրինակ delta.cum-ը։ Այդպիսի շարքը ցուցակի առաջին կետը կդառնա՝ գների շարքերից առաջ։ Իսկ եթե լռելյայն արժեքը արտահայտություն է, ինչպիսին է (high + low) / 2, կարգավորումների պատուհանում տող չի լինի՝ ընտրելու բան չկա։
Ժամանակի, առևտրային սեսիայի և գրաֆիկի վրա կտտոցով ընտրվող գնի համար առանձին կարգավորումներ լեզվում դեռ չկան։
Որտեղ են պահվում ընտրված արժեքները
Արժեքները հիշվում են յուրաքանչյուր ցուցիչի համար յուրաքանչյուր գրաֆիկի վրա առանձին՝ նույն սկրիպտի երկու օրինակը տարբեր վահանակներում կարող է ունենալ տարբեր ժամանակաշրջաններ։ Լռելյայն կոճակը կարգավորումների պատուհանում վերադարձնում է կոդում գրված արժեքները։
Արժեքը կապված է այն փոփոխականի անվան հետ, որի մեջ գրված է input.* կանչը։ Տողի ստորագրությունը կարելի է ազատ փոփոխել, ընտրված արժեքը կպահպանվի։ Տողերը կարելի է նաև տեղափոխել։ Իսկ եթե փոփոխականը վերանվանեք (length-ը՝ period), կարգավորումը կվերադառնա կոդի արժեքին։
Կարգավորումների պատուհանը բացվում է գրաֆիկի լեգենդում ցուցիչի տողի վրա կրկնակի կտտոցով կամ այդ տողում գտնվող կարգավորումների պատկերակով։ Բացի Մուտքային տվյալներ ներդիրից, there are Ոճ և Տեսելիություն ներդիրները, որոնց մասին՝ ստորև։
Գծեր. plot
plot-ը նկարում է շարք՝ մեկ արժեք յուրաքանչյուր բարի համար։ Պարտադիր է միայն առաջին արգումենտը՝ հենց շարքը։ Մնացած պարամետրերը տրվում են անունով՝
title— գծի անունը լեգենդում և կարգավորումների պատուհանում;color— գույն, հաստատուն կամ յուրաքանչյուր բարի վրա հաշվարկվող;linewidth— հաստություն;style— արտապատկերման եղանակ, տե՛ս աղյուսակը;offset— տեղաշարժ տրված բարերի քանակով՝ դրականը աջ, բացասականը ձախ;show_last— նկարել միայն վերջին N բարերը;join = true— միացնել գծովcirclesևcrossոճերի կետերը;editable = false— հեռացնել գիծը կարգավորումների պատուհանից;display = display.none— թաքցնել գիծը ավելացնելիս; միացնել կարելի է Տեսանելիություն ներդիրում։
| Ոճ | Ինչպիսին է երևում |
|---|---|
plot.style_line |
Բեկված գիծ, լռելյայն ոճ |
plot.style_linebr |
Նույնը, ինչ line-ը |
plot.style_stepline |
Աստիճաններ |
plot.style_stepline_diamond |
Աստիճաններ՝ շեղանկյուններով |
plot.style_histogram |
Բարակ սյուներ զրոյից՝ գծի հաստությամբ |
plot.style_columns |
Սյուներ զրոյից՝ մոմի լայնությամբ |
plot.style_area |
Տիրույթ՝ մինչև զրո ներկված |
plot.style_areabr |
Նույնը, ինչ area-ն |
plot.style_circles |
Կետեր |
plot.style_cross |
Խաչիկներ |
Գիծը միշտ ընդհատվում է այնտեղ, որտեղ շարքը արժեք չունի (na), և անցքը ուղիղ հատվածով չի անցկացվում։ Այդ պատճառով line/linebr և area/areabr զույգերը նկարվում են նույն ձևով։
indicator("Стили линий")
d = close - open
plot(d, "Тело свечи", style = plot.style_histogram, color = d >= 0 ? color.teal : color.red)
plot(ta.sma(d, 10), "Средняя 10", style = plot.style_stepline, color = color.orange, linewidth = 2)
plot(ta.sma(d, 30), "Средняя 30", style = plot.style_circles, color = color.gray)Գույն ըստ բարերի
Գույնը կարող է արտահայտություն լինել. այդ դեպքում այն հաշվարկվում է յուրաքանչյուր բարի վրա նորից։ na գույնը նշանակում է, որ այդ բարի վրա գիծ չկա։
indicator("Средняя только над ценой", overlay = true)
m = ta.sma(close, 50)
plot(m, "Средняя", color = close > m ? color.teal : na)Ինչ է ստանում գիծը կարգավորումների պատուհանում
- Ոճ ներդիրում կարգավորվում է յուրաքանչյուր գծի հաստությունը։ Գույնի տողը հայտնվում է միայն հաստատուն գույն ունեցող գծի մոտ. եթե գույնը սկրիպտն է ընտրում յուրաքանչյուր բարի վրա, պատուհանում փոխելու բան չկա։
- Տեսանելիություն ներդիրում յուրաքանչյուր գիծ ունի ցուցադրման դրոշակ։ Այն հայտնվում է, եթե գծերը մեկից ավելի են կամ եթե գիծը թաքցված է
display-ի միջոցով։ editable = falseունեցող գիծը ոչ մի ներդիրում տող չի ստանում։
Մակարդակներ և լցոնումներ
hline-ը հորիզոնական գիծ է նկարում հաստատուն գնի վրա, օրինակ՝ RSI գոտիների սահմանները։ Գինը պետք է լինի թիվ կամ input.* կարգավորում. բարից բար փոփոխվող շարքը այստեղ չի տեղավորվում։ Այդպիսի գծի համար անհրաժեշտ է plot։ Գծի ոճը տրվում է hline.style_solid, hline.style_dashed և hline.style_dotted-ով։
fill-ը ներկում է տիրույթը երկու սահմանների միջև։ Սահման ստանալու համար hline-ի կամ plot-ի արդյունքը գրվում է փոփոխականի մեջ։
indicator("RSI с зонами")
length = input.int(14, "Период", minval = 1)
r = ta.rsi(close, length)
top = hline(70, "Перекупленность", color = color.gray, linestyle = hline.style_dashed)
bottom = hline(30, "Перепроданность", color = color.gray, linestyle = hline.style_dashed)
fill(top, bottom, color = color.new(color.purple, 30), title = "Зона")
plot(r, "RSI", color = r > 70 ? color.red : r < 30 ? color.teal : color.purple)Երկու սահմանները պետք է լինեն նույն տեսակի՝ երկու hline մակարդակ կամ երկու plot գիծ։ Գծի և մակարդակի միջև լցոնումը կոմպիլյատորը չի ընդունի։
Երկու գծերի միջև լցոնման գույնը կարող է փոփոխվել բարից բար։ Այսպես ստացվում է «ամպ» երկու միջիններից։
indicator("Облако", overlay = true)
fast = ta.ema(close, 9)
slow = ta.ema(close, 21)
pf = plot(fast, "Быстрая", color = color.teal)
ps = plot(slow, "Медленная", color = color.orange)
fill(pf, ps, color = fast > slow ? color.new(color.teal, 50) : color.new(color.red, 50), title = "Облако")Կա նաև գրադիենտ լցոնում։ Տվեք top_value և bottom_value՝ նշելու բարձրությունները, որտեղ գույնը հավասար է top_color-ին և bottom_color-ին; դրանց之间 գույնը սահուն անցում է կատարում։ Այդ բարձրությունները պետք է լինեն հաստատուն թվեր։ Եթե անհրաժեշտ է լցոնում մինչև հաստատուն մակարդակ, այն դարձրեք գիծ՝ plot(50)։ Բայց հիշեք, որ սա երեք նկարվող գծերից մեկն է։
indicator("RSI с градиентом")
r = ta.rsi(close, 14)
pr = plot(r, "RSI", color = color.purple)
pm = plot(50, "Середина", color = color.gray)
fill(pr, pm, top_value = 80, bottom_value = 50,
top_color = color.new(color.teal, 160), bottom_color = color.new(color.teal, 0))Ֆոն և մոմերի գույն
bgcolor-ը ներկում է ֆոնը բարի տակ, barcolor-ը վերաներկում է հենց մոմը։ Երկուսն էլ ընդունում են գույն, որը հաշվարկվում է յուրաքանչյուր բարի վրա; na գույնով բարերի վրա ոչինչ չի փոխվում։
indicator("Подсветка объёма", overlay = true)
avgVol = ta.sma(volume, 20)
spike = volume > avgVol * 2
bgcolor(spike ? color.new(color.orange, 40) : na, title = "Всплеск объёма")
barcolor(close > open ? color.teal : color.red, title = "Цвет свечей")Մարկերներ. plotshape և plotchar
plotshape-ը պատկերակ է դնում այն բարերի վրա, որտեղ kondisyon-ը ճիշտ է։ plotchar-ը նույնն է անում任意 նշանով։
indicator("Пересечения", overlay = true)
fast = ta.ema(close, 9)
slow = ta.ema(close, 21)
plotshape(ta.crossover(fast, slow), "Вверх", style = shape.triangleup,
location = location.belowbar, color = color.teal, size = size.small)
plotshape(ta.crossunder(fast, slow), "Вниз", style = shape.triangledown,
location = location.abovebar, color = color.red, size = size.small)
plotchar(volume > ta.sma(volume, 20) * 3, "Объём", char = "●", location = location.top, color = color.orange)- Ձևը,
shape.*՝triangleup,triangledown,arrowup,arrowdown,circle,square,diamond,cross,xcross,flag,labelup,labeldown: - Տեղը,
location.*՝abovebar— մոմից վերև,belowbar— մոմից ներքև,topևbottom— վահանակի վերին և ստորին եզրին։ Գրաֆիկի տակ առանձին վահանակում «մոմից վերև» և «մոմից ներքև» նույնպես նշանակում են վերին և ստորին եզրը. այդպիսի վահանակն ունի իր սանդղակը, և դրա վրա մոմերի գները չեն տեղադրված։ - Չափը,
size.*՝auto,tiny,small,normal,large,huge: text-ը պատկերակին ավելացնում է կարճ ստորագրություն։ Երբ գրաֆիկը խիստ հեռացված է, և մոմերը նեղ են, ստորագրությունները թաքնվում են, իսկ պատկերակները մնում են։
Գրաֆիկական օբյեկտներ
Բացի շարքերից, սկրիպտը կարող է նկարել առանձին օբյեկտներ՝ ստորագրություններ label.new, հատվածներ line.new, ուղղանկյուններ box.new և աղյուսակներ table.new։ Յուրաքանչյուր *.new կանչ վերադարձնում է օբյեկտ։ Այն կարելի է տեղափոխել set_* ֆունկցիաներով (label.set_xy, line.set_x2, box.set_top և այլն), կարդալ get_*-ով, պատճենել copy-ով կամ ջնջել delete-ով։
Հորիզոնական ուղղությամբ օբյեկտը լռելյայն կապված է բարի համարին՝ bar_index-ին։ xloc = xloc.bar_time պարամետրով կոորդինատը տրվում է բարի ժամանակով։ Հատվածին և ուղղանկյունին extend պարամետրը (extend.right, extend.left, extend.both) երկարացնում է եզրը մինչև գրաֆիկի սահմանը։
Օբյեկտը մնում է գրաֆիկի վրա, մինչև այն չջնջվի։ Սկրիպտը կատարվում է յուրաքանչյուր բարի վրա, ուստի label.new՝ առանց պայմանների, յուրաքանչյուր բարի համար ստորագրություն կստեղծի։ Մեկ օբյեկտ պահելու և այն տեղափոխելու համար պահեք այն var փոփոխականում, իսկ հինը ջնջեք։
indicator("Последний пивот", overlay = true, maxLabelsCount = 50)
ph = ta.pivothigh(high, 10, 10)
var line level = na
if not na(ph) {
label.new(bar_index - 10, ph, str.tostring(ph), style = label.style_label_down,
color = color.orange, textcolor = color.white, size = size.small)
line.delete(level)
level := line.new(bar_index - 10, ph, bar_index, ph, extend = extend.right,
color = color.orange, style = line.style_dashed)
}Սկրիպտը ստորագրում է յուրաքանչյուր հայտնաբերված առավելագույնը և τελευτα από վերջինից աջ կետագիծ է ձգում։ Նախկին կետագիծն այն միաժամանակ ջնջում է։
Կենդանի օբյեկտների յուրաքանչյուր տեսակ միաժամանակ լինում է ոչ ավելի, քան 500։ Երբ հայտնվում է հինգ հարյուր առաջինը, ամենահինն անհետանում է։ maxLinesCount, maxLabelsCount և maxBoxesCount պարամետրերը indicator()-ում նվազեցնում են այդ սահմանը։ 500-ից մեծ արժեքը կրճատվում է մինչև 500։
Աղյուսակներ
Աղյուսակը կապված է ոչ թե բարերին, այլ վահանակի անկյունին կամ եզրին և գրաֆիկի ոլորման ժամանակ չի շարժվում։ Տեղը տրվում է position.*-ով՝ top_left, top_center, top_right, middle_left, middle_center, middle_right, bottom_left, bottom_center, bottom_right։ Բջիջները լցնում է table.cell։ Հարմար է դա անել միայն վերջին բարի վրա, որպեսզի աղյուսակը չվերագրվի ամբողջ պատմության ընթացքում։
indicator("Сводка", overlay = true)
var t = table.new(position.top_right, 2, 2, bgcolor = color.new(color.black, 160))
if barstate.islast {
table.cell(t, 0, 0, "RSI", text_color = color.white)
table.cell(t, 1, 0, str.tostring(math.round(ta.rsi(close, 14), 1)), text_color = color.white)
table.cell(t, 0, 1, "ATR", text_color = color.white)
table.cell(t, 1, 1, str.tostring(math.round(ta.atr(14), 2)), text_color = color.white)
}Աղյուսակն ունի ոչ ավելի, քան 200 սյուն և 200 տող։ Աղյուսակը, որում 2000-ից ավելի բջիջ կա, չի ստեղծվում։
Գույներ
Անվանված գույներ՝ color.red, color.green, color.blue, color.teal, color.orange, color.purple, color.yellow, color.white, color.black, color.gray, color.silver, color.maroon, color.navy, color.olive, color.lime, color.aqua, color.fuchsia:
Գույնը կարելի է գրել նաև կոդով՝ #FF8800 — անթափանց, #FF880040 — թափանցիկությամբ։ Վերջին զույգ թվանշանները սահմանում են անթափանցիկությունը. 00 — լրիվ թափանցիկ, FF — համաձույլ։
color.rgb(r, g, b)հավաքում է գույնը 0-ից 255 բաղադրիչներից։ Չորրորդ արգումենտը անթափանցիկությունն է, լռելյայն՝ 255։color.from_gradient(value, bottomValue, topValue, bottomColor, topColor)-ը վերադարձնում է գույն երկու ծայրագույնների միջև՝ ըստvalue-ի դիրքի տիրույթում։ Հարմար է օսցիլյատորը սառը գույնից տաք գույնով ներկելու համար։na-ն գույնի փոխարեն նշանակում է «չնկարել»։
indicator("RSI в цвете")
r = ta.rsi(close, 14)
heat = color.from_gradient(r, 30, 70, color.rgb(0, 150, 136), color.rgb(244, 67, 54))
plot(r, "RSI", color = heat, linewidth = 2)
bgcolor(r > 70 ? color.new(color.red, 30) : r < 30 ? color.new(color.teal, 30) : na, title = "Зоны")Առաջ
https://docs.lootx.trade/hy/loot/inputs-drawing