Ի՞նչ է անում request.security եւ ե՞րբ է այն անհրաժեշտ?
Գլխավորը
ֆունկցիան գործարկում է ձեր արտահայտությունը մեկ այլ խորհրդանիշի կամ այլ ժամկետի համատեքստում և արդյունքը վերադարձնում է ընթացիկ տող. Այն անհրաժեշտ է, երբ սցենարը պետք է նայվի իր գծապատկերից այն կողմ. զտել ըստ ամենօրյա միտումի, համեմատություն ինդեքսի հետ, ծավալը ավելի ցածր սանդղակով. Ձեր սեփական գծապատկերում հաշվարկների համար դա ավելորդ է.
Լռելյայնորեն սկրիպտը տեսնում է մոմերի մեկ հավաքածու՝ այն, որը բաց է էկրանին. Ինչպես է նա շրջանցում դրանք և ինչու է հաշվում արժեքները բար առ բար, քննարկվում է այդ մասին նյութում, ինչպես է Pine Script հաշվարկում արժեքները ըստ բարերի. Կար նաև ազնիվ բացթողում. նվազագույն օրինակը միտումնավոր դրսից ոչինչ չի պահանջել. Մենք փակում ենք այս անցաթուղթը.
request.security-ի միջոցով հարցումը լուծում է շատ կոնկրետ խնդիրներ. Զտեք մուտքն ըստ ամենօրյա միտումի, երբ աշխատում եք տասնհինգ րոպեի վրա. Բիթքոյնի վարքագիծը ծածկել altcoin աղյուսակում. Հաշվեք ցուցիչը միանգամից չորս գործիքների վրա և միջինը. Այս բոլոր դեպքերում հաշվարկը պետք է կատարվի այնտեղ, օտար կոնտեքստում, և պատրաստի թիվ գա ձեզ մոտ.
Բայց երբ ձեզ հարկավոր չէ տվյալներ վերցնել, արժե հիշել առանձին. Եթե արտահայտությունը հաշվարկվում է ձեր սեփական գծապատկերի մոմերով, ապա ոչ մի հարցում պետք չէ. գրեք սովորական բանաձևը. Պաշտոնական FAQ TradingView ուղղակիորեն ասում է, որ սովորաբար կարիք չկա պահանջել ձեր սեփական խորհրդանիշը և ձեր սեփական ժամկետը: ավելի հեշտ է անդրադառնալ ձեր սեփական գրաֆիկի արժեքներին.
Հարմար է, եթե
- Զտել ըստ ավելի բարձր ժամկետի միտումների. մենք առևտուր ենք անում 15m կայքում, մենք թույլտվություն ենք վերցնում 1D-ից:
- Համեմատեք ձեր գործիքը ինդեքսի, դոլարի կամ այլ զույգի հետ
- Անմիջապես մեկ ցուցիչ հավաքելով ձեր սեփական ինդեքսի նշանների ցանկից
- Ներգծային ծավալի կամ ներգերաձևերի քանակի հաշվարկ գծապատկերի մոմի ներսում
Հարմար չէ, եթե
- Ցանկացած բանաձև, որը հիմնված է ընթացիկ գծապատկերի մոմերի վրա. կարդալ ուղղակիորեն, առանց հարցնելու
- Փորձեք բռնել ավագ բարի փակումը զանգի ներսում գտնվող բարի վիճակի միջոցով
- Ռիսկերի կառավարման փոխարինում. ուրիշի տվյալները կանոնն ավելի անվտանգ չեն դարձնում
- Սցենարների արագացում. յուրաքանչյուր եզակի հարցում ծախսում է ժամանակ և տարածություն սահմանաչափում
Ինչպե՞ս են աշխատում երեք փաստարկները՝ սիմվոլ, ժամանակահատված եւ արտահայտություն?
Գլխավորը
զանգը հավաքվում է երեք պարտադիր մասերից խիստ կարգով. Սկզբում խորհրդանիշ, այնուհետև ժամանակային գիծ, այնուհետև արտահայտություն. Մնացած արգումենտները կամընտիր են և փոխանցվում են անունով. Առաջին երեքի կարգը դիրքային ձայնագրման ժամանակ չի կարող փոխվել, և հենց այստեղ են նրանք սայթաքում, երբ ֆորումից անխտիր պատճենում են ուրիշի կոդը. Արժե ստուգել այն նախքան սցենարի առաջին գործարկումը.
Պաշտոնական փաստաթղթերում ամբողջական ստորագրությունը գրված է այսպես:
request.security(symbol, timeframe, expression, gaps, lookahead, ignore_invalid_symbol, currency, calc_bars_count)Առաջին երեք մասերը աշխատանքային նվազագույնն են. Խորհրդանիշ - տող տողով, նախընտրելի է հարթակի հետ միասին. փաստաթղթերը խորհուրդ են տալիս նշել փոխանակման նախածանցը, հակառակ դեպքում նա ինքը կվերցնի այն, և արդյունքը կարող է տարբերվել սպասվածից. Ընթացիկ գործիքի համար կա պատրաստի փոփոխական syminfo.tickerid, խորհուրդ է տրվում վերցնել, որպեսզի երկիմաստություն չլինի.
- 1
խորհրդանիշ - որտեղի՞ց ենք այն ստանում:
Նշիչ ձեր գծապատկերի փոխանակման նախածանցով կամ syminfo.tickerid-ով
- 2
ժամկետ՝ ինչ մասշտաբով
Տող, ինչպես 1D, 60, 15. Դատարկ նշանակում է գծապատկերի ժամանակացույց
- 3
արտահայտություն - ինչ հաշվարկել
Դիտարկված է օտարերկրյա համատեքստում և չի փոխանցվում պատրաստի
Գծով ժամկետը կա վրիպակ, որով այրվում են գրեթե բոլորը. Ձևաչափը կառուցված է բազմապատկիչից և միավոր տառից, իսկ րոպեներն ընդհանրապես տառ չունեն: "15" - տասնհինգ րոպե է, "1D" - օր, "1W" - շաբաթ. Այս հավաքածուում պարզապես ժամ չկա. Փաստաթղթում նշվում է առանց ընտրանքների: "1H" անվավեր է, ճիշտ ժամի մուտքագրում - "60".
Երրորդ մասը՝ արտահայտությունը, ամենաթերագնահատվածն է. Այն չի փոխանցվում հաշվարկված, այն վերահաշվարկվում է այնտեղ, պահանջվող խորհրդանիշով. Եթե գրեք ta.sma(close, 20), միջինը կհաշվարկվի այլ մարդկանց փակումների հիման վրա, ոչ թե ձեր. Սա հենց այն է, ինչ անհրաժեշտ է, և ինչն է զարմացնում նրան, ով սպասում էր պատրաստի արժեքի փոխանցմանը.
Ինչպե՞ս պահանջել տվյալներ այլ կերպարի համար?
Գլխավորը
փոխարինեք նշանը ձեր խորհրդանիշի փոխարեն, թողեք գծապատկերի ժամանակացույցը և ստացեք ուրիշի խորհրդանիշի արժեքը ձեր յուրաքանչյուր տողում. Նույն ժամանակահատվածում մեկ այլ նշան պահանջելը չի վտանգում վերաներկելը. Այստեղ միակ գրավչությունը ժամանակի առանցքն է. այլ մարդկանց տվյալները կթարմացվեն միայն այն ժամանակ, երբ ձեր գծապատկերը թարմացվի.
Նվազագույն աշխատանքային օրինակը բառացիորեն մեկ տող է թվում. Այնուհետև այն կարող է ցուցադրվել գծապատկերում կամ համեմատվել ձեր գնի հետ:
//@version=6
indicator("Чужой символ на своём таймфрейме")
float otherClose = request.security("NASDAQ:AAPL", timeframe.period, close)
plot(otherClose)Որտեղ տեղադրել այս կոդը և ինչպես պահպանել այն, քննարկվում է առանձին հրահանգում, թե ինչպես բացեք Pine Editor-ը և պահպանեք սցենարը. Այստեղ ավելի կարևոր է վարքագիծը, ոչ թե կոճակները.
Պաշտոնական FAQ-ն վերացնում է սկսնակների հիմնական վախը. գծապատկերի ժամկետի մեկ այլ խորհրդանիշից տվյալներ խնդրելը չի սպառնում վերաներկել. Այս դեպքում արժեքը փոխելու և կամընտիր արգումենտներին հպելու կարիք չկա.
Բայց ժամանակի առանցքը մնում է ձերը. Փաստաթղթերը տալիս են պատկերավոր օրինակ. BTCUSD տվյալները SPY գծապատկերում նոր արժեք ցույց կտան միայն այն դեպքում, երբ նոր տող հայտնվի SPY հասցեում. Հանգստյան օրերի գծապատկերում քսանչորս-ժամյա գործիքը կմնա իր տեղում ամբողջ շաբաթ օրը, և սա ձախողում չէ, այլ տվյալների երկու շարքերի միացման հատկություն.
Ինչպես ստանալ ավելի բարձր ժամկետային տվյալներ request.security միջոցով?
Գլխավորը
գծապատկերի ժամանակացույցի փոխարեն, փոխարինեք ավելի մեծ մասշտաբի տողով, օրինակ՝ օրական. Համոզվեք, որ ավելացրեք պաշտպանություն հակառակ դեպքից. եթե օգտագործողը ընտրի գրաֆիկից ցածր սանդղակ, ապա սցենարը պետք է դադարեցվի հասկանալի սխալով. Պաշտոնական օրինակները Pine Script ներառում են այս ստուգումը անմիջապես ձևանմուշում. Առանց դրա, սցենարը լուռ կհաշվարկի մի բան, որը լիովին տարբերվում է նրանից, ինչ դուք սպասում էիք դրանից.
Դասական առաջադրանքը հնչում է այսպես. ես առևտուր եմ անում տասնհինգ րոպեանոց ժամանակահատվածում՝ թույլատրելով մուտքագրումներ միայն օրական միտման ուղղությամբ։ Զտիչը ինքնին կարող է լինել ցանկացած բան, ընտրեք միտումի ցուցիչ առանց ճշգրտման - առանձին աշխատանք. Հարցման մեխանիզմը նույնն է.
Այս սցենարը հավաքվում է քայլ առ քայլ:
- Ստեղծեք մուտքագրում ժամկետի համար, որպեսզի սանդղակը չմիացվի կոդի մեջ.
- Ստուգեք. եթե ընտրված սանդղակը փոքր է գծապատկերի սանդղակից, զանգահարեք
runtime.error()մարդկային լեզվով տեքստով. - Հարցումն ինքնին գրեք ավելի բարձր ժամկետի տողով.
- Ցուցադրել արդյունքը գրաֆիկի վրա՝ քայլերը սեփական աչքերով տեսնելու համար.
//@version=6
indicator("Дневная средняя на младшем графике", overlay = true)
string htf = input.timeframe("1D", "Старший таймфрейм")
if timeframe.in_seconds() > timeframe.in_seconds(htf)
runtime.error("Выбранный таймфрейм ниже таймфрейма графика. Возьмите старший.")
float htfMa = request.security(syminfo.tickerid, htf, ta.sma(close, 20))
plot(htfMa)Գիծը կբարձրանա, և դա նորմալ է. արժեքը թարմացվում է օրական մեկ անգամ, ոչ թե տասնհինգ րոպեն մեկ. «Ինչպես հարթել քայլերը» հարցը տարիներ շարունակ կրկնվել է ֆորումներում, , բայց այստեղ հարթելու ոչինչ չկա. ավելի ցածր մասշտաբով թարմացումների միջև օրական արժեքը պարզապես գոյություն չունի.
Ինչո՞ւ է ավելի բարձր ժամանակահատվածի արժեքը փոխվում չփակված սանդղակի վրա?
Գլխավորը
քանի որ օրվա բարը դեռ փակված չէ, և դրա փակումը փոխվում է ընթացիկ գնի հետ մեկտեղ. Պատմության մեջ ֆունկցիան կվերադարձնի միայն հաստատված արժեքներ, իսկ իրական ժամանակում՝ կենդանի արժեքներ. Էջը վերաբեռնելուց հետո երեկվա կենդանի արժեքները կվերածվեն հաստատված արժեքների, և նկարը կտեղափոխվի. Սա request.security-ի սովորական պահվածքն է. Ձեր կոդի մեջ կարող է ընդհանրապես սխալ չլինել.
Այս վարքագիծը անուն ունի - Վերաներկել. TradingView դա լայնորեն սահմանում է. սցենարի վարքագիծ, որի դեպքում պատմական և իրական ժամանակի հաշվարկները տարբեր կերպ են աշխատում. Եվ անմիջապես թեթևացնում է խուճապը գնահատմամբ. ըստ նրանց գնահատականների, գոյություն ունեցող ցուցանիշների ավելի քան իննսունհինգ տոկոսը այս կամ այն ձևով գունազարդվում է, , ներառյալ MACD և RSI բաց մոմի վրա.
Փաստաթղթերը բառացիորեն նկարագրում են մեխանիզմը. Պատմական գծերի վրա ֆունկցիան վերադարձնում է միայն հաստատված արժեքներ պահանջվող համատեքստից, իսկ իրական ժամանակի գծերում այն կարող է վերադարձնել չհաստատված արժեքներ. Երբ սցենարը վերագործարկվում է, երեկվա իրական գծերը դառնում են պատմական, և դրանց արժեքները փոխվում են հաստատվածների.
00:00
Բացվել է օրվա բարը
Հարցումը կվերադարձնի օրվա ընթացիկ փակումը, այն հավասար է ընթացիկ գնին
Օրվա ընթացքում
Արժեքն ապրում և փոխվում է
Յուրաքանչյուր նոր գին փոխում է չփակված օրվա բարի փակումը
Ազդանշան գծապատկերում
Նշանը հայտնվել է և կանգնած է
Պայմանը բավարարված է ընթացիկ, դեռ չհաստատված արժեքի հիման վրա
23:59
Օրվա բարը փակ է
Արժեքը ֆիքսված է և այլևս չի փոխվի
Վերագործարկումից հետո
Պատմությունը վերաշարադրված
Սցենարը տեսնում է միայն հաստատվածները, որոշ նշաններ անհետանում են
Գործնական եզրակացությունը տհաճ է, բայց ազնիվ. Մինչ դուք դիտում եք կենդանի աղյուսակը, դուք չեք տեսնում, թե ինչ կտեսնի սցենարը վաղը նույն պատմության վրա. Հենց այստեղ է մեծանում գեղեցիկ նկարի և արդյունքի միջև եղած բացը ստուգում է առևտրի ալգորիթմը.
Գործիքը գործնականում կիրառեք Midas
Midas էկոհամակարգն ունի քայլ առ քայլ հրահանգներ, տեխնիկական վերլուծության դասընթացներ եւ համայնքի աջակցություն՝ առաջին մեկնարկից մինչեւ սեփական առեւտրային տրամաբանության վերլուծություն.
- Քայլ առ քայլ արտադրանքի հրահանգներ
- Տեխնիկական վերլուծության ոլորտում կառուցվածքային ուսուցում
- Զրուցեք թիմի եւ ակումբի անդամների հետ
Ինչպե՞ս վերցնել ավելի բարձր ժամանակահատվածի հաստատված արժեքը՝ առանց ապագային նայելու?
Գլխավորը
պաշտոնական բաղադրատոմսը բաղկացած է միանգամից երկու մասից. Արտահայտությունը տեղափոխվում է մեկ տող ետ, և միևնույն ժամանակ միացված է հայացքի արգումենտը. Առանձին-առանձին, այս երկու մասերը չեն աշխատում. առանց տեսադաշտի օֆսեթը հետաձգվում է, առանց օֆսեթի հայացքը հետ է բերում տվյալներ ապագայից. Փաստաթղթերը Pine Script անվանում են այս երկու մասերը փոխկապակցված.
Փաստաթղթերի ձևակերպումը հետևյալն է. չգունավորող արդյունք ստանալու ամենահուսալի միջոցը արտահայտությունն է, որը վերաբերում է միայն անցյալ գծերին, և միևնույն ժամանակ սահմանել lookahead = barmerge.lookahead_on. Այն կոպիտ բան է ասում կապի մասին. տեղաշարժն ու հայացքը փոխկապակցված են, չես կարող մեկը հեռացնել առանց մյուսին վնասելու.
//@version=6
indicator("Подтверждённое дневное закрытие", overlay = true)
float dailyClose = request.security(syminfo.tickerid, "1D", close[1], lookahead = barmerge.lookahead_on)
plot(dailyClose)Տրամաբանությունն այստեղ այնքան էլ բարդ չէ, որքան թվում է. «Առաջնորդ» արգումենտը միացված դիրքում թույլ է տալիս ֆունկցիային վերցնել արժեքը ավագ տողից, որը ձեր տողի պահին դեռ չի ավարտվել. Մեկ տողով տեղաշարժը բավականաչափ մղում է հարցումը, որպեսզի այն դիպչի արդեն փակված ավագ բարին. Ապագա չի մնացել, մնում է միայն հաստատված անցյալը.
Նույն հայացքն առանց տեղաշարժի վերածվում է զենքի իր դեմ. Փաստաթղթում տրամադրվում է հակաօրինակ՝ «FUTURE LEAK, մի օգտագործիր» մեկնաբանությամբ և առանձին զգուշացնում է՝ սկրիպտներ, , որոնք ապագան ձգում են դեպի անցյալ՝ առաջադիմությամբ, չեն թույլատրվում հրապարակման. Միացված է հետին փորձարկում այս կոդը ցույց է տալիս ֆանտաստիկ վիճակագրություն. Ոչինչ չի ցուցադրում ուղիղ եթերում.
Միայն հաստատված բարձր նշաձող
Տվյալներ, որոնք դեռ գծի վրա չէին
- 1.Օֆսեթ գումարած կանխատեսումը միացված է
- 2.Կանխադրված կարգավորումներ, ուղիղ տող
- 3.հայացքը միացված է առանց շեղումների
Սանդղակի միջին նշանը լռելյայն դիրքն է, և դա խաբեություն չէ. ֆունկցիան ազնվորեն տալիս է այն, ինչ կա ավագի համատեքստում հենց հիմա. Ճիշտ նշանն արդեն կեղծիք է, քանի որ պատմական գծի վրա ապագան գալիս է սցենարի մեջ.
Առանձին ծուղակ է սպասում նրանց, ովքեր փորձում են ուղղակիորեն բռնել ավագ բարի փակումը. Հարցման մեջ գծի վիճակը չի աշխատում. փաստաթղթերը սա նշում են մեկ տողում - barstate.isconfirmed կանչով request.security() չի աշխատում. Համայնքի մի մասը հաղթահարում է դա իր սեփական փաթաթաններով՝ փոխելով օֆսեթը՝ ելնելով զանգից դուրս գտնվող բարի վիճակից. Երկու մոտեցումներն էլ տալիս են հաստատված արժեք, սակայն գծապատկերում դրա հայտնվելու պահը նրանց համար տարբեր է: պաշտոնյան վերադարձնում է փակ ավագ բարը անմիջապես նոր ավագ շրջանի սկզբում, համայնքի փաթաթանների վարքագիծը նկարագրված չէ փաստաթղթերում և պետք է ստուգվի՝ ձեր հայացքով ձեր գրաֆիկի վրա. Վերլուծություն, թե ինչպես կարելի է տարբերել ազնիվ ազդանշանը շարժված ազդանշանից, ներկայացված է նյութում Ցուցանիշներ առանց վերաներկման.
Ինչո՞վ է barmerge.gaps_on տարբերվում barmerge.gaps_off?
Գլխավորը
արգումենտի բացերը որոշում են, թե ինչ ցուցադրել այն գծերի վրա, որտեղ հին համատեքստը դեռևս չունի նոր հաստատված արժեք. Անջատված դիրքում ֆունկցիան կրկնում է վերջին հայտնիը, միացված դիրքում՝ վերադարձնում է դատարկ արժեք. Լռելյայն անջատված է, այդ իսկ պատճառով ավելի բարձր ժամկետային գիծը նման է քայլերի. Այս փաստարկը պետք է փոխվի հազվադեպ և միշտ գիտակցաբար.
Տարբերությունը տեսանելի է մեկ սեղանի վրա:
| Ինչ ենք համեմատում | barmerge.gaps_off | barmerge.gaps_on |
|---|---|---|
| Կանխադրված | այո | Ոչ |
| Ձող առանց նոր արժեքի | կրկնում է վերջին հաստատվածը, ուղիղ գծի վրա՝ ընթացիկ զարգացող | -ը վերադարձնում է դատարկ արժեք |
| Ինչ տեսք ունի գծապատկերում | ամուր աստիճանավոր գիծ | միավոր է միայն թարմացման պահերին |
| Երբ հարմար է | զտիչներ, համեմատություններ, ցանկացած «վերևում կամ ներքև» տրամաբանություն | ՝ ընդգծելով ավագ բարի թարմացման փաստը |
| Ինչ է կոտրվում | թաքցնում է թարմացման պահը | դատարկ արժեքներով թվաբանությունը պահանջում է ստուգում |
//@version=6
indicator("gaps на глаз", overlay = true)
float noGaps = request.security(syminfo.tickerid, "60", close, gaps = barmerge.gaps_off)
float withGaps = request.security(syminfo.tickerid, "60", close, gaps = barmerge.gaps_on)
plot(noGaps, "Без разрывов", color.blue, 2, plot.style_linebr)
plot(withGaps, "С разрывами", color.purple, 6, plot.style_linebr)Ընտրությունը պարզ է. Այնպիսի պայմանների համար, ինչպիսիք են «գինը օրական միջինից բարձր է», վերցրեք լռելյայն դիրքը. ձեզ անհրաժեշտ է արժեքը յուրաքանչյուր գծի վրա. Դատարկ արժեքներ կպահանջվեն, երբ նոր տվյալների ժամանման պահը կարևոր է, օրինակ՝ նոր ավագ շրջանի սկզբում նշանի համար.
Ինչու request.security անհարմար է ցածր ժամանակահատվածում?
Գլխավորը
ավելի ցածր սանդղակից ֆունկցիան կվերադարձնի միայն մեկ ներգոտի ձեր յուրաքանչյուր տողի համար, և որը կախված է ակնարկի արգումենտից. Առաջին կամ վերջին. Pine Script-ում բոլոր ինտրաբլերի հետ աշխատելու համար կա առանձին ֆունկցիա, որը վերադարձնում է արժեքների զանգված. Նրա անունը մեկ պոչով տարբերվում է request.security-ից, և հեշտ է նրանց շփոթել.
Վարքագիծը նկարագրված է փաստաթղթերում առանց զարդարանքի. Փոքր սանդղակ մուտք գործելիս ֆունկցիան հաշվարկում է արտահայտությունը փոքր համատեքստում, բայց յուրաքանչյուր գծապատկերի համար վերադարձնում է միայն մեկ ներգոտողի արդյունքը. Միացված դիրքում նայելով, սա առաջին հասանելի ինտրագոտին է, անջատված դիրքում՝ վերջինը. Իրական ժամանակի գծերի վրա վերջին հասանելի արժեքը վերադարձվում է անկախ փաստարկից.
Ներկողային տվյալների հետ նորմալ աշխատանքի համար կա. request.security_lower_tf(). Նրա ստորագրությունն այլ է՝ բացեր և կանխատեսվող փաստարկներ չկան, բայց կան. ignore_invalid_timeframe, և լռելյայն այն անջատված է. Ֆունկցիան վերադարձնում է արժեքների զանգված՝ դասավորված ըստ ներբարային ժամանակի.
//@version=6
indicator("Сколько минуток в одном баре")
array<float> closes = request.security_lower_tf(syminfo.tickerid, "1", close)
int qty = array.size(closes)
plot(qty, style = plot.style_histogram)Զանգվածը պետք է ստուգվի չափի համար՝ նախքան տարրեր մուտք գործելը. սա սովորական սխալ է ֆորումներում. մարդն անմիջապես վերցնում է առաջին տարրը և ստանում սկրիպտի խափանում, քանի որ զանգվածը եկավ դատարկ. Եվ ևս մեկ ազնիվ հրաժարում TradingView-ից. նույնիսկ այս գործառույթը որոշ դեպքերում կարող է փոքր-ինչ գունավորվել մատակարարների տվյալների տարբերության պատճառով.
Ինչպես ստուգել կոդը վերագործարկումից հետո պատմության եւ իրական ժամանակում?
Գլխավորը
ծեսը բաղկացած է հինգ քայլից և տևում է մի քանի րոպե. Դուք գրում եք, թե որտեղ են նշանները կենդանի աղյուսակում, վերաբեռնում էջը և համեմատում կատարվածի հետ. Համընկնում է. կոդը ազնիվ է այս բաժնում. Այն չի համընկնում. դուք վերաներկ եք անում, և այն պետք է վերանորոգվի, նախքան որևէ եզրակացություն անելը.
Ստուգումն անհրաժեշտ է հենց այն պատճառով, որ դուք չեք կարող տեսնել տարբերությունը ձեր աչքերով. կենդանի գրաֆիկը և նույնը վերաբեռնումից հետո նույնքան համոզիչ են թվում. Նույն ընթերցման ծեսը նկարագրված է վերլուծության մեջ ազդանշանի ստուգում վերաբեռնումից հետո, այստեղ այն հարմարեցված է այլ մարդկանց տվյալներին.
- 1
Միացնել արժեքների մատյանը
log.info()-ը տպում է պահանջվող արժեքը և բարի ժամանակը
- 2
Վերցրեք ուղիղ գծապատկերի լուսանկար
Գրանցեք վերջին երեք պիտակների և արժեքների ժամանակը մատյանից
- 3
Վերբեռնել էջը
Իրական ձողերը դառնում են պատմական, սցենարը կրկին հաշվում է
- 4
Համեմատեք պիտակները և արժեքները
Ստուգեք նույն երեք նշանները և նույն արժեքները մատյանից
- 5
Կրկնել ելքի վրա
Առանձին ստուգեք այն տարածքը, որտեղ ուրիշի խորհրդանիշը բացեր ուներ
Այն, ինչը համարվում է ձախողված, պետք է նախապես համաձայնեցվի. Պիտակը մեկ տողով տեղափոխելը վերաներկում է, ոչ փոքր բան. Անհետացած նշան - վերաներկել. Մատյանում տարբեր արժեքներով պիտակների համընկնումը նույնպես ազդանշան է. սա նշանակում է, որ պայմանը դեռ պատահականորեն պահպանվում է.
Առանձին ստուգեք վարքագիծը առևտրային նստաշրջանների հանգույցում և հանգստյան օրերին. Այնտեղ է, որ երկու գործիքների ժամանակային առանցքները տարբերվում են, և հենց այնտեղ է, որ տրամաբանությունը, որը գործում էր հարթ պատմության մեջ. Ինչպես ամբողջությամբ ինտեգրել նման ստուգումը կանոնների մեջ, քննարկվում է նյութում. մուտքի և ելքի կանոններ ռազմավարությունների համար.
Ռիսկեր եւ սահմանափակումներ
Հրաժարում. Բովանդակությունը կրում է կրթական բնույթ և չի հանդիսանում անհատական ներդրումային առաջարկ. Դուք ինքներդ եք որոշումներ կայացնում գործարքների վերաբերյալ. Ֆինանսական շուկաներում առևտուրը կապված է ձեր ներդրված միջոցները կորցնելու ռիսկի հետ.
Ճիշտ գրված հարցումը դադարում է հետադարձ կերպով ստել, բայց դա ազդանշանն ավելի ճշգրիտ չի դարձնում. Վերագործարկումից հետո նույն բանը ցուցադրող սցենարը ազնիվ է, բայց ազնվությունն ու շահութաբերությունը տարբեր հատկություններ են, և առաջինը չի երաշխավորում երկրորդը.
Տվյալները գալիս են մատակարարից և չեն ստեղծվում սկրիպտում. TradingView հստակորեն սահմանում է, որ այն չի ստեղծում տվյալներ և ապավինում է իր մատակարարներին. Օրական և ներօրային հոսքերը կարող են տարբերվել ծավալով, և ընդլայնված նիստը ներառված չէ ամենօրյա հոսքի մեջ. Սա նկատելի է բաժնետոմսերի վրա, գրեթե ոչ քսանչորս-ժամյա գործիքների վրա.
Հարցումների քանակը սահմանափակ է, և սահմանաչափը կախված է սակագնից. Նույնական զանգերը սովորաբար հաշվվում են որպես մեկ, բայց ներմուծված գրադարանների զանգերը հաշվվում են առանձին. Սցենարը, որը պահանջում է տվյալներ տասնյակ նիշերից, ավելի արագ կբախվի առաստաղին, քան թվում է գաղափարի փուլում.
Առաջնային փաստարկը միացված դիրքում, առանց արտահայտության շեղման, ինքնին ուղղակի խաբեություն է. Նման սցենարի հրապարակումը գրադարանում TradingView արգելվում է, և դրա պատմության ստուգման արդյունքները ոչինչ չեն նշանակում.
Պատմության ստուգումը չի տեղափոխվում ապագա. Այս հոդվածի ծեսը բռնում է միայն մեկ դասի արատներ՝ պատմության և իրական ժամանակի միջև անհամապատասխանություն. Այն ոչինչ չի ասում այն մասին, թե արդյոք կանոնը կշարունակի գործել, և չի փոխարինում ոչ դադարեցման կարգը, ոչ էլ դիրքի չափը, որը սահմանված է մուտքից առաջ.
Աղբյուրներ
- Other timeframes and data, Pine Script v6 User Manual, tradingview.com
- Repainting, Pine Script v6 User Manual, tradingview.com
- Timeframes, Pine Script v6 User Manual, tradingview.com
- Limitations, Pine Script v6 User Manual, tradingview.com
- Bar states, Pine Script v6 User Manual, tradingview.com
- To Pine Script version 6, migration guide, tradingview.com
- PineCoders FAQ and Code, pinecoders.com
- Աղբյուր FAQ PineCoders, github.com
- Միացնել կամ անջատել առջևում, քննարկում, stackoverflow.com
- Ինչպես ստանալ ավելի բարձր ժամկետի տողերի հաստատում, քննարկում, stackoverflow.com
- Օպտիմալացնել կատարողականությունը Pine Script-ում, երբ օգտագործում եք request.security, քննարկում, stackoverflow.com
- Pine Script repainting, CrossTrade, crosstrade.io
- Pine Script v6 dynamic requests, Tom Hartman, blog.traderspost.io
- Palomar D. P. The Seven Sins of Quantitative Investing, Portfolio Optimization, portfoliooptimizationbook.com
- Խնդիրներ հետադարձ փորձարկման մեջ, վերացական CFA մակարդակ 2, analystprep.com
Հաճախ տրվող հարցեր
Ինչո՞ւ է օրվա ընթացքում փոխվում օրական արժեքի պահանջը?
Քանի որ օրվա բարը դեռ փակ չէ. Քանի դեռ կենդանի է, նրա փակումը հավասար է ընթացիկ գնին եւ փոխվում է նրա հետ. Ֆունկցիան ազնվորեն տալիս է այն, ինչ կա պահանջվող համատեքստում հենց հիմա. Սանդղակը փակվելուց անմիջապես հետո արժեքը կֆիքսվի. Եթե Ձեզ անհրաժեշտ է միայն ստուգված համարը, Տեղափոխեք արտահայտությունը մեկ սանդղակով ետ եւ միաժամանակ ներառեք lookahead փաստարկը on դիրքում - այս երկու մեթոդները առանձին չեն աշխատում.
Ի՞նչ գրել ժամկետային սանդղակում ժամվա համար?
Գիծ "60". Pine Script ձևաչափով ժամի միավոր ընդհանրապես չկա, իսկ մուտքը "1H" անվավեր է. Ձևաչափը հավաքվում է բազմապատկիչից և միավոր տառից, իսկ րոպեները տառ չունեն: "15" նշանակում է տասնհինգ րոպե, "1D" - օր, "1W" - շաբաթ, "1M" - ամիս. Եթե բազմապատկիչը գրված չէ, ապա ենթադրվում է: "D" հավասար է "1D". Միայնակ "1" կարդացվում է որպես մեկ րոպե.
Հնարավո՞ր է բռնել ավելի բարձր նշաձողի եզրափակիչ պահը?
Անմիջապես զանգի ներսում - ոչ, փաստաթղթերը դա գրանցում են առանձին տողում. գծի վիճակը barstate.isconfirmed կանչով request.security() չի աշխատում. Կան լուծումներ, եւ դրանք տարբեր են. Պաշտոնականն այն է, որ տեղահանված արտահայտությունը վերցնենք առաջատար դիրքում, ապա հաստատված արժեքը գալիս է նոր ավագանու ժամանակաշրջանի սկզբում. Համայնքային փաթեթները փոխում են օֆսեթը զանգից դուրս գտնվող սանդղակի վիճակով; այն պահը, երբ նրանք ունեն արժեք, չի նկարագրվում փաստաթղթում, Դուք պետք է ստուգեք այն ձեր գրաֆիկում.
Ինչո՞ւ է request.security_lower_tf ավելի լավ, քան սովորական փոքրածավալ հարցումը?
Այն վերադարձնում է բոլոր ներբարերը, իսկ կանոնավոր հարցումը վերադարձնում է միայն մեկը աղյուսակի յուրաքանչյուր սանդղակի համար. Նրա ստորագրությունն այլ է՝ բացեր և կանխատեսվող փաստարկներ չկան, բայց կան. ignore_invalid_timeframe, լռելյայն անջատված է. Արդյունքը գալիս է որպես զանգված, որը դասավորված է ներբարային ժամանակով, եւ այս զանգվածի չափը պետք է ստուգվի նախքան տարրերին մուտք գործելը, Հակառակ դեպքում սցենարը կվթարի ենթարկվի դատարկ զանգվածի վրա.
Արդյոք այլ սիմվոլից տվյալների խնդրանքը վերագունավորվում է?
Աղյուսակի ժամանակահատվածում - ոչ. Պաշտոնական FAQ TradingView ուղղակիորեն ասում է. աղյուսակի սանդղակի մեկ այլ խորհրդանիշից տվյալներ խնդրելը չի սպառնում գունավորել, Այս դեպքում կարիք չկա փոխել արժեքը եւ փոխել lookahead փաստարկը. Վերագունավորումը գալիս է ավելի բարձր սանդղակով, ոչ թե ուրիշի տոմսերով. Միակ բանը, որ պետք է հիշել, երբ մեկ ուրիշի խորհրդանիշը առեւտրային նիստերի անհամապատասխանությունն է.
Ի՞նչ է փոխվել տվյալների հարցումների մեջ վեցերորդ տարբերակում Pine Script?
Հիմնական փոփոխությունը լռելյայն դինամիկ հարցումներն են. Վեցերորդ տարբերակում դուք կարող եք զանգ գրել ցիկլի կամ պայմանի ներսում, պահել տոմսերը զանգվածում եւ փոխել հարցման համատեքստը բարից բար. Հինգերորդ տարբերակում սա պահանջում էր հստակ ներառել դինամիկ հարցումները սցենարի հայտարարության մեջ. Կա նաեւ գործնական նախազգուշացում. ըստ TradingView աջակցության՝ խնդրանքը դեռեւս կատարվում է յուրաքանչյուր սանդղակում, նույնիսկ եթե զանգը գտնվում է պայմանի ներսում.




Մեկնաբանություններ
Աղբյուրի մեկնաբանությունները չեն թարգմանվում։