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

413 lines
71 KiB
Plaintext
Raw Normal View History

2026-02-28 14:14:35 -08:00
ó
2026-02-28 16:05:11 -08:00
#j£iöÝãóz SrSSKJr SSKrSSKJr SSKJrJ r J
2026-02-28 14:14:35 -08:00
r
J r J r SSK
2026-02-28 16:05:11 -08:00
r\R rS—SjrS˜SjrS™S jrSšS
2026-02-28 14:14:35 -08:00
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-jjr8S¿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Â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×SØSYjjrdS×SØSZjjreS°S¤S[jjrfS°S¤S\jjrgS¿S]jjrhS´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ÿGSS”jjGSGSS•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}ð
2026-02-28 16:05:11 -08:00
.ŒSŒ[°N€FØ.ŒSŒ[°A€FÜE{H€CÜ ˆC‹€AÜ
2026-02-28 14:14:35 -08:00
ˆq'€CÜ
2026-02-28 16:05:11 -08:00
Œ7”4˜Ô !¤$ s£)¨Q´°S³ ¸6Ó  ˜e˜W A f Ó Arc óx[U5upg[U5up‰[U5up©[U5up¹[U5n [U 5n
2026-02-28 14:14:35 -08:00
[[R
"[
U5[
U5[
2026-02-28 16:05:11 -08:00
U
2026-02-28 14:14:35 -08:00
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Ü
2026-02-28 16:05:11 -08:00
Œ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[
2026-02-28 14:14:35 -08:00
U5U[
U 555 [X•SSUb[U55$S5$)zMedian Price = (H+L)/2.ÚMEDPRICErJr) rr>r&rrÚ qtl_medpricer"r2r=)
2026-02-28 16:05:11 -08:00
rMrNr0rOrQrrRr;r%rFs
rÚmedpricerX~spä
$‹ZF€A¤ S£ ™˜Ü ˆA‹€A”d˜1“gÜ
2026-02-28 14:14:35 -08:00
Œ4× Ò œT !›W¤d¨1£g¨q´$°s³)Ó  ˜: v¸fÑ>P¬s°6«{Ó XÐVWÓ Xrc óJ[U5upV[U5upx[U5up˜[U5n
2026-02-28 16:05:11 -08:00
[U
5n [[R
"[
2026-02-28 14:14:35 -08:00
U5[
U5[
U 5U
2026-02-28 16:05:11 -08:00
[
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
2026-02-28 14:14:35 -08:00
ó[U5upE[U5upg[U5n[U5n [[R
"[
U5[
2026-02-28 16:05:11 -08:00
U5U[
U 555 [X•SSUb[U55$S5$)zMid Body = (O+C)/2.ÚMIDBODYrJr) rr>r&rrÚ qtl_midbodyr"r2r=)
2026-02-28 14:14:35 -08:00
rLrAr0rOrPrrSr;r%rFs
rÚmidbodyr`spä
$‹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Úrsirhóä ˆy˜%¨°°U¸JÓ Grc ó"[SXUSSS5$)zRate of Change.Úqtl_rocé
2026-02-28 16:05:11 -08:00
ÚROCrerfrgs rÚrocrnŸrirc ó"[SXUSSS5$)z Momentum.Úqtl_momrlÚMOMrerfrgs rÚmomrr£rirc ó"[SXUSSS5$)zChande Momentum Oscillator.Úqtl_cmorcÚCMOrerfrgs rÚcmorv§rirc ó8Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
2026-02-28 14:14:35 -08:00
R "[U5U[U5X55 [X†SUSU3SU5$)zTrue Strength Index.éé
2026-02-28 16:05:11 -08:00
rÚTSI_r;re) 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›
2026-02-28 14:14:35 -08:00
Œ4<Š<œ˜S  1¤d¨3£i°Ó  ˜T + ¨a° ¨~Ð
2026-02-28 16:05:11 -08:00
ÈFÓ Src ó8Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
R "[U5U[U5X55 [X†SUSU3SU5$)zAbsolute Price Oscillator.é érÚAPO_r;re) 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ÚBIASrerfrgs rÚbiasrŠÁsä ˆz˜5¨&°"°f¸ Irc ó"[SXUSSS5$)zChande Forecast Oscillator.Úqtl_cforcÚCFOrerfrgs rÚcforŽÅrirc ó¸Ub [U5OSn[U5upE[U5n[U5nSSKnU(aZUR
[U5-"U6n [
[R"[U5U[U5U [U555 O5[
2026-02-28 14:14:35 -08:00
[R"[U5U[U5SS55 [XuSSU5$)zComposite Fractal Behavior.NrÚCFBre) 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
2026-02-28 16:05:11 -08:00
óŒ[U5upx[U5upš[U5upº[U5upÊ[U5n
[U
5n[[R
"[
U5[
U 5[
U 5[
U 5U
2026-02-28 14:14:35 -08:00
[
2026-02-28 16:05:11 -08:00
U5[U555 [XèSSUb[U55$S5$)zAccumulative Swing Index.ÚASIrer)
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Ú
oscillatorrfrgs rÚfisherr¡äsä ˆ|˜U¨F°A°xÀÓ Nrc ó"[SXUSSS5$)zFisher Transform (0.4 variant).Ú qtl_fisher04ržÚFISHER04r rfrgs rÚfisher04r¥èsä ˆ~˜u¨f°a¸À\Ó Rrc ó"[SXUSSS5$)zDetrended Price Oscillator.Úqtl_dpoéÚDPOr rfrgs rÚdporªìóä ˆy˜%¨°°U¸LÓ Irc ó"[SXUSSS5$)zTriple EMA Rate of Change.Úqtl_trixéÚTRIXr rfrgs rÚtrixr°ðsä ˆz˜5¨&°"°f¸ Krc ó"[SXUSSS5$)zInertia.Ú qtl_inertiar¨ÚINERTIAr rfrgs rÚinertiar´ôóä ˆ}˜e¨V°R¸ÀLÓ Qrc ó"[SXUSSS5$)zRelative Strength Xtra.Úqtl_rsxrcÚRSXr rfrgs rÚrsxr¹ørc ó"[SXUSSS5$)zEfficiency Ratio.Úqtl_errlÚERr rfrgs rÚerr½üsä ˆx˜¨°°D¸,Ó Grc ó"[SXUSSS5$)zCorrelation Trend Indicator.Úqtl_ctir€ÚCTIr rfrgs rÚctirÁrc ó"[SXUSSS5$)zReflex.Ú
qtl_reflexr¨ÚREFLEXr rfrgs rÚreflexrÅóä ˆ|˜U¨F°B¸À,Ó Orc ó"[SXUSSS5$)z
Trendflex.Ú
qtl_trendflexr¨Ú TRENDFLEXr rfrgs rÚ trendflexrÊsä ˆ ¨v°r¸;È Ó Urc ó"[SXUSSS5$)zKairi Relative Index.Úqtl_krir¨ÚKRIr rfrgs rÚkrirÎ rc ó"[SXUSSS5$)zPsychological Line.Úqtl_pslr€ÚPSLr rfrgs rÚpslrÒrc ó8Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
2026-02-28 14:14:35 -08:00
R "[U5U[U5X55 [X†SUSU3SU5$)zDECO.éé<rÚDECO_r;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
2026-02-28 16:05:11 -08:00
óNUb [U5OSnUb [U5OSn[U5upx[U5n [U 5n
2026-02-28 14:14:35 -08:00
[ [
2026-02-28 16:05:11 -08:00
R "[U5U [U
5U[U5[U5[U555 [X¨SU3SU5$)zDeMarker Oscillator.rcrÚ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›
2026-02-28 14:14:35 -08:00
Œ4=Š=œ˜c› A¤t¨C£yØ#¤S¨Ó%5´s¸;Ó7GÌÈ]ÓI[ó ]ô^ä ˜U : ¸ Frc óNUb [U5OSn[U5up‰[U5n
[U
2026-02-28 16:05:11 -08:00
5n [ [
R "[U5U
2026-02-28 14:14:35 -08:00
[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Ú
2026-02-28 16:05:11 -08:00
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 [ [
2026-02-28 14:14:35 -08:00
R "[U5U[U 5[U5[U5[U555 [X—SU3SU5$)z Connors RSI.rÚCRSI_r ) r=rr>r&rrÚqtl_crsir"r2)
2026-02-28 16:05:11 -08:00
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=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
2026-02-28 14:14:35 -08:00
[ [
2026-02-28 16:05:11 -08:00
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›
2026-02-28 14:14:35 -08:00
Œ4<Š<œ˜S  1¤d¨3£i´°R³¼#¸b»'Ä3ÀrÃ7ÌCÐPRËGÓ  ˜5 Ó 7rc
2026-02-28 16:05:11 -08:00
óDUb [U5OSn[U5upV[U5upx[U5n [U 5n
[ [
2026-02-28 14:14:35 -08:00
R "[U5[U5U [U
5U55 [X¦SU3SUb[U55$S5$)z DeMarker.rcÚDEM_r r) r=rr>r&rrÚqtl_demr"r2© rMrNrBr0rOrQrrRr;r%rFs rÚdemrUsˆð.ŒSŒ[°B€FÜ
2026-02-28 16:05:11 -08:00
$‹ZF€A¤ S£ ™˜Ü ˆA‹€A”d˜1“gÜ
Œ4<Š<œ˜Q¤ ¨!¬T°#«Y¸Ó  ˜T & ˜?¨LÈÑI[¼#¸f»+Ó cÐabÓ crc
2026-02-28 14:14:35 -08:00
óÔUb [U5OSnUb [U5OSn[U5upx[U5upš[U5upº[U5upÊ[U5n
[U
2026-02-28 16:05:11 -08:00
5n[U
5n[ [
2026-02-28 14:14:35 -08:00
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¤ 
2026-02-28 16:05:11 -08:00
˜´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_smarlÚSMAÚtrendrfrgs rÚsmar
póä ˆy˜%¨°°U¸GÓ Drc ó"[SXUSSS5$)zWeighted Moving Average.Úqtl_wmarlÚWMAr rfrgs rÚwmartrrc ó"[SXUSSS5$)zHull Moving Average.Úqtl_hmaržÚHMAr rfrgs rÚhmarxsä ˆy˜%¨°°E¸7Ó Crc ó"[SXUSSS5$)zTriangular Moving Average.Ú qtl_trimarlÚTRIMAr rfrgs rÚtrimar|óä ˆ{˜E¨6°2°wÀÓ Hrc ó"[SXUSSS5$)z"Symmetric Weighted Moving Average.Úqtl_swmarlÚSWMAr rfrgs rÚswmaróä ˆz˜5¨&°"°f¸ Frc ó"[SXUSSS5$)zDouble Weighted Moving Average.Úqtl_dwmarlÚDWMAr rfrgs rÚdwmar$r rc ó"[SXUSSS5$)zBlackman Moving Average.Úqtl_blmarlÚBLMAr rfrgs rÚblmar(ˆr rc
2026-02-28 14:14:35 -08:00
óTUb [U5OSnUb [U5OSnUb [U5OSnUb [U5OSn[U5upg[U5n[ U5n [ [ R"[U5U[U 5XU55 [X—SU3SU5$)zArnaud Legoux Moving Average.rlrç333333ë?çALMA_r )
r=r™rr>r&rrÚqtl_almar"r2)
rArBr0Ú alma_offsetÚsigmarOrErr%rFs
rÚalmar0Œð.ŒSŒ[°B€FØ.ŒSŒ[°A€FØ(3Ñ(?”%˜ Ô$ÀT€KØ-ŒE%ŒL°3€EÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4=Š=œ˜c A¤t¨C£y°&ÀuÓ  ˜U 6 +¨W°fÓ =rc ó"[SXUSSS5$)zLeast Squares Moving Average.Úqtl_lsmarxÚLSMAr rfrgs rÚlsmar4˜r rc ó"[SXUSSS5$)zSavitzky-Golay Moving Average.Úqtl_sgmarlÚSGMAr rfrgs rÚsgmar8œr rc ó"[SXUSSS5$)zSine-weighted Moving Average.Ú
2026-02-28 16:05:11 -08:00
qtl_sinemarlÚSINEMAr rfrgs rÚsinemar< óä ˆ|˜U¨F°B¸À'Ó Jrc ó"[SXUSSS5$)zHann-weighted Moving Average.Ú qtl_hanmarlÚHANMAr rfrgs rÚhanmarA¤rrc ó"[SXUSSS5$)zParzen-weighted Moving Average.Ú
qtl_parzenrlÚPARZENr rfrgs rÚparzenrE¨r=rc ó"[SXUSSS5$)zTime Series Forecast.Úqtl_tsfrcÚTSFr rfrgs rÚtsfrI¬rrc óPUb [U5OSn[U5upE[U5n[U5nUcS/n[R
2026-02-28 14:14:35 -08:00
"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ÚconvrO°sˆð.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
ˆÜ
2026-02-28 16:05:11 -08:00
×Ò˜V¬4Ñ0€AÜ
Œ4=Š=œ˜c A¤t¨C£y´$°q³'¼3¸q»6Ó  ˜6 7¨FÓ 3rc ó&Ub [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
2026-02-28 14:14:35 -08:00
R "[U5U[U5U[U555 [X†SU3SU5$)z$Butterworth-weighted Moving Average.rlrÚBWMA_r ) r=rr>r&rrÚqtl_bwmar"r2© rArBÚorderr0rOrErr%rFs rÚbwmarU¼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.rlrÚCRMA_r )
r=rr>r&rrÚqtl_crmar"r™r2) rArBÚ
volume_factorr0rOrErr%rFs rÚcrmarZÆs~ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4=Š=œ˜c A¤t¨C£y°&¼%À
2026-02-28 16:05:11 -08:00
Ó:NÓ  ˜U 6 +¨W°fÓ =rc ó"[SXUSSS5$)zSP-15 Moving Average.Úqtl_sp15éÚSP15r rfrgs rÚsp15r_Ðr rc ó"[SXUSSS5$)zTukey-windowed Moving Average.Ú qtl_tukey_wrlÚTUKEYr rfrgs rÚtukey_wrcÔsä ˆ}˜e¨V°R¸À'Ó Jrc ó"[SXUSSS5$)zRAIN Moving Average.Úqtl_rainrlÚRAINr rfrgs rÚrainrgØr rc ó:Ub [U5OSnUb [U5OSn[U5upg[U5n[U5n [ [
2026-02-28 14:14:35 -08:00
R "[U5U[U 5U[U5[U555 [X—SU3SU5$)zAdaptive FIR Moving Average.rlrÚAFIRMA_r ) r=rr>r&rrÚ
qtl_afirmar"r2)
rArBÚ window_typeÚuse_simdr0rOrErr%rFs
rÚafirmarmÜ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_emarlÚEMAr rfrgs rÚemarqërrc
2026-02-28 16:05:11 -08:00
ó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"r™r2©rAÚalphar0rOrErr%rFs rÚ ema_alpharxï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_demarlÚDEMAr rfrgs rÚdemar|÷r rc
óUb [U5OSn[U5upE[U5n[U5n[ [
2026-02-28 14:14:35 -08:00
R "[U5U[U5[U555 [XuSUS3SU5$)zDEMA with explicit alpha.rÚDEMA_artr )
2026-02-28 16:05:11 -08:00
r=rr>r&rrÚqtl_dema_alphar"r™r2rvs 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_temarlÚTEMAr rfrgs rÚtemar„r rc ó"[SXUSSS5$)zLaguerre-based EMA.Úqtl_lemarlÚLEMAr rfrgs rÚlemarˆr rc ó"[SXUSSS5$)zHenderson EMA.Úqtl_hemarlÚHEMAr rfrgs rÚhemarŒ r rc ó"[SXUSSS5$)zAhrens Moving Average.Ú
qtl_ahrensrlÚAHRENSr rfrgs rÚahrensrr=rc ó"[SXUSSS5$)zSimple Decycler.Ú qtl_decyclerr¨ÚDECYCLERr rfrgs 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.rlrÚDSMA_r )
r=rr>r&rrÚqtl_dsmar"r™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.rlrÚGDEMA_r )
r=rr>r&rrÚ qtl_gdemar"r™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.rlrÚCORAL_r )
2026-02-28 14:14:35 -08:00
r=rr>r&rrÚ qtl_coralr"r™r2) rArBÚfrictionr0rOrErr%rFs rÚcoralr£+s}ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
2026-02-28 16:05:11 -08:00
Œ4>Š>œ$˜s) ¨S« °6¼5À»?Ó  ˜V F ,¨g°vÓ >rc
óUb [U5OSn[U5upE[U5n[U5n[ [
2026-02-28 14:14:35 -08:00
R "[U5U[U5[U555 [XuSUS3SU5$)zAutomatic Gain Control.rÚAGC_artr )
2026-02-28 16:05:11 -08:00
r=rr>r&rrÚqtl_agcr"r™r2rvs rÚagcr§5skà.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
2026-02-28 14:14:35 -08:00
Œ4<Š<œ˜S  1¤d¨3£i´°u³Ó  ˜U  ¸Ó @rc
2026-02-28 16:05:11 -08:00
óUb [U5OSn[U5upE[U5n[U5n[ [
2026-02-28 14:14:35 -08:00
R "[U5U[U5[U555 [XuSUS3SU5$)z Cyber Cycle.rÚCCYC_artr )
2026-02-28 16:05:11 -08:00
r=rr>r&rrÚqtl_ccycr"r™r2rvs rÚccycr«=skà.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
2026-02-28 14:14:35 -08:00
Œ4=Š=œ˜c› A¤t¨C£y´%¸³,Ó  ˜V E¨# ¸ Arc ó°Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[ U5n[ U5n [ U5n
[ [ R"[U5U[U5[U 5[U
2026-02-28 16:05:11 -08:00
5X55 [SUSU3USUSU3U SUSU3U
2026-02-28 14:14:35 -08:00
0USU5$) u5Bollinger Bands → (upper, mid, lower) or DataFrame.r¨rÚBBU_r;ÚBBM_ÚBBL_Úchannels)
r=r™rr>r&rrÚ
2026-02-28 16:05:11 -08:00
qtl_bbandsr"r9) rArBÚstdr0rOrErr%ÚupperÚmidÚlowers rÚbbandsr¶Jð.ŒSŒ[°B€FØŒ%Œ*¨S€CØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€AÜ ‹G€Eœ4 ›7S¬D°«G 
2026-02-28 14:14:35 -08:00
Œ4?Š?Ü ˆS‹ 1”d˜5“k¤4¨£9¬d°5«k¸6ó ôô à6(˜!˜C˜ ! 6(˜!˜C˜ ! 6(˜!˜C˜ ! 
ð
ˆZ˜ó
2026-02-28 16:05:11 -08:00
 ðrc ó°Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[ U5n[ U5n [ U5n
2026-02-28 14:14:35 -08:00
[ [ R"[U5[U 5[U5[U
2026-02-28 16:05:11 -08:00
5XqU55 [SUSU3USUSU3U SUSU3U
0USU5$) u6Aberration Bands → (upper, mid, lower) or DataFrame.r¨rÚABERRU_r;ÚABERRM_ÚABERRL_r°)
r=r™rr>r&rrÚ qtl_abberr"r9) rArBr0rOrErr%r´s rÚaberrr¼`ð.Œ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
2026-02-28 14:14:35 -08:00
[ U 5n[ U 5n[ [ R"[U5[U 5[U 5U [U
5[U5[U5X45 5 [SUSU3U
2026-02-28 16:05:11 -08:00
SUSU3USUSU3U0USU5$) u/ATR Bands → (upper, mid, lower) or DataFrame.rcrÚATRBU_r;ÚATRBM_ÚATRBL_r°)
2026-02-28 14:14:35 -08:00
r=r™rr>r&rrÚ qtl_atrbandsr"r9)rMrNrArBr0rOrQrrRr;rSr%r´s rÚatrbandsrÂusð.ŒSŒ[°B€FØÑ*Œ5Œ;°€DØ.ŒSŒ[°A€FÜ
2026-02-28 16:05:11 -08:00
$‹ZF€A¤ S£ ™˜´$°u³+©4¨1Ü ˆA‹€AÜ ‹G€Eœ4 ›7S¬D°«G 
2026-02-28 14:14:35 -08:00
Œ4× Ò Ü ˆQ‹a“œ$˜q›' 1¤d¨5£k´4¸³9¼dÀ5»kÈ6ó ôô àVH˜A˜d˜ $ VH˜A˜d˜ $ VH˜A˜d˜ $ 
2026-02-28 16:05:11 -08:00
ð
2026-02-28 14:14:35 -08:00
ˆZ˜ó
2026-02-28 16:05:11 -08:00
 ðrc óxUb [U5OSnUb [U5OSn[U5upV[U5upx[U5n [U 5n
2026-02-28 14:14:35 -08:00
[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Ü
2026-02-28 16:05:11 -08:00
$‹ZF€A¤ S£ ™˜Ü ˆA‹€AÜ ‹G€EœT !›W
2026-02-28 14:14:35 -08:00
Œ4× Ò œd 1›g¤t¨A£w°´4¸³;ÄÀUà ÈVÓ  Ø Ð ˜5 E¨&¨Ð"2°EÐ ˆZ˜ó ðrc óJ[U5upV[U5upx[U5up˜[U5n
[U
5n [[R
2026-02-28 16:05:11 -08:00
"[
U5[
U5[
U 5U
2026-02-28 14:14:35 -08:00
[
U 555 [X¶SSUb[U55$S5$)z True Range.ÚTRÚ
volatilityr) rr>r&rrÚqtl_trr"r2r=) rMrNrAr0rOrQrrRr;rSr%rFs rÚtrrÌŸs~ä
2026-02-28 16:05:11 -08:00
$‹ZF€A¤ S£ ™˜´$°u³+©4¨1Ü ˆA‹€A”d˜1“gÜ
2026-02-28 14:14:35 -08:00
Œ4;Š;”t˜A“w¤ Q£¬¨a«°!´T¸#³YÓ  ˜4 ¸fÑ>P¬s°6«{Ó XÐVWÓ Xrc ó"[SXUSSS5$)zBollinger Band Width.Úqtl_bbwr¨ÚBBWrÊrfrgs 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=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›
2026-02-28 16:05:11 -08:00
Œ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Ê)
2026-02-28 14:14:35 -08:00
r=r™rr>r&rrÚqtl_bbwpr"r2s
rÚbbwprÜrc ó"[SXUSSS5$)zStandard Deviation.Ú
qtl_stddevr¨ÚSTDDEVrÊrfrgs rÚstddevràÂrc ó"[SXUSSS5$)z Variance.Ú qtl_variancer¨ÚVARIANCErÊrfrgs rÚvarianceräÆsä ˆ~˜u¨f°b¸*ÀlÓ Src
óDUb [U5OSn[U5upV[U5upx[U5n [U 5n
[ [
2026-02-28 16:05:11 -08:00
R "[U5[U5U [U
2026-02-28 14:14:35 -08:00
5U55 [X¦SU3SUb[U55$S5$)zElder Thermometer.rcÚETHERM_rÊr) r=rr>r&rrÚ
2026-02-28 16:05:11 -08:00
qtl_ethermr"r2rs rÚethermrèÊs‰ð.ŒSŒ[°B€FÜ
$‹ZF€A¤ S£ ™˜Ü ˆA‹€A”d˜1“gÜ
Œ4?Š?œ4 ›7¤D¨£G¨Q´°S³ ¸6Ó  ˜W V -¨|ÈFÑL^¼SÀ»[Ó fÐdeÓ frc ó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=r™rr>r&rrÚqtl_cvr"r2)
2026-02-28 14:14:35 -08:00
rArBÚmin_volÚmax_volr0rOrErr%rFs
2026-02-28 16:05:11 -08:00
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.rlrÚCVI_rÊ) r=rr>r&rrÚqtl_cvir"r2) rAÚ
2026-02-28 14:14:35 -08:00
ema_periodÚ
2026-02-28 16:05:11 -08:00
roc_periodr0rOrErr%rFs rÚcvirúês‡ð%/Ñ$:”Z”À€JØ$.Ñ$:”Z”À€JØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
2026-02-28 14:14:35 -08:00
Œ4<Š<œ˜S  1¤d¨3£i°Ó  ˜T * Ð ¸ Erc
óTUb [U5OSnUb [U5OSnUb [U5OSnUb [U5OSn[U5upg[U5n[U5n [ [
2026-02-28 16:05:11 -08:00
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Ú
2026-02-28 14:14:35 -08:00
ann_factorr0rOrErr%rFs
2026-02-28 16:05:11 -08:00
rÚewmarõs™ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FØ$.Ñ$:”Z”À€JØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
2026-02-28 14:14:35 -08:00
Œ4=Š=œ˜c A¤t¨C£y°&À*Ó  ˜U 6 +¨\¸ Brc
2026-02-28 16:05:11 -08:00
óUb [U5OSn[U5upV[U5upx[U5n [U 5n
[ [ [ U5"[U5[U5U [U
555 [X¦USU5$)z%Pattern G (source+volume, no period).rÚvolumer<) r@rArr0rDrSrÚvr;r%rFs rÚ_pgrsqð.ŒSŒ[°A€FÜ
%‹[F€A¤ f£™$˜!Ü ˆA‹€A”d˜1“gÜ
2026-02-28 14:14:35 -08:00
Œ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;rr<)
r@rArrBr0rCrDrSrrr;r%rFs
2026-02-28 16:05:11 -08:00
rÚ_pg2rð.ŒSŒ[°N€FØ.ŒSŒ[°A€FÜ
%‹[F€A¤ f£™$˜!Ü ˆA‹€A”d˜1“gÜ
2026-02-28 14:14:35 -08:00
Œ7”4˜Ô !¤$ q£'¬4°«7°A´t¸C³yÀ&Ó  ˜e˜W A f ¸ Arc ó[SXUS5$)zOn-Balance Volume.Úqtl_obvÚOBV©r©rArr0rOs rÚobvr óä ˆy˜%¨°Ó 7rc ó[SXUS5$)zPrice Volume Trend.Úqtl_pvtÚPVTr
r s rÚpvtrr
2026-02-28 16:05:11 -08:00
rc ó[SXUS5$)zPrice Volume Rank.Úqtl_pvrÚPVRr
r s rÚpvrr#r
2026-02-28 14:14:35 -08:00
rc ó[SXUS5$)z Volume Flow.Úqtl_vfÚVFr
2026-02-28 16:05:11 -08:00
r s rÚvfr'sä ˆx˜¨°Ó 5rc ó[SXUS5$)zNegative Volume Index.Úqtl_nviÚNVIr
r s rÚnvir+r
rc ó[SXUS5$)zPositive Volume Index.Úqtl_pviÚPVIr
r s rÚpvir!/r
rc ó [SXX#SS5$)zTrade Volume Index.Úqtl_tvircÚTVI©r©rArrBr0rOs rÚtvir'3óô  ˜5¨&¸"¸ Drc ó [SXX#SS5$)zPrice Volume Divergence.Úqtl_pvdrcÚPVDr%r&s rÚpvdr,8r(rc ó [SXX#SS5$)zVolume Weighted Moving Average.Úqtl_vwmar¨ÚVWMAr%r&s rÚvwmar0=sô 
˜E¨6¸2¸ Frc ó [SXX#SS5$)z'Elastic Volume Weighted Moving Average.Ú qtl_evwmar¨ÚEVWMAr%r&s rÚevwmar4Bsô  ˜U¨F¸BÀÓ Hrc ó [SXX#SS5$)zElder's Force Index.Úqtl_efiryÚEFIr%r&s rÚefir8Gr(rc óFUb [U5OSn[U5upE[U5upg[U5n[U5n [U5n
2026-02-28 14:14:35 -08:00
[ [
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) rArr0rOrSrrr;r%Úobv_outÚsigs rÚaobvr?Ls}à.ŒSŒ[°A€FÜ
2026-02-28 16:05:11 -08:00
%‹[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
2026-02-28 14:14:35 -08:00
[U
2026-02-28 16:05:11 -08:00
5n[ [
R "[U5[U 5[U 5[U 5U
[U5U55 [XèSU3SU5$)zMoney Flow Index.rcrÚMFI_r) r=rr>r&rrÚqtl_mfir"r2©rMrNrArrBr0rOrQrrRr;rSrr%rFs rÚmfirDTó¦ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜ
$‹ZF€A¤ S£ ™˜´$°u³+©4¨1ÄdÈ6Ãl¹t¸qÜ ˆA‹€A”d˜1“gÜ
2026-02-28 14:14:35 -08:00
Œ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"r2rCs rÚcmfrI^rErc ónUb [U5OSnUb [U5OSn[U5upg[U5up‰[U5up©[U5n [U 5n [ [
R "[U5[U5[U
5U [U 5U55 [XÇSU3SU5$)zEase of Movement.rcrÚEOM_r) r=rr>r&rrÚqtl_eomr"r2)
rMrNrrBr0rOrQrrRr;rr%rFs
rÚeomrMhsð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜ
2026-02-28 16:05:11 -08:00
$‹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.r€rrÚPVO_r;ÚPVOs_ÚPVOh_r) r=rr>r&rrÚqtl_pvor"r9) rr„r…Úsignalr0rOrrr%Úpvo_outr>Úhists rÚpvorVrsðÑ(Œ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Ú
statisticsrfrgs rÚzscorer[Œrc óêUb [U5OSn[U5up4[U5n[U5n[ [
R "[U5U[U555 [XdSSU5$)zCumulative Moving Average.rÚCMArZ) 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_entropyrlÚENTROPYrZrfrgs rÚentropyrd˜rc
ó@Ub [U5OSnUb [U5OSn[U5upV[U5upx[U5n [U 5n
[ [
R "[U5[U5U [U
5U55 [X¦SU3SU5$)zPearson Correlation.r¨rÚCORR_rZ) r=rr>r&rrÚqtl_correlationr"r2© rÚyrBr0rOÚxarrrÚyarrr;r%rFs rÚ correlationrlœs‰ð.Œ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
2026-02-28 14:14:35 -08:00
[U 5U[U555 [X·SU3SU5$)z Covariance.r¨rÚCOV_rZ) r=rr>r&rrÚqtl_covariancer"r2) rrirBÚ is_sampler0rOrjrrkr;r%rFs rÚ
2026-02-28 16:05:11 -08:00
covariancerq¦s•ð.ŒSŒ[°B€FØ.ŒSŒ[°A€FÜQ“I€D¤4¨£7™˜Ü ˆD‹ €Aœ˜a›
Œ4× Ò Ü ˆT
2026-02-28 14:14:35 -08:00
”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_rZ) r=rr>r&rrÚqtl_cointegrationr"r2rhs rÚ
cointegrationru²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Ú_pfr{Áð.Œ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©r{©rxryrBr0rOs rÚmserËóô ˆy˜&¨V¸Ó Grc ó [SXX#SS5$)zRoot Mean Squared Error.Úqtl_rmser¨ÚRMSErr€s rÚrmser†Ðóô ˆz˜6¨f¸bÀ&Ó Irc ó [SXX#SS5$)zMean Absolute Error.Úqtl_maer¨ÚMAErr€s rÚmaerÕrrc ó [SXX#SS5$)zMean Absolute Percentage Error.Úqtl_maper¨ÚMAPErr€s rÚmaperÚr‡rc ó"[SXUSSS5$)zBessel Filter.Ú
qtl_besselrcÚBESSELÚfilterrfrgs rÚbesselr”äóä ˆ|˜U¨F°B¸À(Ó Krc ó"[SXUSSS5$)z2nd-order Butterworth.Ú qtl_butter2rcÚBUTTER2r“rfrgs rÚbutter2r™èóä ˆ}˜e¨V°R¸ÀHÓ Mrc ó"[SXUSSS5$)z3rd-order Butterworth.Ú qtl_butter3rcÚBUTTER3r“rfrgs rÚbutter3ržìrc ó"[SXUSSS5$)zChebyshev Type I.Ú
qtl_cheby1rcÚCHEBY1r“rfrgs rÚcheby1r¢ðr•rc ó"[SXUSSS5$)zChebyshev Type II.Ú
qtl_cheby2rcÚCHEBY2r“rfrgs rÚcheby2r¦ôr•rc ó"[SXUSSS5$)zElliptic (Cauer) Filter.Ú qtl_ellipticrcÚELLIPTICr“rfrgs rÚellipticrªøsä ˆ~˜u¨f°b¸*ÀhÓ Orc ó"[SXUSSS5$)z#Ehlers Distance Coefficient Filter.Úqtl_edcfrcÚEDCFr“rfrgs rÚedcfr®üóä ˆz˜5¨&°"°f¸ Grc ó"[SXUSSS5$)zBandpass Filter.Úqtl_bpfrcÚBPFr“rfrgs rÚbpfr³óä ˆy˜%¨°°U¸HÓ Erc ó2Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
2026-02-28 16:05:11 -08:00
R "[U5U[U5X55 [X†SU3SU5$)zAdaptive Laguerre Filter.r¨érÚ
ALAGUERRE_r“) r=rr>r&rrÚ
qtl_alaguerrer"r2rSs 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.rcçà?rKrÚ
2026-02-28 14:14:35 -08:00
BILATERAL_r“)
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Ú
2026-02-28 16:05:11 -08:00
baxterkingrÆsð.ŒSŒ[°B€FØ$.Ñ$:”Z”À€JØ$.Ñ$:”Z”À€JØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
2026-02-28 14:14:35 -08:00
Œ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Ú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_cgrlÚCGÚcyclesrfrgs rÚcgrÐ7sä ˆx˜¨°°D¸(Ó Crc ó"[SXUSSS5$)zDominant Cycle Period (DSP).Úqtl_dspr¨ÚDSPrÏrfrgs rÚdsprÔ;r´rc ó"[SXUSSS5$)zCircular Correlation.Úqtl_ccorr¨ÚCCORrÏrfrgs rÚccorrØ?rc ó2Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
R "[U5U[U5X55 [X†SU3SU5$)zEven Better Sinewave.é(rlrÚEBSW_rÏ) r=rr>r&rrÚqtl_ebswr"r2) rAÚ hp_lengthÚ
ssf_lengthr0rOrErr%rFs rÚebswrßCs‡ð#,Ñ"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èNð%/Ñ$:”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Únumericsrfrgs rÚchangeríasä ˆ|˜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ñes^à.Œ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=r™rr>r&rrÚ qtl_betadistr"r2)
rArBrwÚbetar0rOrErr%rFs
rÚbetadistr÷msð.Œ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=r™rr>r&rrÚ qtl_expdistr"r2) rArBÚlamr0rOrErr%rFs rÚexpdistrýysˆð.Œ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órlrÚ
BINOMDIST_rì) r=rr>r&rrÚ
qtl_binomdistr"r2)
rArBÚtrialsÚ thresholdr0rOrErr%rFs
rÚ binomdistrsð.ŒSŒ[°B€FØ.ŒSŒ[°B€FØ"+Ñ"7”I”¸R€IØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4× Ò œd 3›i¨¬D°«I°vÀyÓ  ˜Z¨ 0°*¸ Erc ó,Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[ U5n[ [ R"[U5U[U5X55 [X†SSU5$)zContinuous Wavelet Transform.ç$@r+rÚCWTrì)
r™r=rr>r&rrÚqtl_cwtr"r2) rAÚscaleÚomegar0rOrErr%rFs rÚcwtr
s€ð-ŒE%ŒL°4€EØ-ŒE%ŒL°3€EØ.ŒSŒ[°A€FÜE‹{H€CÜ ˆC‹€Aœ˜Q›
Œ4<Š<œ˜S  1¤d¨3£i°Ó  ˜5 *¨fÓ 5rc ó2Ub [U5OSnUb [U5OSnUb [U5OSn[U5upV[U5n[U5n[ [
2026-02-28 16:05:11 -08:00
R "[U5U[U5X55 [X†SU3SU5$)zÅDiscrete Wavelet Transform.