{talib}: Recunoașterea modelului de sfeșnic în R

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(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.

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.