Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8659b42bef | |||
| b7ef63400d | |||
| 8225e1ab91 |
@@ -16,3 +16,11 @@ bindings/c/include/wickra.h text eol=lf
|
||||
go.mod text eol=lf
|
||||
go.sum text eol=lf
|
||||
|
||||
# R binding: `R CMD check` requires LF in sources, Makevars and shell scripts.
|
||||
*.R text eol=lf
|
||||
*.Rd text eol=lf
|
||||
bindings/r/configure.win text eol=lf
|
||||
bindings/r/src/Makevars text eol=lf
|
||||
bindings/r/src/Makevars.win text eol=lf
|
||||
bindings/r/src/wickra.c text eol=lf
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ assignees: ""
|
||||
## Environment
|
||||
|
||||
- Wickra version:
|
||||
- Language / binding: <!-- Rust crate / Python / Node / WASM / C ABI / C# (.NET) / Go -->
|
||||
- Language / binding: <!-- Rust crate / Python / Node / WASM / C ABI / C# (.NET) / Go / R -->
|
||||
- OS and architecture:
|
||||
- Rust / Python / Node / .NET version (If relevant):
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ assignees: ""
|
||||
- [ ] Should be exposed in the C ABI
|
||||
- [ ] Should be exposed in the C# / .NET binding
|
||||
- [ ] Should be exposed in the Go binding
|
||||
- [ ] Should be exposed in the R binding
|
||||
|
||||
## Additional context
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ assignees: []
|
||||
## Affected code path
|
||||
|
||||
- Indicator / API: `e.g. EMA.update`
|
||||
- Binding: `Rust / Python / Node / Wasm / C ABI / C# (.NET) / Go`
|
||||
- Binding: `Rust / Python / Node / Wasm / C ABI / C# (.NET) / Go / R`
|
||||
- Hot loop or one-shot call?
|
||||
|
||||
## Versions compared
|
||||
|
||||
@@ -33,4 +33,4 @@ import wickra as ta
|
||||
## Environment (Only if relevant)
|
||||
|
||||
- Wickra version: `e.g. 0.4.2`
|
||||
- Binding: `Rust / Python / Node / Wasm / C ABI / C# (.NET) / Go`
|
||||
- Binding: `Rust / Python / Node / Wasm / C ABI / C# (.NET) / Go / R`
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
- [ ] `cargo clippy --workspace --all-targets -- -D warnings` is clean.
|
||||
- [ ] `cargo test --workspace` passes.
|
||||
- [ ] New behaviour has tests; bug fixes have a regression test.
|
||||
- [ ] Public API changes are mirrored in the Python / Node / WASM bindings, and the C ABI + C# + Go bindings are regenerated
|
||||
- [ ] Public API changes are mirrored in the Python / Node / WASM bindings, and the C ABI + C# + Go + R bindings are regenerated
|
||||
and their type stubs (If applicable).
|
||||
- [ ] The relevant page on the [documentation site](https://docs.wickra.org)
|
||||
and the `README.md` are updated (If applicable). Docs edits go to a
|
||||
|
||||
@@ -26,6 +26,7 @@ Please fill in the sections below. Delete any that don't apply.
|
||||
- [ ] C ABI (`bindings/c`)
|
||||
- [ ] C# / .NET binding (`bindings/csharp`)
|
||||
- [ ] Go binding (`bindings/go`)
|
||||
- [ ] R binding (`bindings/r`)
|
||||
- [ ] Examples / docs
|
||||
|
||||
## Linked issues
|
||||
|
||||
@@ -826,6 +826,76 @@ jobs:
|
||||
go run "./$d"
|
||||
done
|
||||
|
||||
r:
|
||||
name: R on ${{ matrix.os }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||
env:
|
||||
WICKRA_INCLUDE_DIR: ${{ github.workspace }}/bindings/c/include
|
||||
WICKRA_LIB_DIR: ${{ github.workspace }}/target/release
|
||||
steps:
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Install Rust toolchain
|
||||
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable branch, 2026-03-27
|
||||
|
||||
- name: Cache cargo
|
||||
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
|
||||
continue-on-error: true
|
||||
timeout-minutes: 6
|
||||
|
||||
# The binding compiles a thin .Call glue layer against the C ABI hub; build
|
||||
# the library first. On Windows configure.win bundles a renamed copy
|
||||
# (wickra_abi.dll) so the package's own wickra.dll does not collide with it.
|
||||
- name: Build the C ABI library
|
||||
run: cargo build -p wickra-c --release
|
||||
|
||||
- name: Set up R
|
||||
uses: r-lib/actions/setup-r@a51a8012b0aab7c32ef9d19bf54da93f3254335e # v2
|
||||
with:
|
||||
r-version: "release"
|
||||
use-public-rspm: true
|
||||
|
||||
# Use the repos configured by setup-r (use-public-rspm) so Linux installs
|
||||
# binary packages — building testthat's deps from source is slow and flaky.
|
||||
- name: Install test dependency
|
||||
run: Rscript -e 'install.packages("testthat")'
|
||||
|
||||
- name: Install and test the R binding
|
||||
shell: bash
|
||||
# github.workspace is a backslash path on Windows; configure.win (sh) and
|
||||
# mingw need forward slashes. On Linux/macOS the rpath points at
|
||||
# WICKRA_LIB_DIR; export the loader path too as a belt-and-suspenders.
|
||||
run: |
|
||||
export WICKRA_INCLUDE_DIR="${WICKRA_INCLUDE_DIR//\\//}"
|
||||
export WICKRA_LIB_DIR="${WICKRA_LIB_DIR//\\//}"
|
||||
export LD_LIBRARY_PATH="$WICKRA_LIB_DIR:$LD_LIBRARY_PATH"
|
||||
export DYLD_LIBRARY_PATH="$WICKRA_LIB_DIR:$DYLD_LIBRARY_PATH"
|
||||
R CMD INSTALL bindings/r
|
||||
Rscript -e 'library(testthat); library(wickra); test_dir("bindings/r/tests/testthat", stop_on_failure = TRUE)'
|
||||
|
||||
- name: Run the offline R examples
|
||||
shell: bash
|
||||
run: |
|
||||
export WICKRA_LIB_DIR="${WICKRA_LIB_DIR//\\//}"
|
||||
export LD_LIBRARY_PATH="$WICKRA_LIB_DIR:$LD_LIBRARY_PATH"
|
||||
export DYLD_LIBRARY_PATH="$WICKRA_LIB_DIR:$DYLD_LIBRARY_PATH"
|
||||
cd examples/r
|
||||
for f in streaming backtest multi_timeframe parallel_assets \
|
||||
strategy_rsi_mean_reversion strategy_macd_adx strategy_bollinger_squeeze; do
|
||||
Rscript "$f.R"
|
||||
done
|
||||
|
||||
# fetch_btcusdt / live_binance need the network (and jsonlite / websocket);
|
||||
# build-check that they parse without running them.
|
||||
- name: Parse the network R examples
|
||||
run: Rscript -e 'invisible(lapply(c("examples/r/fetch_btcusdt.R", "examples/r/live_binance.R"), parse)); cat("network R examples parse OK\n")'
|
||||
|
||||
# The cross-library benchmark has moved to a dedicated scheduled workflow
|
||||
# (.github/workflows/bench.yml) — see audit finding R10. It runs nightly
|
||||
# at 03:00 UTC and on-demand via `workflow_dispatch`, and is no longer on
|
||||
|
||||
@@ -86,10 +86,17 @@ jobs:
|
||||
# merge ref) so the counter check validates exactly what will land. On
|
||||
# push events we check out the default ref. No push is made, so a shallow
|
||||
# checkout is enough.
|
||||
#
|
||||
# Check out by head SHA, not head ref (branch name): a fast `gh pr merge
|
||||
# --squash --delete-branch` deletes the head branch the moment the PR
|
||||
# merges, often before this queued read-only check reaches its checkout.
|
||||
# Fetching the now-gone `refs/heads/<branch>` then fails the run (exit 1).
|
||||
# The head SHA stays reachable via `refs/pull/N/head` after the branch is
|
||||
# gone, so the checkout — and the run — survives an instant merge.
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.ref || github.ref }}
|
||||
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.ref }}
|
||||
repository: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name || github.repository }}
|
||||
|
||||
- name: Count indicators
|
||||
@@ -149,7 +156,7 @@ jobs:
|
||||
# actually live (Cloudflare Pages, P8.1); merging this PR is therefore
|
||||
# gated on the domain resolving, otherwise the About link would 404.
|
||||
homepage="https://docs.wickra.org"
|
||||
desc="Streaming-first technical indicators with a Rust core and Python, Node.js, WebAssembly, C ABI, .NET, and Go bindings. ${n} indicators, O(1) per-tick updates, no system dependencies. Drop-in TA-Lib replacement."
|
||||
desc="Streaming-first technical indicators with a Rust core and Python, Node.js, WebAssembly, C ABI, .NET, Go, and R bindings. ${n} indicators, O(1) per-tick updates, no system dependencies. Drop-in TA-Lib replacement."
|
||||
# Enforce the homepage unconditionally — it is a constant, so this both
|
||||
# corrects the stale kingchenc URL and self-heals any future drift.
|
||||
# Same Administration-write permission as --description (no extra scope).
|
||||
|
||||
+3
-2
@@ -46,8 +46,9 @@ wasm-bindgen). The C ABI is the *hub* every other C-capable language links
|
||||
against: it builds to a `cdylib`/`staticlib` plus a generated `wickra.h`, and
|
||||
downstream languages link that one artifact rather than each re-wrapping the
|
||||
core. C and C++ link it directly; the **C# / .NET** binding (`bindings/csharp`,
|
||||
on NuGet) and the **Go** binding (`bindings/go`, cgo) are generated from
|
||||
`wickra.h`, with Java / R planned the same way.
|
||||
on NuGet), the **Go** binding (`bindings/go`, cgo) and the **R** binding
|
||||
(`bindings/r`, `.Call`) are generated from `wickra.h`, with Java planned the
|
||||
same way.
|
||||
|
||||
| Crate | Path | What it owns | Public deps |
|
||||
|---|---|---|---|
|
||||
|
||||
+10
-2
@@ -5,7 +5,14 @@ All notable changes to Wickra are documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
## [0.7.8] - 2026-06-09
|
||||
### Added
|
||||
- **R binding (`bindings/r`)** — an R package reaching the C ABI hub through R's
|
||||
native `.Call` interface, exposing all 514 indicators as constructors that
|
||||
return a `wickra_indicator` object with `update`/`batch`/`reset` methods. The
|
||||
C glue and R wrappers are generated from `wickra.h`; the native handle is freed
|
||||
by a registered finalizer. Ships a full example suite mirroring the C, C# and
|
||||
Go examples; distributed for r-universe / source install.
|
||||
|
||||
## [0.7.7] - 2026-06-09
|
||||
### Added
|
||||
@@ -1443,7 +1450,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
optional Binance live feed.
|
||||
- Bindings for Python, Node.js, and WebAssembly.
|
||||
|
||||
[Unreleased]: https://github.com/wickra-lib/wickra/compare/v0.7.7...HEAD
|
||||
[Unreleased]: https://github.com/wickra-lib/wickra/compare/v0.7.8...HEAD
|
||||
[0.7.8]: https://github.com/wickra-lib/wickra/compare/v0.7.7...v0.7.8
|
||||
[0.7.7]: https://github.com/wickra-lib/wickra/compare/v0.7.6...v0.7.7
|
||||
[0.7.6]: https://github.com/wickra-lib/wickra/compare/v0.7.5...v0.7.6
|
||||
[0.7.5]: https://github.com/wickra-lib/wickra/compare/v0.7.4...v0.7.5
|
||||
|
||||
+4
-1
@@ -24,6 +24,7 @@ licensed as above, without any additional terms or conditions.
|
||||
| `bindings/c` | C ABI — `cdylib` + `staticlib` + generated `include/wickra.h`. The hub for C / C++ and any C-capable language. |
|
||||
| `bindings/csharp` | .NET binding over the C ABI (`Wickra` on NuGet) — `[LibraryImport]` P/Invoke generated from `wickra.h`. |
|
||||
| `bindings/go` | Go binding over the C ABI via cgo (module tag `bindings/go/vX.Y.Z`) — wrappers generated from `wickra.h`. |
|
||||
| `bindings/r` | R binding over the C ABI via `.Call` (R package) — C glue + R wrappers generated from `wickra.h`. |
|
||||
| `examples/` | Runnable examples. |
|
||||
| `docs/` | Pointer to the documentation site (docs.wickra.org); the docs live in the `wickra-lib/wickra-docs` repo. |
|
||||
|
||||
@@ -110,7 +111,9 @@ installed. Dependabot also keeps the `.github/requirements` pins current.
|
||||
commit `src/lib.rs` + `include/wickra.h`. The C# binding (`bindings/csharp`) is
|
||||
generated from `wickra.h`, so regenerate and commit its `Generated/*.g.cs` too.
|
||||
The Go binding (`bindings/go`) is likewise generated from `wickra.h`, so
|
||||
regenerate and commit `indicators_gen.go` (`gofmt`-clean).
|
||||
regenerate and commit `indicators_gen.go` (`gofmt`-clean). The R binding
|
||||
(`bindings/r`) is generated from `wickra.h` too, so regenerate and commit
|
||||
`src/wickra.c` + `R/indicators.R`.
|
||||
- **Docs.** Update the relevant page on the
|
||||
[documentation site](https://docs.wickra.org) and the
|
||||
`README.md` when behaviour or the public API changes. The docs live in
|
||||
|
||||
Generated
+9
-9
@@ -1944,7 +1944,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wickra"
|
||||
version = "0.7.7"
|
||||
version = "0.7.8"
|
||||
dependencies = [
|
||||
"approx",
|
||||
"criterion",
|
||||
@@ -1955,7 +1955,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wickra-bench"
|
||||
version = "0.7.7"
|
||||
version = "0.7.8"
|
||||
dependencies = [
|
||||
"criterion",
|
||||
"kand",
|
||||
@@ -1967,14 +1967,14 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wickra-c"
|
||||
version = "0.7.7"
|
||||
version = "0.7.8"
|
||||
dependencies = [
|
||||
"wickra-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wickra-core"
|
||||
version = "0.7.7"
|
||||
version = "0.7.8"
|
||||
dependencies = [
|
||||
"approx",
|
||||
"proptest",
|
||||
@@ -1984,7 +1984,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wickra-data"
|
||||
version = "0.7.7"
|
||||
version = "0.7.8"
|
||||
dependencies = [
|
||||
"approx",
|
||||
"csv",
|
||||
@@ -2001,7 +2001,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wickra-examples"
|
||||
version = "0.7.7"
|
||||
version = "0.7.8"
|
||||
dependencies = [
|
||||
"serde_json",
|
||||
"tokio",
|
||||
@@ -2011,7 +2011,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wickra-node"
|
||||
version = "0.7.7"
|
||||
version = "0.7.8"
|
||||
dependencies = [
|
||||
"napi",
|
||||
"napi-build",
|
||||
@@ -2021,7 +2021,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wickra-python"
|
||||
version = "0.7.7"
|
||||
version = "0.7.8"
|
||||
dependencies = [
|
||||
"numpy",
|
||||
"pyo3",
|
||||
@@ -2030,7 +2030,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wickra-wasm"
|
||||
version = "0.7.7"
|
||||
version = "0.7.8"
|
||||
dependencies = [
|
||||
"console_error_panic_hook",
|
||||
"js-sys",
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@ members = [
|
||||
exclude = ["fuzz"]
|
||||
|
||||
[workspace.package]
|
||||
version = "0.7.7"
|
||||
version = "0.7.8"
|
||||
authors = ["kingchenc <support@wickra.org>"]
|
||||
edition = "2021"
|
||||
rust-version = "1.86"
|
||||
@@ -26,7 +26,7 @@ keywords = ["finance", "trading", "indicators", "technical-analysis", "ta"]
|
||||
categories = ["finance", "mathematics", "science"]
|
||||
|
||||
[workspace.dependencies]
|
||||
wickra-core = { path = "crates/wickra-core", version = "0.7.7" }
|
||||
wickra-core = { path = "crates/wickra-core", version = "0.7.8" }
|
||||
|
||||
thiserror = "2"
|
||||
rayon = "1.10"
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
Wickra is a multi-language technical-analysis library with a Rust core and
|
||||
native bindings for Python, Node.js and WebAssembly, plus a C ABI that C, C++,
|
||||
C# / .NET, Go and any other C-capable language links against. Every indicator is a
|
||||
C# / .NET, Go, R and any other C-capable language links against. Every indicator is a
|
||||
state machine that updates in O(1) per new data point, so live trading bots and
|
||||
historical backtests share the exact same implementation.
|
||||
|
||||
@@ -51,7 +51,8 @@ Full documentation lives at **[docs.wickra.org](https://docs.wickra.org)**:
|
||||
[WASM](https://docs.wickra.org/Quickstart-WASM),
|
||||
[C](https://docs.wickra.org/Quickstart-C),
|
||||
[C#](https://docs.wickra.org/Quickstart-CSharp),
|
||||
[Go](https://docs.wickra.org/Quickstart-Go).
|
||||
[Go](https://docs.wickra.org/Quickstart-Go),
|
||||
[R](https://docs.wickra.org/Quickstart-R).
|
||||
- **Indicators** — a per-indicator deep dive (formula, parameters, warmup) for
|
||||
every one of the 514 indicators; start at the
|
||||
[indicators overview](https://docs.wickra.org/Indicators-Overview).
|
||||
@@ -77,7 +78,7 @@ times to get there.
|
||||
metrics — every single one updating in **O(1) per tick**. TA-Lib ships ~150 and
|
||||
none of them stream.
|
||||
- **One Rust core, five first-class targets.** Native **Python · Node.js ·
|
||||
WebAssembly · Rust** plus a **C ABI** for C / C++, C# / .NET, Go and any other C-capable language —
|
||||
WebAssembly · Rust** plus a **C ABI** for C / C++, C# / .NET, Go, R and any other C-capable language —
|
||||
identical math, identical results, zero per-language reimplementation and zero
|
||||
GIL bottleneck.
|
||||
- **Correct by construction, not by hope.** Every `update` validates its input,
|
||||
@@ -102,7 +103,7 @@ Every other library forces one of those compromises. Wickra doesn't:
|
||||
| Library | Install | Streaming | Languages | Indicators | Active |
|
||||
|------------------|-------------|-------------|-----------------------------|-----------:|--------|
|
||||
| **★ Wickra**| **clean** | **yes, O(1)** | **Rust · Python · Node · WASM** | **514** | **yes** |
|
||||
| | | | **C · C# · Go** | | |
|
||||
| | | | **C · C# · Go · R** | | |
|
||||
| kand | clean | yes | Python · WASM · Rust | ~60 | yes |
|
||||
| ta-rs | clean | yes | Rust only | ~30 | stale |
|
||||
| yata | clean | partial | Rust only | ~35 | yes |
|
||||
@@ -174,7 +175,7 @@ construct it in signed mode (`Doji::new().signed()`, `Doji(signed=True)`,
|
||||
`new Doji(true)`) for a dragonfly / gravestone `±1` reading.
|
||||
|
||||
Adding a new indicator means implementing one trait in Rust; every binding
|
||||
inherits it automatically (the C ABI — and the C# and Go bindings generated from
|
||||
inherits it automatically (the C ABI — and the C#, Go and R bindings generated from
|
||||
it — regenerate from the core).
|
||||
|
||||
## Languages
|
||||
@@ -188,6 +189,7 @@ it — regenerate from the core).
|
||||
| C / C++ (C ABI) | header + library, see [`bindings/c`](bindings/c) | `examples/c/streaming.c` |
|
||||
| C# / .NET (C ABI) | `dotnet add package Wickra`, see [`bindings/csharp`](bindings/csharp) | `examples/csharp/streaming` |
|
||||
| Go (cgo, C ABI) | `go get github.com/wickra-lib/wickra/bindings/go`, see [`bindings/go`](bindings/go) | `examples/go/streaming` |
|
||||
| R (`.Call`, C ABI) | `R CMD INSTALL bindings/r`, see [`bindings/r`](bindings/r) | `examples/r/streaming.R` |
|
||||
|
||||
Each binding ships several runnable examples (streaming, backtest, live feed);
|
||||
[`examples/README.md`](examples/README.md) is the full cross-language index.
|
||||
@@ -259,7 +261,8 @@ wickra/
|
||||
│ ├── wasm/ wasm-bindgen (browsers, bundlers, Node)
|
||||
│ ├── c/ C ABI (cdylib + staticlib) + generated include/wickra.h
|
||||
│ ├── csharp/ .NET binding over the C ABI (publishes on NuGet)
|
||||
│ └── go/ Go binding over the C ABI via cgo (module tag)
|
||||
│ ├── go/ Go binding over the C ABI via cgo (module tag)
|
||||
│ └── r/ R binding over the C ABI via .Call (R package)
|
||||
├── examples/ examples/README.md indexes every language
|
||||
│ ├── data/ real BTCUSDT OHLCV datasets, one per timeframe
|
||||
│ ├── rust/ Rust workspace member (`wickra-examples`)
|
||||
@@ -268,7 +271,8 @@ wickra/
|
||||
│ ├── wasm/ browser demo for `wickra-wasm`
|
||||
│ ├── c/ C smoke + streaming, C++ RAII wrapper
|
||||
│ ├── csharp/ streaming, backtest, strategies (load `Wickra`)
|
||||
│ └── go/ streaming, backtest, strategies (cgo binding)
|
||||
│ ├── go/ streaming, backtest, strategies (cgo binding)
|
||||
│ └── r/ streaming, backtest, strategies (.Call binding)
|
||||
└── .github/workflows/ CI and release pipelines
|
||||
```
|
||||
|
||||
@@ -308,6 +312,10 @@ dotnet test bindings/csharp/Wickra.Tests/Wickra.Tests.csproj
|
||||
# Go binding (requires a C compiler for cgo; links the C ABI above)
|
||||
cp target/release/libwickra.so bindings/go/lib/ # .dylib on macOS, wickra.dll on Windows
|
||||
cd bindings/go && go test ./...
|
||||
|
||||
# R binding (requires a C toolchain / Rtools; links the C ABI above)
|
||||
WICKRA_INCLUDE_DIR="$PWD/bindings/c/include" WICKRA_LIB_DIR="$PWD/target/release" \
|
||||
R CMD INSTALL bindings/r
|
||||
```
|
||||
|
||||
## Testing
|
||||
@@ -329,6 +337,8 @@ Every layer is covered; run the suites with the commands in
|
||||
and reference values.
|
||||
- `bindings/go`: `go test` cases covering one indicator per FFI archetype
|
||||
(scalar/batch, multi-output, bars, profile, array input), reset, and lifecycle.
|
||||
- `bindings/r`: `testthat` cases covering one indicator per FFI archetype
|
||||
(scalar/batch, multi-output, bars, profile, array input), reset, and validation.
|
||||
|
||||
## Contributing
|
||||
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ minor releases; breaking changes are called out in the changelog.
|
||||
- **Performance.** Keep per-tick updates O(1) and maintain the benchmark suite;
|
||||
investigate further allocation and cache improvements.
|
||||
- **Bindings parity.** Keep the Python, Node.js and WebAssembly bindings — plus
|
||||
the C ABI and the C# / .NET and Go bindings generated from it — in lockstep with the
|
||||
the C ABI and the C# / .NET, Go and R bindings generated from it — in lockstep with the
|
||||
Rust core, including type stubs and platform coverage.
|
||||
- **Documentation.** Maintain a deep-dive page per indicator on
|
||||
<https://docs.wickra.org>, plus quickstarts and cookbook material.
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ Thanks for using Wickra! Here is where to get help, depending on what you need.
|
||||
Most questions are answered in the documentation:
|
||||
|
||||
- **Docs site:** <https://docs.wickra.org> — quickstarts for Rust, Python,
|
||||
Node.js, WebAssembly, C, C# and Go, a per-indicator reference, warmup periods, the
|
||||
Node.js, WebAssembly, C, C#, Go and R, a per-indicator reference, warmup periods, the
|
||||
data layer, and an FAQ.
|
||||
- **README:** <https://github.com/wickra-lib/wickra#readme> — installation and a
|
||||
quick overview.
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ This document describes Wickra's attack surface and the threats considered,
|
||||
together with their mitigations. It complements the security assurance case in
|
||||
[`SECURITY.md`](SECURITY.md). Wickra is a computational technical-analysis
|
||||
library (a Rust core with Python, Node.js and WebAssembly bindings plus a C ABI
|
||||
and the .NET and Go bindings built on it),
|
||||
and the .NET, Go and R bindings built on it),
|
||||
not a network service or trading system; the attack surface is correspondingly
|
||||
small.
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
library plus a generated `wickra.h` — no system dependencies.**
|
||||
|
||||
Wickra is a multi-language technical-analysis library with a Rust core and
|
||||
bindings for Python, Node.js and WebAssembly, plus a C ABI for C/C++, C#, Go and any
|
||||
bindings for Python, Node.js and WebAssembly, plus a C ABI for C/C++, C#, Go, R and any
|
||||
other C-capable language. Every indicator is an O(1)
|
||||
streaming state machine, so live trading bots and historical backtests share
|
||||
the exact same implementation. This package is the **C ABI hub**: it compiles the
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
prebuilt native library, no system dependencies.**
|
||||
|
||||
Wickra is a multi-language technical-analysis library with a Rust core and
|
||||
bindings for Python, Node.js and WebAssembly, plus a C ABI for C/C++, C#, Go and any
|
||||
bindings for Python, Node.js and WebAssembly, plus a C ABI for C/C++, C#, Go, R and any
|
||||
other C-capable language. Every indicator is an O(1)
|
||||
streaming state machine, so live trading bots and historical backtests share
|
||||
the exact same implementation. This package is the .NET binding; it consumes the
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
<!-- NuGet package metadata -->
|
||||
<PackageId>Wickra</PackageId>
|
||||
<Version>0.7.7</Version>
|
||||
<Version>0.7.8</Version>
|
||||
<Authors>kingchenc</Authors>
|
||||
<Description>High-performance streaming technical-analysis indicators (514 indicators) for .NET, backed by the native Rust core via the Wickra C ABI.</Description>
|
||||
<PackageLicenseExpression>MIT OR Apache-2.0</PackageLicenseExpression>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
prebuilt native binary, no system dependencies.**
|
||||
|
||||
Wickra is a multi-language technical-analysis library with a Rust core and
|
||||
bindings for Python, Node.js and WebAssembly, plus a C ABI for C/C++, C#, Go and any
|
||||
bindings for Python, Node.js and WebAssembly, plus a C ABI for C/C++, C#, Go, R and any
|
||||
other C-capable language. Every indicator is an O(1)
|
||||
streaming state machine, so live trading bots and historical backtests share
|
||||
the exact same implementation. This package is the Node.js binding (napi-rs);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wickra-darwin-arm64",
|
||||
"version": "0.7.7",
|
||||
"version": "0.7.8",
|
||||
"description": "Native binding for wickra (macOS Apple Silicon). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||
"main": "wickra.darwin-arm64.node",
|
||||
"files": [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wickra-darwin-x64",
|
||||
"version": "0.7.7",
|
||||
"version": "0.7.8",
|
||||
"description": "Native binding for wickra (macOS Intel). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||
"main": "wickra.darwin-x64.node",
|
||||
"files": [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wickra-linux-arm64-gnu",
|
||||
"version": "0.7.7",
|
||||
"version": "0.7.8",
|
||||
"description": "Native binding for wickra (linux arm64 GNU). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||
"main": "wickra.linux-arm64-gnu.node",
|
||||
"files": [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wickra-linux-x64-gnu",
|
||||
"version": "0.7.7",
|
||||
"version": "0.7.8",
|
||||
"description": "Native binding for wickra (linux x64 GNU). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||
"main": "wickra.linux-x64-gnu.node",
|
||||
"files": [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wickra-win32-arm64-msvc",
|
||||
"version": "0.7.7",
|
||||
"version": "0.7.8",
|
||||
"description": "Native binding for wickra (Windows arm64 MSVC). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||
"main": "wickra.win32-arm64-msvc.node",
|
||||
"files": [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wickra-win32-x64-msvc",
|
||||
"version": "0.7.7",
|
||||
"version": "0.7.8",
|
||||
"description": "Native binding for wickra (Windows x64 MSVC). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||
"main": "wickra.win32-x64-msvc.node",
|
||||
"files": [
|
||||
|
||||
Generated
+20
-20
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "wickra",
|
||||
"version": "0.7.7",
|
||||
"version": "0.7.8",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "wickra",
|
||||
"version": "0.7.7",
|
||||
"version": "0.7.8",
|
||||
"license": "MIT OR Apache-2.0",
|
||||
"devDependencies": {
|
||||
"@napi-rs/cli": "^2.18.0"
|
||||
@@ -15,12 +15,12 @@
|
||||
"node": ">= 18"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"wickra-darwin-arm64": "0.7.7",
|
||||
"wickra-darwin-x64": "0.7.7",
|
||||
"wickra-linux-arm64-gnu": "0.7.7",
|
||||
"wickra-linux-x64-gnu": "0.7.7",
|
||||
"wickra-win32-arm64-msvc": "0.7.7",
|
||||
"wickra-win32-x64-msvc": "0.7.7"
|
||||
"wickra-darwin-arm64": "0.7.8",
|
||||
"wickra-darwin-x64": "0.7.8",
|
||||
"wickra-linux-arm64-gnu": "0.7.8",
|
||||
"wickra-linux-x64-gnu": "0.7.8",
|
||||
"wickra-win32-arm64-msvc": "0.7.8",
|
||||
"wickra-win32-x64-msvc": "0.7.8"
|
||||
}
|
||||
},
|
||||
"node_modules/@napi-rs/cli": {
|
||||
@@ -41,8 +41,8 @@
|
||||
}
|
||||
},
|
||||
"node_modules/wickra-darwin-arm64": {
|
||||
"version": "0.7.7",
|
||||
"resolved": "https://registry.npmjs.org/wickra-darwin-arm64/-/wickra-darwin-arm64-0.7.7.tgz",
|
||||
"version": "0.7.8",
|
||||
"resolved": "https://registry.npmjs.org/wickra-darwin-arm64/-/wickra-darwin-arm64-0.7.8.tgz",
|
||||
"integrity": "sha512-4eZiBR/yGUdr4nzhEUFy2i69XgNx64iI2ax/LPamsThgylC0KpHOZKK19QzJ2d9KbK4C8nMjME5FLuR+4GNEwQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
@@ -57,8 +57,8 @@
|
||||
}
|
||||
},
|
||||
"node_modules/wickra-darwin-x64": {
|
||||
"version": "0.7.7",
|
||||
"resolved": "https://registry.npmjs.org/wickra-darwin-x64/-/wickra-darwin-x64-0.7.7.tgz",
|
||||
"version": "0.7.8",
|
||||
"resolved": "https://registry.npmjs.org/wickra-darwin-x64/-/wickra-darwin-x64-0.7.8.tgz",
|
||||
"integrity": "sha512-6hf8zI3QPjTFp4zCpmgUwDvNtu6jHqNUHKD5e55POo0CgA52HkpyxSPtVm8TGTIZDI7kPjlbOdBM8CJ76mmXwA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
@@ -73,8 +73,8 @@
|
||||
}
|
||||
},
|
||||
"node_modules/wickra-linux-arm64-gnu": {
|
||||
"version": "0.7.7",
|
||||
"resolved": "https://registry.npmjs.org/wickra-linux-arm64-gnu/-/wickra-linux-arm64-gnu-0.7.7.tgz",
|
||||
"version": "0.7.8",
|
||||
"resolved": "https://registry.npmjs.org/wickra-linux-arm64-gnu/-/wickra-linux-arm64-gnu-0.7.8.tgz",
|
||||
"integrity": "sha512-kSe6y0xBMSiqdPLXNjwop5WZdHtvdBNKSEBCwZ4hFq33p4apW25/wrlzv9/oDuyD4kuPabJEhCCnFOplh58CUg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
@@ -89,8 +89,8 @@
|
||||
}
|
||||
},
|
||||
"node_modules/wickra-linux-x64-gnu": {
|
||||
"version": "0.7.7",
|
||||
"resolved": "https://registry.npmjs.org/wickra-linux-x64-gnu/-/wickra-linux-x64-gnu-0.7.7.tgz",
|
||||
"version": "0.7.8",
|
||||
"resolved": "https://registry.npmjs.org/wickra-linux-x64-gnu/-/wickra-linux-x64-gnu-0.7.8.tgz",
|
||||
"integrity": "sha512-tWBWS4qz7hxM4xnpFb59bhf6TaLwXq0Z3jEa/2l7r8PiHA94g8r8S53NRMiT+4yiL5hSWe/nUiC/YXdRrhEZ4g==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
@@ -105,8 +105,8 @@
|
||||
}
|
||||
},
|
||||
"node_modules/wickra-win32-arm64-msvc": {
|
||||
"version": "0.7.7",
|
||||
"resolved": "https://registry.npmjs.org/wickra-win32-arm64-msvc/-/wickra-win32-arm64-msvc-0.7.7.tgz",
|
||||
"version": "0.7.8",
|
||||
"resolved": "https://registry.npmjs.org/wickra-win32-arm64-msvc/-/wickra-win32-arm64-msvc-0.7.8.tgz",
|
||||
"integrity": "sha512-EXIckHxAtF75PUGDKRzXyqMe9ldP0JjSdu68WFN6iJfp+McYrGu6h40TEJlQ/oUEIoPqiZB/xhVyo/el5Lg7zw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
@@ -121,8 +121,8 @@
|
||||
}
|
||||
},
|
||||
"node_modules/wickra-win32-x64-msvc": {
|
||||
"version": "0.7.7",
|
||||
"resolved": "https://registry.npmjs.org/wickra-win32-x64-msvc/-/wickra-win32-x64-msvc-0.7.7.tgz",
|
||||
"version": "0.7.8",
|
||||
"resolved": "https://registry.npmjs.org/wickra-win32-x64-msvc/-/wickra-win32-x64-msvc-0.7.8.tgz",
|
||||
"integrity": "sha512-Yfsqq1Xwp6hdxMyLze411vNdo7BDwI6+lPSe7A9XdqyPecNDbtKwYLpsal2r8EHbNzqM+R8XnuRtUaEQS5VlUQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wickra",
|
||||
"version": "0.7.7",
|
||||
"version": "0.7.8",
|
||||
"description": "Streaming-first technical indicators: incremental, fast, install-free. Node bindings powered by Rust.",
|
||||
"author": "kingchenc <support@wickra.org>",
|
||||
"main": "index.js",
|
||||
@@ -47,12 +47,12 @@
|
||||
"node": ">= 18"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"wickra-linux-x64-gnu": "0.7.7",
|
||||
"wickra-linux-arm64-gnu": "0.7.7",
|
||||
"wickra-darwin-x64": "0.7.7",
|
||||
"wickra-darwin-arm64": "0.7.7",
|
||||
"wickra-win32-x64-msvc": "0.7.7",
|
||||
"wickra-win32-arm64-msvc": "0.7.7"
|
||||
"wickra-linux-x64-gnu": "0.7.8",
|
||||
"wickra-linux-arm64-gnu": "0.7.8",
|
||||
"wickra-darwin-x64": "0.7.8",
|
||||
"wickra-darwin-arm64": "0.7.8",
|
||||
"wickra-win32-x64-msvc": "0.7.8",
|
||||
"wickra-win32-arm64-msvc": "0.7.8"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "napi build --platform --release",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
system dependencies, no C build tooling.**
|
||||
|
||||
Wickra is a multi-language technical-analysis library with a Rust core and
|
||||
bindings for Python, Node.js and WebAssembly, plus a C ABI for C/C++, C#, Go and any
|
||||
bindings for Python, Node.js and WebAssembly, plus a C ABI for C/C++, C#, Go, R and any
|
||||
other C-capable language. Every indicator is an O(1)
|
||||
streaming state machine, so live trading bots and historical backtests share
|
||||
the exact same implementation. This package is the Python binding (PyO3); it
|
||||
|
||||
@@ -4,7 +4,7 @@ build-backend = "maturin"
|
||||
|
||||
[project]
|
||||
name = "wickra"
|
||||
version = "0.7.7"
|
||||
version = "0.7.8"
|
||||
description = "Streaming-first technical indicators: incremental, fast, install-free."
|
||||
readme = "README.md"
|
||||
license = "MIT OR Apache-2.0"
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
^src/wickra_abi\.dll$
|
||||
^src/wickra_abi\.def$
|
||||
^src/libwickra_abi\.dll\.a$
|
||||
^src/.*\.o$
|
||||
^src/wickra\.dll$
|
||||
^src/wickra\.so$
|
||||
^src/symbols\.rds$
|
||||
^\.gitignore$
|
||||
@@ -0,0 +1,20 @@
|
||||
Package: wickra
|
||||
Type: Package
|
||||
Title: Streaming-First Technical Indicators
|
||||
Version: 0.7.8
|
||||
Authors@R: person("Wickra contributors", role = c("aut", "cre"), email = "support@wickra.org")
|
||||
Description: R bindings for the Wickra technical-analysis library over its C ABI
|
||||
hub. Exposes 514 indicators, each an O(1) streaming state machine shared with
|
||||
the Rust core and the other language bindings, so that live and historical
|
||||
evaluation use the exact same implementation.
|
||||
License: MIT + file LICENSE | Apache License 2.0
|
||||
URL: https://github.com/wickra-lib/wickra, https://docs.wickra.org
|
||||
BugReports: https://github.com/wickra-lib/wickra/issues
|
||||
Encoding: UTF-8
|
||||
NeedsCompilation: yes
|
||||
SystemRequirements: the Wickra C ABI library (libwickra); set WICKRA_INCLUDE_DIR
|
||||
and WICKRA_LIB_DIR when installing from source.
|
||||
Roxygen: list(markdown = TRUE)
|
||||
Suggests: testthat (>= 3.0.0)
|
||||
Config/testthat/edition: 3
|
||||
Config/roxygen2/version: 8.0.0
|
||||
@@ -0,0 +1,2 @@
|
||||
YEAR: 2026
|
||||
COPYRIGHT HOLDER: Wickra contributors
|
||||
@@ -0,0 +1,522 @@
|
||||
# Generated by roxygen2: do not edit by hand
|
||||
|
||||
S3method(batch,wickra_indicator)
|
||||
S3method(reset,wickra_indicator)
|
||||
S3method(update,wickra_indicator)
|
||||
export(AbandonedBaby)
|
||||
export(Abcd)
|
||||
export(AbsoluteBreadthIndex)
|
||||
export(AccelerationBands)
|
||||
export(AcceleratorOscillator)
|
||||
export(AdOscillator)
|
||||
export(AdVolumeLine)
|
||||
export(AdaptiveCci)
|
||||
export(AdaptiveCycle)
|
||||
export(AdaptiveLaguerreFilter)
|
||||
export(AdaptiveRsi)
|
||||
export(Adl)
|
||||
export(AdvanceBlock)
|
||||
export(AdvanceDecline)
|
||||
export(AdvanceDeclineRatio)
|
||||
export(Adx)
|
||||
export(Adxr)
|
||||
export(Alligator)
|
||||
export(Alma)
|
||||
export(Alpha)
|
||||
export(AmihudIlliquidity)
|
||||
export(AnchoredRsi)
|
||||
export(AnchoredVwap)
|
||||
export(AndrewsPitchfork)
|
||||
export(Apo)
|
||||
export(Aroon)
|
||||
export(AroonOscillator)
|
||||
export(Atr)
|
||||
export(AtrBands)
|
||||
export(AtrRatchet)
|
||||
export(AtrTrailingStop)
|
||||
export(AutoFib)
|
||||
export(Autocorrelation)
|
||||
export(AutocorrelationPeriodogram)
|
||||
export(AverageDailyRange)
|
||||
export(AverageDrawdown)
|
||||
export(AvgPrice)
|
||||
export(AwesomeOscillator)
|
||||
export(AwesomeOscillatorHistogram)
|
||||
export(BalanceOfPower)
|
||||
export(BandpassFilter)
|
||||
export(Bat)
|
||||
export(BeltHold)
|
||||
export(Beta)
|
||||
export(BetaNeutralSpread)
|
||||
export(BetterVolume)
|
||||
export(BipowerVariation)
|
||||
export(BodySizePct)
|
||||
export(BollingerBands)
|
||||
export(BollingerBandwidth)
|
||||
export(BomarBands)
|
||||
export(BreadthThrust)
|
||||
export(Breakaway)
|
||||
export(BullishPercentIndex)
|
||||
export(BurkeRatio)
|
||||
export(Butterfly)
|
||||
export(CalendarSpread)
|
||||
export(CalmarRatio)
|
||||
export(Camarilla)
|
||||
export(CandleVolume)
|
||||
export(Cci)
|
||||
export(CenterOfGravity)
|
||||
export(CentralPivotRange)
|
||||
export(Cfo)
|
||||
export(ChaikinMoneyFlow)
|
||||
export(ChaikinOscillator)
|
||||
export(ChaikinVolatility)
|
||||
export(ChandeKrollStop)
|
||||
export(ChandelierExit)
|
||||
export(ChoppinessIndex)
|
||||
export(ClassicPivots)
|
||||
export(CloseVsOpen)
|
||||
export(ClosingMarubozu)
|
||||
export(Cmo)
|
||||
export(CoefficientOfVariation)
|
||||
export(Cointegration)
|
||||
export(CommonSenseRatio)
|
||||
export(CompositeProfile)
|
||||
export(ConcealingBabySwallow)
|
||||
export(ConditionalValueAtRisk)
|
||||
export(ConnorsRsi)
|
||||
export(Coppock)
|
||||
export(CorrelationTrendIndicator)
|
||||
export(Counterattack)
|
||||
export(Crab)
|
||||
export(CumulativeVolumeDelta)
|
||||
export(CumulativeVolumeIndex)
|
||||
export(CupAndHandle)
|
||||
export(CyberneticCycle)
|
||||
export(Cypher)
|
||||
export(DayOfWeekProfile)
|
||||
export(Decycler)
|
||||
export(DecyclerOscillator)
|
||||
export(Dema)
|
||||
export(DemandIndex)
|
||||
export(DemarkPivots)
|
||||
export(DepthSlope)
|
||||
export(DerivativeOscillator)
|
||||
export(DetrendedStdDev)
|
||||
export(DisparityIndex)
|
||||
export(DistanceSsd)
|
||||
export(Doji)
|
||||
export(DojiStar)
|
||||
export(DollarBars)
|
||||
export(Donchian)
|
||||
export(DonchianStop)
|
||||
export(DoubleBollinger)
|
||||
export(DoubleTopBottom)
|
||||
export(DownsideGapThreeMethods)
|
||||
export(Dpo)
|
||||
export(DragonflyDoji)
|
||||
export(DrawdownDuration)
|
||||
export(DumplingTop)
|
||||
export(Dx)
|
||||
export(DynamicMomentumIndex)
|
||||
export(EaseOfMovement)
|
||||
export(EffectiveSpread)
|
||||
export(EhlersStochastic)
|
||||
export(Ehma)
|
||||
export(ElderImpulse)
|
||||
export(ElderRay)
|
||||
export(ElderSafeZone)
|
||||
export(Ema)
|
||||
export(EmpiricalModeDecomposition)
|
||||
export(Engulfing)
|
||||
export(Equivolume)
|
||||
export(EstimatedLeverageRatio)
|
||||
export(EvenBetterSinewave)
|
||||
export(EveningDojiStar)
|
||||
export(Evwma)
|
||||
export(EwmaVolatility)
|
||||
export(Expectancy)
|
||||
export(FallingThreeMethods)
|
||||
export(Fama)
|
||||
export(FibArcs)
|
||||
export(FibChannel)
|
||||
export(FibConfluence)
|
||||
export(FibExtension)
|
||||
export(FibFan)
|
||||
export(FibProjection)
|
||||
export(FibRetracement)
|
||||
export(FibTimeZones)
|
||||
export(FibonacciPivots)
|
||||
export(FisherRsi)
|
||||
export(FisherTransform)
|
||||
export(FlagPennant)
|
||||
export(Footprint)
|
||||
export(ForceIndex)
|
||||
export(FractalChaosBands)
|
||||
export(Frama)
|
||||
export(FryPanBottom)
|
||||
export(FundingBasis)
|
||||
export(FundingImpliedApr)
|
||||
export(FundingRate)
|
||||
export(FundingRateMean)
|
||||
export(FundingRateZScore)
|
||||
export(GainLossRatio)
|
||||
export(GainToPainRatio)
|
||||
export(GapSideBySideWhite)
|
||||
export(Garch11)
|
||||
export(GarmanKlassVolatility)
|
||||
export(Gartley)
|
||||
export(GatorOscillator)
|
||||
export(GeneralizedDema)
|
||||
export(GeometricMa)
|
||||
export(GoldenPocket)
|
||||
export(GrangerCausality)
|
||||
export(GravestoneDoji)
|
||||
export(Hammer)
|
||||
export(HangingMan)
|
||||
export(Harami)
|
||||
export(HaramiCross)
|
||||
export(HasbrouckInformationShare)
|
||||
export(HeadAndShoulders)
|
||||
export(HeikinAshi)
|
||||
export(HeikinAshiOscillator)
|
||||
export(HiLoActivator)
|
||||
export(HighLowIndex)
|
||||
export(HighLowRange)
|
||||
export(HighLowVolumeNodes)
|
||||
export(HighWave)
|
||||
export(HighpassFilter)
|
||||
export(Hikkake)
|
||||
export(HikkakeModified)
|
||||
export(HilbertDominantCycle)
|
||||
export(HistoricalVolatility)
|
||||
export(Hma)
|
||||
export(HoltWinters)
|
||||
export(HomingPigeon)
|
||||
export(HtDcPhase)
|
||||
export(HtPhasor)
|
||||
export(HtTrendMode)
|
||||
export(HurstChannel)
|
||||
export(HurstExponent)
|
||||
export(Ichimoku)
|
||||
export(IdenticalThreeCrows)
|
||||
export(ImbalanceBars)
|
||||
export(InNeck)
|
||||
export(Inertia)
|
||||
export(InformationRatio)
|
||||
export(InitialBalance)
|
||||
export(InstantaneousTrendline)
|
||||
export(IntradayIntensity)
|
||||
export(IntradayMomentumIndex)
|
||||
export(IntradayVolatilityProfile)
|
||||
export(InverseFisherTransform)
|
||||
export(InvertedHammer)
|
||||
export(JarqueBera)
|
||||
export(Jma)
|
||||
export(JumpIndicator)
|
||||
export(KRatio)
|
||||
export(KagiBars)
|
||||
export(KalmanHedgeRatio)
|
||||
export(Kama)
|
||||
export(KaseDevStop)
|
||||
export(KasePermissionStochastic)
|
||||
export(KellyCriterion)
|
||||
export(Keltner)
|
||||
export(KendallTau)
|
||||
export(Kicking)
|
||||
export(KickingByLength)
|
||||
export(Kst)
|
||||
export(Kurtosis)
|
||||
export(Kvo)
|
||||
export(KylesLambda)
|
||||
export(LadderBottom)
|
||||
export(LaguerreRsi)
|
||||
export(LeadLagCrossCorrelation)
|
||||
export(LinRegAngle)
|
||||
export(LinRegChannel)
|
||||
export(LinRegIntercept)
|
||||
export(LinRegSlope)
|
||||
export(LinearRegression)
|
||||
export(LiquidationFeatures)
|
||||
export(LogReturn)
|
||||
export(LongLeggedDoji)
|
||||
export(LongLine)
|
||||
export(LongShortRatio)
|
||||
export(M2Measure)
|
||||
export(MaEnvelope)
|
||||
export(MacdExt)
|
||||
export(MacdFix)
|
||||
export(MacdHistogram)
|
||||
export(MacdIndicator)
|
||||
export(Mama)
|
||||
export(MarketFacilitationIndex)
|
||||
export(MartinRatio)
|
||||
export(Marubozu)
|
||||
export(MassIndex)
|
||||
export(MatHold)
|
||||
export(MatchingLow)
|
||||
export(MaxDrawdown)
|
||||
export(McClellanOscillator)
|
||||
export(McClellanSummationIndex)
|
||||
export(McGinleyDynamic)
|
||||
export(MedianAbsoluteDeviation)
|
||||
export(MedianChannel)
|
||||
export(MedianMa)
|
||||
export(MedianPrice)
|
||||
export(Mfi)
|
||||
export(Microprice)
|
||||
export(MidPoint)
|
||||
export(MidPrice)
|
||||
export(MinusDi)
|
||||
export(MinusDm)
|
||||
export(ModifiedMaStop)
|
||||
export(Mom)
|
||||
export(MorningDojiStar)
|
||||
export(MorningEveningStar)
|
||||
export(MurreyMathLines)
|
||||
export(NakedPoc)
|
||||
export(Natr)
|
||||
export(NewHighsNewLows)
|
||||
export(NewPriceLines)
|
||||
export(Nrtr)
|
||||
export(Nvi)
|
||||
export(OIPriceDivergence)
|
||||
export(OIWeighted)
|
||||
export(Obv)
|
||||
export(OiToVolumeRatio)
|
||||
export(OmegaRatio)
|
||||
export(OnNeck)
|
||||
export(OpenInterestDelta)
|
||||
export(OpenInterestMomentum)
|
||||
export(OpeningMarubozu)
|
||||
export(OpeningRange)
|
||||
export(OrderBookImbalanceFull)
|
||||
export(OrderBookImbalanceTop1)
|
||||
export(OrderBookImbalanceTopN)
|
||||
export(OrderFlowImbalance)
|
||||
export(OuHalfLife)
|
||||
export(OvernightGap)
|
||||
export(OvernightIntradayReturn)
|
||||
export(PainIndex)
|
||||
export(PairSpreadZScore)
|
||||
export(PairwiseBeta)
|
||||
export(ParkinsonVolatility)
|
||||
export(PearsonCorrelation)
|
||||
export(PercentAboveMa)
|
||||
export(PercentB)
|
||||
export(PercentageTrailingStop)
|
||||
export(PerpetualPremiumIndex)
|
||||
export(Pgo)
|
||||
export(PiercingDarkCloud)
|
||||
export(Pin)
|
||||
export(PivotReversal)
|
||||
export(PlusDi)
|
||||
export(PlusDm)
|
||||
export(Pmo)
|
||||
export(PointAndFigureBars)
|
||||
export(PolarizedFractalEfficiency)
|
||||
export(Ppo)
|
||||
export(PpoHistogram)
|
||||
export(ProfileShape)
|
||||
export(ProfitFactor)
|
||||
export(ProjectionBands)
|
||||
export(ProjectionOscillator)
|
||||
export(Psar)
|
||||
export(Pvi)
|
||||
export(Qqe)
|
||||
export(Qstick)
|
||||
export(QuartileBands)
|
||||
export(QuotedSpread)
|
||||
export(RSquared)
|
||||
export(RangeBars)
|
||||
export(RealizedSpread)
|
||||
export(RealizedVolatility)
|
||||
export(RecoveryFactor)
|
||||
export(RectangleRange)
|
||||
export(Reflex)
|
||||
export(RegimeLabel)
|
||||
export(RelativeStrengthAB)
|
||||
export(RenkoBars)
|
||||
export(RenkoTrailingStop)
|
||||
export(RickshawMan)
|
||||
export(RisingThreeMethods)
|
||||
export(Rmi)
|
||||
export(Roc)
|
||||
export(Rocp)
|
||||
export(Rocr)
|
||||
export(Rocr100)
|
||||
export(RogersSatchellVolatility)
|
||||
export(RollMeasure)
|
||||
export(RollingCorrelation)
|
||||
export(RollingCovariance)
|
||||
export(RollingIqr)
|
||||
export(RollingMinMaxScaler)
|
||||
export(RollingPercentileRank)
|
||||
export(RollingQuantile)
|
||||
export(RollingVwap)
|
||||
export(RoofingFilter)
|
||||
export(Rsi)
|
||||
export(Rsx)
|
||||
export(RunBars)
|
||||
export(Rvi)
|
||||
export(RviVolatility)
|
||||
export(Rwi)
|
||||
export(SampleEntropy)
|
||||
export(SarExt)
|
||||
export(SeasonalZScore)
|
||||
export(SeparatingLines)
|
||||
export(SessionHighLow)
|
||||
export(SessionRange)
|
||||
export(SessionVwap)
|
||||
export(ShannonEntropy)
|
||||
export(Shark)
|
||||
export(SharpeRatio)
|
||||
export(ShootingStar)
|
||||
export(ShortLine)
|
||||
export(SignedVolume)
|
||||
export(SineWave)
|
||||
export(SineWeightedMa)
|
||||
export(SinglePrints)
|
||||
export(Skewness)
|
||||
export(Sma)
|
||||
export(Smi)
|
||||
export(Smma)
|
||||
export(SmoothedHeikinAshi)
|
||||
export(SortinoRatio)
|
||||
export(SpearmanCorrelation)
|
||||
export(SpinningTop)
|
||||
export(SpreadAr1Coefficient)
|
||||
export(SpreadBollingerBands)
|
||||
export(SpreadHurst)
|
||||
export(StalledPattern)
|
||||
export(StandardError)
|
||||
export(StandardErrorBands)
|
||||
export(StarcBands)
|
||||
export(Stc)
|
||||
export(StdDev)
|
||||
export(StepTrailingStop)
|
||||
export(SterlingRatio)
|
||||
export(StickSandwich)
|
||||
export(StochRsi)
|
||||
export(Stochastic)
|
||||
export(StochasticCci)
|
||||
export(SuperSmoother)
|
||||
export(SuperTrend)
|
||||
export(T3)
|
||||
export(TailRatio)
|
||||
export(TakerBuySellRatio)
|
||||
export(Takuri)
|
||||
export(TasukiGap)
|
||||
export(TdCamouflage)
|
||||
export(TdClop)
|
||||
export(TdClopwin)
|
||||
export(TdCombo)
|
||||
export(TdCountdown)
|
||||
export(TdDWave)
|
||||
export(TdDeMarker)
|
||||
export(TdDifferential)
|
||||
export(TdLines)
|
||||
export(TdMovingAverage)
|
||||
export(TdOpen)
|
||||
export(TdPressure)
|
||||
export(TdPropulsion)
|
||||
export(TdRangeProjection)
|
||||
export(TdRei)
|
||||
export(TdRiskLevel)
|
||||
export(TdSequential)
|
||||
export(TdSetup)
|
||||
export(TdTrap)
|
||||
export(Tema)
|
||||
export(TermStructureBasis)
|
||||
export(ThreeDrives)
|
||||
export(ThreeInside)
|
||||
export(ThreeLineBreak)
|
||||
export(ThreeLineBreakBars)
|
||||
export(ThreeLineStrike)
|
||||
export(ThreeOutside)
|
||||
export(ThreeSoldiersOrCrows)
|
||||
export(ThreeStarsInSouth)
|
||||
export(Thrusting)
|
||||
export(TickBars)
|
||||
export(TickIndex)
|
||||
export(Tii)
|
||||
export(TimeBasedStop)
|
||||
export(TimeOfDayReturnProfile)
|
||||
export(TowerTopBottom)
|
||||
export(TpoProfile)
|
||||
export(TradeImbalance)
|
||||
export(TradeSignAutocorrelation)
|
||||
export(TradeVolumeIndex)
|
||||
export(TrendLabel)
|
||||
export(TrendStrengthIndex)
|
||||
export(Trendflex)
|
||||
export(TreynorRatio)
|
||||
export(Triangle)
|
||||
export(Trima)
|
||||
export(Trin)
|
||||
export(TripleTopBottom)
|
||||
export(Tristar)
|
||||
export(Trix)
|
||||
export(TrueRange)
|
||||
export(Tsf)
|
||||
export(TsfOscillator)
|
||||
export(Tsi)
|
||||
export(Tsv)
|
||||
export(TtmSqueeze)
|
||||
export(TtmTrend)
|
||||
export(TurnOfMonth)
|
||||
export(Tweezer)
|
||||
export(TwiggsMoneyFlow)
|
||||
export(TwoCrows)
|
||||
export(TypicalPrice)
|
||||
export(UlcerIndex)
|
||||
export(UltimateOscillator)
|
||||
export(UniqueThreeRiver)
|
||||
export(UniversalOscillator)
|
||||
export(UpDownVolumeRatio)
|
||||
export(UpsideGapThreeMethods)
|
||||
export(UpsideGapTwoCrows)
|
||||
export(UpsidePotentialRatio)
|
||||
export(ValueArea)
|
||||
export(ValueAtRisk)
|
||||
export(Variance)
|
||||
export(VarianceRatio)
|
||||
export(VerticalHorizontalFilter)
|
||||
export(Vidya)
|
||||
export(VolatilityCone)
|
||||
export(VolatilityOfVolatility)
|
||||
export(VolatilityRatio)
|
||||
export(VoltyStop)
|
||||
export(VolumeBars)
|
||||
export(VolumeByTimeProfile)
|
||||
export(VolumeOscillator)
|
||||
export(VolumePriceTrend)
|
||||
export(VolumeProfile)
|
||||
export(VolumeRsi)
|
||||
export(VolumeWeightedMacd)
|
||||
export(VolumeWeightedSr)
|
||||
export(Vortex)
|
||||
export(Vpin)
|
||||
export(Vwap)
|
||||
export(VwapStdDevBands)
|
||||
export(Vwma)
|
||||
export(Vzo)
|
||||
export(Wad)
|
||||
export(WavePm)
|
||||
export(WaveTrend)
|
||||
export(Wedge)
|
||||
export(WeightedClose)
|
||||
export(WickRatio)
|
||||
export(WilliamsFractals)
|
||||
export(WilliamsR)
|
||||
export(WinRate)
|
||||
export(Wma)
|
||||
export(WoodiePivots)
|
||||
export(YangZhangVolatility)
|
||||
export(YoyoExit)
|
||||
export(ZScore)
|
||||
export(ZeroLagMacd)
|
||||
export(ZigZag)
|
||||
export(Zlema)
|
||||
export(batch)
|
||||
export(reset)
|
||||
importFrom(stats,update)
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,78 @@
|
||||
#' wickra: streaming-first technical indicators
|
||||
#'
|
||||
#' R bindings for the Wickra technical-analysis library over its C ABI hub. Each
|
||||
#' indicator is a constructor (for example [Sma()], [Rsi()], [MacdIndicator()])
|
||||
#' returning a `wickra_indicator` object; feed it one observation at a time with
|
||||
#' [update()], run a whole series in one call with [batch()], and clear its
|
||||
#' state with [reset()]. The native handle is freed automatically when the object
|
||||
#' is garbage-collected.
|
||||
#'
|
||||
#' @keywords internal
|
||||
#' @importFrom stats update
|
||||
"_PACKAGE"
|
||||
|
||||
#' Update an indicator with one observation
|
||||
#'
|
||||
#' @param object A `wickra_indicator` created by an indicator constructor.
|
||||
#' @param ... The observation: a single value for scalar indicators, the OHLCV
|
||||
#' fields plus a timestamp for candle indicators, or two values for pairwise
|
||||
#' indicators.
|
||||
#' @return The indicator value: a numeric scalar; a named numeric vector for
|
||||
#' multi-output indicators (`NA` during warmup); a matrix of completed bars for
|
||||
#' bar builders; or a list / numeric vector for profile indicators
|
||||
#' (`NULL` during warmup).
|
||||
#' @examples
|
||||
#' sma <- Sma(3)
|
||||
#' for (x in c(1, 2, 3, 4, 5)) v <- update(sma, x)
|
||||
#' v # 4
|
||||
#' @export
|
||||
update.wickra_indicator <- function(object, ...) {
|
||||
args <- list(object$ptr, ...)
|
||||
if (!is.na(object$values_cap)) {
|
||||
args <- c(args, object$values_cap)
|
||||
}
|
||||
do.call(".Call", c(list(paste0("wk_", object$prefix, "_update")), args,
|
||||
list(PACKAGE = "wickra")))
|
||||
}
|
||||
|
||||
#' Run an indicator over a whole series in one call
|
||||
#'
|
||||
#' Available for scalar indicators. The result is identical to feeding the same
|
||||
#' inputs through [update()] one at a time, with `NA` at warmup positions.
|
||||
#'
|
||||
#' @param object A `wickra_indicator`.
|
||||
#' @param ... The input vector(s).
|
||||
#' @return A numeric vector the same length as the input.
|
||||
#' @examples
|
||||
#' batch(Sma(3), c(1, 2, 3, 4, 5)) # NA NA 2 3 4
|
||||
#' @export
|
||||
batch <- function(object, ...) {
|
||||
UseMethod("batch")
|
||||
}
|
||||
|
||||
#' @rdname batch
|
||||
#' @export
|
||||
batch.wickra_indicator <- function(object, ...) {
|
||||
do.call(".Call", c(list(paste0("wk_", object$prefix, "_batch"), object$ptr),
|
||||
list(...), list(PACKAGE = "wickra")))
|
||||
}
|
||||
|
||||
#' Reset an indicator to its warmup state
|
||||
#'
|
||||
#' @param object A `wickra_indicator`.
|
||||
#' @return The indicator, invisibly.
|
||||
#' @examples
|
||||
#' sma <- Sma(3)
|
||||
#' update(sma, 1)
|
||||
#' reset(sma)
|
||||
#' @export
|
||||
reset <- function(object) {
|
||||
UseMethod("reset")
|
||||
}
|
||||
|
||||
#' @rdname reset
|
||||
#' @export
|
||||
reset.wickra_indicator <- function(object) {
|
||||
.Call(paste0("wk_", object$prefix, "_reset"), object$ptr, PACKAGE = "wickra")
|
||||
invisible(object)
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
.onLoad <- function(libname, pkgname) {
|
||||
# On Windows the package's wickra.dll depends on the bundled C ABI
|
||||
# wickra_abi.dll; the loader searches PATH for it, so prepend the package's own
|
||||
# libs directory. On Linux/macOS the rpath baked at build time locates the
|
||||
# shared library, so no PATH change is needed.
|
||||
if (.Platform$OS.type == "windows") {
|
||||
libs <- system.file(paste0("libs", .Platform$r_arch),
|
||||
package = pkgname, lib.loc = libname)
|
||||
if (nzchar(libs)) {
|
||||
Sys.setenv(PATH = paste(libs, Sys.getenv("PATH"), sep = .Platform$path.sep))
|
||||
}
|
||||
}
|
||||
library.dynam("wickra", pkgname, libname)
|
||||
}
|
||||
|
||||
.onUnload <- function(libpath) {
|
||||
library.dynam.unload("wickra", libpath)
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
# Wickra — R
|
||||
|
||||
[](https://github.com/wickra-lib/wickra/actions/workflows/ci.yml)
|
||||
[](https://codecov.io/gh/wickra-lib/wickra)
|
||||
[](https://github.com/wickra-lib/wickra#license)
|
||||
|
||||
**Streaming-first technical indicators for R, over the Wickra C ABI hub via `.Call`.**
|
||||
|
||||
Wickra is a multi-language technical-analysis library with a Rust core and
|
||||
bindings for Python, Node.js and WebAssembly, plus a C ABI for C/C++, C#, Go, R
|
||||
and any other C-capable language. Every indicator is an O(1) streaming state
|
||||
machine, so live trading and historical backtests share the exact same
|
||||
implementation. This package is the R binding; it reaches the C ABI hub through
|
||||
R's native `.Call` interface and exposes all 514 indicators as constructors that
|
||||
return a lightweight `wickra_indicator` object.
|
||||
|
||||
## Install
|
||||
|
||||
The package compiles a thin C glue layer (`.Call`) against the prebuilt Wickra
|
||||
C ABI library, so a C toolchain (Rtools on Windows) is required, plus the C ABI
|
||||
header and library. Build the library from the workspace, then install the
|
||||
package pointing at it:
|
||||
|
||||
```bash
|
||||
cargo build -p wickra-c --release
|
||||
WICKRA_INCLUDE_DIR="$PWD/bindings/c/include" \
|
||||
WICKRA_LIB_DIR="$PWD/target/release" \
|
||||
R CMD INSTALL bindings/r
|
||||
```
|
||||
|
||||
On Windows the C ABI DLL is bundled into the package and put on the load path
|
||||
automatically; on Linux and macOS the library path is baked in via rpath.
|
||||
|
||||
## Quick start
|
||||
|
||||
```r
|
||||
library(wickra)
|
||||
|
||||
# Batch: run an indicator over a whole series (NaN at warmup positions).
|
||||
prices <- 100 + (0:999) * 0.1
|
||||
sma <- Sma(20)
|
||||
values <- batch(sma, prices)
|
||||
|
||||
# Streaming: the same indicator, fed one observation at a time in O(1).
|
||||
rsi <- Rsi(14)
|
||||
for (price in prices) {
|
||||
v <- update(rsi, price) # NaN during warmup
|
||||
if (!is.na(v) && v > 70) message("overbought")
|
||||
}
|
||||
|
||||
# Multi-output indicators return a named vector (NA while warming up).
|
||||
macd <- MacdIndicator(12, 26, 9)
|
||||
update(macd, 42) # c(macd = NA, signal = NA, histogram = NA)
|
||||
```
|
||||
|
||||
`batch(ind, prices)` and feeding the same prices through `update()` produce
|
||||
identical values — the equivalence is enforced by the test suite. Candle-input
|
||||
indicators take the OHLCV fields plus a timestamp, e.g.
|
||||
`update(atr, open, high, low, close, volume, timestamp)`. The native handle is
|
||||
freed automatically when the object is garbage-collected.
|
||||
|
||||
## Documentation
|
||||
|
||||
The full indicator catalogue, guides, quickstarts, and API reference live in the
|
||||
main repository and documentation site:
|
||||
|
||||
- **Repository & full indicator list:** <https://github.com/wickra-lib/wickra>
|
||||
- **Docs** (quickstarts, cookbook, TA-Lib migration): <https://docs.wickra.org>
|
||||
- **Runnable examples:** [`examples/r/`](https://github.com/wickra-lib/wickra/tree/main/examples/r)
|
||||
|
||||
Wickra ships native bindings for Python, Node.js, WebAssembly and Rust, plus a
|
||||
C ABI hub that any C-capable language (C, C++, C#, Go, Java, R) links against —
|
||||
all exposing the same indicators from the shared, `unsafe`-forbidden Rust core.
|
||||
|
||||
## Disclaimer
|
||||
|
||||
Wickra is an indicator toolkit, not a trading system. The values it computes are
|
||||
deterministic transforms of the input data — they are not financial advice and
|
||||
do not predict the market. Any use in a live trading context is at your own risk.
|
||||
The library is provided **as is**, without warranty of any kind.
|
||||
|
||||
## License
|
||||
|
||||
Licensed under either of [Apache-2.0](https://github.com/wickra-lib/wickra/blob/main/LICENSE-APACHE)
|
||||
or [MIT](https://github.com/wickra-lib/wickra/blob/main/LICENSE-MIT) at your option.
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
# Windows build: the package compiles to wickra.dll, which would collide with the
|
||||
# C ABI's own wickra.dll (the loader would resolve the import to the package
|
||||
# itself). Stage a renamed copy, wickra_abi.dll, into src/ and build a mingw
|
||||
# import library that references it by that name (objdump + dlltool, both shipped
|
||||
# with Rtools — no gendef/pexports needed). install.libs.R then bundles the DLL.
|
||||
set -e
|
||||
: "${WICKRA_LIB_DIR:?set WICKRA_LIB_DIR to the directory containing wickra.dll}"
|
||||
cp "${WICKRA_LIB_DIR}/wickra.dll" src/wickra_abi.dll
|
||||
{
|
||||
echo 'LIBRARY wickra_abi.dll'
|
||||
echo 'EXPORTS'
|
||||
objdump -p src/wickra_abi.dll | awk '/\[ *[0-9]+\]/ {print $NF}' | grep '^wickra_'
|
||||
} > src/wickra_abi.def
|
||||
dlltool --input-def src/wickra_abi.def --dllname wickra_abi.dll \
|
||||
--output-lib src/libwickra_abi.dll.a
|
||||
exit 0
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AbandonedBaby}
|
||||
\alias{AbandonedBaby}
|
||||
\title{AbandonedBaby indicator}
|
||||
\usage{
|
||||
AbandonedBaby()
|
||||
}
|
||||
\description{
|
||||
AbandonedBaby indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{Abcd}
|
||||
\alias{Abcd}
|
||||
\title{Abcd indicator}
|
||||
\usage{
|
||||
Abcd()
|
||||
}
|
||||
\description{
|
||||
Abcd indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AbsoluteBreadthIndex}
|
||||
\alias{AbsoluteBreadthIndex}
|
||||
\title{AbsoluteBreadthIndex indicator}
|
||||
\usage{
|
||||
AbsoluteBreadthIndex()
|
||||
}
|
||||
\description{
|
||||
AbsoluteBreadthIndex indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AccelerationBands}
|
||||
\alias{AccelerationBands}
|
||||
\title{AccelerationBands indicator}
|
||||
\usage{
|
||||
AccelerationBands(period, factor)
|
||||
}
|
||||
\description{
|
||||
AccelerationBands indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AcceleratorOscillator}
|
||||
\alias{AcceleratorOscillator}
|
||||
\title{AcceleratorOscillator indicator}
|
||||
\usage{
|
||||
AcceleratorOscillator(ao_fast, ao_slow, signal_period)
|
||||
}
|
||||
\description{
|
||||
AcceleratorOscillator indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AdOscillator}
|
||||
\alias{AdOscillator}
|
||||
\title{AdOscillator indicator}
|
||||
\usage{
|
||||
AdOscillator()
|
||||
}
|
||||
\description{
|
||||
AdOscillator indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AdVolumeLine}
|
||||
\alias{AdVolumeLine}
|
||||
\title{AdVolumeLine indicator}
|
||||
\usage{
|
||||
AdVolumeLine()
|
||||
}
|
||||
\description{
|
||||
AdVolumeLine indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AdaptiveCci}
|
||||
\alias{AdaptiveCci}
|
||||
\title{AdaptiveCci indicator}
|
||||
\usage{
|
||||
AdaptiveCci(period)
|
||||
}
|
||||
\description{
|
||||
AdaptiveCci indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AdaptiveCycle}
|
||||
\alias{AdaptiveCycle}
|
||||
\title{AdaptiveCycle indicator}
|
||||
\usage{
|
||||
AdaptiveCycle()
|
||||
}
|
||||
\description{
|
||||
AdaptiveCycle indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AdaptiveLaguerreFilter}
|
||||
\alias{AdaptiveLaguerreFilter}
|
||||
\title{AdaptiveLaguerreFilter indicator}
|
||||
\usage{
|
||||
AdaptiveLaguerreFilter(period)
|
||||
}
|
||||
\description{
|
||||
AdaptiveLaguerreFilter indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AdaptiveRsi}
|
||||
\alias{AdaptiveRsi}
|
||||
\title{AdaptiveRsi indicator}
|
||||
\usage{
|
||||
AdaptiveRsi(period)
|
||||
}
|
||||
\description{
|
||||
AdaptiveRsi indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{Adl}
|
||||
\alias{Adl}
|
||||
\title{Adl indicator}
|
||||
\usage{
|
||||
Adl()
|
||||
}
|
||||
\description{
|
||||
Adl indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AdvanceBlock}
|
||||
\alias{AdvanceBlock}
|
||||
\title{AdvanceBlock indicator}
|
||||
\usage{
|
||||
AdvanceBlock()
|
||||
}
|
||||
\description{
|
||||
AdvanceBlock indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AdvanceDecline}
|
||||
\alias{AdvanceDecline}
|
||||
\title{AdvanceDecline indicator}
|
||||
\usage{
|
||||
AdvanceDecline()
|
||||
}
|
||||
\description{
|
||||
AdvanceDecline indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AdvanceDeclineRatio}
|
||||
\alias{AdvanceDeclineRatio}
|
||||
\title{AdvanceDeclineRatio indicator}
|
||||
\usage{
|
||||
AdvanceDeclineRatio()
|
||||
}
|
||||
\description{
|
||||
AdvanceDeclineRatio indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{Adx}
|
||||
\alias{Adx}
|
||||
\title{Adx indicator}
|
||||
\usage{
|
||||
Adx(period)
|
||||
}
|
||||
\description{
|
||||
Adx indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{Adxr}
|
||||
\alias{Adxr}
|
||||
\title{Adxr indicator}
|
||||
\usage{
|
||||
Adxr(period)
|
||||
}
|
||||
\description{
|
||||
Adxr indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{Alligator}
|
||||
\alias{Alligator}
|
||||
\title{Alligator indicator}
|
||||
\usage{
|
||||
Alligator(jaw_period, teeth_period, lips_period)
|
||||
}
|
||||
\description{
|
||||
Alligator indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{Alma}
|
||||
\alias{Alma}
|
||||
\title{Alma indicator}
|
||||
\usage{
|
||||
Alma(period, offset, sigma)
|
||||
}
|
||||
\description{
|
||||
Alma indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{Alpha}
|
||||
\alias{Alpha}
|
||||
\title{Alpha indicator}
|
||||
\usage{
|
||||
Alpha(period, risk_free)
|
||||
}
|
||||
\description{
|
||||
Alpha indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AmihudIlliquidity}
|
||||
\alias{AmihudIlliquidity}
|
||||
\title{AmihudIlliquidity indicator}
|
||||
\usage{
|
||||
AmihudIlliquidity(period)
|
||||
}
|
||||
\description{
|
||||
AmihudIlliquidity indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AnchoredRsi}
|
||||
\alias{AnchoredRsi}
|
||||
\title{AnchoredRsi indicator}
|
||||
\usage{
|
||||
AnchoredRsi()
|
||||
}
|
||||
\description{
|
||||
AnchoredRsi indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AnchoredVwap}
|
||||
\alias{AnchoredVwap}
|
||||
\title{AnchoredVwap indicator}
|
||||
\usage{
|
||||
AnchoredVwap()
|
||||
}
|
||||
\description{
|
||||
AnchoredVwap indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AndrewsPitchfork}
|
||||
\alias{AndrewsPitchfork}
|
||||
\title{AndrewsPitchfork indicator}
|
||||
\usage{
|
||||
AndrewsPitchfork(strength)
|
||||
}
|
||||
\description{
|
||||
AndrewsPitchfork indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{Apo}
|
||||
\alias{Apo}
|
||||
\title{Apo indicator}
|
||||
\usage{
|
||||
Apo(fast, slow)
|
||||
}
|
||||
\description{
|
||||
Apo indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{Aroon}
|
||||
\alias{Aroon}
|
||||
\title{Aroon indicator}
|
||||
\usage{
|
||||
Aroon(period)
|
||||
}
|
||||
\description{
|
||||
Aroon indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AroonOscillator}
|
||||
\alias{AroonOscillator}
|
||||
\title{AroonOscillator indicator}
|
||||
\usage{
|
||||
AroonOscillator(period)
|
||||
}
|
||||
\description{
|
||||
AroonOscillator indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{Atr}
|
||||
\alias{Atr}
|
||||
\title{Atr indicator}
|
||||
\usage{
|
||||
Atr(period)
|
||||
}
|
||||
\description{
|
||||
Atr indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AtrBands}
|
||||
\alias{AtrBands}
|
||||
\title{AtrBands indicator}
|
||||
\usage{
|
||||
AtrBands(period, multiplier)
|
||||
}
|
||||
\description{
|
||||
AtrBands indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AtrRatchet}
|
||||
\alias{AtrRatchet}
|
||||
\title{AtrRatchet indicator}
|
||||
\usage{
|
||||
AtrRatchet(atr_period, start_mult, increment)
|
||||
}
|
||||
\description{
|
||||
AtrRatchet indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AtrTrailingStop}
|
||||
\alias{AtrTrailingStop}
|
||||
\title{AtrTrailingStop indicator}
|
||||
\usage{
|
||||
AtrTrailingStop(atr_period, multiplier)
|
||||
}
|
||||
\description{
|
||||
AtrTrailingStop indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AutoFib}
|
||||
\alias{AutoFib}
|
||||
\title{AutoFib indicator}
|
||||
\usage{
|
||||
AutoFib()
|
||||
}
|
||||
\description{
|
||||
AutoFib indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{Autocorrelation}
|
||||
\alias{Autocorrelation}
|
||||
\title{Autocorrelation indicator}
|
||||
\usage{
|
||||
Autocorrelation(period, lag)
|
||||
}
|
||||
\description{
|
||||
Autocorrelation indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AutocorrelationPeriodogram}
|
||||
\alias{AutocorrelationPeriodogram}
|
||||
\title{AutocorrelationPeriodogram indicator}
|
||||
\usage{
|
||||
AutocorrelationPeriodogram(min_period, max_period)
|
||||
}
|
||||
\description{
|
||||
AutocorrelationPeriodogram indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AverageDailyRange}
|
||||
\alias{AverageDailyRange}
|
||||
\title{AverageDailyRange indicator}
|
||||
\usage{
|
||||
AverageDailyRange(period, utc_offset_minutes)
|
||||
}
|
||||
\description{
|
||||
AverageDailyRange indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AverageDrawdown}
|
||||
\alias{AverageDrawdown}
|
||||
\title{AverageDrawdown indicator}
|
||||
\usage{
|
||||
AverageDrawdown(period)
|
||||
}
|
||||
\description{
|
||||
AverageDrawdown indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AvgPrice}
|
||||
\alias{AvgPrice}
|
||||
\title{AvgPrice indicator}
|
||||
\usage{
|
||||
AvgPrice()
|
||||
}
|
||||
\description{
|
||||
AvgPrice indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AwesomeOscillator}
|
||||
\alias{AwesomeOscillator}
|
||||
\title{AwesomeOscillator indicator}
|
||||
\usage{
|
||||
AwesomeOscillator(fast, slow)
|
||||
}
|
||||
\description{
|
||||
AwesomeOscillator indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{AwesomeOscillatorHistogram}
|
||||
\alias{AwesomeOscillatorHistogram}
|
||||
\title{AwesomeOscillatorHistogram indicator}
|
||||
\usage{
|
||||
AwesomeOscillatorHistogram(fast, slow, sma_period)
|
||||
}
|
||||
\description{
|
||||
AwesomeOscillatorHistogram indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{BalanceOfPower}
|
||||
\alias{BalanceOfPower}
|
||||
\title{BalanceOfPower indicator}
|
||||
\usage{
|
||||
BalanceOfPower()
|
||||
}
|
||||
\description{
|
||||
BalanceOfPower indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{BandpassFilter}
|
||||
\alias{BandpassFilter}
|
||||
\title{BandpassFilter indicator}
|
||||
\usage{
|
||||
BandpassFilter(period, bandwidth)
|
||||
}
|
||||
\description{
|
||||
BandpassFilter indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{Bat}
|
||||
\alias{Bat}
|
||||
\title{Bat indicator}
|
||||
\usage{
|
||||
Bat()
|
||||
}
|
||||
\description{
|
||||
Bat indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{BeltHold}
|
||||
\alias{BeltHold}
|
||||
\title{BeltHold indicator}
|
||||
\usage{
|
||||
BeltHold()
|
||||
}
|
||||
\description{
|
||||
BeltHold indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{Beta}
|
||||
\alias{Beta}
|
||||
\title{Beta indicator}
|
||||
\usage{
|
||||
Beta(period)
|
||||
}
|
||||
\description{
|
||||
Beta indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{BetaNeutralSpread}
|
||||
\alias{BetaNeutralSpread}
|
||||
\title{BetaNeutralSpread indicator}
|
||||
\usage{
|
||||
BetaNeutralSpread(period)
|
||||
}
|
||||
\description{
|
||||
BetaNeutralSpread indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{BetterVolume}
|
||||
\alias{BetterVolume}
|
||||
\title{BetterVolume indicator}
|
||||
\usage{
|
||||
BetterVolume(period)
|
||||
}
|
||||
\description{
|
||||
BetterVolume indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{BipowerVariation}
|
||||
\alias{BipowerVariation}
|
||||
\title{BipowerVariation indicator}
|
||||
\usage{
|
||||
BipowerVariation(period)
|
||||
}
|
||||
\description{
|
||||
BipowerVariation indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{BodySizePct}
|
||||
\alias{BodySizePct}
|
||||
\title{BodySizePct indicator}
|
||||
\usage{
|
||||
BodySizePct()
|
||||
}
|
||||
\description{
|
||||
BodySizePct indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{BollingerBands}
|
||||
\alias{BollingerBands}
|
||||
\title{BollingerBands indicator}
|
||||
\usage{
|
||||
BollingerBands(period, multiplier)
|
||||
}
|
||||
\description{
|
||||
BollingerBands indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{BollingerBandwidth}
|
||||
\alias{BollingerBandwidth}
|
||||
\title{BollingerBandwidth indicator}
|
||||
\usage{
|
||||
BollingerBandwidth(period, multiplier)
|
||||
}
|
||||
\description{
|
||||
BollingerBandwidth indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{BomarBands}
|
||||
\alias{BomarBands}
|
||||
\title{BomarBands indicator}
|
||||
\usage{
|
||||
BomarBands(period, coverage)
|
||||
}
|
||||
\description{
|
||||
BomarBands indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{BreadthThrust}
|
||||
\alias{BreadthThrust}
|
||||
\title{BreadthThrust indicator}
|
||||
\usage{
|
||||
BreadthThrust(period)
|
||||
}
|
||||
\description{
|
||||
BreadthThrust indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{Breakaway}
|
||||
\alias{Breakaway}
|
||||
\title{Breakaway indicator}
|
||||
\usage{
|
||||
Breakaway()
|
||||
}
|
||||
\description{
|
||||
Breakaway indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{BullishPercentIndex}
|
||||
\alias{BullishPercentIndex}
|
||||
\title{BullishPercentIndex indicator}
|
||||
\usage{
|
||||
BullishPercentIndex()
|
||||
}
|
||||
\description{
|
||||
BullishPercentIndex indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{BurkeRatio}
|
||||
\alias{BurkeRatio}
|
||||
\title{BurkeRatio indicator}
|
||||
\usage{
|
||||
BurkeRatio(period)
|
||||
}
|
||||
\description{
|
||||
BurkeRatio indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{Butterfly}
|
||||
\alias{Butterfly}
|
||||
\title{Butterfly indicator}
|
||||
\usage{
|
||||
Butterfly()
|
||||
}
|
||||
\description{
|
||||
Butterfly indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{CalendarSpread}
|
||||
\alias{CalendarSpread}
|
||||
\title{CalendarSpread indicator}
|
||||
\usage{
|
||||
CalendarSpread()
|
||||
}
|
||||
\description{
|
||||
CalendarSpread indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{CalmarRatio}
|
||||
\alias{CalmarRatio}
|
||||
\title{CalmarRatio indicator}
|
||||
\usage{
|
||||
CalmarRatio(period)
|
||||
}
|
||||
\description{
|
||||
CalmarRatio indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
@@ -0,0 +1,12 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/indicators.R
|
||||
\name{Camarilla}
|
||||
\alias{Camarilla}
|
||||
\title{Camarilla indicator}
|
||||
\usage{
|
||||
Camarilla()
|
||||
}
|
||||
\description{
|
||||
Camarilla indicator
|
||||
}
|
||||
\keyword{internal}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user