Files
QuanTAlib/python/quantalib/__pycache__/indicators.cpython-313.pyc
T

395 lines
70 KiB
Plaintext
Raw Normal View History

2026-02-28 14:14:35 -08:00
ó
†d£i†ÛãóT SrSSKJr SSKrSSKJr SSKJrJ r J
r
J r J r SSK
r\R rS—SjrS˜SjrS™S jrSšS
jrSSœS jjrSSS jjrSžS
jrSSŸSjjrSS SjjrSS¡SjjrSS¢SjjrS£S¤SjjrS¥S¤SjjrS¥S¤SjjrS£S¤Sjjr S§Sjjr!S©Sjjr"SªS¤Sjjr#S£S¤Sjjr$S¬Sjjr%S­S®Sjjr&S¯S¤Sjjr'S¯S¤Sjjr(S°S¤Sjjr)S±S¤Sjjr*S°S¤S jjr+S£S¤S!jjr,S¥S¤S"jjr-S²S¤S#jjr.S°S¤S$jjr/S°S¤S%jjr0S°S¤S&jjr1S²S¤S'jjr2S´S(jjr3S¶S)jjr4S¸S*jjr5SºS+jjr6S¼S,jjr7S¾S-jjr8SS S.jjr9S¿S/jjr:S¥S¤S0jjr;S¥S¤S1jjr<S¯S¤S2jjr=S¥S¤S3jjr>S¥S¤S4jjr?S¥S¤S5jjr@S¥S¤S6jjrAS¥S¤S7jjrBSÀS¤S8jjrCS¥S¤S9jjrDS¥S¤S:jjrES¥S¤S;jjrFS¥S¤S<jjrGS£S¤S=jjrHSÁS>jjrISÃS?jjrJSÅS@jjrKSÆS¤SAjjrLS¥S¤SBjjrMS¥S¤SCjjrNSÈSDjjrOS¥S¤SEjjrPSÉSÊSFjjrQS¥S¤SGjjrRSÉSÊSHjjrSS¥S¤SIjjrTS¥S¤SJjjrUS¥S¤SKjjrVS¥S¤SLjjrWS°S¤SMjjrXSÌSNjjrYSÍSOjjrZSÏSPjjr[SÉSÊSQjjr\SÉSÊSRjjr]SÐSSjjr^S¼STjjr_SÒSUjjr`SÓSVjjraSSÔSWjjrbS°S¤SXjjrcSÖSYjjrdSÖSZjjreS°S¤S[jjrfS°S¤S\jjrgSS S]jjrhS×S´S^jjriSÙS_jjrjSÛS`jjrkSÝSajjrlSÞSbjrmSßScjrnSSàSdjjroSSàSejjrpSSàSfjjrqSSàSgjjrrSSàShjjrsSSàSijjrtSáSjjjruSáSkjjrvSáSljjrwSáSmjjrxSáSnjjrySSàSojjrzSãSpjjr{SãSqjjr|SäSrjjr}SæSsjjr~S°S¤StjjrSSçSujjr€S¥S¤SvjjrSèSwjjrSêSxjjSèSyjjr„SëSzjr…SìS{jjr†SìS|jjr‡SìS}jjrˆSìS~jjr‰S£S¤SjjrŠS£S¤S€jjrS£S¤SjjrŒS£S¤SjjrS£S¤SƒjjrŽS£S¤S„jjrS£S¤S…jjrS£S¤S†jjrSÃS‡jjrSïSˆjjr“SñS‰jjr”SóSŠjjr•S¥S¤SjjrS°S¤SŒjjr—S°S¤Sjjr˜SõSŽjjr™S÷SjjršSøS¤SjjrSSçSjjSúSjjrSüS“jjSþS”jjSÿGSS•jjr GSGSSjjr¡g!\a SrGN€f=f(aLHigh-level indicator wrappers for quantalib.
Each function accepts numpy arrays (or pandas Series / DataFrame) and
returns the same type. Multi-output indicators return a tuple of arrays
or a DataFrame depending on input type.
Signature conventions follow pandas-ta where practical:
sma(close, length=10, offset=0, **kwargs)
é)Ú annotationsN)ÚNDArrayé)Ú_libÚ_checkÚ_dpÚ_ciÚ_cdcóxSn[b@[U[R5(a!URnUR [
SS9nOW[bP[U[R 5(a1URnURSS2S4R [
SS9n[R"U[
S9U4$)z:Return (contiguous float64 array, original_index_or_None).NF)ÚdtypeÚcopyr©r )
ÚpdÚ
isinstanceÚSeriesÚindexÚto_numpyÚ_F64Ú DataFrameÚilocÚnpÚascontiguousarray)Úidxs Ú2C:\github\quantalib\python\quantalib\indicators.pyÚ_arrrà
€CÜ ~œ* Q¬¯ © ×g‰gˆØ
J‰JœT¨ˆ .‰Ü œJ q¬"¯,©,×g‰gˆØ
F‰F1a4‰L× °5Ð Ü
× Ò  ¬Ñ Ð có@URR[5$)zGet ctypes double* from array.)ÚctypesÚdata_asr)Úas rÚ_ptrr"*sà 8‰8× Ñ œCÓ Ð rcó4[R"U[S9$)zAllocate output array.r)rÚemptyr)Úns rÚ_outr&/sä
8Š8AœTÑ "rcó¦U(aIUS:waC[R"X5nUS:”a[RUSU&U$[RXS&U$)zApply offset (roll + NaN fill).rN)rÚrollÚnan)ÚarrÚoffs rÚ_offsetr,4sJæ
ˆsa‹xÜgŠgˆØ ‹7ÜŸˆCˆIð €JôŸˆCˆIØ €Jrcój[X5nUb$[b[R"XUS9nX5lU$U$)z;Wrap result: apply offset, optionally convert to pd.Series.)rÚname)r,rrÚcategory)r*rr.r/ÚoffsetÚss rÚ_wrapr2?s6ô 
€CØ
œ2™>Ü IŠIc¨4Ñ 0ˆØŒ
ØˆØ €Jrcó²UHn[XU5X'M Ub#[b[R"XS9nX%lU$[ UR 55$)z1Wrap multi-output result into tuple or DataFrame.)r)r,rrr/ÚtupleÚvalues)Úarraysrr/r0Údfs rÚ _wrap_multir9OsPóˆÜ˜F™I vÓ‹ ñà
œ2™>Ü
\Š\˜
ØŒ ؈ Ü Ó !rc óUb [U5OUnUb [U5OSn[U5upx[U5n [U 5n
[ [ [ U5"[U5U [U
5U55 [X¨USU3Xc5$)zGeneric Pattern A wrapper.rÚ_© ÚintrÚlenr&rÚgetattrrr"r2) Úfn_nameÚcloseÚlengthr0Údefault_lengthÚlabelr/Úsrcrr%Údsts rÚ_parGcs}ð
.ŒSŒ[°N€FØ.ŒSŒ[°A€FÜE{H€CÜ ˆC‹€AÜ
ˆq'€CÜ
Œ7”4˜Ô !¤$ s£)¨Q´°S³ ¸6Ó  ˜e˜W A f Ó Arc óx[U5upg[U5up‰[U5up©[U5up¹[U5n [U 5n
[[R
"[
U5[
U5[
U
5[
U 5U [
U
555 [X×SSUb[U55$S5$)zAverage Price = (O+H+L+C)/4.ÚAVGPRICEÚcorer) rr>r&rrÚ qtl_avgpricer"r2r=)ÚopenÚhighÚlowrAr0ÚkwargsÚorÚhr;Úcr%rFs rÚavgpricerTusô$ZF€A¤ T£
˜´4¸³9©D¨AÄTÈ%Ã[¹d¸aÜ ˆA‹€A”d˜1“gÜ
Œ4× Ò œT !›W¤d¨1£g¬t°A«w¼¸Q»ÀÄDÈÃIÓ  ˜: v¸fÑ>P¬s°6«{Ó XÐVWÓ Xrc
ó[U5upE[U5upg[U5n[U5n [[R
"[
U5[
U5U[
U 555 [X•SSUb[U55$S5$)zMedian Price = (H+L)/2.ÚMEDPRICErJr) rr>r&rrÚ qtl_medpricer"r2r=©
rMrNr0rOrQrrRr;r%rFs
rÚmedpricerY~spä
$‹ZF€A¤ S£ ™˜Ü ˆA‹€A”d˜1“gÜ
Œ4× Ò œT !›W¤d¨1£g¨q´$°s³)Ó  ˜: v¸fÑ>P¬s°6«{Ó XÐVWÓ Xrc óJ[U5upV[U5upx[U5up˜[U5n
[U
5n [[R
"[
U5[
U5[
U 5U
[
U 555 [X¶SSUb[U55$S5$)z.Typical Price = (O+H+L)/3 (QuanTAlib variant).ÚTYPPRICErJr) rr>r&rrÚ qtl_typpricer"r2r=) rLrMrNr0rOrPrrQr;rRr%rFs rÚtyppricer]sô$‹ZF€A¤ T£
˜´4¸³9©D¨AÜ ˆA‹€A”d˜1“gÜ
Œ4× Ò œT !›W¤d¨1£g¬t°A«w¸¼4À»9Ó  ˜: v¸fÑ>P¬s°6«{Ó XÐVWÓ Xrc
ó[U5upE[U5upg[U5n[U5n [[R
"[
U5[
U5U[
U 555 [X•SSUb[U55$S5$)zMid Body = (O+C)/2.ÚMIDBODYrJr) rr>r&rrÚ qtl_midbodyr"r2r=)
rLrAr0rOrPrrSr;r%rFs
rÚmidbodyraspä
$‹ZF€A¤ U£ ˜Ü ˆA‹€A”d˜1“gÜ
Œ4× Ò œD ›G¤T¨!£W¨a´°c³Ó  ˜9 f¸VÑ=O¬c°&«kÓ WÐUVÓ Wrc ó"[SXUSSS5$)zRelative Strength Index.Úqtl_rsiéÚRSIÚmomentum©rG©rArBr0rOs rÚrsirióä ˆy˜%¨°°U¸JÓ Grc ó"[SXUSSS5$)zRate of Change.Úqtl_rocé
ÚROCrfrgrhs rÚrocroŸrjrc ó"[SXUSSS5$)z Momentum.Úqtl_momrmÚMOMrfrgrhs rÚmomrs£rjrc ó"[SXUSSS5$)zChande Momentum Oscillator.Úqtl_cmordÚCMOrfrgrhs rÚcmorw§rjrc ó8Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
R "[U5U[U5X55 [X†SUSU3SU5$)zTrue Strength Index.éé
rÚTSI_r;rf) r=rr>r&rrÚqtl_tsir"r2) rAÚ long_periodÚ short_periodr0rOrErr%rFs rÚtsir«sð'2Ñ&=”#"À2€KØ(4Ñ(@”3$Àb€LØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4<Š<œ˜S  1¤d¨3£i°Ó  ˜T + ¨a° ¨~Ð
ÈFÓ Src ó8Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
R "[U5U[U5X55 [X†SUSU3SU5$)zAbsolute Price Oscillator.é érÚAPO_r;rf) r=rr>r&rrÚqtl_apor"r2) rAÚfastÚslowr0rOrErr%rFs rÚapor‡sðÑ(Œ3ˆtŒ9¨b€DØÑ(Œ3ˆtŒ9¨b€DØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4<Š<œ˜S  1¤d¨3£i°Ó  ˜T $  ¨Ð¸ Drc ó"[SXUSSS5$)zBias.Úqtl_biasrÚBIASrfrgrhs rÚbiasrÁsä ˆz˜5¨&°"°f¸ Irc ó"[SXUSSS5$)zChande Forecast Oscillator.Úqtl_cfordÚCFOrfrgrhs rÚcforÅrjrc ó¸Ub [U5OSn[U5upE[U5n[U5nSSKnU(aZUR
[U5-"U6n [
[R"[U5U[U5U [U555 O5[
[R"[U5U[U5SS55 [XuSSU5$)zComposite Fractal Behavior.NrÚCFBrf) r=rr>r&rÚc_intrrÚqtl_cfbr"r2)
rAÚlengthsr0rOrErr%rFrÚarr_ts
rÚcfbrÉð.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›Þؤ G£ Ò,¨wÐÜŒt|Š|œD ›I q¬$¨s«)°U¼CÀ»LÓŒt|Š|œD I q¬$¨s«)°T¸ ˜5 *¨fÓ 5rc
óŒ[U5upx[U5upš[U5upº[U5upÊ[U5n
[U
5n[[R
"[
U5[
U 5[
U 5[
U 5U
[
U5[U555 [XèSSUb[U55$S5$)zAccumulative Swing Index.ÚASIrfr)
rr>r&rrÚqtl_asir"Úfloatr2r=)rLrMrNrAÚlimitr0rOrPrrQr;rRrSr%rFs rÚasirœ×s—ô$‹ZF€A¤ T£
˜´4¸³9©D¨AÄTÈ%Ã[¹d¸aÜ ˆA‹€A”d˜1“gÜ
Œ4<Š<œ˜Q¤ ¬$¨q«'´4¸³7¸A¼tÀC»yÌ%ÐPUË,Ó  ˜5 *¸VÑ=O¬c°&«kÓ WÐUVÓ Wrc ó"[SXUSSS5$)zFisher Transform.Ú
qtl_fisheré ÚFISHERÚ
oscillatorrgrhs rÚfisherr¢äsä ˆ|˜U¨F°A°xÀÓ Nrc ó"[SXUSSS5$)zFisher Transform (0.4 variant).Ú qtl_fisher04rŸÚFISHER04r¡rgrhs rÚfisher04r¦èsä ˆ~˜u¨f°a¸À\Ó Rrc ó"[SXUSSS5$)zDetrended Price Oscillator.Úqtl_dpoéÚDPOr¡rgrhs rÚdpor«ìóä ˆy˜%¨°°U¸LÓ Irc ó"[SXUSSS5$)zTriple EMA Rate of Change.Úqtl_trixéÚTRIXr¡rgrhs rÚtrixr±ðsä ˆz˜5¨&°"°f¸ Krc ó"[SXUSSS5$)zInertia.Ú qtl_inertiar©ÚINERTIAr¡rgrhs rÚinertiarµôóä ˆ}˜e¨V°R¸ÀLÓ Qrc ó"[SXUSSS5$)zRelative Strength Xtra.Úqtl_rsxrdÚRSXr¡rgrhs rÚrsxrºørc ó"[SXUSSS5$)zEfficiency Ratio.Úqtl_errmÚERr¡rgrhs rÚerr¾üsä ˆx˜¨°°D¸,Ó Grc ó"[SXUSSS5$)zCorrelation Trend Indicator.Úqtl_ctirÚCTIr¡rgrhs rÚctirÂrc ó"[SXUSSS5$)zReflex.Ú
qtl_reflexr©ÚREFLEXr¡rgrhs rÚreflexrÆóä ˆ|˜U¨F°B¸À,Ó Orc ó"[SXUSSS5$)z
Trendflex.Ú
qtl_trendflexr©Ú TRENDFLEXr¡rgrhs rÚ trendflexrËsä ˆ ¨v°r¸;È Ó Urc ó"[SXUSSS5$)zKairi Relative Index.Úqtl_krir©ÚKRIr¡rgrhs rÚkrirÏ rc ó"[SXUSSS5$)zPsychological Line.Úqtl_pslrÚPSLr¡rgrhs rÚpslrÓrc ó8Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
R "[U5U[U5X55 [X†SUSU3SU5$)zDECO.éé<rÚDECO_r;) r=rr>r&rrÚqtl_decor"r2© rAr~r}r0rOrErr%rFs rÚdecorÚsð)5Ñ(@”3$Àb€LØ&1Ñ&=”#"À2€KØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4=Š=œ˜c› A¤t¨C£y°,Ó  ˜U < .°°+°ÐÈvÓ Vrc
óNUb [U5OSnUb [U5OSn[U5upx[U5n [U 5n
[ [
R "[U5U [U
5U[U5[U5[U555 [X¨SU3SU5$)zDeMarker Oscillator.rdrÚDOSC_r¡) r=rr>r&rrÚqtl_doscr"r2) rAÚ
rsi_periodÚ ema1_periodÚ ema2_periodÚ
signal_periodr0rOrErr%rFs rÚdoscrâs“ð%/Ñ$:”Z”À€JØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4=Š=œ˜c› A¤t¨C£yØ#¤S¨Ó%5´s¸;Ó7GÌÈ]ÓI[ó ]ô^ä ˜U : ¸ Frc óNUb [U5OSn[U5up‰[U5n
[U
5n [ [
R "[U5U
[U 5[U5[U5[U5[U5[U555 [X¹SSU5$)zDynamic Momentum Index.rÚDYMOIr¡) r=rr>r&rrÚ qtl_dymoir"r2) rAÚ base_periodr~r}Ú
min_periodÚ
max_periodr0rOrErr%rFs rÚdymoiré+s‡ð.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4>Š>œ$˜s) ¨S« ܘ*¬C° Ó,=¼sÀ;Ó?Oܘj/¬3¨z«?ó  ˜7 L°&Ó 9rc ó,Ub [U5OSn[U5upg[U5n[U5n [ [
R "[U5U[U 5[U5[U5[U555 [X—SU3SU5$)z Connors RSI.rÚCRSI_r¡) r=rr>r&rrÚqtl_crsir"r2)
rAÚ
streak_periodÚ rank_periodr0rOrErr%rFs
rÚcrsirï7s€ð.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4=Š=œ˜c› A¤t¨C£yܘZ¬#¨mÓ*<¼cÀ+Ó>Nó PôQä ˜U : ¸ Frc ó2Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[ U5n[ [ R"[U5U[U5X55 [X†SU3SU5$)zBollinger Band Bounce.r©ç@rÚBBB_r¡)
r=rr>r&rrÚqtl_bbbr"r2) rArBÚmultr0rOrErr%rFs rÚbbbrõAs†ð.ŒSŒ[°B€FØÑ*Œ5Œ;°€DØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4<Š<œ˜S  1¤d¨3£i°Ó  ˜T & ˜?¨L¸ Arc
ó:Ub [U5OSn[U5upx[U5n [U 5n
[ [
R "[U5U [U
5[U5[U5[U5[U555 [X¨SSU5$)zBull Bear Index.rÚBBIr¡) r=rr>r&rrÚqtl_bbir"r2) rAÚp1Úp2Úp3Úp4r0rOrErr%rFs rÚbbirýLswð.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4<Š<œ˜S  1¤d¨3£i´°R³¼#¸b»'Ä3ÀrÃ7ÌCÐPRËGÓ  ˜5 Ó 7rc
ó[U5upE[U5upg[U5n[U5n [[R
"[
U5[
U5U[
U 555 [X•SSUb[U55$S5$)z DeMarker.ÚDEMr¡r) rr>r&rrÚqtl_demr"r2r=rXs
rÚdemrUsnä
$‹ZF€A¤ S£ ™˜Ü ˆA‹€A”d˜1“gÜ
Œ4<Š<œ˜Q¤ ¨!¬T°#«YÓ  ˜5 ,¸vÑ?Q´°F³ Ó YÐWXÓ Yrc
óÔUb [U5OSnUb [U5OSn[U5upx[U5upš[U5upº[U5upÊ[U5n
[U
5n[U
5n[ [
R "[U5[U 5[U 5[U 5U
[U5[U5U55 [SU3USU3U0USU5$)zBull-Bear Ratio (BRAR).rrÚBR_ÚAR_r¡) r=rr>r&rrÚqtl_brarr"r9)rLrMrNrArBr0rOrPrrQr;rRrSr%ÚbrÚars rÚbrarr\ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜ
$ZF€A¤ 
˜´4¸³9©D¨AÄTÈ%Ã[¹d¸aÜ ˆA‹€A”T˜!“W¤4¨£7˜bÜ
Œ4=Š=œ˜a¤$ q£'¬4°«7´D¸³G¸ÀRÃÌ$ÈrË(ÐTZÓ  Ø ˆvˆhˆ˜˜s 6 (˜^¨RÐ ˆ\˜6ó ðrc ó"[SXUSSS5$)zSimple Moving Average.Úqtl_smarmÚSMAÚtrendrgrhs rÚsmar
nóä ˆy˜%¨°°U¸GÓ Drc ó"[SXUSSS5$)zWeighted Moving Average.Úqtl_wmarmÚWMAr rgrhs rÚwmarrrrc ó"[SXUSSS5$)zHull Moving Average.Úqtl_hmarŸÚHMAr rgrhs rÚhmarvsä ˆy˜%¨°°E¸7Ó Crc ó"[SXUSSS5$)zTriangular Moving Average.Ú qtl_trimarmÚTRIMAr rgrhs rÚtrimarzóä ˆ{˜E¨6°2°wÀÓ Hrc ó"[SXUSSS5$)z"Symmetric Weighted Moving Average.Úqtl_swmarmÚSWMAr rgrhs rÚswmar~óä ˆz˜5¨&°"°f¸ Frc ó"[SXUSSS5$)zDouble Weighted Moving Average.Úqtl_dwmarmÚDWMAr rgrhs rÚdwmar$r rc ó"[SXUSSS5$)zBlackman Moving Average.Úqtl_blmarmÚBLMAr rgrhs rÚblmar(r rc ó"[SXUSSS5$)zArnaud Legoux Moving Average.Úqtl_almarmÚALMAr rgrhs rÚalmar,Šr rc ó"[SXUSSS5$)zLeast Squares Moving Average.Úqtl_lsmaryÚLSMAr rgrhs rÚlsmar0Žr rc ó"[SXUSSS5$)zSavitzky-Golay Moving Average.Úqtl_sgmarmÚSGMAr rgrhs rÚsgmar4r rc ó"[SXUSSS5$)zSine-weighted Moving Average.Ú
qtl_sinemarmÚSINEMAr rgrhs rÚsinemar8óä ˆ|˜U¨F°B¸À'Ó Jrc ó"[SXUSSS5$)zHann-weighted Moving Average.Ú qtl_hanmarmÚHANMAr rgrhs rÚhanmar=šrrc ó"[SXUSSS5$)zParzen-weighted Moving Average.Ú
qtl_parzenrmÚPARZENr rgrhs rÚparzenrAžr9rc ó"[SXUSSS5$)zTime Series Forecast.Úqtl_tsfrdÚTSFr rgrhs rÚtsfrE¢rrc óPUb [U5OSn[U5upE[U5n[U5nUcS/n[R
"U[ S9n[[R"[U5U[U5[U5[U555 [XuSSU5$)zConvolution with custom kernel.rçð?rÚCONVr ) r=rr>r&rrrrrÚqtl_convr"r2) rAÚkernelr0rOrErr%rFr7s rÚconvrK¦sˆð.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
ˆÜ
×Ò˜V¬4Ñ0€AÜ
Œ4=Š=œ˜c A¤t¨C£y´$°q³'¼3¸q»6Ó  ˜6 7¨FÓ 3rc ó&Ub [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
R "[U5U[U5U[U555 [X†SU3SU5$)z$Butterworth-weighted Moving Average.rmrÚBWMA_r ) r=rr>r&rrÚqtl_bwmar"r2© rArBÚorderr0rOrErr%rFs rÚbwmarQ²s}ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4=Š=œ˜c A¤t¨C£y°&¼#¸e»*Ó  ˜U 6 +¨W°fÓ =rc ó&Ub [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
R "[U5U[U5U[U555 [X†SU3SU5$)zCosine-Ramp Moving Average.rmrÚCRMA_r )
r=rr>r&rrÚqtl_crmar"r2) rArBÚ
volume_factorr0rOrErr%rFs rÚcrmarV¼s~ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4=Š=œ˜c A¤t¨C£y°&¼%À
Ó:NÓ  ˜U 6 +¨W°fÓ =rc ó"[SXUSSS5$)zSP-15 Moving Average.Úqtl_sp15éÚSP15r rgrhs rÚsp15r[Ær rc ó"[SXUSSS5$)zTukey-windowed Moving Average.Ú qtl_tukey_wrmÚTUKEYr rgrhs rÚtukey_wr_Êsä ˆ}˜e¨V°R¸À'Ó Jrc ó"[SXUSSS5$)zRAIN Moving Average.Úqtl_rainrmÚRAINr rgrhs rÚrainrcÎr rc ó:Ub [U5OSnUb [U5OSn[U5upg[U5n[U5n [ [
R "[U5U[U 5U[U5[U555 [X—SU3SU5$)zAdaptive FIR Moving Average.rmrÚAFIRMA_r ) r=rr>r&rrÚ
qtl_afirmar"r2)
rArBÚ window_typeÚuse_simdr0rOrErr%rFs
rÚafirmariÒs…ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4?Š?œ4 9 ¨c«°F¼CÀ Ó<LÌcÐRZËmÓ  ˜W V -¨w¸Ó ?rc ó"[SXUSSS5$)zExponential Moving Average.Úqtl_emarmÚEMAr rgrhs rÚemarmárrc
óUb [U5OSn[U5upE[U5n[U5n[ [
R "[U5U[U5[U555 [XuSUS3SU5$)zEMA with explicit alpha.rÚEMA_aú.4fr )
r=rr>r&rrÚ
qtl_ema_alphar"r2©rAÚalphar0rOrErr%rFs rÚ ema_alphartåsmà.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4× Ò œd 3›i¨¬D°«I´u¸U³|Ó  ˜U 5¨ +Ð¸Ó @rc ó"[SXUSSS5$)z"Double Exponential Moving Average.Úqtl_demarmÚDEMAr rgrhs rÚdemarxír rc
óUb [U5OSn[U5upE[U5n[U5n[ [
R "[U5U[U5[U555 [XuSUS3SU5$)zDEMA with explicit alpha.rÚDEMA_arpr )
r=rr>r&rrÚqtl_dema_alphar"r2rrs rÚ
dema_alphar|ñsmà.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4× Ò œt C›y¨!¬T°#«Y¼¸e» Ó  ˜V E¨# ¸ Arc ó"[SXUSSS5$)z"Triple Exponential Moving Average.Úqtl_temarmÚTEMAr rgrhs rÚtemar€ùr rc ó"[SXUSSS5$)zLaguerre-based EMA.Úqtl_lemarmÚLEMAr rgrhs rÚlemar„ýr rc ó"[SXUSSS5$)zHenderson EMA.Úqtl_hemarmÚHEMAr rgrhs rÚhemarˆr rc ó"[SXUSSS5$)zAhrens Moving Average.Ú
qtl_ahrensrmÚAHRENSr rgrhs rÚahrensrŒr9rc ó"[SXUSSS5$)zSimple Decycler.Ú qtl_decyclerr©ÚDECYCLERr rgrhs rÚdecyclerr sä ˆ~˜u¨f°b¸*ÀgÓ Nrc ó&Ub [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
R "[U5U[U5U[U555 [X†SU3SU5$)z Deviation-Scaled Moving Average.rmrÚDSMA_r )
r=rr>r&rrÚqtl_dsmar"r2) rArBÚfactorr0rOrErr%rFs rÚdsmar•
s}ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4=Š=œ˜c A¤t¨C£y°&¼%À»-Ó  ˜U 6 +¨W°fÓ =rc ó&Ub [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
R "[U5U[U5U[U555 [X†SU3SU5$)zGeneralized DEMA.rmrÚGDEMA_r )
r=rr>r&rrÚ qtl_gdemar"r2) rArBÚvfactorr0rOrErr%rFs rÚgdemaršs}ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4>Š>œ$˜s) ¨S« °6¼5À»>Ó  ˜V F ,¨g°vÓ >rc ó&Ub [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
R "[U5U[U5U[U555 [X†SU3SU5$)z CORAL Trend.rmrÚCORAL_r )
r=rr>r&rrÚ qtl_coralr"r2) rArBÚfrictionr0rOrErr%rFs rÚcoralrŸ!s}ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4>Š>œ$˜s) ¨S« °6¼5À»?Ó  ˜V F ,¨g°vÓ >rc
óUb [U5OSn[U5upE[U5n[U5n[ [
R "[U5U[U5[U555 [XuSUS3SU5$)zAutomatic Gain Control.rÚAGC_arpr )
r=rr>r&rrÚqtl_agcr"r2rrs rÚagcr£+skà.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4<Š<œ˜S  1¤d¨3£i´°u³Ó  ˜U  ¸Ó @rc
óUb [U5OSn[U5upE[U5n[U5n[ [
R "[U5U[U5[U555 [XuSUS3SU5$)z Cyber Cycle.rÚCCYC_arpr )
r=rr>r&rrÚqtl_ccycr"r2rrs rÚccycr§3skà.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4=Š=œ˜c› A¤t¨C£y´%¸³,Ó  ˜V E¨# ¸ Arc ó°Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[ U5n[ U5n [ U5n
[ [ R"[U5U[U5[U 5[U
5X55 [SUSU3USUSU3U SUSU3U
0USU5$) u5Bollinger Bands → (upper, mid, lower) or DataFrame.r©rÚBBU_r;ÚBBM_ÚBBL_Úchannels)
r=rr>r&rrÚ
qtl_bbandsr"r9) rArBÚstdr0rOrErr%ÚupperÚmidÚlowers rÚbbandsr²@ð.ŒSŒ[°B€FØŒ%Œ*¨S€CØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€AÜ ‹G€Eœ4 ›7S¬D°«G 
Œ4?Š?Ü ˆS‹ 1”d˜5“k¤4¨£9¬d°5«k¸6ó ôô à6(˜!˜C˜ ! 6(˜!˜C˜ ! 6(˜!˜C˜ ! 
ð
ˆZ˜ó
 ðrc ó°Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[ U5n[ U5n [ U5n
[ [ R"[U5[U 5[U5[U
5XqU55 [SUSU3USUSU3U SUSU3U
0USU5$) u6Aberration Bands → (upper, mid, lower) or DataFrame.r©rÚABERRU_r;ÚABERRM_ÚABERRL_r¬)
r=rr>r&rrÚ qtl_abberr"r9) rArBr0rOrErr%s rÚaberrr¸Vð.ŒSŒ[°B€FØÑ*Œ5Œ;°€DØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€AÜ ‹G€Eœ4 ›7S¬D°«G 
Œ4>Š>Ü ˆS ”4˜“9œd 5›k¬4°«;¸À4ó ôô àfX˜Q˜t˜ % fX˜Q˜t˜ % fX˜Q˜t˜ % 
ð
ˆZ˜ó
 ðrc
ó Ub [U5OSnUb [U5OSnUb [U5OSn[U5upx[U5upš[U5upº[U5n [ U 5n
[ U 5n[ U 5n[ [ R"[U5[U 5[U 5U [U
5[U5[U5X45 5 [SUSU3U
SUSU3USUSU3U0USU5$) u/ATR Bands → (upper, mid, lower) or DataFrame.rdrÚATRBU_r;ÚATRBM_ÚATRBL_r¬)
r=rr>r&rrÚ qtl_atrbandsr"r9)rMrNrArBr0rOrQrrRr;rSr%s rÚatrbandsr¾ksð.ŒSŒ[°B€FØÑ*Œ5Œ;°€DØ.ŒSŒ[°A€FÜ
$‹ZF€A¤ S£ ™˜´$°u³+©4¨1Ü ˆA‹€AÜ ‹G€Eœ4 ›7S¬D°«G 
Œ4× Ò Ü ˆQ‹a“œ$˜q›' 1¤d¨5£k´4¸³9¼dÀ5»kÈ6ó ôô àVH˜A˜d˜ $ VH˜A˜d˜ $ VH˜A˜d˜ $ 
ð
ˆZ˜ó
 ðrc óxUb [U5OSnUb [U5OSn[U5upV[U5upx[U5n [U 5n
[U 5n [ [
R "[U5[U5U [U
5[U 5U55 [SU3U
SU3U 0USU5$)u6Average Price Channel → (upper, lower) or DataFrame.r©rÚAPCU_ÚAPCL_r¬) r=rr>r&rrÚ
qtl_apchannelr"r9) rMrNrBr0rOrQrrRr;r%s rÚ apchannelrÃð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜ
$‹ZF€A¤ S£ ™˜Ü ˆA‹€AÜ ‹G€EœT !›W
Œ4× Ò œd 1›g¤t¨A£w°´4¸³;ÄÀUà ÈVÓ  Ø Ð ˜5 E¨&¨Ð"2°EÐ ˆZ˜ó ðrc óJ[U5upV[U5upx[U5up˜[U5n
[U
5n [[R
"[
U5[
U5[
U 5U
[
U 555 [X¶SSUb[U55$S5$)z True Range.ÚTRÚ
volatilityr) rr>r&rrÚqtl_trr"r2r=) rMrNrAr0rOrQrrRr;rSr%rFs rÚtrrÈs~ä
$‹ZF€A¤ S£ ™˜´$°u³+©4¨1Ü ˆA‹€A”d˜1“gÜ
Œ4;Š;”t˜A“w¤ Q£¬¨a«°!´T¸#³YÓ  ˜4 ¸fÑ>P¬s°6«{Ó XÐVWÓ Xrc ó"[SXUSSS5$)zBollinger Band Width.Úqtl_bbwr©ÚBBWrÆrgrhs rÚbbwrÌœrc
óTUb [U5OSnUb [U5OSnUb [U5OSnUb [U5OSn[U5upg[U5n[ U5n [ [ R"[U5U[U 5XU55 [X—SU3SU5$)z Bollinger Band Width Normalized.r©éürÚBBWN_rÆ)
r=rr>r&rrÚqtl_bbwnr"r2©
rArBÚlookbackr0rOrErr%rFs
rÚbbwnrÓ ó™ð.ŒSŒ[°B€FØÑ*Œ5Œ;°€DØ (Ñ 4Œs8Œ}¸#€HØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4=Š=œ˜c A¤t¨C£y°&ÀÓ  ˜U 6 +¨\¸ Brc
óTUb [U5OSnUb [U5OSnUb [U5OSnUb [U5OSn[U5upg[U5n[ U5n [ [ R"[U5U[U 5XU55 [X—SU3SU5$)z Bollinger Band Width Percentile.r©rÚBBWP_rÆ)
r=rr>r&rrÚqtl_bbwpr"r2s
rÚbbwprجrc ó"[SXUSSS5$)zStandard Deviation.Ú
qtl_stddevr©ÚSTDDEVrÆrgrhs rÚstddevrܸrc ó"[SXUSSS5$)z Variance.Ú qtl_variancer©ÚVARIANCErÆrgrhs rÚvariancerà¼sä ˆ~˜u¨f°b¸*ÀlÓ Src
ó[U5upE[U5upg[U5n[U5n [[R
"[
U5[
U5U[
U 555 [X•SSUb[U55$S5$)zElder Thermometer.ÚETHERMrÆr) rr>r&rrÚ
qtl_ethermr"r2r=rXs
rÚethermräÀsnä
$‹ZF€A¤ S£ ™˜Ü ˆA‹€A”d˜1“gÜ
Œ4?Š?œ4 ›7¤D¨£G¨Q´°S³ Ó  ˜8 \À&ÑBT´3°v³;Ó \ÐZ[Ó \rc ó2Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
R "[U5U[U5X55 [X†SU3SU5$)zClose-to-Close Volatility.r©rrÚCCV_rÆ) r=rr>r&rrÚqtl_ccvr"r2s rÚccvrèÇs‰ð)5Ñ(@”3$Àb€LØ&1Ñ&=”#"À1€KØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4<Š<œ˜S  1¤d¨3£i°Ó  ˜T , Ð0°,ÀÓ Grc
óTUb [U5OSnUb [U5OSnUb [U5OSnUb [U5OSn[U5upg[U5n[ U5n [ [ R"[U5U[U 5XU55 [X—SU3SU5$)zCoefficient of Variation.r©çš™™™™™É?çffffffæ?rÚCV_rÆ)
r=rr>r&rrÚqtl_cvr"r2)
rArBÚmin_volÚmax_volr0rOrErr%rFs
rÚcvrðÒð.ŒSŒ[°B€FØ 'Ñ 3ŒeGŒn¸€GØ 'Ñ 3ŒeGŒn¸€GØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4;Š;”t˜C“y !¤T¨#£Y°ÀÓ  ˜S  ˜>¨<¸Ó @rc ó2Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
R "[U5U[U5X55 [X†SU3SU5$)zChaikin Volatility Index.rmrÚCVI_rÆ) r=rr>r&rrÚqtl_cvir"r2) rAÚ
ema_periodÚ
roc_periodr0rOrErr%rFs rÚcviröÞs‡ð%/Ñ$:”Z”À€JØ$.Ñ$:”Z”À€JØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4<Š<œ˜S  1¤d¨3£i°Ó  ˜T * Ð ¸ Erc
óTUb [U5OSnUb [U5OSnUb [U5OSnUb [U5OSn[U5upg[U5n[U5n [ [
R "[U5U[U 5XU55 [X—SU3SU5$)z3Exponentially Weighted Moving Average (volatility).r©rrÚEWMA_rÆ) r=rr>r&rrÚqtl_ewmar"r2)
rArBÚis_popÚ
ann_factorr0rOrErr%rFs
rÚewmarüés™ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FØ$.Ñ$:”Z”À€JØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4=Š=œ˜c A¤t¨C£y°&À*Ó  ˜U 6 +¨\¸ Brc
óUb [U5OSn[U5upV[U5upx[U5n [U 5n
[ [ [ U5"[U5[U5U [U
555 [X¦USU5$)z%Pattern G (source+volume, no period).rÚvolumer<) r@rAr0rDrSrÚvr;r%rFs rÚ_pgrúsqð.ŒSŒ[°A€FÜ
%‹[F€A¤ f£™$˜!Ü ˆA‹€A”d˜1“gÜ
Œ7”4˜Ô !¤$ q£'¬4°«7°A´t¸C³yÓ  ˜5 (¨FÓ 3rc
óDUb [U5OUnUb [U5OSn[U5upx[U5upš[U5n [U 5n [ [ [ U5"[U5[U 5U [U 5U55 [XÈUSU3SU5$)z"Pattern G2 (source+volume+period).rr;r<)
r@rArBr0rCrDrSrrÿr;r%rFs
rÚ_pg2rð.ŒSŒ[°N€FØ.ŒSŒ[°A€FÜ
%‹[F€A¤ f£™$˜!Ü ˆA‹€A”d˜1“gÜ
Œ7”4˜Ô !¤$ q£'¬4°«7°A´t¸C³yÀ&Ó  ˜e˜W A f ¸ Arc ó[SXUS5$)zOn-Balance Volume.Úqtl_obvÚOBV©r©rAr0rOs rÚobvróä ˆy˜%¨°Ó 7rc ó[SXUS5$)zPrice Volume Trend.Úqtl_pvtÚPVTrrs rÚpvtr
r rc ó[SXUS5$)zPrice Volume Rank.Úqtl_pvrÚPVRrrs rÚpvrrr rc ó[SXUS5$)z Volume Flow.Úqtl_vfÚVFrrs rÚvfrsä ˆx˜¨°Ó 5rc ó[SXUS5$)zNegative Volume Index.Úqtl_nviÚNVIrrs rÚnvirr rc ó[SXUS5$)zPositive Volume Index.Úqtl_pviÚPVIrrs rÚpvir#r rc ó [SXX#SS5$)zTrade Volume Index.Úqtl_tvirdÚTVI©r©rArBr0rOs rÚtvir#'óô  ˜5¨&¸"¸ Drc ó [SXX#SS5$)zPrice Volume Divergence.Úqtl_pvdrdÚPVDr!r"s rÚpvdr(,r$rc ó [SXX#SS5$)zVolume Weighted Moving Average.Úqtl_vwmar©ÚVWMAr!r"s rÚvwmar,1sô 
˜E¨6¸2¸ Frc ó [SXX#SS5$)z'Elastic Volume Weighted Moving Average.Ú qtl_evwmar©ÚEVWMAr!r"s rÚevwmar06sô  ˜U¨F¸BÀÓ Hrc ó [SXX#SS5$)zElder's Force Index.Úqtl_efirzÚEFIr!r"s rÚefir4;r$rc óFUb [U5OSn[U5upE[U5upg[U5n[U5n [U5n
[ [
R "[U5[U5U[U 5[U
555 [XšS.USU5$)u*Archer OBV → (obv, signal) or DataFrame.r)ÚAOBVÚAOBV_SIGrþ) r=rr>r&rrÚqtl_aobvr"r9) rAr0rOrSrrÿr;r%Úobv_outÚsigs rÚaobvr;@s}à.ŒSŒ[°A€FÜ
%‹[F€A¤ f£™$˜ ˆA€Aœ$˜q'¬¨a« 
Œ4=Š=œ˜a¤$ q£'¨1¬d°7«m¼TÀ#»YÓ   Ñ9¸È&Ó Qrc óœUb [U5OSnUb [U5OSn[U5upx[U5upš[U5upº[U5upÊ[U5n
[U
5n[ [
R "[U5[U 5[U 5[U 5U
[U5U55 [XèSU3SU5$)zMoney Flow Index.rdrÚMFI_rþ) r=rr>r&rrÚqtl_mfir"r2©rMrNrArBr0rOrQrrRr;rSrÿr%rFs rÚmfir@Hó¦ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜ
$‹ZF€A¤ S£ ™˜´$°u³+©4¨1ÄdÈ6Ãl¹t¸qÜ ˆA‹€A”d˜1“gÜ
Œ4<Š<œ˜Q¤ ¬$¨q«'´4¸³7¸A¼tÀC»yÈ&Ó  ˜T & ˜?¨H°fÓ =rc óœUb [U5OSnUb [U5OSn[U5upx[U5upš[U5upº[U5upÊ[U5n
[U
5n[ [
R "[U5[U 5[U 5[U 5U
[U5U55 [XèSU3SU5$)zChaikin Money Flow.r©rÚCMF_rþ) r=rr>r&rrÚqtl_cmfr"r2r?s rÚcmfrERrArc ónUb [U5OSnUb [U5OSn[U5upg[U5up‰[U5up©[U5n [U 5n [ [
R "[U5[U5[U
5U [U 5U55 [XÇSU3SU5$)zEase of Movement.rdrÚEOM_rþ) r=rr>r&rrÚqtl_eomr"r2)
rMrNrBr0rOrQrrRr;rÿr%rFs
rÚeomrI\sð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜ
$‹ZF€A¤ S£ ™˜´$°v³,©4¨1Ü ˆA‹€A”d˜1“gÜ
Œ4<Š<œ˜Q¤ ¬$¨q«'°1´d¸3³iÀÓ  ˜T & ˜?¨H°fÓ =rc óäUb [U5OSnUb [U5OSnUb [U5OSnUb [U5OSn[U5upg[U5n[U5n [U5n
[U5n [ [
R "[U5U[U 5[U
5[U 5XU55 [SUSUSU3U SUSUSU3U
SUSUSU3U 0US U5$)
uGPercentage Volume Oscillator → (pvo, signal, histogram) or DataFrame.rrrÚPVO_r;ÚPVOs_ÚPVOh_rþ) r=rr>r&rrÚqtl_pvor"r9) r…r†Úsignalr0rOrÿrr%Úpvo_outr:Úhists rÚpvorRfsðÑ(Œ3ˆtŒ9¨b€DØÑ(Œ3ˆtŒ9¨b€DØ.ŒSŒ[°A€FØ.ŒSŒ[°A€FÜ
&\F€AÜ ˆA€Aœ$˜q'¬¨a« ¸°$Ü
Œ4<Š<Ü ˆQ”D˜“M¤4¨£9¬d°4«j¸$Àfó ôô à4&˜˜$˜˜q  Ð )¨7ØD6˜˜4˜&  & Ð *¨CØD6˜˜4˜&  & Ð *¨Dð
ð
ˆX
 ðrc ó"[SXUSSS5$)zZ-Score.Ú
qtl_zscorer©ÚZSCOREÚ
statisticsrgrhs rÚzscorerWrc óêUb [U5OSn[U5up4[U5n[U5n[ [
R "[U5U[U555 [XdSSU5$)zCumulative Moving Average.rÚCMArV) r=rr>r&rrÚqtl_cmar"r2©rAr0rOrErr%rFs rÚcmar\s\à.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4<Š<œ˜S  1¤d¨3£iÓ  ˜5 Ó 7rc ó"[SXUSSS5$)zShannon Entropy.Ú qtl_entropyrmÚENTROPYrVrgrhs rÚentropyr`Œrc
ó@Ub [U5OSnUb [U5OSn[U5upV[U5upx[U5n [U 5n
[ [
R "[U5[U5U [U
5U55 [X¦SU3SU5$)zPearson Correlation.r©rÚCORR_rV) r=rr>r&rrÚqtl_correlationr"r2© rÚyrBr0rOÚxarrrÚyarrr;r%rFs rÚ correlationrhs‰ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜQ“I€D¤4¨£7™˜Ü ˆD‹ €Aœ˜a›
Œ4× Ò ¤ 
¬D°«J¸¼4À»9ÀfÓ  ˜U 6 +¨\¸ Brc óTUb [U5OSnUb [U5OSn[U5upg[U5up‰[U5n
[U
5n [ [
R "[U5[U5U
[U 5U[U555 [X·SU3SU5$)z Covariance.r©rÚCOV_rV) r=rr>r&rrÚqtl_covariancer"r2) rrerBÚ is_sampler0rOrfrrgr;r%rFs rÚ
covariancermšs•ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜQ“I€D¤4¨£7™˜Ü ˆD‹ €Aœ˜a›
Œ4× Ò Ü ˆT
”D˜“J ¤4¨£9¨f´c¸)³nó ôô ˜T & ˜?¨L¸ Arc
ó@Ub [U5OSnUb [U5OSn[U5upV[U5upx[U5n [U 5n
[ [
R "[U5[U5U [U
5U55 [X¦SU3SU5$)zCointegration.r©rÚCOINT_rV) r=rr>r&rrÚqtl_cointegrationr"r2rds rÚ
cointegrationrq¦s‰ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜQ“I€D¤4¨£7™˜Ü ˆD‹ €Aœ˜a›
Œ4× !¤$ t£*¬d°4«j¸!¼TÀ#»YÈÓ  ˜V F ,¨l¸ Crc
óDUb [U5OUnUb [U5OSn[U5upx[U5upš[U5n [U 5n [ [ [ U5"[U5[U 5U [U 5U55 [XÈUSU3SU5$)z$Pattern F (actual+predicted+period).rr;Úerrorsr<)
r@ÚactualÚ predictedrBr0rCrDr!rÚpr;r%rFs
rÚ_pfrwµð.ŒSŒ[°N€FØ.ŒSŒ[°A€FÜ
&\F€A¤$ y£/™4˜ ˆA€A”d˜1“gÜ
Œ7”4˜Ô !¤$ q£'¬4°«7°A´t¸C³yÀ&Ó  ˜e˜W A f ¸ Arc ó [SXX#SS5$)zMean Squared Error.Úqtl_mser©ÚMSE©rw©rtrurBr0rOs rÚmser}¿óô ˆy˜&¨V¸Ó Grc ó [SXX#SS5$)zRoot Mean Squared Error.Úqtl_rmser©ÚRMSEr{r|s rÚrmser‚Äóô ˆz˜6¨f¸bÀ&Ó Irc ó [SXX#SS5$)zMean Absolute Error.Úqtl_maer©ÚMAEr{r|s rÚmaer‡Ér~rc ó [SXX#SS5$)zMean Absolute Percentage Error.Úqtl_maper©ÚMAPEr{r|s rÚmaperÎrc ó"[SXUSSS5$)zBessel Filter.Ú
qtl_besselrdÚBESSELÚfilterrgrhs rÚbesselrØóä ˆ|˜U¨F°B¸À(Ó Krc ó"[SXUSSS5$)z2nd-order Butterworth.Ú qtl_butter2rdÚBUTTER2rrgrhs rÚbutter2r•Üóä ˆ}˜e¨V°R¸ÀHÓ Mrc ó"[SXUSSS5$)z3rd-order Butterworth.Ú qtl_butter3rdÚBUTTER3rrgrhs rÚbutter3ršàrrc ó"[SXUSSS5$)zChebyshev Type I.Ú
qtl_cheby1rdÚCHEBY1rrgrhs rÚcheby1ržärrc ó"[SXUSSS5$)zChebyshev Type II.Ú
qtl_cheby2rdÚCHEBY2rrgrhs rÚcheby2r¢èrrc ó"[SXUSSS5$)zElliptic (Cauer) Filter.Ú qtl_ellipticrdÚELLIPTICrrgrhs rÚellipticr¦ìsä ˆ~˜u¨f°b¸*ÀhÓ Orc ó"[SXUSSS5$)z#Ehlers Distance Coefficient Filter.Úqtl_edcfrdÚEDCFrrgrhs rÚedcfrªðóä ˆz˜5¨&°"°f¸ Grc ó"[SXUSSS5$)zBandpass Filter.Úqtl_bpfrdÚBPFrrgrhs rÚbpfr¯ôóä ˆy˜%¨°°U¸HÓ Erc ó2Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
R "[U5U[U5X55 [X†SU3SU5$)zAdaptive Laguerre Filter.r©érÚ
ALAGUERRE_r) r=rr>r&rrÚ
qtl_alaguerrer"r2rOs rÚ alaguerrerµøs‰ð.ŒSŒ[°B€FØÑ+ŒCŒJ°€EØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4× Ò œd 3›i¨¬D°«I°vÓ  ˜Z¨ xÐ0°(¸ Crc
óTUb [U5OSnUb [U5OSnUb [U5OSnUb [U5OSn[U5upg[U5n[ U5n [ [ R"[U5U[U 5XU55 [X—SU3SU5$)zBilateral Filter.rdçà?rGrÚ
BILATERAL_r)
r=rr>r&rrÚ
qtl_bilateralr"r2)
rArBÚsigma_sÚsigma_rr0rOrErr%rFs
rÚ bilateralr¼sð.ŒSŒ[°B€FØ 'Ñ 3ŒeGŒn¸€GØ 'Ñ 3ŒeGŒn¸€GØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4× Ò œd 3›i¨¬D°«I°vÈÓ  ˜Z¨ xÐ0°(¸ Crc
óTUb [U5OSnUb [U5OSnUb [U5OSnUb [U5OSn[U5upg[U5n[U5n [ [
R "[U5U[U 5XU55 [X—SU3SU5$)zBaxter-King Filter.réé rÚ BAXTERKING_r) r=rr>r&rrÚqtl_baxterkingr"r2)
rArBr0rOrErr%rFs
rÚ
baxterkingrÂsð.ŒSŒ[°B€FØ$.Ñ$:”Z”À€JØ$.Ñ$:”Z”À€JØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4× Ò œt C›y¨!¬T°#«Y¸ÈJÓ  ˜[¨¨Ð1°8¸VÓ Drc ó2Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
R "[U5U[U5X55 [X†SU3SU5$)zChristiano-Fitzgerald Filter.r¾r¿rÚCFITZ_r) r=rr>r&rrÚ qtl_cfitzr"r2) rArBÚ bw_periodr0rOrErr%rFs rÚcfitzrÇs‡ð.ŒSŒ[°A€FØ"+Ñ"7”I”¸R€IØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4>Š>œ$˜s) ¨S« °6Ó  ˜V F ,¨h¸Ó ?rc ó"[SXUSSS5$)zCenter of Gravity.Úqtl_cgrmÚCGÚcyclesrgrhs rÚcgrÌ+sä ˆx˜¨°°D¸(Ó Crc ó"[SXUSSS5$)zDominant Cycle Period (DSP).Úqtl_dspr©ÚDSPrËrgrhs rÚdsprÐ/rc ó"[SXUSSS5$)zCircular Correlation.Úqtl_ccorr©ÚCCORrËrgrhs rÚccorrÔ3rc ó2Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
R "[U5U[U5X55 [X†SU3SU5$)zEven Better Sinewave.é(rmrÚEBSW_rË) r=rr>r&rrÚqtl_ebswr"r2) rAÚ hp_lengthÚ
ssf_lengthr0rOrErr%rFs rÚebswrÛ7s‡ð#,Ñ"7”I”¸R€IØ$.Ñ$:”Z”À€JØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4=Š=œ˜c› A¤t¨C£y°)Ó  ˜U 9 ¸ Arc ózUb [U5OSnUb [U5OSnUb [U5OSnUb [U5OSnUb [U5OSn[U5upx[U5n [U 5n
[ [
R "[U5U [U
5XX455 [X¨SUSU3SU5$) z#Ehlers Autocorrelation Periodogram.éé0érrÚEACP_r;) r=rr>r&rrÚqtl_eacpr"r2) rAÚ
avg_lengthÚenhancer0rOrErr%rFs rÚeacpräBð%/Ñ$:”Z”À€JØ$.Ñ$:”Z”À€JØ$.Ñ$:”Z”À€JØ1Œc'Œl°q€GØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4=Š=œ˜c› A¤t¨C£y°*È*Ó  ˜U : ,¨a°
¨|Ð<¸Ó Orc ó"[SXUSSS5$)z
Price Change.Ú
qtl_changerÚCHANGEÚnumericsrgrhs rÚchangeréUsä ˆ|˜U¨F°A°xÀÓ Lrc óêUb [U5OSn[U5up4[U5n[U5n[ [
R "[U5U[U555 [XdSSU5$)zExponential Transform.rÚEXPTRANSrè) r=rr>r&rrÚ qtl_exptransr"r2r[s rÚexptransríYs^à.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4× Ò œT #›Y¨¬4°«9Ó  ˜: z°6Ó :rc
óTUb [U5OSnUb [U5OSnUb [U5OSnUb [U5OSn[U5upg[U5n[ U5n [ [ R"[U5U[U 5XU55 [X—SU3SU5$)zBeta Distribution.é2rÚ BETADIST_rè)
r=rr>r&rrÚ qtl_betadistr"r2)
rArBrsÚbetar0rOrErr%rFs
rÚbetadistróasð.ŒSŒ[°B€FØ-ŒE%ŒL°3€EØÑ*Œ5Œ;°€DØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4× Ò œT #›Y¨¬4°«9°fÀTÓ  ˜Y v ¸ Drc ó2Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[ U5n[ [ R"[U5U[U5X55 [X†SU3SU5$)zExponential Distribution.rïç@rÚEXPDIST_rè)
r=rr>r&rrÚ qtl_expdistr"r2) rArBÚlamr0rOrErr%rFs rÚexpdistrùmsˆð.ŒSŒ[°B€FØŒ%Œ*¨S€CØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4× Ò œD ›I q¬$¨s«)°VÓ  ˜X f 
¸ Crc
óTUb [U5OSnUb [U5OSnUb [U5OSnUb [U5OSn[U5upg[U5n[U5n [ [
R "[U5U[U 5XU55 [X—SU3SU5$)zBinomial Distribution.rïrmrÚ