Pine Scriptのマイナス手数料:意味と直し方
3分で読めます · 更新日
TradingViewのStrategy Testerにマイナスの手数料が表示されたり、バックテストが本来よりずっと良く見えたりする場合、最初に確認すべきは手数料の設定です。このページでは、Pine Scriptでマイナスの手数料が何をするか、なぜ誤って入り込むか、ブローカーに合ったコストの設定方法を説明します。
Pine Scriptで手数料を設定する場所
ストラテジーの取引コストは、strategy()呼び出しの2つの引数で決まります:
- commission_type:コストの測り方です。
strategy.commission.percentは注文金額に対する割合、strategy.commission.cash_per_contractは1枚あたりの固定額、strategy.commission.cash_per_orderは1注文あたりの固定額です。 - commission_value:その種類で使う数値です。初期値は0なので、手数料を設定していないストラテジーは無料で取引していることになります。
同じ2つの設定はストラテジーの設定 > プロパティタブにもあります。そこに入力した値はあなたのチャートではコードの値より優先されるため、同じスクリプトでも人によって結果が変わります。
マイナスの手数料が何をするか
マイナスのcommission_valueはクレジットとして処理されます。本来コストで減るはずの口座に、約定のたびにお金が加わります。流動性を提供する注文にリベートを払う取引所もあるため、小さなマイナス値は実際のリベート制度を表すことがあります。ブローカーに手数料を払う個人トレーダーの場合、マイナスの数値はほぼ必ず入力ミスかコピーしたスクリプトが原因で、すべての取引を実際より良く見せます。
影響は取引回数とともに大きくなります。年に400回取引し、1枚・1約定あたり$2のクレジットがあるストラテジーは、値動きを1つも数える前に、設定だけで1枚あたり$1600を稼ぎます。
見つけ方
- Strategy Testerの取引一覧で、小さな勝ちトレードの純利益が値動きに枚数価値を掛けた額より大きい。
- 同値撤退(同じ価格でエントリーとエグジット)なのに利益が出ている。
- パフォーマンス概要で支払手数料がマイナスの数値になっている。
- エントリーロジックを変えずに取引頻度を上げると、結果が目に見えて良くなる。
正しい設定方法
- ブローカーの1枚・片道あたりの実際の総コストを調べます:手数料、取引所手数料、清算手数料、規制関連手数料の合計です。
- 先物には
commission_type=strategy.commission.cash_per_contractをその片道の金額で使います。Strategy Testerはエントリーとエグジットの両方で差し引くため、片道$2.50のコストは往復$5になります。 - 1株単位の株式やETFには、注文ごとの定額手数料なら
cash_per_order、ブローカーが割合で課金するならpercentを使います。 slippage引数でティック単位のスリッページを加えます。ESやNQのような流動性の高い株価指数先物なら、片道1ティックが妥当な出発点です。- スクリプトを読み込んだ後にプロパティタブを確認し、そこに残った値がコードを上書きしないようにします。
片道$2.50のコストと1ティックのスリッページを設定したESストラテジーの例:
strategy("ES levels test", overlay=true,
commission_type=strategy.commission.cash_per_contract,
commission_value=2.5, slippage=1)
ストラテジーを実運用する前にこれが重要な理由
多くのデイトレード戦略が利益を出せるかはコストで決まります。ESの1ティックは0.25ポイントで$12.50の価値があるため、1回あたり平均数ティックを狙う戦略は、実際の手数料とスリッページを入れると黒字から赤字に変わることがあります。コストがゼロかマイナスのときだけ機能するバックテストは、実運用では通用しません。バックテストと実際の結果がずれる他の理由はバックテストとアラートに関するPine Scriptのよくある質問で、残りのチェック項目は過剰最適化されたトレードシステムの見分け方で解説しています。
日々の水準でストラテジーを検証する
Little Bird Tradingは20市場、合計23銘柄について、次のセッションのサポート、レジスタンス、ピボットの水準を公開しています。ES、NQ、SPY、QQQも含まれます。MyLinedChartを使えば水準をチャートに読み込んだりデータとしてダウンロードしたりでき、その価格でのエントリーを現実的なコストで検証できます。デイトレードプランの例で1日分のプランの見え方がわかります。
よくある質問
Pine Scriptでcommission_valueはマイナスにできますか?
はい。Strategy Testerはマイナスの値を約定ごとのクレジットとして扱います。実際に受け取るリベートを再現する場合だけ使ってください。
TradingViewの手数料は片道ごとですか、往復ごとですか?
約定ごとです。金額はエントリーとエグジットのそれぞれで差し引かれるので、片道のコストを入力してください。
他の人のチャートだと、なぜ私のストラテジーの結果が違うのですか?
手数料やスリッページを含むプロパティタブの設定が、コードの値と異なることがあります。まずそこを比べてください。
これは投資助言ですか?
いいえ。このページはバックテストの設定についての学習用です。取引の判断と責任はご自身にあります。
教育目的のコンテンツです。投資助言ではありません。