(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 construit pe TA-Lib, care este acum disponibil pe CRAN. The R-pachetul se adresează persoanelor fizice și, poate, instituțiilor care, într-o formă sau alta, interacționează cu piețele financiare folosind analize tehnice.
Biblioteca este construită cu dependențe minime pentru stabilitate pe termen lung și libertate în minte. Toate funcțiile sunt construite în jurul
data.frame– și matrix-clase care sunt portabile în toate celelalte containere de date cu efort minim.
Totul din bibliotecă este construit „de jos în sus” pentru viteză maximă și eficiență a memoriei. Fiecare indicator interacționează direct cu R’s C API prin
.Call().
În această postare pe blog voi oferi o scurtă introducere a interfeței și a celor mai importante aspecte ale pachetului. Biblioteca include, de asemenea, diagrame financiare statice și interactive, care vor fi tratate într-o postare diferită.
O introducere rapidă în interfață
În această secțiune voi prezenta pe scurt cele mai importante aspecte ale apelurilor de funcții, formalităților și cum sunt manipulate. Mai jos este un punct de plecare simplu; calcularea benzilor Bollinger pentru Bitcoin:
tail(
talib::bollinger_bands(
talib::BTC
)
)
#> UpperBand MiddleBand LowerBand
#> 2024-12-26 01:00:00 100487.38 96698.61 92909.83
#> 2024-12-27 01:00:00 100670.65 96512.96 92355.27
#> 2024-12-28 01:00:00 100632.13 96581.91 92531.69
#> 2024-12-29 01:00:00 99628.77 95576.60 91524.43
#> 2024-12-30 01:00:00 96403.53 94231.31 92059.09
#> 2024-12-31 01:00:00 95441.13 93774.23 92107.34
În sine un simplu apel. Mai jos sunt formals:
str(formals(talib::bollinger_bands)) #> Dotted pair list of 8 #> $ x : symbol #> $ cols : symbol #> $ ma : language SMA(n = 5) #> $ sd : num 2 #> $ sd_down : symbol #> $ sd_up : symbol #> $ na.bridge: logi FALSE #> $ ... : symbol
Toate funcțiile au aceeași semnătură x,
cols, na.bridge şi ...în timp ce orice altceva este specific pentru indicator. The cols-Argumentul lipsește, dar are o valoare implicită codificată în baza TA-Lib din amonte – acest lucru este valabil și pentru indicatorii rămași. The cols-argumentul acceptă o formulă unilaterală după cum urmează:
tail(
talib::bollinger_bands(
talib::BTC,
cols = ~close
)
)
#> UpperBand MiddleBand LowerBand
#> 2024-12-26 01:00:00 100487.38 96698.61 92909.83
#> 2024-12-27 01:00:00 100670.65 96512.96 92355.27
#> 2024-12-28 01:00:00 100632.13 96581.91 92531.69
#> 2024-12-29 01:00:00 99628.77 95576.60 91524.43
#> 2024-12-30 01:00:00 96403.53 94231.31 92059.09
#> 2024-12-31 01:00:00 95441.13 93774.23 92107.34
În acest caz rezultatul data.frame este la fel ca mai sus, deoarece coloana implicită pentru care sunt calculate benzile este prețul de închidere al activului.
Toți indicatorii sunt înfășurați cu model.frame() iar funcționalitatea acestuia poate fi accesată prin ... după cum urmează:
tail(
talib::bollinger_bands(
talib::BTC,
cols = ~close,
subset = 1:nrow(talib::BTC) %in% 1:100
)
)
#> UpperBand MiddleBand LowerBand
#> 2024-04-04 02:00:00 72605.20 68193.82 63782.44
#> 2024-04-05 02:00:00 70646.91 67502.88 64358.84
#> 2024-04-06 02:00:00 70087.36 67344.94 64602.52
#> 2024-04-07 02:00:00 70475.41 68122.29 65769.16
#> 2024-04-08 02:00:00 71820.87 69249.88 66678.89
#> 2024-04-09 02:00:00 71848.20 69372.65 66897.09
Aici calculăm doar indicatorul pe un subset al
BTC. În timp ce aceasta poate părea o caracteristică redundantă „wow” la prima vedere, justificarea sa principală este în interfața de grafică, unde doar părți ale unui indicator prezintă interes vizual.
The -manipularea in {talib} functioneaza putin altfel decat na.rm. Înainte de a demonstra acest lucru, adăugăm aleatoriu câteva valori lipsă la BTC
BTC <- talib::BTC BTC$close(sample(1:100, size = 20)) <- NA
Abordarea naivă este de a calcula indicatorul direct:
tail(
talib::bollinger_bands(
BTC
)
)
#> UpperBand MiddleBand LowerBand
#> 2024-12-26 01:00:00 NA NA NA
#> 2024-12-27 01:00:00 NA NA NA
#> 2024-12-28 01:00:00 NA NA NA
#> 2024-12-29 01:00:00 NA NA NA
#> 2024-12-30 01:00:00 NA NA NA
#> 2024-12-31 01:00:00 NA NA NA
Care se întoarce pentru toate valorile. Acesta este comportamentul implicit. Funcția returnează cu fidelitate obiectul complet cu același număr de rânduri – umplut cu
-valori.
Pentru a evita acest lucru, puteți seta na.bridge = TRUE după cum urmează:
tail(
object <- talib::bollinger_bands(
BTC,
na.bridge = TRUE
)
)
#> UpperBand MiddleBand LowerBand
#> 2024-12-26 01:00:00 100487.38 96698.61 92909.83
#> 2024-12-27 01:00:00 100670.65 96512.96 92355.27
#> 2024-12-28 01:00:00 100632.13 96581.91 92531.69
#> 2024-12-29 01:00:00 99628.77 95576.60 91524.43
#> 2024-12-30 01:00:00 96403.53 94231.31 92059.09
#> 2024-12-31 01:00:00 95441.13 93774.23 92107.34
Din nou, cu același număr de rânduri ca BTC. Acest comportament este valabil pentru toate funcțiile: N-rânduri în,
N-rând afară. Ce na.bridge face sub capotă, este să extragă tot -valori, calculează indicatorul și apoi le re-adună în poziția inițială.
Instalare
{talib} este în sfârșit pe CRAN și poate fi instalat după cum urmează:
install.packages("talib")
De asemenea, poate fi construit de la sursă cu suplimentar
CMake-steaguri:
install.packages( "talib", type = "source", configure.args = "-O3 -march=native" )
Contribuția și trimiterea de rapoarte de erori
{talib} este încă în stadiu incipient, astfel încât contribuțiile, chiar dacă sunt mici, rapoartele de erori, sugestiile și criticile sunt acceptate cu recunoștință.
Vizitați depozitul aici: https://github.com/serkor1/ta-lib-R.
Creat pe 24.04.2026 cu reprex v2.1.1
{talib}: Analiza tehnică folosind R a fost publicată pentru prima dată pe 27 aprilie 2026 la ora 1:00.
