資源の読み込みに... 荷物...

FMZ PINE スクリプトのドキュメント

作者: リン・ハーン発明者 量化 - 微かな夢作成日: 2022-05-06 14:27:06, 更新日: 2024-10-12 15:27:04

返した値配列要素の中位数である.

パラメータ

  • id(int[]/float[]) アレイオブジェクトは,

また会おう array.avg array.variance array.min

array.mode

この関数は配列要素のパターンを返します. 同じ周波数を持つ複数の値がある場合は最小値を返します.

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 について

配列値の指定されたパーセント (パーセント数) が,その値よりも小さいか,またはそれと同等であるかを,線形插值を用いて返す.

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 について

最近の順位方法を使用して,指定した百分数の数値 (百分数) をその値よりも小さいまたは等しい値に戻します.

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

配列の中間値の百分比順序を返します.

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

この関数は,与えられた配列の最小値と最大値の差を返します.

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

この関数は,指定されたインデックスを持つ要素を削除することによって配列の内容を変更します.

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

この関数は配列を逆転します. 最初の配列要素が最後の配列要素になり,最後の配列要素が最初の配列要素になります.

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

array.from

この関数は,次のタイプのうちの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) 数列参数、

array.new

この関数は,新しい関数を作ります.<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 ) すべての序列要素の初期値。オプション。デフォルト値はna

コメント配列インデックスは0から始まる. 配列を初期化し,すべての要素を同時に指定する場合は,array.from を使います.

また会おう array.from array.push array.get array.size array.remove array.shift array.sum

array.new_bool を入力する

この関数は,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) すべての序列要素の初期値。オプション。デフォルト値はna

コメント配列インデックスは0から始まる.

また会おう array.new_float array.get array.slice array.sort

array.new_float を表示する

この関数は新しい浮点型要素配列オブジェクトを作成します.

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) すべての序列要素の初期値。オプション。デフォルト値はna

コメント配列インデックスは0から始まる.

また会おう array.new_bool array.get array.slice array.sort

array.new_int について

この関数は 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) すべての序列要素の初期値↑オプション↑デフォルト値はna

コメント配列インデックスは0から始まる.

また会おう array.new_float array.get array.slice array.sort

array.new_string について

この関数は,文字列型要素の新しい配列オブジェクトを作成します.

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) すべてのシリアル要素の初期値。オプション。デフォルト値はna

コメント配列インデックスは0から始まる.

また会おう array.new_float array.get array.slice

array.get

この関数は,指定されたインデックス要素の値を返します.

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

この関数は数列に値を追加します.

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

この関数は,要素の値を指定されたインデックスに設定します.

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

この関数は,配列要素の和を返します.

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

この関数は,配列要素の平均値を返します.

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

array.indexof

この関数は,値が最初に表示されたインデックスを返します. 値が見つからない場合は -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この関数は,profitlossパラメータは停止,停止,パラメータを表示します.profit10 に設定します.これは,価格のジャンプを 10 倍にして,価格のジャンプを 10 倍にして,価格のジャンプを 10 とします.syminfo.mintick

戦略

この関数は複数のポリシー属性を設定します. 注目! 伝播はサポートのみtitleshorttitleoverlaypyramidingdefault_qty_typedefault_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(const string) 価格軸上のフォーマット指標値のタイプの可能性は:format.inherit、format.price、format.volume、format.inheritをデフォルトとする.
  • precision(const int) 価格軸上の指標値の浮点数の後ろの位数. 非負の整数で 16 未満でなければならない. 省略された場合は親系列の形式を使用する. 形式がformat.inherit で,このパラメータが設定されている場合,format はformat.price に変わる.
  • scale(scale_type) インディケーターは価格の座標に従ってください. 可能な値は:scale.right,scale.left,scale.none。値scale.noneは,overlay=true設定と組み合わせてのみ使用できます。
  • pyramiding(const int) 同じ方向で許容される最大数.この値が0である場合,同じ方向で1つの入札のみを開くことができ,他の入札はすべて拒否されます.デフォルト値は0である.
  • calc_on_order_fills(const bool) 追加的なintrabar命令計算. 参数がtrueに設定されている場合,命令の後にK行に詰め込まれると,ポリシーは再計算する (ただし,k行を閉じる時だけではありません). デフォルト値はfalseである.
  • calc_on_every_tick(const bool) 追加的なintrabarポリシー計算. 参数がtrueの場合,ポリシーはk線を閉めないで,毎刻度をリアルタイムで計算します. この参数が歴史的なデータに対するポリシー計算に影響しません. デフォルト値はfalseです.
  • max_bars_back(const int) は,歴史参照のポリシーで使用できる最大ベーフ数である. スクリプトのコードで変数の歴史データに引用されている場合 (([]'演算子が使用されている場合),このパラグラムは,スクリプト内のすべての内置変数またはユーザー変数に適用されます. パインスクリプトの変容性バッファローンの大きさは,通常自動的に検出されます. しかし,いくつかの場合,これは不可能であり,このパラグラムがユーザにこの値を手動に設定することを許可する理由です. 注意:パラグラムではなくmax_bars_back関数を使用することが最適です.これは,1つの変数のみに適用されます.
  • backtest_fill_limits_assumption(const int) 制限券の実行仮定. 制限券は,市場価格が制限券のレベルに指定された数点を超える場合にのみイントラバーで取引される.
  • 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関数のデフォルトトランザクション数,そのqty参数が定義されていないとき,その単位はdefault_qty_type参数と併用される参数によって決定される.
  • currency(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。
  • slippage(const int) tick を値引き単位とするスライドポイントは,買い/売る市場価格の注文またはストップ損失の注文の取引価格から追加/減算されます.もしmintick = 0.01でスライドポイント = 5ならば,合計スライドポイントは5 * 0.01 = 0.05になります.
  • commission_type(const string) 各オーダーの佣金種類.許容される値は:strategy.commission.percent (注文の現金量の百分比),strategy.commission.cash_per_contract (各契約の口座通貨で表示される金額),strategy.commission.cash_per_order (各オーダーの口座通貨で表示される金額) です.
  • commission_value(const int/float) オーダー・コミッション・値、選択した種類 (コミッション・タイプ) に基づいて,パーセントまたは金額を含む。
  • process_orders_on_close(const bool) をtrueに設定すると,が閉じて戦略計算が完了した後,実行命令を生成する他の試みを行う. 注文が市場価格の注文である場合,ブローカーシミュレーターは次のが開かれる前にそれらを実行します. 注文が価格の制限である場合,価格条件を満たす場合にのみ注文を実行します. 現在ののポジションを閉じたい場合,このオプションは便利です. デフォルト値はfalseです.
  • close_entries_rule(const string) 注文の閉じる順序を指定する.許容される値は:FIFOまたはANY. FIFO (先行先行;First-In, First-Out) は,複数の取引が開いているとき,最初に閉じる取引を意味する.このルールは,株式,フューチャー,米国外為替 (NFA準則2-43b) に適用される.ANYは,取引が任意の順序で閉まることを意味する.これは,非米国外為替取引で許容される.デフォルト値は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*() 機能,fill,hline、オプションのみ適用される.デフォルト値はfalseである.
  • initial_capital(const int/float) は,当初戦略取引に使用できる資金の量で,貨幣のに定義された通貨を表す. ※オプション. ※デフォルト値は1000000です.
  • risk_free_rate(const int/float) リスクのない収益率は,リスク最小またはゼロの投資価値の年間百分比変化であり,SharpeとSortino比率を計算するために使用される.デフォルト値は2である.

コメント策略スクリプトには,戦略の呼び出しがある必要があります. 参数calc_on_every_tick = true を使用したPineScriptコードは,履歴とリアルタイムデータに対して異なる計算を行うことができます. 非標準型チャートを戦略の基礎として使用する際には,結果が異なることを認識する必要があります. 注文は,このテーブルの価格で実行されます (e.g.for Heikin Ashiでは,Heikin Ashiの価格 (平均) が使用されますが,実際の市場価格ではありません). したがって,標準型チャートを戦略で使用することを強くお勧めします.

また会おう indicator

strategy.entry

これは,市場へのエントリー命令である.同じ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) 選択可能なパラメータ。取引された契約/株数/手数/単位数。既定値は NaN
  • limit(series int/float) 選択可能なパラメータ、注文の制限価格、指定されている場合,注文タイプは"limit"または"stop-limit"、他の注文タイプは"NaN"である。
  • stop(series int/float) 選択可能なパラメータ、注文の停止損失価格、指定されている場合,注文タイプは"stop"または"stop-limit"、他の注文タイプは"NaN"である.
  • oca_name(series string) 選択可能な参数.このオーダーはOCAグループ名に属している.オーダーはOCAグループに属していない場合は空文字が置かれる.FMZはこのパラメータをサポートしていません.
  • oca_type(input string) 選択可能なパラメータ。OCAオーダーグループタイプ。許容される値は:strategy.oca.none - 注文は特定のOCAグループに属してはならない. strategy.oca.cancel - 注文はOCAグループに属すべきで,その注文が取引されると,他のすべての注文はキャンセルされます. strategy.oca.reduce - 注文はOCAグループに属すべきで,注文の契約のXが配置されている場合,同じOCAグループ内の他の注文の契約のXが減少します。FMZはこのパラメータをサポートしていません.
  • comment(series string) 選択可能なパラメータ.
  • when(series bool) 選択可能なパラメータ。オーダーの状態。trueの場合,オーダーは置かれます。falseの場合,何も起こらない。以前置かれた同じIDのオーダーは撤回されていません。デフォルト値はtrueです。
  • alert_message(series string) が警告を作成するダイアログボックス内のメッセージ欄に{{strategy.order.alert_message}}を代入するときに選択可能なパラメータ.

strategy.close

これは,指定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) 選択可能なパラメータ。取引を退場する契約/株数/手数/ユニットの数。デフォルト値は NaN
  • qty_percent(series int/float) は平衡のパーセントを定義します. その優先度は,qty参数の優先度より低いです. ※オプションです. ※デフォルト値は100です.
  • comment(series string) 選択可能なパラメータ.
  • alert_message(series string) が警告を作成するダイアログボックス内のメッセージ欄に{{strategy.order.alert_message}}を代入するときに選択可能なパラメータ.

戦略.close_all

市場を平らにするために現在の市場から脱退する.

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) が警告を作成するダイアログボックス内のメッセージ欄に{{strategy.order.alert_message}}を代入するときに選択可能なパラメータ.

