ゆとり世代の自由研究

勉強が一生終わりません

Pineスクリプト リファレンス strategy

strategy

この関数はいくつかのストラテジーのプロパティを設定します。
strategy(title, shorttitle, overlay, format, precision, scale, pyramiding, calc_on_order_fills, calc_on_every_tick, max_bars_back, backtest_fill_limits_assumption, default_qty_type, default_qty_value, initial_capital, currency, slippage, commission_type, commission_value, process_orders_on_close, close_entries_rule, margin_long, margin_short, explicit_plot_zorder, max_lines_count, max_labels_count, max_boxes_count, risk_free_rate, use_bar_magnifier) → void
//@version=5
strategy("Strategy", overlay = true)

// Enter long by market if current open is greater than previous high.
strategy.entry("Long", strategy.long, 1, when = open > high[1])
// Generate a full exit bracket (profit 10 points, loss 5 points per contract) from the entry named "Long".
strategy.exit("Exit", "Long", profit = 10, loss = 5)
引数
title (const string) インジケーター/ストラテジーウィジェットで表示されるインジケーターのタイトル。必須の引数です。
shorttitle (const string) チャートの凡例に表示される短いインジケーターのタイトル。オプション引数です。
overlay (const bool) trueの場合、インジケーターは主系列のオーバーレイとして追加されます。falseの場合 ― 別のチャートペインに追加されます。デフォルトはfalseです。
format (const string) 価格軸におけるインジケーターの値をフォーマットするタイプ。可能な値は以下の通りです。{var format.inherit}, format.priceformat.volume。デフォルトはformat.inherit です。
precision (const int) 価格軸におけるインジケーターの値に対する浮動小数点以下の桁数。負でない整数で16を越えない範囲で設定する必要があります。省略した場合、親系列のフォーマットが使用されます。フォーマットがformat.inheritでこの引数が設定されている場合、フォーマットはformat.priceとなります。
scale (scale_type) インジケーターが割り当てられる価格スケール。可能な値は scale.rightscale.leftscale.none です。値 scale.none は、'overlay = true' の設定との組み合わせでのみ適用できます。省略された場合は、メインスケールが使用されます。
pyramiding (const int) 同じ方向に許可されるエントリーの最大数。値が0の場合、同じ方向のエントリーオーダーを1つだけ開くことができ、以降のエントリー注文は拒否されます。デフォルト値は0です。
calc_on_order_fills (const bool) バー内での注文の計算を1回追加します。このパラメーターが 'true' に設定されている場合、ストラテジーは注文が約定した後に(バーの終値でだけでなく)バー内でもう一度再計算されます。デフォルト値は 'false' です。
calc_on_every_tick (const bool) イントラバー(バー内)のストラテジーの追加計算。パラメーターが 'true' の場合、ストラテジーは、バーの終値ではなく、リアルタイムで毎ティック計算を行います。このパラメータは、ヒストリカルデータでのストラテジーの計算には影響を与えません。デフォルト値は 'false' です。
max_bars_back (const int) ストラテジーで履歴参照可能なバーの最大数。このパラメーターは、スクリプトコード内に変数の履歴データの参照 (‘[]’ 演算子が使用されます) がある場合に、スクリプト内のすべての内蔵変数またはユーザー変数に適用されます。通常、Pineスクリプト™の変数のバッファサイズは自動検出されますが、場合によっては自動検出ができないこともある為、このパラメータではユーザーが手動でこの値の上限を設定することができます。注: パラメータの代わりに max_bars_back 関数を使用すると、1つの変数のみに適用されるため最適です。
backtest_fill_limits_assumption (const int) 指値注文実行の想定。指値注文は、市場価格が指値注文の水準を指定されたティック数だけ超える場合にのみイントラバーで約定されます。
default_qty_type (const string) strategy.entry または strategy.order 関数で `qty` パラメーターに指定する値が何を表すかを決定します。利用可能な値は、契約数/株数/ロット数の strategy.fixed、通貨建ての金額の strategy.cash、利用可能な資金に対するパーセンテージの strategy.percent_of_equity です。
default_qty_value (const int/float) strategy.entry または strategy.order 関数で 'qty' パラメーターが指定されていない場合に、'default_qty_type' 引数で定義した単位で取引するデフォルトの数量。
currency (const string) ストラテジーの口座通貨。オプション引数で、デフォルトは、チャート上で取引されているシンボルの通貨です。利用可能な値は、 currency.NONEcurrency.USDcurrency.EURcurrency.AUDcurrency.GBPcurrency.NZDcurrency.CADcurrency.CHFcurrency.HKDcurrency.JPYcurrency.NOKcurrency.SEKcurrency.SGDcurrency.TRYcurrency.ZARcurrency.BTCcurrency.ETHcurrency.MYRcurrency.KRWcurrency.USDT です。
slippage (const int) 市場の売買価格やストップ注文の約定価格に加算/減算されるティック単位のスリッページです。mintick=0.01 で slippage=5 の場合、スリッページの合計は、5*0.01=0.05 になります。
commission_type (const string) 注文の手数料タイプ。利用できる値は以下の3つです: strategy.commission.percent (注文金額のパーセンテージ)、strategy.commission.cash_per_contract (取引毎に口座通貨の一定額)、strategy.commission.cash_per_order (注文毎に口座通貨の一定額)
commission_value (const int/float) 注文の手数料値。選択されたタイプ(commission_type)に応じてパーセントまたは金額が含まれる。
process_orders_on_close (const bool) `true` に設定すると、バーがクローズしてストラテジーの計算が完了した後に、追加で注文の試行が行われます。注文が成行注文の場合には、ブローカエミュレーターは次のバーの始値の前にその注文を実行します。注文が価格条件付きの場合には、注文は価格条件が合致する場合のみ約定されます。このオプションは現在のバーでポジションを閉じたい場合に便利です。デフォルト値は 'false' です。
close_entries_rule (const string) 注文がクローズされる順序を決定します。許可される値は: 'FIFO' または 'ANY' です。FIFO (First-In, First-Out) では、複数のトレードがオープンしている時には最も早いトレードが最初に閉じられます。このルールは、株式、先物、米国のFX (NFAコンプライアンスルール 2-43b) に適用されます。'ANY' はトレードが任意の順序で閉じられる可能性を意味します(これは米国以外のFXで許可されています)。デフォルト値は 'FIFO' です。
max_lines_count (const int) 表示される直近のライン描画の数。デフォルト値は50で、許可される最大値は500です。
max_labels_count (const int) 表示される直近のラベル描画の数。デフォルト値は50で、許可される最大値は500です。
max_boxes_count (const int) 表示する直近のボックス描画の数。デフォルト値は50で、最大許容値は500です。
margin_long (const int/float) マージンロングとは、ロングポジションの場合に、現金または担保によってカバーしなければならない購入価格の割合のことです。正の数値である必要があります。オプションです。デフォルトは100です。
margin_short (const int/float) マージンショートとは、ショートポジションの場合に、現金または担保によってカバーしなければならない購入価格の割合のことです。正の数値である必要があります。オプションです。デフォルトは100です。
explicit_plot_zorder (const bool) インジケーターのプロット、塗りつぶし、水平線のレンダリング順を指定します。trueの場合、プロットはインジケータのコード上の順序に基づいて描画され、新しいプロットは前のプロットの上に描画されます。これは plot*() 関数、fillhline にのみ適用されます。オプション引数。デフォルトは false です。
initial_capital (const int/float) ストラテジーの取引に利用可能な初期資金です。`currency` で定義した通貨建てで指定します。オプション引数で、デフォルトは 1000000 です。
risk_free_rate (const int/float) リスクフリー収益率とは、最小リスクまたはゼロリスクでの投資の価値の年間変動率で、シャープレシオとソルティノレシオの計算に使用されます。
use_bar_magnifier (const bool) `true` の場合、ブローカーエミュレーターはより現実に即した結果を得るため、バックテスト中では下位の時間足のデータを使用します。オプションです。デフォルトはfalseです。この機能を利用できるのはPremiumプランのアカウントに限られます。
備考
全てのストラテジースクリプト毎に strategy を呼び出す必要があります。
Pineスクリプト™のコードで引数 `calc_on_every_tick = true` を使用すると、ヒストリカルデータとリアルタイムデータで異なる計算が行われる可能性があります。
標準外のチャートタイプを戦略のベースに使用した場合は、成績が変わってしまいます。注文がそのチャートの価格で実行されるからです。(例えば、平均足のチャートでは平均足の価格(平均価格)で実行され、実際のマーケット価格では実行されません。) 従い、戦略を作成する場合は標準のチャートを使用することを強くお勧めします。
 

strategy.entry

市場ポジションを持つためのコマンドです。同じIDを持つ注文が既に保留中の場合には注文を変更できます。指定されたIDの注文が無い場合には新規注文が発注されます。エントリー注文を無効にするには、strategy.cancel または strategy.cancel_all を使用して下さい。strategy.order関数と比較すると、strategy.entry関数はピラミッディングの影響を受け、市場ポジションを正しく反転させることができます。'limit' と 'stop' 双方のパラメータが 'NaN' の場合には、注文の種類は成行注文です。
strategy.entry(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message) → void
//@version=5
strategy(title = "simple strategy entry example")
strategy.entry("enter long", strategy.long, 1, when = open > high[1]) // enter long by market if current open great then previous high
strategy.entry("enter short", strategy.short, 1, when = open < low[1]) // enter short by market if current open less then previous low
引数
id (series string) 必須パラメーター。注文の識別子です。識別子を指定する事で注文の変更やキャンセルが可能となります。
direction (strategy_direction) 必須パラメーターです。市場ポジションの方向: 'strategy.long' はロング、 'strategy.short' はショートを表します。
qty (series int/float) オプションパラメーター。トレードの契約/株式/ロット/ユニット数です。デフォルト値は 'NaN' です。
limit (series int/float) オプションパラメーター。注文の指値価格です。指定した場合、注文の種類は 'imit' または 'stop-limit' です。'NaN' の場合は他の注文の種類になります。
stop (series int/float) オプションパラメーター。注文の逆指値価格です。指定した場合、注文の種類は 'stop' または 'stop-limit' です。'NaN' の場合は他の注文の種類になります。
oca_name (series string) オプションパラメーター。注文が属するOCAグループの名前です。注文が特定のOCAグループに属さない場合は、空の文字列にして下さい。
oca_type (input string) オプションパラメーター。OCAグループの種類です。許可される値は: strategy.oca.none - 注文は特定のOCAグループに属しません。strategy.oca.cancel - 注文はOCAグループに属し、注文が約定されると同じグループの他のすべての注文はキャンセルされます。strategy.oca.reduce - 注文はOCAグループに属し、X数の注文が約定すると、同じOCAグループの他の注文のポジション数はX減少します。
comment (series string) オプションパラメーター。注文に関する追加のメモです。
when (series bool) オプションパラメーター。注文の条件です。条件が 'true' の場合、注文が発注されます。条件が 'false' の場合には何も起こりません(以前発注された同じIDの注文はキャンセルされません)。デフォルト値は 'true' です。
alert_message (series string) 「アラート作成」ダイアログボックスの「メッセージ」欄で {{strategy.order.alert_message}} のプレースホルダーが用いられた際に、それを置き換えるアラートメッセージを設定するオプションパラメーター。

