forked from serkor1/cryptoQuotes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS.Rmd
336 lines (243 loc) · 8.73 KB
/
NEWS.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
---
output: github_document
always_allow_html: true
---
<!-- NEWS.md is generated from NEWS.Rmd. Please edit that file -->
```{r setup, include = FALSE}
# set options
Sys.setenv(OPENSSL_CONF="/dev/null")
knitr::opts_chunk$set(
collapse = FALSE,
comment = "#>",
fig.path = "man/figures/NEWS-",
message = FALSE,
warning = FALSE,
dpi = 120,
fig.align = 'center'
)
```
```{r, include=FALSE, echo=FALSE}
library(cryptoQuotes)
```
# cryptoQuotes 1.3.1
## General
> **NOTE:** With this update the package is no longer considered `experimental`.
* Removed deprecated functions `getQuote()`-, `getFGIndex()`- and `getLSRatio()`-functions.
* Removed decprecated functions `availableExchanges()`-, `availableIntervals()`- and `availableTickers()`-functions.
These functions were planned to be deleted in `1.4.0` - however, we have decided to aim for an `JOSS`- and `rOpenSci`-subscription which requires some degree of stability. Hence the deletion of these function at `1.3.0`.
We expect `1.4.0` to be released *after* `rOpenSci`-submission and acceptance :pray:
## Improvements
### New features
* `smi()`-function, a `subchart`-indicator built on the `TTR::SMI()`-function.
* `donchian_channel()`-function, a `main chart`-indicator built on the `TTR::DonchianChannel()`-function
<details>
<summary>Usage</summary>
```{r}
chart(
ticker = BTC,
main = kline(),
indicator = list(
donchian_channel()
),
sub = list(
smi()
)
)
```
</details>
### Expanded Support
* `get_openinterest()` is now supported by `kraken`
<details>
<summary>Usage</summary>
```{r}
tail(
get_openinterest(
ticker = "PF_XBTUSD",
interval = "1h",
source = "kraken"
)
)
```
</details>
### Charting
* The `chart()`-function now has proper `light`-theme available that isn't the default `plotly`-values.
* The charts now displays date ranges as a subtitles.
* The `bollinger_bands()`-function now accepts a `color`-argument. These can be passed as `Hexadecimal`-colors or as is, `"blue"` for example.
* A new main chart function has been introduced. `pline()` which is a univariate price chart based on either open, high, low or close prices.
<details>
<summary>Usage</summary>
```{r}
chart(
ticker = BTC,
main = pline(price = "close"),
indicator = list(
bollinger_bands(
color = "steelblue"
)
),
sub = list(
volume()
),
options = list(
dark = FALSE
)
)
```
</details>
### Documentation
* The documentation has been extensively reworked. This is includes, but not limited to, sample outputs for all `get_*`-functions.
### Backend Changes
* The `chart()`-functions no longer depend on `rlang`.
> **Note:** we are generally moving away from `rlang`, `purrr` and `tidyverse` in general. We are, however,
> keeping the `tidyverse` styleguide.
* Removed dependency on `conflicted`-package.
Prior to version `1.3.0` the `get*`-functions were following the syntax of `quantmod` closely, and this goes for the function naming too. With the adoption of the `tidyverse` style guide, there is no conflicts that
needs to be resolved on `stable`- and `experimental`-functions.
### New developper tools
* `pull()`-function
* `var_ly()`-function
* `build()`-function
## Breaking Changes
* The `get_fgindex()`-function now returns columns in lower case.
## Bugfixes
* Fixed a bug where `get_fgindex()` where labelled as `deprecated`
* Fixed a bug in the `limitations`-article where the desired number of observations werent compatible with the `kraken`-exchange.
* Fixed a warning in the `get_lsratio()`-function with `source = "binance"`
* Fixed a bug in the `lsr()`-indicator which broke the `chart()`-function when included.
* Fixed a bug in the `get_quote()`-function where if `to = NULL` and `from != NULL` the returned `quote` would be filtered according to `UTC` and not `Sys.timezone()`
* Fixed a bug in the `chart()`-function where the inferred intervals would be incorrect for leap years, and months different from 30 days.
# cryptoQuotes 1.3.0
## Improvements
### General function improvements
* `get_lsratio` and `getLSratio()` supports `kraken` and `bybit` as `source`
* `available_`-functions are more adaptive to the calling environments
```R
## charting the klines
## with indicators as
## subcharts
available_exchanges(type = 'ohlc')
```
Now returns all available exhanges that supports Open, High, Low and Close market data. The `type`-argument can be changed to, for example, `lsratio` to get
all available exchanges that supports Long to Shorts ratios. Similar changes have been made to remaining `available_`-functions.
### Error-handling
All `get_*`- and `available_*`-functions are now more robust to API and input errors.
### Default Returning
* `quotes` and `fear and greed index` now returns `200` rows instead of `100`
### Charting
* The `charts` now has a `dark` and `light` theme. Its passed into the `options = list(dark = TRUE)` of the `chart()`-function.
* The `charts` are now more color deficiency compliant, and the `deficiency` parameter in `options = list(deficiency = TRUE)` now applies to all `chart`-elements
* The `charts` are now constructed without `%>%` and, should, be more intuitive to navigate in. See example below,
```{r}
## charting the klines
## with indicators as
## subcharts
chart(
ticker = BTC,
main = kline(),
sub = list(
volume()
),
indicator = list(
bollinger_bands(),
sma(),
alma()
),
options = list(
dark = TRUE,
deficiency = FALSE
)
)
```
### Exchange Support
The following exchanges have been added to list of `exchanges` available,
* ByBit
### New features
* Funding rates, `get_fundingrate()`
<details>
<summary>Usage</summary>
```{r}
## get funding rate
tail(
get_fundingrate(
ticker = "BTCUSDT",
source = "binance"
)
)
```
</details>
* Open interest, `get_openinterest()`
<details>
<summary>Usage</summary>
```{r}
## get funding rate
tail(
get_openinterest(
ticker = "BTCUSDT",
source = "binance"
)
)
```
</details>
## Breaking Changes
### Charting
* All the `charting`-functions have been reworked without backwards compatibility, or `lifecycle::deprecated()`-warnings. The `charting`-functions were, and still is, in an `experimental`-stage.
### API Calls
* All `dates` passed to `get_*`-functions assumed the dates were given in `UTC`, and were retrieved as `UTC`. These have now been changed; all functions now uses `Sys.timezone()` as `default` upon request and retrieval.
## Warning
As the `cryptoQuotes`-package has moved to the `tidyverse` style guide, the `getFoo`-functions are now `deprecated`. These will be permanently deleted, and removed from the `cryptoQuotes`-package, at version 1.4.0!
# cryptoQuotes 1.2.1
### Minor Updates
* Added DOGECOIN data. This data is extracted on the `1m` chart, around Elon Musks Tweet.
* Added a usecase in the Vignette about Dogecoin and Elon Musk to showcase the functionality of the library.
### Bugfixes
* Corrected misspelled ticker in Vignette
* All returned Quotes are now in `UTC`, again.
* Fixed an error on the `Bitmart` API where weekly candles would throw an error.
# cryptoQuotes 1.2.0
* All `from` and `to` arguments are now more flexible, and supports passing `Sys.Date()` and `Sys.time()` directly into the `get`-functions.
* `getQuote()` now returns up to 100 pips preceding the specified `to` date, when `from = NULL`. It returns 100 pips, or up to `Sys.Date()`, from the specified `from` date.
The `getQuote()`-function can now be used as follows;
```
## Specifying from
## date only;
##
## Returns 10 pips
getQuote(
ticker = 'BTCUSDT',
interval = '1d'
from = as.character(Sys.Date() - 10)
)
```
```
## Specifying to
## date only;
##
## Returns 100 pips
getQuote(
ticker = 'BTCUSDT',
interval = '1d'
to = as.character(Sys.Date())
)
```
## Market Sentiment
Four new functions are added,
* `getFGIndex()` which returns the daily Fear and Greed Index.
* `addFGIndex()` which adds the Fear and Greed Index as a subplot to price charts.
* `getLSRatio()` which returns the long-short ratio with varying granularity. Contributor has been credited.
* `addLSRatio()` which adds the long-short ratio as a subplot to price charts.
## Convinience functions added
Three new convinience functions are added applicable to some situations,
* `removeBound()`
* `splitWindow()`
* `calibrateWindow()`
# cryptoQuotes 1.1.0
## Frontend
`getQuote()` now returns up to 100 pips when `to` and `from` is `NULL`
## Backend
* All code has been rewritten so its compatible with `httr2`, the package used `httr` at version `1.0.0`.
## Future releases
In the next release, three more exchanges will be supported.
## Known bugs
The returned `quotes` are in local timezone, this is an unintentional feature and will be fixed in a bugfix.
# cryptoQuotes 1.0.0
* Initial CRAN submission :rocket: