問題タブ [pine-script]
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.
pine-script - 複数の strategy.exit 呼び出しを使用する TradingView ヘルプ
TradingView のストラテジー テスターでオープン ポジションを変更する際に奇妙な問題が発生しています。最初にコンテキストを説明しましょう:
次の行は、入力条件に基づいて注文を開きますentryLong
。
strategy.entry("ID", strategy.long, comment="L_Entry", when = entryLong)
これはうまく機能しますが、注文を閉じるまでお金を稼ぐことはできません ;) したがって:
strategy.exit( "L_STOP", "ID", loss = fixedSL * 10)
fixedSL
この行は未決済注文を変更して、エントリ ポジションを下回る価格でストップ ロスを追加します。この時点で、私の唯一の終了条件は、価格がストップ ロスに達することであり、常に負け戦略になります。これに対処するために、次のものを含めます。
if (exitLong) strategy.exit("L_TRAIL", "ID", trail_points = fixedTP * 10, trail_offset = trailSL * 10)
次に、設定された利益に達した後、トレーリング ストップ ロスを追加します。このようにして、成長の余地を残しつつ、安全に利益を確保することができます。ここに問題があります。各終了条件には ID があります - L_STOP
and L_Trail
(L は Long を表し、bc これは買いです)。デバッグに役立つようにチャートでこれらの ID を参照しL_STOP
、注文をクローズするように見えるのは のみです。これにより、L_TRAIL
終了条件が満たされていない (可能性は低い) か、設定されていないことがわかります。boolexitLong
が True に設定されており、行が実行されていることはわかっています。
トレーリング ストップとストップ ロスを 1 回のstrategy.exit
呼び出しで設定することで、この問題を完全に回避できますが、 L_STOPまたはL_TRAILが画面に表示され、取引が終了した原因を知ることが非常に役立ちます。条件が満たされたときに注文の ID のみが出力されるため、1 回の呼び出しでは、たとえばL_STOPだけになり、終了のトリガーに関する情報はあまり得られません。
あらゆるフィードバックが役に立ちます。必要に応じて、グラフのスクリーン キャプチャも含めることができます。