strategy.exit

これは,エントリーまたは全市場位置を指定する退出命令である. 同じIDのオーダーが既に掛かっている場合,オーダーを変更することができます. 入場オーダーが完了していないが,退出オーダーが発生した場合,退出オーダーは,入場オーダーが完了した後に退出オーダーを置くまで停止されます. 退出オーダーを停止するには,コマンドstrategy.cancelまたはstrategy.cancel_allを使用してください. 戦略.exit関数が一度呼び出された場合,一度だけ退出します. 複数の退出を行う場合は,一度だけ退出します.应该多次调用命令strategy.exit・止損と追跡止損を使用すると,その注文タイプがストップで,そのうちの1つのみが配置され (最初に取引される) ・以下のすべてのパラメータが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, 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) 選択可能なパラメータ。取引を退場する契約/株数/手数/ユニットの数。デフォルト値は NaN
  • qty_percent(series int/float) は平衡のパーセントを定義します. その優先度は,qty参数の優先度より低いです. ※オプションです. ※デフォルト値は100です.
  • profit(series int/float) 選択可能なパラメータ。利益目標 (点表示) ー指定されている場合は,指定された利益 (点表示) に達すると,制限価格の注文で市場ポジションを退場します。デフォルト値は NaN ーです。
  • limit(series int/float) 選択可能なパラメータ。利益目標 (価格指定が必要)。指定されている場合,指定価格 (価格) またはより良い価格で市場ポジションを退場する。パラメータのlimitの優先度はパラメータのprofitの優先度より高い。非NaNの場合はlimitprofitに置き換えられる。デフォルト値はNaNである。
  • loss(series int/float) 選択可能なパラメータ。停止損失 (点表示) ー指定されている場合,指定された損失 (点表示) に達すると停止損失单で市場ポジションを退場します.デフォルト値は NaN ーです.
  • stop(series int/float) 選択可能なパラメータ。ストップ損失 (価格指定が必要)。指定されている場合,指定価格 (価格) またはそれより劣る価格で市場ポジションを退場する。パラメータのストップ損失のの優先度はパラメータの損失のの優先度より高い。デフォルト値は NaNの代わりに損失のです。
  • trail_price(series int/float) 選択可能なパラメータ。ストップ損失を追跡するアクティベーションレベル (価格指定が必要)。指定されている場合,指定価格レベルに達すると追跡停止を放置する。トレイル_オフセットのパラメータで,ストップ損失を追跡する初期価格を決定する偏差量を指定する。ポイント計):多頭退出のためにアクティベーションレベルよりXポイント低い;空頭退出のためにアクティベーションレベルよりXポイント高い。デフォルト値はNaNである。
  • trail_points(series int/float) 選択可能なパラメータ。トラッキングストップロスのアクティベーションレベル (ポイントで表示される利益) ー指定されている場合,計算された価格レベル (ポイントで表示される利益額) に到達するとトラッキングストップロスの单元を配置します。trail_offset パラメータでは,追跡ストップロスの单元の初期価格を決定するための偏差量を指定します (ポイントで表示されます):Xポイントがアクティベーションレベル以下で多頭退出;Xポイントがアクティベーションレベル以上で空頭退出します。デフォルト値はNaNです。
  • trail_offset(series int/float) 選択可能なパラメータ. 追跡ストップ損失活性化レベル (点表示) ポイント計の偏差量は追跡ストップ損失单の初期価格を決定するために使用されます:X点は多頭退出のためにtrail_price or'trail_points以下;X点は空頭退出のためにtrail_price or'trail_points以上. 既定値はNaNである.
  • oca_name(series string) 選択可能なパラメータ、OCAグループの名前 (oca_type = strategy.oca.reduce) 利益目標,ストップ/ストップ追跡、名前指定されていない場合は自動的に生成される。FMZはこのパラメータをサポートしていません.
  • comment(series string) 選択可能なパラメータ.
  • when(series bool) 選択可能なパラメータ。オーダーの状態。trueの場合,オーダーは置かれます。falseの場合,何も起こらない。以前置かれた同じIDのオーダーは撤回されていません。デフォルト値はtrueです。
  • alert_message(series string) が警告を作成するダイアログボックス内のメッセージ欄に{{strategy.order.alert_message}}を代入するときに選択可能なパラメータ.

