返した値配列要素の中位数である.
パラメータ
id
(int[]/float[]) アレイオブジェクトは,また会おう
array.avg
array.variance
array.min
この関数は配列要素のパターンを返します. 同じ周波数を持つ複数の値がある場合は最小値を返します.
array.mode(id)
例
// array.mode example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.mode(a))
返した値配列要素のパターン.
パラメータ
id
(int[]/float[]) アレイオブジェクトは,また会おう
array.new_float
array.avg
array.variance
array.min
配列値の指定されたパーセント (パーセント数) が,その値よりも小さいか,またはそれと同等であるかを,線形插值を用いて返す.
array.percentile_linear_interpolation(id, percentage)
パラメータ
id
(int[]/float[]) アレイオブジェクトは,percentage
(series int/float) は,返される値の値に等しく,またはそれより小さい値のパーセントである必要があります.コメント統計学では,百分比は,ある分数またはある分数より低いランキング項目で現れる百分比である.この測定は,あなたが測定する百分位より低い標準周波数分布の百分比の割合を示します.線形插法では,2つのランキング間の値を推定します.
また会おう
array.new_float
array.insert
array.slice
array.reverse
order.ascending
order.descending
最近の順位方法を使用して,指定した百分数の数値 (百分数) をその値よりも小さいまたは等しい値に戻します.
array.percentile_nearest_rank(id, percentage)
パラメータ
id
(int[]/float[]) アレイオブジェクトは,percentage
(series int/float) は,返される値の値に等しく,またはそれより小さい値のパーセントである必要があります.コメント統計学では,百分比は,ある点数またはある点数より低いランキング項目の割合である.この測定は,あなたが測定している百分比ランキングの標準周波数分布の百分比を表示する.
また会おう
array.new_float
array.insert
array.slice
array.reverse
order.ascending
order.descending
配列の中間値の百分比順序を返します.
array.percentrank(id, index)
パラメータ
id
(int[]/float[]) アレイオブジェクトは,index
(series int) は,その百分位順位の値を計算します.コメント百分位順位は,配列に何個の要素が参照値よりも小さいか等しいか百分比である.
また会おう
array.new_float
array.insert
array.slice
array.reverse
order.ascending
order.descending
この関数は,与えられた配列の最小値と最大値の差を返します.
array.range(id)
例
// array.range example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.range(a))
返した値数列の最小値と最大値の差である.
パラメータ
id
(int[]/float[]) アレイオブジェクトは,また会おう
array.new_float
array.min
array.max
array.sum
この関数は,指定されたインデックスを持つ要素を削除することによって配列の内容を変更します.
array.remove(id, index)
例
// array.remove example
a = array.new_float(5,high)
removedEl = array.remove(a, 0)
plot(array.size(a))
plot(removedEl)
返した値削除された要素の値.
パラメータ
id
(any array type) 配列オブジェクトはindex
(series int) 削除する要素のインデックス.また会おう
array.new_float
array.set
array.push
array.insert
array.pop
array.shift
この関数は配列を逆転します. 最初の配列要素が最後の配列要素になり,最後の配列要素が最初の配列要素になります.
array.reverse(id)
例
// array.reverse example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.get(a, 0))
array.reverse(a)
plot(array.get(a, 0))
パラメータ
id
(any array type) 配列オブジェクトはまた会おう
array.new_float
array.sort
array.push
array.set
array.avg
この関数は,次のタイプのうちの1つの変数の参数を使用します:int,float,bool,string,line,color,linefill,そして,対応型の配列を返します.
array.from(arg0, arg1, ...)
例
// array.from_example
arr = array.from("Hello", "World!") // arr (string[]) will contain 2 elements: {Hello}, {World!}.
plot(close)
返した値配列要素の値.
パラメータ
arg0, arg1, ...
(series int/float/bool/color/string/line/linefill) 数列参数、この関数は,新しい関数を作ります.<type>
要素数列のオブジェクト.
array.new(size, initial_value)
例
// array.new<string> example
a = array.new<string>(1, "Hello, World!")
runtime.log(array.get(a, 0))
例
// array.new<color> example
a = array.new<color>()
array.push(a, color.red)
array.push(a, color.green)
plot(close, color = array.get(a, close > open ? 1 : 0))
例
// array.new<float> example
length = 5
var a = array.new<float>(length, close)
if array.size(a) == length
array.remove(a, 0)
array.push(a, close)
plot(array.sum(a) / length, "SMA")
例
// array.new<line> example
// draw last 15 lines
var a = array.new<line>()
array.push(a, line.new(bar_index - 1, close[1], bar_index, close))
if array.size(a) > 15
ln = array.shift(a)
line.delete(ln)
返した値他の配列と一緒に使用できる配列オブジェクトのID、*() 関数、
パラメータ
size
(series int) の序列の初期サイズは↑オプション↑デフォルト値は0。initial_value
(series コメント配列インデックスは0から始まる. 配列を初期化し,すべての要素を同時に指定する場合は,array.from を使います.
また会おう
array.from
array.push
array.get
array.size
array.remove
array.shift
array.sum
この関数は,bool のような要素からなる新しい配列オブジェクトを作成します.
array.new_bool(size, initial_value)
例
// array.new_bool example
length = 5
a = array.new_bool(length, close > open)
plot(array.get(a, 0) ? close : open)
返した値他の配列と一緒に使用できる配列オブジェクトのID、*() 関数、
パラメータ
size
(series int) の序列の初期サイズは↑オプション↑デフォルト値は0。initial_value
(series bool) すべての序列要素の初期値。オプション。デフォルト値はコメント配列インデックスは0から始まる.
また会おう
array.new_float
array.get
array.slice
array.sort
この関数は新しい浮点型要素配列オブジェクトを作成します.
array.new_float(size, initial_value)
例
// array.new_float example
length = 5
a = array.new_float(length, close)
plot(array.sum(a) / length)
返した値他の配列と一緒に使用できる配列オブジェクトのID、*() 関数、
パラメータ
size
(series int) の序列の初期サイズは↑オプション↑デフォルト値は0。initial_value
(series int/float) すべての序列要素の初期値。オプション。デフォルト値はコメント配列インデックスは0から始まる.
また会おう
array.new_bool
array.get
array.slice
array.sort
この関数は int 型要素からなる新しい配列オブジェクトを作成します.
array.new_int(size, initial_value)
例
// array.new_int example
length = 5
a = array.new_int(length, int(close))
plot(array.sum(a) / length)
返した値他の配列と一緒に使用できる配列オブジェクトのID、*() 関数、
パラメータ
size
(series int) の序列の初期サイズは↑オプション↑デフォルト値は0。initial_value
(series int) すべての序列要素の初期値↑オプション↑デフォルト値はコメント配列インデックスは0から始まる.
また会おう
array.new_float
array.get
array.slice
array.sort
この関数は,文字列型要素の新しい配列オブジェクトを作成します.
array.new_string(size, initial_value)
例
// array.new_string example
length = 5
a = array.new_string(length, "text")
runtime.log(array.get(a, 0))
返した値他の配列と一緒に使用できる配列オブジェクトのID、*() 関数、
パラメータ
size
(series int) の序列の初期サイズは↑オプション↑デフォルト値は0。initial_value
(series string) すべてのシリアル要素の初期値。オプション。デフォルト値はコメント配列インデックスは0から始まる.
また会おう
array.new_float
array.get
array.slice
この関数は,指定されたインデックス要素の値を返します.
array.get(id, index)
例
// array.get example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i] - open[i])
plot(array.get(a, 9))
返した値配列要素の値.
パラメータ
id
(any array type) 配列オブジェクトはindex
(series int) は,その値が返される要素のインデックスである.また会おう
array.new_float
array.set
array.slice
array.sort
この関数は数列に値を追加します.
array.push(id, value)
例
// array.push example
a = array.new_float(5, 0)
array.push(a, open)
plot(array.get(a, 5))
パラメータ
id
(any array type) 配列オブジェクトはvalue
(series <type of the array's elements>
) は,配列の終わりに要素値を追加します.また会おう
array.new_float
array.set
array.insert
array.remove
array.pop
array.unshift
この関数は,要素の値を指定されたインデックスに設定します.
array.set(id, index, value)
例
// array.set example
a = array.new_float(10)
for i = 0 to 9
array.set(a, i, close[i])
plot(array.sum(a) / 10)
パラメータ
id
(any array type) 配列オブジェクトはindex
(series int) エレメントのインデックスを変更する.value
(series <type of the array's elements>
) 設定する新しい値.また会おう
array.new_float
array.get
array.slice
この関数は,配列要素の和を返します.
array.sum(id)
例
// array.sum example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.sum(a))
返した値配列の要素の和である.
パラメータ
id
(int[]/float[]) アレイオブジェクトは,また会おう
array.new_float
array.max
array.min
この関数は,配列要素の平均値を返します.
array.avg(id)
例
// array.avg example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.avg(a))
返した値配列の要素の均等値である.
パラメータ
id
(int[]/float[]) アレイオブジェクトは,また会おう
array.new_float
array.max
array.min
array.stdev
この関数は,値が最初に表示されたインデックスを返します. 値が見つからない場合は -1 を返します.
array.indexof(id, value)
例
// array.indexof example
a = array.new_float(5,high)
index = array.indexof(a, high)
plot(index)
返した値要素のインデックス.
パラメータ
id
(any array type) 配列オブジェクトはvalue
(series <type of the array's elements>
) は,行列内の検索値である.また会おう
array.lastindexof
array.get
array.lastindexof
array.remove
array.insert
ニュースstrategy
関連する内蔵関数では,止損点数,止損点数 は,価格のジャンプの倍数として定義される.strategy.exit
この関数は,profit
、loss
パラメータは停止,停止,パラメータを表示します.profit
10 に設定します.これは,価格のジャンプを 10 倍にして,価格のジャンプを 10 倍にして,価格のジャンプを 10 とします.syminfo.mintick
。
この関数は複数のポリシー属性を設定します.
注目! 伝播はサポートのみtitle
,shorttitle
,overlay
,pyramiding
,default_qty_type
,default_qty_value
パラメータ,その他のパラメータは,PINE言語策略のインターフェースパラメータで設定できます.
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)
例
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
precision
scale
pyramiding
(const int) 同じ方向で許容される最大数.この値が0である場合,同じ方向で1つの入札のみを開くことができ,他の入札はすべて拒否されます.デフォルト値は0である.calc_on_order_fills
calc_on_every_tick
max_bars_back
backtest_fill_limits_assumption
default_qty_type
(const string) はqty
参数の値は,strategy.entryまたはstrategy.order関数で表示される内容である.可能な値は:strategy.fixedは契約/株/手数,strategy.cashは貨幣金額,またはstrategy.percent_of_equityは利用可能な利息の百分比である.default_qty_value
(const int/float) strategy.entryまたはstrategy.order関数のデフォルトトランザクション数,そのcurrency
slippage
commission_type
commission_value
process_orders_on_close
close_entries_rule
max_lines_count
max_labels_count
max_boxes_count
margin_long
margin_short
explicit_plot_zorder
initial_capital
risk_free_rate
コメント策略スクリプトには,戦略の呼び出しがある必要があります. 参数calc_on_every_tick = true を使用したPineScriptコードは,履歴とリアルタイムデータに対して異なる計算を行うことができます. 非標準型チャートを戦略の基礎として使用する際には,結果が異なることを認識する必要があります. 注文は,このテーブルの価格で実行されます (e.g.for Heikin Ashiでは,Heikin Ashiの価格 (平均) が使用されますが,実際の市場価格ではありません). したがって,標準型チャートを戦略で使用することを強くお勧めします.
また会おう
indicator
これは,市場へのエントリー命令である.同じIDの注文が既に掛かっている場合,注文を変更できます.IDが指定されていない場合,新しい注文が発行されます.エントリー命令を停止するには,命令strategy.cancelまたはstrategy.cancel_allを使用する必要があります. 戦略.エントリー機能は,戦略.order機能と比べてピラミッドに影響を受け,市場位置を正しく逆転することができます.
strategy.entry(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)
例
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) 選択可能なパラメータ。取引された契約/株数/手数/単位数。既定値はlimit
(series int/float) 選択可能なパラメータ、注文の制限価格、指定されている場合,注文タイプは"limit"または"stop-limit"、他の注文タイプは"NaN"である。stop
(series int/float) 選択可能なパラメータ、注文の停止損失価格、指定されている場合,注文タイプは"stop"または"stop-limit"、他の注文タイプは"NaN"である.oca_name
oca_type
comment
(series string) 選択可能なパラメータ.when
(series bool) 選択可能なパラメータ。オーダーの状態。trueの場合,オーダーは置かれます。falseの場合,何も起こらない。以前置かれた同じIDのオーダーは撤回されていません。デフォルト値はtrueです。alert_message
(series string) これは,指定IDを持つ退出オーダーの命令である. 同じIDを持つ複数の入口オーダーがある場合,それらは同時に退出する. 命令が起動するときにIDが指定されていない開いたオーダーの場合は,命令は実行されません. この命令は市場オーダーを使用します. 各入口は別々の市場オーダーによって閉鎖されます.
strategy.close(id, when, comment, qty, qty_percent, alert_message)
例
strategy("closeEntry Demo", overlay=false)
strategy.entry("buy", strategy.long, when = open > close)
strategy.close("buy", when = open < close, qty_percent = 50, comment = "close buy entry for 50%")
plot(strategy.position_size)
パラメータ
id
(series string) 必要なパラメータ、注文識別符、その識別符を参照して注文を終了できます。when
(series bool) 選択可能なパラメータ、コマンドの条件、qty
(series int/float) 選択可能なパラメータ。取引を退場する契約/株数/手数/ユニットの数。デフォルト値はqty_percent
(series int/float) は平衡のパーセントを定義します. その優先度は,comment
(series string) 選択可能なパラメータ.alert_message
(series string) 市場を平らにするために現在の市場から脱退する.
strategy.close_all(when, comment, alert_message)
例
strategy("closeAll Demo", overlay=false)
strategy.entry("buy", strategy.long, when = open > close)
strategy.close_all(when = open < close, comment = "close all entries")
plot(strategy.position_size)
パラメータ
when
(series bool) 選択可能なパラメータ、コマンドの条件、comment
(series string) 選択可能なパラメータ.alert_message
(series string) これは,エントリーまたは全市場位置を指定する退出命令である. 同じIDのオーダーが既に掛かっている場合,オーダーを変更することができます. 入場オーダーが完了していないが,退出オーダーが発生した場合,退出オーダーは,入場オーダーが完了した後に退出オーダーを置くまで停止されます. 退出オーダーを停止するには,コマンドstrategy.cancelまたはstrategy.cancel_allを使用してください. 戦略.exit関数が一度呼び出された場合,一度だけ退出します. 複数の退出を行う場合は,一度だけ退出します.应该多次调用命令strategy.exit・止損と追跡止損を使用すると,その注文タイプが
strategy.exit(id, from_entry, qty, qty_percent, profit, limit, loss, stop, trail_price, trail_points, trail_offset, oca_name, comment, when, alert_message)
例
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) 選択可能なパラメータ。入力指令の識別子を指定するために退出。すべてのポジションを退出するには空の文字列を使用します。デフォルト値は空の文字列です。qty
(series int/float) 選択可能なパラメータ。取引を退場する契約/株数/手数/ユニットの数。デフォルト値はqty_percent
(series int/float) は平衡のパーセントを定義します. その優先度は,profit
(series int/float) 選択可能なパラメータ。利益目標 (点表示) ー指定されている場合は,指定された利益 (点表示) に達すると,制限価格の注文で市場ポジションを退場します。デフォルト値はlimit
(series int/float) 選択可能なパラメータ。利益目標 (価格指定が必要)。指定されている場合,指定価格 (価格) またはより良い価格で市場ポジションを退場する。パラメータのloss
(series int/float) 選択可能なパラメータ。停止損失 (点表示) ー指定されている場合,指定された損失 (点表示) に達すると停止損失单で市場ポジションを退場します.デフォルト値はstop
(series int/float) 選択可能なパラメータ。ストップ損失 (価格指定が必要)。指定されている場合,指定価格 (価格) またはそれより劣る価格で市場ポジションを退場する。パラメータのストップ損失のtrail_price
(series int/float) 選択可能なパラメータ。ストップ損失を追跡するアクティベーションレベル (価格指定が必要)。指定されている場合,指定価格レベルに達すると追跡停止を放置する。trail_points
(series int/float) 選択可能なパラメータ。トラッキングストップロスのアクティベーションレベル (ポイントで表示される利益) ー指定されている場合,計算された価格レベル (ポイントで表示される利益額) に到達するとトラッキングストップロスの单元を配置します。trail_offset
(series int/float) 選択可能なパラメータ. 追跡ストップ損失活性化レベル (点表示) ポイント計の偏差量は追跡ストップ損失单の初期価格を決定するために使用されます:X点は多頭退出のためにoca_name
comment
(series string) 選択可能なパラメータ.when
(series bool) 選択可能なパラメータ。オーダーの状態。trueの場合,オーダーは置かれます。falseの場合,何も起こらない。以前置かれた同じIDのオーダーは撤回されていません。デフォルト値はtrueです。alert_message
(series string) これは,次の機能によって生成される,すべてのプレハングリストの命令をキャンセル/停止する名前参照です:strategy.order, strategy.entry andstrategy.exit。
strategy.cancel(id, when)
例
strategy(title = "simple order cancellation example")
conditionForBuy = open > high[1]
strategy.entry("long", strategy.long, 1, limit = low, when = conditionForBuy) // enter long using limit order at low price of current bar if conditionForBuy is true
strategy.cancel("long", when = not conditionForBuy) // cancel the entry order with name "long" if conditionForBuy is false
パラメータ
id
(series string) 選択必須パラメータ、注文標識、その標識を指定して注文を取り消す。when
(series bool) 選択可能なパラメータ、IDに基づいてオーダーをキャンセル、trueの場合,オーダーがキャンセルされる。デフォルト値は trueである。这是取消/停用所有预挂单命令,由以下功能生成:strategy.order,strategy.entry和strategy.exit。
strategy.cancel_all(when)
例
strategy(title = "simple all orders cancellation example")
conditionForBuy1 = open > high[1]
strategy.entry("long entry 1", strategy.long, 1, limit = low, when = conditionForBuy1) // enter long by limit if conditionForBuy1 is true
conditionForBuy2 = conditionForBuy1 and open[1] > high[2]
strategy.entry("long entry 2", strategy.long, 1, limit = ta.lowest(low, 2), when = conditionForBuy2) // enter long by limit if conditionForBuy2 is true
conditionForStopTrading = open < ta.lowest(low, 2)
strategy.cancel_all(conditionForStopTrading) // cancel both limit orders if the conditon conditionForStopTrading is true
パラメータ
when
(series bool) 選択可能な参数、すべてのオーダーの条件をキャンセル、条件が真であればすべてのアクティブオーダーはキャンセル、デフォルト値はこれは次のオーダーの命令である.同じIDのオーダーが既に掛かっている場合,オーダーを変更することができる.IDが指定されていない場合,新しいオーダーを発行する.命令を停止するには,命令strategy.cancelまたはstrategy.cancel_allを使用すべきである.機能strategy.entryとは異なり,機能strategy.orderはピラミッド形式の影響を受けない.
strategy.order(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)
例
strategy(title = "simple strategy order example")
strategy.order("buy", strategy.long, 1, when = open > high[1]) // buy by market if current open great then previous high
strategy.order("sell", strategy.short, 1, when = open < low[1]) // sell by market if current open less then previous low
パラメータ
id
(series string) 必要なパラメータ、注文識別子、注文をその識別子を参照してキャンセルまたは変更することができます。direction
(strategy_direction) 一つの必須パラメータ. オーダー方向:"strategy.long は買い,strategy.short は売る".qty
(series int/float) 選択可能なパラメータ。取引された契約/株数/手数/単位数。既定値はlimit
(series int/float) 選択可能なパラメータ、注文の制限価格、指定されている場合,注文タイプは"limit"または"stop-limit"、他の注文タイプは"NaN"である。stop
(series int/float) 選択可能なパラメータ、注文の停止損失価格、指定されている場合,注文タイプは"stop"または"stop-limit"、他の注文タイプは"NaN"である.oca_name
oca_type
comment
(series string) 選択可能なパラメータ.when
(series bool) 選択可能なパラメータ。オーダーの状態。trueの場合,オーダーは置かれます。falseの場合,何も起こらない。以前置かれた同じIDのオーダーは撤回されていません。デフォルト値はtrueです。alert_message
(series string) bar_index を返します.
strategy.opentrades.entry_bar_index(trade_num)
10つのK線を待って,平行します.
例
strategy("`strategy.opentrades.entry_bar_index` Example")
barsSinceLastEntry() =>
strategy.opentrades > 0 ? bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) : na
// Enter a long position if there are no open positions.
if strategy.opentrades == 0
strategy.entry("Long", strategy.long)
// Close the long position after 10 bars.
if barsSinceLastEntry() >= 10
strategy.close("Long")
パラメータ
trade_num
(series int) 取引が平衡していない取引番号. 最初の取引番号は0である.また会おう
strategy.closedtrades.entry_bar_index
strategy.closedtrades.exit_bar_index
取引が完了していない場合の入場IDを返します.
strategy.opentrades.entry_id(trade_num)
例
strategy("`strategy.opentrades.entry_id` Example", overlay = true)
// We enter a long position when 14 period sma crosses over 28 period sma.
// We enter a short position when 14 period sma crosses under 28 period sma.
longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
// Strategy calls to enter a long or short position when the corresponding condition is met.
if longCondition
strategy.entry("Long entry at bar #" + str.tostring(bar_index), strategy.long)
if shortCondition
strategy.entry("Short entry at bar #" + str.tostring(bar_index), strategy.short)
// Display ID of the latest open position.
if barstate.islastconfirmedhistory
runtime.log("Last opened position is " + strategy.opentrades.entry_id(strategy.opentrades - 1))
返した値取引が完了していない場合の入場IDを返します.
パラメータ
trade_num
(series int) 取引が平衡していない取引番号. 最初の取引番号は0である.コメントtrade_num が範囲外にある場合,この関数は na:0 を strategy.opentrades-1 に返します.
また会おう
strategy.opentrades.entry_bar_index
strategy.opentrades.entry_time
取引の入場価格を返します.
strategy.opentrades.entry_price(trade_num)
例
strategy("strategy.closedtrades.entry_price Example 1")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Return the entry price for the latest closed trade.
entryPrice = strategy.closedtrades.entry_price(strategy.closedtrades - 1)
plot(entryPrice, "Long entry price")
平均不平価を計算する
例
strategy("strategy.opentrades.entry_price Example 2", pyramiding = 2)
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate average open position price.
avgOpenPositionPrice() =>
sumOpenPositionPrice = 0.0
for tradeNo = 0 to strategy.opentrades - 1
sumOpenPositionPrice += strategy.opentrades.entry_price(tradeNo) * strategy.opentrades.size(tradeNo) / strategy.position_size
result = nz(sumOpenPositionPrice / strategy.opentrades)
plot(avgOpenPositionPrice())
パラメータ
trade_num
(series int) 取引が平衡していない取引番号. 最初の取引番号は0である.また会おう
strategy.closedtrades.exit_price
取引が未平成のUNIXタイムに戻す.
strategy.opentrades.entry_time(trade_num)
例
strategy("strategy.opentrades.entry_time Example")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculates duration in milliseconds since the last position was opened.
timeSinceLastEntry()=>
strategy.opentrades > 0 ? (time - strategy.opentrades.entry_time(strategy.opentrades - 1)) : na
plot(timeSinceLastEntry() / 1000 * 60 * 60 * 24, "Days since last entry")
パラメータ
trade_num
(series int) 取引が平衡していない取引番号. 最初の取引番号は0である.また会おう
strategy.closedtrades.entry_time
strategy.closedtrades.exit_time
負の値で表示される.
strategy.opentrades.profit(trade_num)
取引先の利回り
例
strategy("`strategy.opentrades.profit` Example 1", commission_type = strategy.commission.percent, commission_value = 0.1)
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
plot(strategy.opentrades.profit(strategy.opentrades - 1), "Profit of the latest open trade")
決済していないすべての取引の利益を計算します
例
strategy("`strategy.opentrades.profit` Example 2", pyramiding = 5)
// Strategy calls to enter 5 long positions every 2 bars.
if bar_index % 2 == 0
strategy.entry("Long", strategy.long, qty = 5)
// Calculate open profit or loss for the open positions.
tradeOpenPL() =>
sumProfit = 0.0
for tradeNo = 0 to strategy.opentrades - 1
sumProfit += strategy.opentrades.profit(tradeNo)
result = sumProfit
plot(tradeOpenPL(), "Profit of all open trades")
パラメータ
trade_num
(series int) 取引が平衡していない取引番号. 最初の取引番号は0である.また会おう
strategy.closedtrades.profit
strategy.openprofit
strategy.netprofit
strategy.grossprofit
非平衡取引における取引方向と契約数値を返します. この値>0であれば,市場ポジションは多頭目である. この値<0ならば,市場ポジションは空頭目である.
strategy.opentrades.size(trade_num)
例
strategy("`strategy.opentrades.size` Example 1")
// We calculate the max amt of shares we can buy.
amtShares = math.floor(strategy.equity / close)
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars
if bar_index % 15 == 0
strategy.entry("Long", strategy.long, qty = amtShares)
if bar_index % 20 == 0
strategy.close("Long")
// Plot the number of contracts in the latest open trade.
plot(strategy.opentrades.size(strategy.opentrades - 1), "Amount of contracts in latest open trade")
平均利益の割合を計算する
例
strategy("`strategy.opentrades.size` Example 2")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate profit for all open trades.
profitPct = 0.0
for tradeNo = 0 to strategy.opentrades - 1
entryP = strategy.opentrades.entry_price(tradeNo)
exitP = close
profitPct += (exitP - entryP) / entryP * strategy.opentrades.size(tradeNo) * 100
// Calculate average profit percent for all open trades.
avgProfitPct = nz(profitPct / strategy.opentrades)
パラメータ
trade_num
(series int) 取引が平衡していない取引番号. 最初の取引番号は0である.また会おう
strategy.closedtrades.size
strategy.position_size
strategy.opentrades
strategy.closedtrades
取引開始したバー_インデックスを返します.
strategy.closedtrades.entry_bar_index(trade_num)
例
strategy("strategy.closedtrades.entry_bar_index Example")
// Enter long trades on three rising bars; exit on two falling bars.
if ta.rising(close, 3)
strategy.entry("Long", strategy.long)
if ta.falling(close, 2)
strategy.close("Long")
// Function that calculates the average amount of bars in a trade.
avgBarsPerTrade() =>
sumBarsPerTrade = 0
for tradeNo = 0 to strategy.closedtrades - 1
// Loop through all closed trades, starting with the oldest.
sumBarsPerTrade += strategy.closedtrades.exit_bar_index(tradeNo) - strategy.closedtrades.entry_bar_index(tradeNo) + 1
result = nz(sumBarsPerTrade / strategy.closedtrades)
plot(avgBarsPerTrade())
パラメータ
trade_num
(series int) 取引が平行されている取引番号. 最初の取引番号は0である.また会おう
strategy.closedtrades.exit_bar_index
strategy.opentrades.entry_bar_index
取引が平衡された出口価格に戻します.
strategy.closedtrades.exit_price(trade_num)
例
strategy("strategy.closedtrades.exit_price Example 1")
// We are creating a long trade every 5 bars
if bar_index % 5 == 0
strategy.entry("Long", strategy.long)
strategy.close("Long")
// Return the exit price from the latest closed trade.
exitPrice = strategy.closedtrades.exit_price(strategy.closedtrades - 1)
plot(exitPrice, "Long exit price")
平均利益の百分比を計算する
例
strategy("strategy.closedtrades.exit_price Example 2")
// Strategy calls to create single short and long trades.
if bar_index == last_bar_index - 15
strategy.entry("Long Entry", strategy.long)
else if bar_index == last_bar_index - 10
strategy.close("Long Entry")
strategy.entry("Short", strategy.short)
else if bar_index == last_bar_index - 5
strategy.close("Short")
// Calculate profit for both closed trades.
profitPct = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
entryP = strategy.closedtrades.entry_price(tradeNo)
exitP = strategy.closedtrades.exit_price(tradeNo)
profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100
// Calculate average profit percent for both closed trades.
avgProfitPct = nz(profitPct / strategy.closedtrades)
plot(avgProfitPct)
パラメータ
trade_num
(series int) 取引が平行されている取引番号. 最初の取引番号は0である.また会おう
strategy.closedtrades.entry_price
Bar_index を返します.
strategy.closedtrades.exit_bar_index(trade_num)
例
strategy("strategy.closedtrades.exit_bar_index Example 1")
// Strategy calls to place a single short trade. We enter the trade at the first bar and exit the trade at 10 bars before the last chart bar.
if bar_index == 0
strategy.entry("Short", strategy.short)
if bar_index == last_bar_index - 10
strategy.close("Short")
// Calculate the amount of bars since the last closed trade.
barsSinceClosed = strategy.closedtrades > 0 ? bar_index - strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1) : na
plot(barsSinceClosed, "Bars since last closed trade")
取引ごとに平均K行の数を計算します.
例
strategy("strategy.closedtrades.exit_bar_index Example 2")
// Enter long trades on three rising bars; exit on two falling bars.
if ta.rising(close, 3)
strategy.entry("Long", strategy.long)
if ta.falling(close, 2)
strategy.close("Long")
// Function that calculates the average amount of bars per trade.
avgBarsPerTrade() =>
sumBarsPerTrade = 0
for tradeNo = 0 to strategy.closedtrades - 1
// Loop through all closed trades, starting with the oldest.
sumBarsPerTrade += strategy.closedtrades.exit_bar_index(tradeNo) - strategy.closedtrades.entry_bar_index(tradeNo) + 1
result = nz(sumBarsPerTrade / strategy.closedtrades)
plot(avgBarsPerTrade())
パラメータ
trade_num
(series int) 取引が平行されている取引番号. 最初の取引番号は0である.また会おう
bar_index
取引先のIDを返します.
strategy.closedtrades.entry_id(trade_num)
例
strategy("strategy.closedtrades.entry_id Example", overlay = true)
var isOpen = false
var openIndex = -1
// Enter a short position and close at the previous to last bar.
if not barstate.ishistory and not isOpen
strategy.entry("Short at bar #" + str.tostring(bar_index), strategy.short)
isOpen := true
openIndex := bar_index
if openIndex != -1 and bar_index > openIndex + 100
strategy.close_all()
// Display ID of the last entry position.
if barstate.islastconfirmedhistory
runtime.log("Last Entry ID is: " + strategy.closedtrades.entry_id(strategy.closedtrades - 1))
返した値取引先のIDを返します.
パラメータ
trade_num
(series int) 取引が平行されている取引番号. 最初の取引番号は0である.コメントtrade_num が範囲外にある場合,この関数は na:0 を strategy.closedtrades-1 に返します.
また会おう
strategy.closedtrades.entry_bar_index
strategy.closedtrades.entry_time
取引先の入場価格に戻す.
strategy.closedtrades.entry_price(trade_num)
例
strategy("strategy.closedtrades.entry_price Example 1")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Return the entry price for the latest entry.
entryPrice = strategy.closedtrades.entry_price(strategy.closedtrades - 1)
plot(entryPrice, "Long entry price")
平均利益の百分比を計算する
例
strategy("strategy.closedtrades.entry_price Example 2")
// Strategy calls to create single short and long trades
if bar_index == last_bar_index - 15
strategy.entry("Long Entry", strategy.long)
else if bar_index == last_bar_index - 10
strategy.close("Long Entry")
strategy.entry("Short", strategy.short)
else if bar_index == last_bar_index - 5
strategy.close("Short")
// Calculate profit for both closed trades.
profitPct = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
entryP = strategy.closedtrades.entry_price(tradeNo)
exitP = strategy.closedtrades.exit_price(tradeNo)
profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100
// Calculate average profit percent for both closed trades.
avgProfitPct = nz(profitPct / strategy.closedtrades)
plot(avgProfitPct)
パラメータ
trade_num
(series int) 取引が平行されている取引番号. 最初の取引番号は0である.また会おう
strategy.closedtrades.exit_price
strategy.closedtrades.size
strategy.closedtrades
取引が完了したUNIXタイムに戻る.
strategy.closedtrades.entry_time(trade_num)
例
strategy("strategy.closedtrades.entry_time Example", overlay = true)
// Enter long trades on three rising bars; exit on two falling bars.
if ta.rising(close, 3)
strategy.entry("Long", strategy.long)
if ta.falling(close, 2)
strategy.close("Long")
// Calculate the average trade duration
avgTradeDuration() =>
sumTradeDuration = 0
for i = 0 to strategy.closedtrades - 1
sumTradeDuration += strategy.closedtrades.exit_time(i) - strategy.closedtrades.entry_time(i)
result = nz(sumTradeDuration / strategy.closedtrades)
// Display average duration converted to seconds and formatted using 2 decimal points
if barstate.islastconfirmedhistory
runtime.log(str.tostring(avgTradeDuration() / 1000, "#.##") + " seconds")
パラメータ
trade_num
(series int) 取引が平行されている取引番号. 最初の取引番号は0である.また会おう
strategy.opentrades.entry_time
strategy.closedtrades.exit_time
time
負の値で表示される. 負の値で表示される.
strategy.closedtrades.profit(trade_num)
例
strategy("`strategy.closedtrades.profit` Example")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate average gross profit by adding the difference between gross profit and commission.
avgGrossProfit() =>
sumGrossProfit = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
sumGrossProfit += strategy.closedtrades.profit(tradeNo) - strategy.closedtrades.commission(tradeNo)
result = nz(sumGrossProfit / strategy.closedtrades)
plot(avgGrossProfit(), "Average gross profit")
パラメータ
trade_num
(series int) 取引が平行されている取引番号. 最初の取引番号は0である.また会おう
strategy.opentrades.profit
strategy.closedtrades.commission
取引方向と平成の取引中の契約の数を返します. この値>0であれば,市場ポジションは多頭目です. この値<0であれば,市場ポジションは空頭目です.
strategy.closedtrades.size(trade_num)
例
strategy("`strategy.closedtrades.size` Example 1")
// We calculate the max amt of shares we can buy.
amtShares = math.floor(strategy.equity / close)
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars
if bar_index % 15 == 0
strategy.entry("Long", strategy.long, qty = amtShares)
if bar_index % 20 == 0
strategy.close("Long")
// Plot the number of contracts traded in the last closed trade.
plot(strategy.closedtrades.size(strategy.closedtrades - 1), "Number of contracts traded")
平均利益の割合を計算する
例
strategy("`strategy.closedtrades.size` Example 2")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate profit for both closed trades.
profitPct = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
entryP = strategy.closedtrade
ウウオヤン取引が同時に行われることを望むなら,
軽い雲JSと同じようなトランザクションも行えますか? ありがとうございました.
リサ20231詳細なドキュメントをありがとうございました.
芸術このPineScriptは,Okexのシミュレーションディスクをプラットフォーム上でどのように使っているのでしょうか?
芸術開発者のプラットフォームに直接コピーして利用できます!
発明者 量化 - 微かな夢PINE言語は単種策のみを行うが,多種策は,python,javascript,c++で設計を書くのがベストである.
発明者 量化 - 微かな夢OKXは特殊なもので,彼らの模擬環境とリアルディスク環境は同じアドレスですが,別の場所では区別されます.
軽い雲OKX模擬盤は使えませんでした.
発明者 量化 - 微かな夢この多様なアーキテクチャの問題は,各取引所のインターフェースが異なるため,インターフェースの周波数制限が異なるため,多くの問題が生じる.
発明者 量化 - 微かな夢雲山さん,この提案をありがとうございました.
軽い雲JSと混同した方が良いと感じて,JSは様々な取引方法により適している.
トレンドハンター販売価格は各品種にわたって行われます.
発明者 量化 - 微かな夢嫌なことをする.
軽い雲素晴らしい,ありがとう,夢大さん.
発明者 量化 - 微かな夢PINE言語の戦略は,一時的に単一品種のみです.
発明者 量化 - 微かな夢この記事へのトラックバック一覧です.
発明者 量化 - 微かな夢ほら,もういいから
発明者 量化 - 微かな夢PINE 模範庫のパラメータは,交換取引所のベースアドレスを設定することができます. 文書の開始: PINE 言語取引庫の模範庫のパラメータ.