(Acest articol a fost publicat pentru prima dată pe R-posts.comși cu amabilitate a contribuit la R-bloggeri). (Puteți raporta problema legată de conținutul acestei pagini aici)
Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.
{talib} este nou
R-pachet pentru analiză tehnică (TA) și recunoaștere a modelelor cu lumânări (Da, comercianții de modele au pariat economiile pe care își au economiile de vieți…). În această postare, voi arăta un exemplu de bază despre cum funcționează {talib} și cum se compară din punct de vedere al performanței cu {TTR}.
Exemplu de bază
În acest exemplu, voi identifica toate modelele „Harami” și voi calcula benzile Bollinger ale SPDR S&P 500 ETF (SPY).
Identificați modelele Harami
x <- talib::harami( talib::SPY )
talib::harami() este o funcție S3 și returnează a
matrix de aceeași lungime a intrării. Numărul de modele identificate poate fi numărat ca întregi diferite de zero.
cat( "identified patterns:", sum(x(, 1) != 0, na.rm = TRUE) ) #> identified patterns: 35
Modelul Harami poate fi optimist (1) sau urs (-1) și poate fi numărat în același mod
cat( "identified bullish patterns:", sum(x(, 1) == 1, na.rm = TRUE) ) #> identified bullish patterns: 20 cat( "identified bearish patterns:", sum(x(, 1) == -1, na.rm = TRUE) ) #> identified bearish patterns: 15
Grafic
Modelul Harami poate fi trasat folosind talib::chart()
cu talib::bollinger_bands() pentru a adăuga benzi Bollinger la grafic.
{
talib::chart(talib::SPY)
talib::indicator(talib::harami)
talib::indicator(talib::bollinger_bands)
}

Benchmark-uri
O întrebare des adresată despre {talib} în legătură cu {TTR} este ceea ce „aduce la masă”. În afară de modelele de lumânări și diagramele interactive, aduce viteză și eficiență.
Pentru a demonstra diferența de viteză, voi crea o serie de prețuri univariată cu 1 milion de intrări.
set.seed(1903) x <- runif(n = 1e6, min = 100, max = 150)
Seria univariată x vor fi transmise în Benzile Bollinger din fiecare pachet:
bench::mark( talib::bollinger_bands(x), TTR::BBands(x), min_iterations = 10, check = FALSE )(, c(1, 2, 3, 5)) #> Warning: Some expressions had a GC in every iteration; so filtering is #> disabled. #> # A tibble: 2 × 4 #> expression min median mem_alloc #>#> 1 talib::bollinger_bands(x) 6.65ms 9.07ms 22.9MB #> 2 TTR::BBands(x) 65.12ms 72.42ms 139.3MB
În acest benchmark, {talib} este mai rapid și mai eficient în memorie decât {TTR}.
{talib} este încă în curs de dezvoltare și cel mai probabil nu va fi trimis la CRAN înainte de anul viitor. Până atunci se poate instala din Github:
pak::pak("serkor1/ta-lib-R")
Simțiți-vă liber să treceți la depozit aici: https://github.com/serkor1/ta-lib-R.
Creat pe 2025-11-16 cu reprex v2.1.1
{talib}: Recunoașterea modelului de sfeșnic în R a fost postată pentru prima dată pe 16 noiembrie 2025 la 20:06.