strategy.cancel

これは,次の機能によって生成される,すべてのプレハングリストの命令をキャンセル/停止する名前参照です: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) 選択可能な参数、すべてのオーダーの条件をキャンセル、条件が真であればすべてのアクティブオーダーはキャンセル、デフォルト値はtrue

strategy.order

これは次のオーダーの命令である.同じIDのオーダーが既に掛かっている場合,オーダーを変更することができる.IDが指定されていない場合,新しいオーダーを発行する.命令を停止するには,命令strategy.cancelまたはstrategy.cancel_allを使用すべきである.機能strategy.entryとは異なり,機能strategy.orderはピラミッド形式の影響を受けない.制限停止損失のパラメータが2つともNaNである場合,注文タイプは市場オーダーである.

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) 選択可能なパラメータ。取引された契約/株数/手数/単位数。既定値は NaN
  • limit(series int/float) 選択可能なパラメータ、注文の制限価格、指定されている場合,注文タイプは"limit"または"stop-limit"、他の注文タイプは"NaN"である。
  • stop(series int/float) 選択可能なパラメータ、注文の停止損失価格、指定されている場合,注文タイプは"stop"または"stop-limit"、他の注文タイプは"NaN"である.
  • oca_name(series string) 選択可能な参数.このオーダーはOCAグループ名に属している.オーダーはOCAグループに属していない場合は空文字が置かれる.FMZはこのパラメータをサポートしていません.
  • oca_type(input string) 選択可能なパラメータ。OCAオーダーグループタイプ。許容される値は:strategy.oca.none - 注文は特定のOCAグループに属してはならない. strategy.oca.cancel - 注文はOCAグループに属すべきで,その注文が取引されると,他のすべての注文はキャンセルされます. strategy.oca.reduce - 注文はOCAグループに属すべきで,注文の契約のXが配置されている場合,同じOCAグループ内の他の注文の契約のXが減少します。FMZはこのパラメータをサポートしていません.
  • comment(series string) 選択可能なパラメータ.
  • when(series bool) 選択可能なパラメータ。オーダーの状態。trueの場合,オーダーは置かれます。falseの場合,何も起こらない。以前置かれた同じIDのオーダーは撤回されていません。デフォルト値はtrueです。
  • alert_message(series string) が警告を作成するダイアログボックス内のメッセージ欄に{{strategy.order.alert_message}}を代入するときに選択可能なパラメータ.

ストラテジー.オープン・トレード.エントリー_バー_インデックス

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

取引が完了していない場合の入場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

負の値で表示される.

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

strategy.opentrades.size

非平衡取引における取引方向と契約数値を返します. この値>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

取引先の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

負の値で表示される. 負の値で表示される.

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

strategy.closedtrades.size

取引方向と平成の取引中の契約の数を返します. この値>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 言語取引庫の模範庫のパラメータ.