strategy.exit

これは、特定のエントリーまたはすべてのマーケットポジションを決済するコマンドです。もし同じIDを持つ注文が既に保留中の場合は、注文を変更することができます。もしエントリー注文が約定されていない時に決済注文が生成された場合、エントリー注文が約定されるまで待ってから、決済注文が出されます。決済注文を無効にするには、コマンド strategy.cancel または strategy.cancel_all を使用する必要があります。関数 strategy.exit が一度だけ呼び出された場合には、一度だけポジションを決済します。複数回決済したい場合には、コマンド strategy.exit を複数回呼び出す必要があります。ストップロスとトレーリングストップを使用する場合には、それらの注文タイプは 'stop' であり、そのうちの1つの注文(最初に約定すると思われるもの)だけが出されます。もし次のすべてのパラメータ 'profit'、'limit'、'loss'、'stop'、'trail_points'、 'trail_offset' が 'NaN' の場合、コマンドは失敗します。成行注文を使用して決済するには、コマンド strategy.close または strategy.close_all を使用する必要があります。
strategy.exit(id, from_entry, qty, qty_percent, profit, limit, loss, stop, trail_price, trail_points, trail_offset, oca_name, comment, comment_profit, comment_loss, comment_trailing, when, alert_message, alert_profit, alert_loss, alert_trailing) → void
//@version=5
strategy(title = "simple strategy exit example")
strategy.entry("long", strategy.long, 1, when = open > high[1]) // enter long by market if current open great then previous high
strategy.exit("exit", "long", profit = 10, loss = 5) // generate full exit bracket (profit 10 points, loss 5 points per contract) from entry with name "long"
引数
id (series string) 必須パラメーター。注文の識別子です。識別子を指定する事で注文の変更やキャンセルが可能となります。
from_entry (series string) オプションパラメーター。エグジットする特定のエントリー注文のID。全てのエントリーを終了するには空の文字列を利用して下さい。デフォルト値は空の文字列です。
qty (series int/float) オプションパラメーター。トレードを終了する契約/株式/ロット/ユニット数です。デフォルト値は 'NaN' です。
qty_percent (series int/float) ポジションを閉じる割合を0~100で指定します。優先順位は、'qty' パラメーターよりも低くなります。オプション引数で、デフォルトは 100 です。
profit (series int/float) オプションパラメーター。利益目標 (ティックで指定) 。利益目標が指定されている場合、指定された利益額 (ティック) に達すると、マーケットポジションを決済するための注文が行われます。デフォルト値は 'NaN' です。
limit (series int/float) オプションパラメーター。利益目標(特定の価格が必要)。利益目標が指定されている場合は、決済注文は指定価格(またはそれ以上)でマーケットのポジションを決済するための注文が発注される。パラメーター'limit'の優先度は、パラメーター'profit'の優先度より高くなります(値が'NaN'ではない場合、'profit'の代わりに'linit'が使用される)。デフォルト値は'NaN'です。
loss (series int/float) オプションパラメーター。損切(ティックで指定する)。もしティックでの損切が指定されている場合は、特定の損失合計額(ティックにおいて)に達すると、マーケットポジションの決済注文が発注されます。デフォルト値は 'NaN' です。
stop (series int/float) オプションパラメーター。損切 (特定の価格が必要)。もし損切が指定されている場合は、特定の価格(もしくはそれ以上悪化の価格)で市場のポジションを終了するための損切注文が出される。パラメータ 'stop'の優先度は、パラメータ 'loss'の優先度よりも高くなります(値が 'NaN'でない場合、 'loss'の代わりに 'stop'が使用されます)。デフォルト値は 'NaN' です。
trail_price (series int/float) オプションパラメーター。トレーリングストップ活動レベル(特定の価格が必要)。トレーリング注文が指定されている場合、指定された価格レベルに達した時にトレーリングストップ注文が行われる。トレーリングストップ注文の初期価格を決定する補正値(ティック)は、 'trail_offset'パラメーターで指定されます。アクティブ化レベルより低いXティックは買いポジションを閉じます。アクティブ化レベルより高いXティックは売りポジションを閉じる。デフォルト値は 'NaN' です。
trail_points (series int/float) オプションパラメーター。トレーリングストップ活動レベル(ティックで指定された利益)。トレーリング注文が指定されている場合、計算された価格レベル(指定利益額)に達すると、トレーリングストップ注文が行われます。トレーリングストップ注文の初期価格を決定する補正値(ティック)は、 'trail_offset' パラメーターで指定されます。アクティブ化レベルより低いXティックは買いポジションを閉じます。アクティブ化レベルより高いXティックは売りポジションを閉じます。デフォルト値は 'NaN' です。
trail_offset (series int/float) オプションパラメーター。トレーリングストップの価格(ティックで指定)。 トレーリング・ストップ・オーダーの初期価格を決定するためのティック単位の補正値。Xティックが'trail_price'または 'trail_points'よりも低い位置にあれば買いポジションを決済します。Xティックが'trail_price'または 'trail_points'よりも高い位置にあれば、売りポジションを決済します。デフォルト値は 'NaN' です。
oca_name (series string) オプションパラメーター。利益目標、ストップロス/トレーリングストップ注文が属する、OCAグループの名前(oca_type = strategy.oca.reduce)。名前が指定されていない場合は、自動的に生成されます。
comment (series string) 注文に関する追加のメモ。指定した場合、チャート上の注文マークの近くに表示されます。オプション引数で、デフォルトは na です。
comment_profit (series string) 特にエグジットが `profit` または `limit` を越えてトリガーされた場合の注文に関する追加のメモ。指定した場合、 `comment` パラメーターよりも優先され、チャート上の注文マークの近くに表示されます。オプション引数で、デフォルトは na です。
comment_loss (series string) 特にエグジットが `stop` または `loss` を越えてトリガーされた場合の注文に関する追加のメモ。指定した場合、 `comment` パラメーターよりも優先され、チャート上の注文マークの近くに表示されます。オプション引数で、デフォルトは na です。
comment_trailing (series string) 特にエグジットが `trail_offset` を越えてトリガーされた場合の注文に関する追加のメモ。指定した場合、 `comment` パラメーターよりも優先され、チャート上の注文マークの近くに表示されます。オプション引数で、デフォルトは na です。
when (series bool) オプションパラメーター。注文の条件です。条件が 'true' の場合、注文が発注されます。条件が 'false' の場合には何も起こりません(以前発注された同じIDの注文はキャンセルされません)。デフォルト値は 'true' です。
alert_message (series string) 「アラート作成」ダイアログの「メッセージ」欄で '{{strategy.order.alert_message}}' プレースホルダーが使用されている場合に置き換わるテキスト。オプション引数で、デフォルトは na です。
alert_profit (series string) 「アラート作成」ダイアログの「メッセージ」欄で '{{strategy.order.alert_message}}' プレースホルダーが使用されている場合に置き換わるテキスト。特にエグジットが `profit` または `limit` を越えてトリガーされた場合にのみ、テキストを置き換えます。オプション引数で、デフォルトは na です。
alert_loss (series string) 「アラート作成」ダイアログの「メッセージ」欄で '{{strategy.order.alert_message}}' プレースホルダーが使用されている場合に置き換わるテキスト。特にエグジットが `stop` または `loss` を越えてトリガーされた場合にのみ、テキストを置き換えます。オプション引数で、デフォルトは na です。
alert_trailing (series string) 「アラート作成」ダイアログの「メッセージ」欄で '{{strategy.order.alert_message}}' プレースホルダーが使用されている場合に置き換わるテキスト。特にエグジットが `trail_offset` を越えてトリガーされた場合にのみ、テキストを置き換えます。オプション引数で、デフォルトは na です。