私は R と を初めて使用するquantstrat
ので、しばらくお待ちください。
Web 上の quantstrat のデモ/サンプル ファイルの多くは、TA ルールを使用した優れた例を提供していることに注意してください。
私の質問 / TL;DR
始値とその後の日中データを使用して、TA を使用せずに quantstrat で単純な日中しきい値交差ルールを構築するにはどうすればよいですか?
データ構造
商品がティッカー付きの株であると仮定しますXYZ
XYZ はxts
、日中 (1 分) OHLC データのオブジェクトとして格納されます。いいえ:
2014-05-30 15:55:00 148.6231 148.6239 148.6632 148.7173
2014-05-30 15:56:00 148.7574 148.7373 148.7976 148.7976
2014-05-30 15:57:00 148.7775 148.7844 148.7976 148.7775
2014-05-30 15:58:00 148.7574 148.7443 148.7706 148.8246
2014-05-30 15:59:00 148.7574 148.8115 148.9586 148.9051
2014-05-30 16:00:00 148.8649 148.8919 148.9586 148.8919
を介してto.daily()
、次のようになります。
2014-05-23 145.5871 146.8550 145.5196 146.0925
2014-05-26 146.2252 146.3783 145.7475 145.7497
2014-05-27 145.8070 146.1233 145.4283 145.7542
2014-05-28 146.0079 146.2983 145.5477 145.7511
2014-05-29 147.3544 147.7388 147.1623 147.4640
2014-05-30 147.3642 148.8919 147.4933 148.8919
構築しようとしているトレード
私が(簡単な出発点として)テストしたいのは次のとおりです。
- ある日の始値からn bps以上上昇したときに XYZ を空売りし、終値で手仕舞うことの収益性。
- ある日に XYZ がn bps を超えて下落したときに XYZ を購入することの収益性。
例題
2014-05-30
上記のデータでは、始値は でした147.36
。- XYZ がそのオープニング プリントから 50 bps を超えている場合はショートしたいと思います (つまり、
147.34*1.005 = 148.08
.148.08
が「アップ」のしきい値になりました)。 - 逆に、XYZ が最初の出力 (つまり ) から -50 bps 未満の場合は長くしたいと思い
147.34*.995 = 146.60
ます。146.60
は現在、私の「ダウン」しきい値です)。 - どちらの場合も、出口はその日の終値になります。
- 理想的には、私のコードは、各分バーの終値が <> シグナルしきい値価格 (始値から派生) であるかどうかを評価し、それに
blotter
応じてトランザクションを入力します。 - 私が始めるための答えに満足していますが、特に、注文サイズの処理のおもちゃの例をいくつか示すことができれば(つまり、しきい値を超えると、予想される復帰が発生する前にその動きがしばらく延長される可能性があります-取得方法がわからないquantstrat で処理します)
これがばかげて単純な場合はお詫び申し上げます。さまざまな例とデモを試してみましたが、うまくいかないようで、このクエリを正しく設定する方法について助けていただければ幸いです