問題タブ [quantstrat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
916 参照

r - R Blotter と quantstrat による複数通貨のポートフォリオと口座

口座内の複数の通貨と、ポートフォリオ内の異なる通貨単位の証券をモデル化するための最良の方法は何ですか?

  1. ポートフォリオと口座を単一の通貨に保つのが最善ですか? ブロッターは必要に応じて fx を処理しますか? また、どのように fx レートを .blotter にロードしますか?
  2. あるいは、複数通貨の資産額を持つ複数通貨のアカウントを作成できますか?

私は詳細をいじって喜んでいますが、ブロッターの専門家からの一般的なアプローチに関するアドバイスを本当に行うことができます.

これが他の場所でカバーされている場合はお詫び申し上げます。探しても見つかりませんでした。

例: 米ドルで 5 株、ユーロで 5 株のユニバース。過去 3 か月間で最も高い 5 つの % EUR リターンを取引する戦略を作成します (つまり、USD 株式リターンは株式と fx リターンの両方です)。

0 投票する
1 に答える
508 参照

r - R QUANTSTRAT - シグナル適用時のエラー

この質問はすでに尋ねられていることは知っていますが、ここに投稿されたすべての回答がうまくいきませんでした。単純な 1 つのインジケーター戦略を 1 つバックテストしますが、最終的に次のエラーが発生します。

私が扱っているデータは、ビッド/アスク量、総ボリューム、ビッド/アスク クォート、クオート、1 秒間のビッド/アスク取引数を示しています。

次の構造で:

戦略は非常に単純です。指定された間隔の移動ウィンドウの実行中の合計がしきい値以上になると、シグナルが発生するはずです。

実行中の合計を持つインジケーターはうまく機能します:

与える

しかし、私が得られないのは、パラメータラベル=「runsum」で述べられているように、newc olumns が「 X1.runsum」だけでなく「runsum 」と呼ばれる理由です。これにより、シグナルを呼び出すときに命名の問題が発生する可能性があります。

冒頭で説明したように、エラーが発生します。

私はこれを試しました:

  • add.signal の名前をcolumn = X1.runsumからcolumn = runsum- に変更しても役に立たなかった
  • RRT パッケージの新しいバージョンをダウンロード - 役に立たなかった
  • インジケーター機能のトリックもarguments = list(x = quote(data$ask.vol[,1])- 役に立たなかった

データには OHLC 以外の情報が含まれているため、標準の OHLC 関数を使用できません。

助けていただけますか?

0 投票する
2 に答える
380 参照

r - Quantstrat 戦略 - エラー

私の quanstrat 戦略は、まだ議論されていないエラーを返します。

戦略は非常に単純です。一定期間のローリング サムを計算します。ローリング サムが一定のしきい値を超えている場合は、ロングを入力し、+/- 5% の距離でテイプロフィットとストップ ロスの ​​2 つの OCO 注文を同時に送信します。

コードは次のとおりです。

データ構造は次のとおりです。

これは、1 秒間の取引のビッド/アスク ボリューム/頻度を示す xts オブジェクトであり、言及されたエラーは次のように述べています。

orderbook には 3 つの注文すべてが正しい価格で含まれているため、注文チェーンに問題はないようです。

何か案は?

私はどこかで次のような指値注文価格を指定しているのを見つけました:

しかし、うまくいきませんでした。

0 投票する
1 に答える
326 参照

r - quantstrat: 同じバーで実行する方法は?

あなたがこれを行うべきではないことはわかっていますが、私はほぼ日次および週次のデータに基づいて取引しているので、代わりに同じバーで実行できれば、アイデアの取引についてより現実的なアイデアを得ることができると思います翌日のオープンで買います。ありがとう!

0 投票する
1 に答える
330 参照

r - xtsExtra の色オプション

xtsExtra を使用して、複数の時系列プロットの色を調整するのに問題があります。

これは最小限の例のコードです:

plot.zoo コマンドは

ここに画像の説明を入力

一方、xtsExtra パッケージの plot コマンドでは、

ここに画像の説明を入力.

2 番目のプロットでは、2 つの時系列がうまく重なり合っていますが、col オプションの影響を受けないように見えます。

xtsExtra パッケージ (rev. 862) の最新バージョン 0.0-1 を使用しています。

xts および xtsExtra パッケージは Zoo の拡張機能として設計されており、同じ引数 (および多くの追加引数) で動作する必要があることを理解しています。screens オプションを使用して plot.zoo で同じオーバーレイ動作を得ることができますが、問題を引き起こす plot.xts への呼び出しが quantstrat パッケージ (関数 chart.forward.training および chart. .forward.testing など) 変更するのは嫌いです。(ちなみに、これらの関数の dev.new() も問題を引き起こしています。)

質問: xtsExtra パッケージのプロットが col= オプションに応答しないように見えるのはなぜですか? また、関数の呼び出しを変更することが実際のオプションではない場合、どうすればよいでしょうか?

0 投票する
1 に答える
173 参照

r - quantstrat enable.rule が機能しない

使用するenable.ruleと、ルールの internal をオーバーライドできませんenabled=FALSE

例えば:

このコードを applyStrategy の前に配置すると:

ルールは有効またはアクティブになりません。ルールを有効にする唯一の方法は、その内部有効を に変更することTRUEです。正確なスペルを試しましたが、うまくいきません。

これは大きな問題ではありません。ルールの内部有効化をパラメーター化してこの方法で制御することはできますが、既存のコードを使用してシステムを実行したいからです。

問題への洞察はありenable.ruleますか?

0 投票する
0 に答える
385 参照

r - R - 優先および getPrice に関する Quantstrat の問題

現在、Quandl 先物データを使用して quantstrat で戦略に取り組んでいます。しかし、インジケーター、シグナル、および注文ルールを追加した後で applyStrategy() を実行しようとすると、次のエラー メッセージが表示されますError in getPrice(mktdata, prefer = prefer) : object 'prefer' not foundapplyIndicators()デバッグ時にapplySignals()うまく機能するため、ルールの処理でエラーが発生する可能性が最も高くなります。以下は、コードの最後の部分に加えて信号を適用した後に生じる mktdata 変数の末尾です。

mktdata:

ここに画像の説明を入力

コード:

の出力sessionInfo():

ここに画像の説明を入力

0 投票する
1 に答える
433 参照

r - quantStrat で add.distribution パラメータセットのみを長く適用する方法 - param.combo[[param.label]] の simpleError

私のストラテジーにはロング ポジションしかありませんが、luxor-demo と同様の add.distribution ルールを適用しています。

戦略全体は機能しますが、パラメーターセットを適用すると、次のエラーが発生します。

テイクプロフィットロング 47 0.047

TakeProfitLONG 47 0.047 式の評価結果:

param.combo [[param.label]] の simpleError: 添え字が範囲外です

タスク 47 の結果を取得した numValues: 47、numResults: 47、停止: FALSE ステータスを返す FALSE 評価 # 48: $param.combo

単純な takeProfit ルールでディストリビューションを実行しようとしています (stopLoss または TrailingStop から同じ結果を取得します):

次のようにディストリビューションを追加しています。

セットを適用します。

私の限られたデバッグから、パラメーターセットは単純なベクトルのようですが、apply.paramset では次の関数が失敗します。

ここで私はRに慣れていないので、これを調べて4週間しか経っていませんが、おそらく次の呼び出しです:

エラーを引き起こす可能性がありますか?

私は新しいので謝罪する必要がありますが、これに遭遇した人はいますか、またはロングオンリー戦略で1つのアイテムにのみディストリビューションを適用する方法を助けることができますか?

よろしくお願いします!

編集 1: SessionInfo()