問題タブ [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.
r - quantstrat addPosLimit() は、同じ戦略でロングとショートの両方を行うときにポジションを制限していません
ロングとショートの両方を行う戦略があり、addPosLimit()
機能を に設定した場合maxpos=1 and minpos=-1
でも、複数のロング ポジションと 1 つのショート ポジションが必要です。しかし、戦略をロングのみ、またはショートのみにすると、期待どおりに機能します。
この例の基本的な戦略を作成しました。3 つの移動平均があります。1 つの長期 SMA はロング/ショート バイアス フィルターとして機能し、2 つの短期 SMA はロング バイアスがあるときにロングになるクロス アップとして機能し、ショート バイアスがあるときにショートにクロス ダウンします。取引が開始されると、一定の距離に利益目標とストップロスが設定されます。
これが戦略です。
これは、取引の出力のサンプルです。
戦略をロングにして、利益目標に到達するかストップアウトするか、またはショートシグナルが与えられたときに注文をクローズするか、またはその逆を行います。
すべての短いサイド コードをコメント アウトすると、期待どおりに動作するようです。ショートサイドをコメントアウトした場合の取引例です。
ターゲット/ストップに達するまで、再び取引されないことがわかります。
r - ループから Quantstrat へ
quantstrat を使用して簡単な取引戦略を構築したいと考えています。パッケージを使わずに書いたストラテジーとは結果が違うので苦労しています。特に、これはアイデアです:
EMA1 > EMA2 & EMA1 > EMA3 & EMA1_lag < EMA1 の場合にロングを取りたい
EMA1 < EMA3 の場合、エグジットして横ばいにしたい
ここに私が書いたものと作品があります:
quantstrat では次のように書きましたが、異なる結果が得られます。
同様の結果が得られない理由を理解するのを手伝ってくれる人はいますか?
r - 実行中の関数チェーン注文、order.price
目標: タイム スタンプを使用してストップ リミットを生成します (トレーリング ストップではありません)。コーディングの大部分は、ATR に基づいてポジション サイズを計算するための Ilya Kipnis の設計から盗用されています。コードへのリンクは以下のコメントにあるため、再現できます。
関数が望ましい効果を生み出すことはかなり確信していますが、order.price がどのような種類の情報を必要とするかはわかりません。これが数値ではなく関数であることを示す必要があるようです。
order.price を計算するために、チェーン オーダーで次の関数を実行しています。
エラーは次のとおりです。
r - ruleSignal の stoplimit タイプの変更
ストップリミット (ストップロス) ルールを変更するのを手伝ってくれる人がいるのだろうか. 指値を下回る価格ではなく、指値を下回る価格で販売するように変更するにはどうすればよいですか?