We’re excited to announce that 1.14 is now available on CRAN! You can install it with: With this release, we are introducing a major new feature: can now automatically configure a Python environment for the user, in coordination with any loaded R packages that depend on . This means that: Ultimately, the goal is for R packages using to be able...
sig <- c(1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1,1,1)
> sig
[1] 1111100001110000111
> rle(sig)
Run Length Encoding
lengths: int [1:5] 54343
values : num [1:5] 10101
もしかして、純資産と手数料の両方を計算する機能があるのでしょうか?
ひょっとして、純資産と手数料の両方を計算する機能はないのでしょうか?
言語、交換、FX? 意味不明です。
言語、証券取引所、FX? 何のことだかわからない。
R-ka、FX。
トレードのバランスチャート+コミッションスプレッド(コスト)を計算する関数です。
私が書いたものですが、正しいかどうかわかりません。
calc.balance <- function(sig,x, comision=0){ sig <- ifelse(sig>0, 1, -1) trades.count <- length(rle(c(sig))$values) # сколько было сделок comis <- comision*trades.count sig <- na.omit( dplyr::lag(sig) ) dC <- c(NA, diff(x)) bal <- cumsum(sig * tail(dC, length(sig) ) ) bal <- bal-comis return(bal)}MetaTrader5」(Python)パッケージを使用した、Rによる相場情報のダウンロードスクリプトの例です。Rに "reticulate "ライブラリがインストールされている必要があります。Pythonとのインタラクションを提供するライブラリです。ここと ここを よく読んでください。初めてレティキュレートライブラリを実行するとき、minicondaをインストールするように指示されます。断らないことをお勧めします。これは python(3.6.xx) とパッケージの初期セットがインストールされた conda 環境 r-reticulate を作成します。Pyhon (またはいくつかのバージョン) をすでにインストールしている場合は、スクリプトの最初に必要な環境を有効にする必要があります。MetaTrader5パッケージの全コマンドはこちら です。
初期化スクリプト
引用符をダウンロードするために、次の関数を作成します。
#---Function------------------------------- GetCotirPy <- function(sym){ selected = mt5$symbol_select(sym,TRUE) if (selected) py_run_string(" import pandas as pd import MetaTrader5 as mt5 rates = pd.DataFrame(mt5.copy_rates_from_pos(r.sym, r.tf, 1, r.bar))" ) return(py$rates) }取得したデータの構造を見てみましょう。
さらに、必要な計算を行います。
Rカード、FX。
トレードのバランスチャート+手数料/スプレッド(コスト)を計算するような機能ですね。
が書いたものですが、正しいかどうかわかりません。
ここではわからない。
Rカード、FX。
トレードのバランスチャート+手数料/スプレッド(コスト)を計算するような機能ですね。
こんなの書いたんだけど、合ってるかな?
ここでは、案件の 数はカウントしない方がいいと思います。各取引から手数料を含むスプレッドを差し引けばよいのです。つまり、こういうことです。
calc.balance <- function(sig,x, comision=0){ sig <- ifelse(sig>0, 1, -1) sig <- na.omit( dplyr::lag(sig) ) dC <- c(NA, diff(x)) bal <- cumsum(sig * tail(dC, length(sig) ) ) bal <- bal-comision return(bal)}トレードの回数は、ここでは数える必要がないと思うんです。各取引からスプレッドと手数料を差し引くだけです。そういうことなんです。
こんなもんじゃない。例えば
手数料はすべてのシグナルに対して発生するのではなく、シグナルが反転したときのみ発生します。私が使っているのは、関数
cnt<-function(x){ n <- 1:(length(x)-1) cnt <- 0 for(i in n) {if(x[i]!=x[i+1]) {cnt<-cnt+1}} return(cnt) }上記の信号ベクトルに対して
その差は明確ではありません。
また、残高を計算するための関数
test_bal <- function(sig, CO){ import::here(poorman, Lag = lag) import::here(.from = fTrading, maxDrawDown) sig %>% Lag() %>% na.omit()->sig CO %>% tail(length(sig))-> CO bal <- cumsum(CO * sig) K <- (last(bal)/length(bal) * 10^Dig)%>% round() Kmax <- max(bal)/which.max(bal) * 10^Dig %>% round() dd <- maxDrawDown(bal)[[1]] %>% round() op <-cnt(sig) tst<-list(bal = bal, k = K, k.max = Kmax, op = op, dd = dd) return(tst) }グッドラック
ここではわからない。
rle "を使用すると、シグナルの変化数、すなわちディール数を計算することができます。
シグナルが5回変化していることが「値」でわかりますが、これは5回取引があったということです。
その違いがわからない。
私は私の実装では、「最初の貿易、我々は持っていないのオープニングは、唯一の閉鎖が ある」の手数料のように考慮されると思います。
この案件のように、私のバリアントは手数料を取ります。
の方が正しいのですが、訂正は簡単で、"1 "を引くだけです。
Rで...を使ったスクリプト例
ありがとうございます。
rle」では、シグナルの変化回数、つまりトレード回数を計算することができます。
シグナルが5回変化していることが「値」でわかりますが、これは5回の取引があったことを意味します。
私の実装では、手数料も考慮し、「最初のトランザクションは、我々は持っていないのオープニングは、唯一の閉鎖が ある」としていると思います。
この案件のように、私のバリアントは手数料を取ります。
で、あなたの変種はこの変種から取り始めます、あなたの変種はより正しいですが、修正するのは簡単です、ただやるだけです、ただ "1" を引くだけです。
はい、あなたのバージョンの方が正しいです。