返した値配列要素の中位数である.
パラメータ
- id
(int[]/float[]) アレイオブジェクトは,
また会おう
### array.mode
该函数返回阵列元素的模式。如果有多个具有相同频率的值,则返回最小值。
array.mode ((id)
**例子**
```pine
// 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.percentile_linear_interpolation
返回数组值的指定百分比(百分位数)小于或等于它的值,使用线性插值。
array.percentile_linear_interpolation ((id,パーセント) について)
**参数**
- ```id``` (int[]/float[]) 阵列对象。
- ```percentage``` (series int/float) 必须等于或小于返回值的值的百分比。
**备注**
在统计数据中,百分位是出现在某个分数或低于某个分数的排名项目的百分比。此测量显示低于您测量的百分等级的标准频率分布中的分数百分比。线性插值估计两个排名之间的值。
**另见**
```array.new_float``` ```array.insert``` ```array.slice``` ```array.reverse``` ```order.ascending``` ```order.descending```
### array.percentile_nearest_rank
使用最近秩方法返回指定百分比的数组值(百分位数)小于或等于它的值。
array.percentile_nearest_rank ((id,パーセント)
**参数**
- ```id``` (int[]/float[]) 阵列对象。
- ```percentage``` (series int/float) 必须等于或小于返回值的值的百分比。
**备注**
在统计数据中,百分位是出现在某个分数或低于某个分数的排名项目的百分比。 此测量显示低于您正在测量的百分排名的标准频率分布中的分数百分比。
**另见**
```array.new_float``` ```array.insert``` ```array.slice``` ```array.reverse``` ```order.ascending``` ```order.descending```
### array.percentrank
返回阵列中值的百分位排名。
array.percentrank ((id,インデックス)
**参数**
- ```id``` (int[]/float[]) 阵列对象。
- ```index``` (series int) 计算其百分排名的值。
**备注**
百分位排名是数组中有多少元素小于或等于参考值的百分比。
**另见**
```array.new_float``` ```array.insert``` ```array.slice``` ```array.reverse``` ```order.ascending``` ```order.descending```
### array.range
该函数返回给定数组的最小值和最大值之间的差。
array.range ((id)
**例子**
```pine
// 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.remove
该函数通过删除具有指定索引的元素来更改阵列的内容。
```array.remove(id, index)```
**例子**
```pine
// 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.reverse
此函数反转阵列。第一个阵列元素变成最后一个,最后一个阵列元素变成第一个。
array.reverse ((id) について
**例子**
```pine
// 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.from
该函数采用以下类型之一的可变数量的参数:int、float、bool、string、line、color、linefill,并返回相应类型的阵列。
array.from ((arg0, arg1,...) から
**例子**
```pine
// 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 <type>) すべての配列要素の初期値。オプション。デフォルト値は
コメント配列インデックスは0から始まる. 配列を初期化し,すべての要素を同時に指定する場合は,array.from を使います.
また会おう
### array.new_bool
此函数创建一个由bool类型的元素组成的新阵列对象。
array.new_bool (サイズ,初期_値)
**例子**
```pine
// 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.new_float (サイズ,初期_値)
**例子**
```pine
// 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_int
该函数创建一个由int类型的元素组成的新阵列对象。
array.new_int ((サイズ,初期_値)
**例子**
```pine
// 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_string
该函数创建一个字符串类型元素的新阵列对象。
array.new_string (サイズ,初期_値)
**例子**
```pine
// 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.get
该函数返回指定索引处元素的值。
```array.get(id, index)```
**例子**
```pine
// 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.push
该函数将一个值附加到阵列。
array.push ((id,値)
**例子**
```pine
// 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.set
该函数将元素的值设置为指定的索引。
array.set ((id,インデックス,値)
**例子**
```pine
// 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.sum
该函数返回阵列元素的总和。
array.sum ((id) について
**例子**
```pine
// 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.avg
该函数返回阵列元素的均值。
array.avg ((id)
**例子**
```pine
// 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.indexof
此函数返回值首次出现的索引。如果找不到该值,则返回 -1。
array.indexof ((id,値)
**例子**
```pine
// 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>
) は,行列内の検索値である.
また会おう
## strategy
在```strategy```相关的内置函数中,止损点数、止盈点数定义为价格一跳的倍数。例如```strategy.exit```函数的```profit```、```loss```参数以点表示止损、止盈,参数```profit```设置为10,即价格一跳乘以10作为止盈价差,价格一跳即内置变量```syminfo.mintick```。
### strategy
该函数设置了多个策略属性。
注意,传参仅支持```title```,```shorttitle```,```overlay```,```pyramiding```,```default_qty_type```,```default_qty_value```参数,其它参数可以通过PINE语言策略的界面参数设置。
戦略 (タイトル,ショートタイトルの表記,オーバーレイ,フォーマット,精度,スケール,ピラミディング,calc_on_order_fills,calc_on_every_tick,max_bars_back,backtest_fill_limits_assumption,default_qty_type,default_qty_value,初期_資本,通貨,スリップ,コミッション_タイプ,コミッション_value,プロセス_オーダー_オン_クローズ,クローズ_エントリー_ルール,margin_long,margin_short,explicit_plot_zorder,max_lines_count,max_labels_count,max_boxes_count,リスク_フリー)
**例子**
```pine
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 です.
- どうした?(const string) 価格軸上のフォーマット指標値のタイプ可能な値は:format.inherit、format.price、format.volume、format.inheritをデフォルトとする.
- どうした?format
(const int) 価格軸上の指標値の浮点数後の位数. 非負の整数で16未満である必要があります. 省略した場合,親配列の形式を使用します. 形式がformat.inheritであり,このパラメータが設定されている場合,形式はformat.priceになります.
- どうした?precision
(scale_type) インディケーターは価格の座標に従ってください. 可能な値は:scale.right,scale.left,scale.none。値scale.noneは,scale
pyramiding
(const int) 同じ方向で許容される最大数.この値が0である場合,同じ方向で1つの入札のみを開くことができ,他の入札はすべて拒否されます.デフォルト値は0である.
- どうした?(const bool) 追加的なintrabar命令計算. 参数がcalc_on_order_fills
(const bool) 追加的なintrabarポリシー計算. 参数がcalc_on_every_tick
(const int) は,歴史参照のポリシーで使用できる最大max_bars_back
(const int) 制限单の実行仮定. 制限单は,市場価格が制限单のレベルに指定された数点を超える場合にのみイントラバーで取引される.
- どうした?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関数のデフォルトトランザクション数,その(const string) このポリシーのアカウント通貨は。オプションである。デフォルト値は,チャート上の商品の通貨である。可能な値は: currency.NONE, currency.USD, currency.EUR, currency.AUD, currency.GBP, currency.NZD, currency.CAD, currency.CHF, currency.HKD, currency.JPY, currency.NOK, currency.SEK, currency.SGD, currency.TRY, currency.ZAR, currency.BTC, currency.ETH, currency.MYR, currency.KRW。
- どうした?currency
(const int) tick を値引き単位とするスライドポイントは,買い/売る市場価格の注文またはストップ損失の注文の取引価格から追加/減算されます.もしmintick = 0.01でスライドポイント = 5であれば,合計スライドポイントは5 * 0.01 = 0.05になります.
- どうした?slippage
(const string) 各オーダーの佣金種類.許容される値は:strategy.commission.percent (注文の現金量の百分比),strategy.commission.cash_per_contract (各契約の口座通貨で表示される金額),strategy.commission.cash_per_order (各オーダーの口座通貨で表示される金額) です.
- どうした?commission_type
(const int/float) オーダー・コミッション・値、選択した種類 (コミッション・タイプ) に基づいて,パーセントまたは金額を含む。
- どうした?commission_value
(const bool) をprocess_orders_on_close
(const string) 注文の閉じる順序を指定する.許容される値は:close_entries_rule
(const int) 最近の線図の数を示します. デフォルト値は50で,最大許容値は500です.
- どうした?max_lines_count
(const int) 最近のタグ図の数を示します. デフォルト値は50で,最大許容値は500です.
- どうした?max_labels_count
(const int) 画面に表示される最後のボックス図の数. デフォルト値は50で,最大値は500です.
- どうした?max_boxes_count
(const int/float) 多頭担保は,多頭ポジションが現金または抵当金でカバーされなければならない証券の購入価格のパーセントである. 非負数でなければならない. オプションである. デフォルト値は100である.
- どうした?margin_long
(const int/float) 空頭保証金 (空頭保証金) は,空頭ポジションが現金または抵当金でカバーされなければならない証券の購入価格のパーセントである. 非負数でなければならない. 選択可能である. デフォルト値は100である.
- どうした?margin_short
(const bool) 指標の描画,埋め込み,水平線の表示順序を指定する. true の場合は,指標コードに現れる順序に基づいてグラフを描く.新しいグラフはそれぞれ前のグラフの上に描画される.これはplot*() 機能,fill,hline、オプションのみ適用される.デフォルト値はexplicit_plot_zorder
(const int/float) は,当初戦略取引に使用できる資金の量で,initial_capital
(const int/float) リスクのない収益率は,リスク最小またはゼロの投資価値の年間百分比変化であり,SharpeとSortino比率を計算するために使用される.デフォルト値は2である.risk_free_rate
コメント策略スクリプトには,戦略の呼び出しがある必要があります. 参数calc_on_every_tick = true を使用したPineScriptコードは,履歴とリアルタイムデータに対して異なる計算を行うことができます. 非標準型チャートを戦略の基礎として使用する際には,結果が異なることを認識する必要があります. 注文は,このテーブルの価格で実行されます (e.g.for Heikin Ashiでは,Heikin Ashiの価格 (平均) が使用されますが,実際の市場価格ではありません). したがって,標準型チャートを戦略で使用することを強くお勧めします.
また会おう
### strategy.entry
这是进入市场的命令。 如果具有相同ID的订单已经挂起,则可修改订单。 如果没有指定ID的订单,则会发出新的订单。 要停用进场指令,应使用命令strategy.cancel或strategy.cancel_all。 与函数strategy.order相比,strategy.entry功能受金字塔影响,可以正确反转市场位置。 如果“Limit”和“stop”参数均为“NaN”,则订单类型为市场订单。
strategy.entry ((id,方向,qty,limit,stop, oca_name, oca_type,コメント,いつ,アラート_メッセージ)
**例子**
```pine
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) 必要なパラメータ. 市場保有方向: qty
(series int/float) 選択可能なパラメータ、取引された契約/株数/手数/単位数、既定値はlimit
(series int/float) 選択可能なパラメータ。オーダーの制限値。指定されている場合,オーダーのタイプはstop
(series int/float) 選択可能なパラメータ。オーダーのストップ損失価格。指定されている場合,オーダーのタイプは(series string) 選択可能な参数.このオーダーはOCAグループ名に属している.オーダーはOCAグループに属していない場合は空文字が置かれる.FMZはこのパラメータをサポートしていません.
- oca_name
(input string) 選択可能なパラメータ。OCAオーダーグループタイプ。許容される値は:strategy.oca.none - 注文は特定のOCAグループに属してはならない. strategy.oca.cancel - 注文はOCAグループに属すべきで,その注文が取引されると,他のすべての注文はキャンセルされます. strategy.oca.reduce - 注文はOCAグループに属すべきで,注文の契約のXが配置されている場合,同じOCAグループ内の他の注文の契約のXが減少します。FMZはこのパラメータをサポートしていません.
- oca_type
comment
(series string) 選択可能なパラメータ.
- どうした?when
(series bool) 選択可能なパラメータ、オーダーの状態、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) は平衡のパーセント ((0-100) を定義する. その優先度は,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を使用してください. 機能strategy.exitが1回呼び出された場合,一度のみ退出します. 退出命令を複数回呼び出す場合は,命令strategy.exitまたはstrategy.outを使用します. 損失停止および追跡停止の注文タイプは,止損ストップまたは止損ストップです. そのうちの1つのみが最初に配置され,完了します.) 以下のすべてのパラメータが使用されている場合,利益制限ストップ,止損ストップ,止損ストップ,止損ストップ,止損ストップ,止損ストップ,止損ストップ,止損ストップ,止損ストップ,止損ストップ,止損ストップ,止損ストップ,止損ストップ,止損ストップ,止
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) は平衡のパーセント ((0-100) を定義する. その優先度は,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ポイントは,多頭退出のために(series string) 選択可能なパラメータ、OCAグループの名前 (oca_type = strategy.oca.reduce) 利益目標,ストップ/ストップ追跡、名前指定されていない場合は自動的に生成される。FMZはこのパラメータをサポートしていません.
- oca_name
comment
(series string) 選択可能なパラメータ.
- どうした?when
(series bool) 選択可能なパラメータ、オーダーの状態、alert_message
(series string)
これは,すべてのプレハングリストをキャンセル/停止する命令の名前参照であり,以下のような機能によって生成される:strategy.order, strategy.entry and strategy.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に基づいて注文をキャンセルします. ※
这是取消/停用所有预挂单命令,由以下功能生成: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) 一つの必須パラメータ. オーダー方向: qty
(series int/float) 選択可能なパラメータ、取引された契約/株数/手数/単位数、既定値はlimit
(series int/float) 選択可能なパラメータ。オーダーの制限値。指定されている場合,オーダーのタイプはstop
(series int/float) 選択可能なパラメータ。オーダーのストップ損失価格。指定されている場合,オーダーのタイプは(series string) 選択可能な参数.このオーダーはOCAグループ名に属している.オーダーはOCAグループに属していない場合は空文字が置かれる.FMZはこのパラメータをサポートしていません.
- oca_name
(input string) 選択可能なパラメータ。OCAオーダーグループタイプ。許容される値は:strategy.oca.none - 注文は特定のOCAグループに属してはならない. strategy.oca.cancel - 注文はOCAグループに属すべきで,その注文が取引されると,他のすべての注文はキャンセルされます. strategy.oca.reduce - 注文はOCAグループに属すべきで,注文の契約のXが配置されている場合,同じOCAグループ内の他の注文の契約のXが減少します。FMZはこのパラメータをサポートしていません.
- oca_type
comment
(series string) 選択可能なパラメータ.
- どうした?when
(series bool) 選択可能なパラメータ、オーダーの状態、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.opentrades.entry_id
返回未平仓交易的入场的ID。
戦略.オープン・トレード.エントリー_ID (取引番号)
**例子**
```pine
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_price
返回未平仓交易的入场价格。
戦略.オープン・トレード.エントリー・価格 (取引番号)
**例子**
```pine
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.opentrades.entry_time
返回未平仓交易入场的UNIX时间。
戦略.オープン・トレード.エントリー・タイム (取引番号)
**例子**
```pine
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.opentrades.profit
返回未平仓交易的盈亏。损失表示为负值。
戦略 オープン トレード 利益
返回最后开仓交易的利润
**例子**
```pine
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.opentrades.size
返回未平仓交易中的交易方向和合约数量。如果该值>0,则市场仓位为多头。如果该值<0,则市场仓位为空头。
戦略.オープン・トレード.サイズ (trade_num)
**例子**
```pine
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.entry_bar_index
返回已平仓交易入场的bar_index。
ストラテジー.閉鎖取引.エントリー_バー_インデックス (取引番号)
**例子**
```pine
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_price
返回已平仓交易的出场价格。
ストラテジー.終了取引.終了価格 (取引番号)
**例子**
```pine
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.exit_bar_index
返回已平仓交易退出的bar_index。
ストラテジー.閉鎖取引.出口_バー_インデックス (取引番号)
**例子**
```pine
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である.
また会おう
### strategy.closedtrades.entry_id
返回已平仓交易的入场的id。
ストラテジー. 閉じた取引. エントリー_ID (取引番号)
**例子**
```pine
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_price
返回已平仓交易的入场价格。
ストラテジー 閉じた取引 エントリー価格 (取引番号)
**例子**
```pine
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.entry_time
返回已平仓交易入场的UNIX时间。
ストラテジー 取引終了 開始時間 (取引番号)
**例子**
```pine
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.closedtrades.profit
返回已平仓交易的盈亏。损失表示为负值。
戦略.閉じた取引.利益 (取引番号)
**例子**
```pine
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.closedtrades.size
返回已平仓交易中的交易方向和合约数量。如果该值>0,则市场仓位为多头。 如果该值<0,则市场仓位为空头。
ストラテジー.閉鎖取引.サイズ (取引番号)
**例子**
```pine
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")
平均利益の割合を計算する
例
“pine
strategy("
ストラテジー 取引 サイズ 例 2
ストラテジーは15バーごとにロング・トレードを入れ 20バーごとにロング・トレードを終了します
if bar_index % 15 == 0 について
戦略.エントリー ((
// 両方の取引の利益を計算します. 利益Pct = 0.0 取引No = 0 戦略.閉鎖取引 - 1 entryP = ストラテジー.closedtrade
ウウオヤン取引が同時に行われることを望むなら,
軽い雲JSと同じようなトランザクションも行えますか? ありがとうございました.
リサ20231詳細なドキュメントをありがとうございました.
芸術このPineScriptは,Okexのシミュレーションディスクをプラットフォーム上でどのように使っているのでしょうか?
芸術開発者のプラットフォームに直接コピーして利用できます!
発明者 量化 - 微かな夢PINE言語は単種策のみを行うが,多種策は,python,javascript,c++で設計を書くのがベストである.
発明者 量化 - 微かな夢OKXは特殊なもので,彼らの模擬環境とリアルディスク環境は同じアドレスですが,別の場所では区別されます.
軽い雲OKX模擬盤は使えませんでした.
発明者 量化 - 微かな夢この多様なアーキテクチャの問題は,各取引所のインターフェースが異なるため,インターフェースの周波数制限が異なるため,多くの問題が生じる.
発明者 量化 - 微かな夢雲山さん,この提案をありがとうございました.
軽い雲JSと混同した方が良いと感じて,JSは様々な取引方法により適している.
トレンドハンター販売価格は各品種にわたって行われます.
発明者 量化 - 微かな夢嫌なことをする.
軽い雲素晴らしい,ありがとう,夢大さん.
発明者 量化 - 微かな夢PINE言語の戦略は,一時的に単一品種のみです.
発明者 量化 - 微かな夢この記事へのトラックバック一覧です.
発明者 量化 - 微かな夢ほら,もういいから
発明者 量化 - 微かな夢PINE 模範庫のパラメータは,交換取引所のベースアドレスを設定することができます. 文書の開始: PINE 言語取引庫の模範庫のパラメータ.