ceArray =array.new
方法 calcBB(array
bool newSample = bar_index % n == 0
[sampleMean, highBand, lowBand] = sourceArray.maintainQueue ((sourceInput, newSample).calcBB ((倍数, newSample) ] ソースArray.maintainQueue ((sourceInput, newSample) ソースインプット,newSample).calcBB ((倍数,newSample)
グラフ (サンプル) 平均,
可以看到使用关键字method声明的用户自定义方法:maintainQueue、calcBB的参数列表中第一个参数都是```array<float>```类型。表示该method是```array<float>```类型变量的方法,所以可以看到调用以下代码来计算布林指标。
```pine
[sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample)
メソッドをリロードする
ユーザ定義メソッドは,同じ識別子を持つ既存の内蔵メソッドとユーザ定義メソッドを覆い,重載することができる.この機能は,ユーザが同じメソッド名で異なるパラメータ署名に関連した複数のインスタンスを定義することを許可する.例として,変数のタイプを識別するためにメソッドを定義したいと仮定します.ユーザ定義メソッドに関連したオブジェクトのタイプを明確に指定しなければならないため,私たちが認識したいすべてのタイプを定義する重載が必要です.下記では,GetType ( getType) メソッドを定義します.このメソッドは,変数のタイプの文字表示形式を返し,5つの基本的なタイプを重載します:
//@version=5
indicator("Type Inspection")
// @function Identifies an object's type.
// @param this Object to inspect.
// @returns (string) A string representation of the type.
method getType(int this) =>
na(this) ? "int(na)" : "int"
method getType(float this) =>
na(this) ? "float(na)" : "float"
method getType(bool this) =>
na(this) ? "bool(na)" : "bool"
method getType(color this) =>
na(this) ? "color(na)" : "color"
method getType(string this) =>
na(this) ? "string(na)" : "string"
a = 1 // a.getType(): float
b = 1.0 // b.getType(): float
c = true // c.getType(): bool
d = color.white // d.getType(): string(na)
e = "1" // e.getType(): string
runtime.log("a.getType():", a.getType())
runtime.log("b.getType():", b.getType())
runtime.log("c.getType():", c.getType())
runtime.log("d.getType():", d.getType())
runtime.log("e.getType():", e.getType())
runtime.error("stop")
各変数の基本型が決定されるgetType()
FMZプラットフォームでは,PINEの脚本底部がJavaScript言語で実装されているため,数値型は浮点型データ (float) と判断される.
函数呼び出し時に参数伝達,参数名付けを指定し,対応する参数位置で直接変数を伝達し,混合使用もサポートする.例えば:
plot(close, title="test plot") // 直接传参数 close ;指定参数 title ,赋值字符串"test plot"
参数名付けを指定した後に,直接参数として変数を転送することはできません.その後の送信は,参数名付けの形式で記述する必要があります.
// plot(close, title="test", color.red) // 虽然plot第三个参数是颜色值,但是这样写就会报错
plot(close, title="test", color=color.red) // 正确写法
plot(close, "test", color.red) // 正确写法
送られてきます.timeframe
パラメータの時間周期を秒に変換します.
timeframe.in_seconds(timeframe)
例
// Get chart timeframe:
i_tf = input.timeframe("1D")
// Convert timeframe to the int value (number of seconds in 1 Day):
tf = timeframe.in_seconds(i_tf)
plot(tf)
返した値
timeframe
int は,K 行の秒数を表す形である.
パラメータ
timeframe
(simple string) タイムフレーム、オプション、デフォルトはtimeframe.period。コメントについてtimeframe
>=
また会おう
input.timeframe
timeframe.period
コード識別子を作成して,平均K行値をスムーズに要求します.
ticker.heikinashi(symbol)
例
heikinashi_close = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close)
heikinashi_aapl_60_close = request.security(ticker.heikinashi(syminfo.tickerid), "60", close)
plot(heikinashi_close)
plot(heikinashi_aapl_60_close)
返した値 股票代码的字符串值,可以提供给request.security函数。
パラメータ
symbol
(simple string) 商品コードの識別子.また会おう
syminfo.tickerid
syminfo.ticker
request.security
外部のデータを求めます.
request.data(url, attribute)
例
/*backtest
start: 2024-09-01 16:00:00
end: 2024-10-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["RunMode",1,358374],["ZPrecision",0,358374]]
*/
var chart_data = "https://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data"
spotPrice = request.data(chart_data, "$.spot_close_price")
futuresPrice = request.data(chart_data, "$.future_close_price")
diff = futuresPrice - spotPrice
plot(diff, "永续-现货差价")
plot(futuresPrice, "期货价格", overlay=true)
plot(spotPrice, "现货价格", overlay=true)
if diff > 80 and strategy.position_size >= 0
runtime.log("diff > 80")
strategy.entry("Enter Short", strategy.short)
if diff < 60 and strategy.position_size <= 0
runtime.log("diff < 60")
strategy.entry("Enter Short", strategy.long)
返した値パラメータattribute
指定されたデータシリーズ.
パラメータ
url
(simple string) 要求されたデータソースのurl,データソースが返信するデータ形式は,以下の条件を満たす必要があります (少なくともtime、data属性を含む):{"data": [], "schema": ["time", "data"]}
◎例のデータ形式を参照してください:
{
"data": [
[1720051200000, "{\"spot_close_price\" : 57050.01, \"future_close_price\" : 57045.9}"],
[1720137600000, "{\"spot_close_price\" : 56628.79, \"future_close_price\" : 56604.9}"],
// ...
],
"schema": ["time", "data"]
}
attribute
(simple string) 属性の名前を指定し,必要なデータを返します.例えば:"$.spot_close_price"
活用する$.
前記として,属性名と要求されたデータソースで返信されたデータ内のdataフィールド内の属性が一致する
誤差が提示された場合,チェックする必要があります.request.data
リクエストの時間範囲がリクエストの設定時間範囲と一致するかどうか,リクエストの時間配列でデータをクエリできない場合はエラーが返されます.
この例では,data-data は SQL 文のデータクエリです.
WITH latest_data AS (
SELECT
klines.spot_1d.Time AS time,
CONCAT('{\"spot_close_price\" : ', klines.spot_1d.Close, ', \"future_close_price\" : ', klines.future_1d.Close, '}') AS data
FROM
klines.spot_1d
JOIN
klines.future_1d
ON
klines.spot_1d.Time = klines.future_1d.Time
WHERE
klines.spot_1d.Symbol = 'btc_usdt'
AND
klines.future_1d.Symbol = 'btc_usdt.swap'
AND
klines.spot_1d.Exchange = 'Binance'
AND
klines.future_1d.Exchange = 'Binance'
ORDER BY
klines.spot_1d.Time DESC
LIMIT 100
)
SELECT * FROM latest_data
ORDER BY time ASC;
動画はFMZで視聴できます.データ探索ページの検索,データリンク作成,例で使いますhttps://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data
。
異なった種類/解像度を求めます.
request.security(symbol, timeframe, expression, gaps, lookahead, ignore_invalid_symbol, currency)
例
s = request.security(syminfo.tickerid, "D", close) // 1 Day
plot(s)
expr = ta.sma(close, 10)
s1 = request.security(syminfo.tickerid, "240", expr) // 240 Minutes
plot(s1)
// To avoid difference in calculation on history/realtime you can request not latest values and use merge strategy flags as follows:
s2 = request.security(syminfo.tickerid, "D", close[1], barmerge.gaps_off, barmerge.lookahead_on)
plot(s2)
f() => [open, high]
[o, h] = request.security(syminfo.tickerid, "D", f())
[l, c] = request.security(syminfo.tickerid, "D", [low, close])
plot((o + h + l + c) / 4)
返した値シリーズ要求
パラメータ
symbol
(simple string) 商品コード.timeframe
(simple string) 時間周期.空の文字列は,グラフの現在の時間周期として解釈されます.expression
(series int/float/bool/color) は,request.security から計算を呼び出し,表現を返します. それは,一行または一行に変換できる要素を含む要素を含む一組である可能性があります.gaps
(barmerge_gaps) 要求されたデータへの統合ポリシー (データにOHLCの主要な一連のデータに自動的に結合することを要求する) 可能な値:barmerge.gaps_on,barmerge.gaps_off、barmerge.gaps_on - 要求されたデータと可能なギャップを組み合わせ (ナ値) ・barmerge.gaps_off - 要求されたデータが連続して不間断に結合され,すべてのギャップが前回の最新の既存の値で満たされる.デフォルト値はbarmerge.gaps_off。lookahead
(barmerge_lookahead) 要求されたデータへの統合ポリシー.可能な値:barmerge.lookahead_on,barmerge.lookahead_off.バージョン3からデフォルト値はbarmerge.lookahead_off.注意してください,動作はリアルタイムと同じで,歴史では異なります.ignore_invalid_symbol
(const bool) 選択参数.指定された商品が見つからない場合,関数の動作を決定する. falseの場合,スクリプトは停止し,実行時にエラーに戻る. trueの場合,関数はnaを返して実行を続けます. デフォルト値はfalseです.currency
(simple string) 商品の通貨関連値 (例えば OHLC) を変換した通貨である.その後,変換された値に基づいてコメントこの機能を使用したPineScriptコードは,履歴とリアルタイムデータに対して異なる計算を行うことができます.要求された商品に追加パラメータを指定したい場合,例えば取引時間帯や調整タイプ,您可以使用ticker.newこの関数は,
この関数に点差を伝達するには,現在,1つのスクリプトには最大40の request.security コールができます.
この変数/関数を使用すると指標が再描画される可能性があります.
解像度パラメータは以下の値で許容されます.
1S,5S,15S,30S - 秒間隔 (グラフ周期は,要求された周期よりも小さいまたはそれと同等である必要があります)
1から1440分まで
1Dから365Dまで
1Wから52Wまで 数週間で
1Mから12Mまで数ヶ月で
また会おう
syminfo.ticker
syminfo.tickerid
timeframe.period
ta.correlation
barmerge.lookahead_off
barmerge.lookahead_on
もしsource
文字列はstr
文字列は,文字列の文字列のいずれかである.
str.contains(source, str)
例
// If the current chart is a continuous futures chart, e.g “BTC1!”, then the function will return true, false otherwise.
var isFutures = str.contains(syminfo.tickerid, "!")
plot(isFutures ? 1 : 0)
返した値存在している場合source
文字列で見つけましたstr
偽の場合は true となる.
パラメータ
source
(series string) ソース文字列str
(series string) 検索する子文字列.また会おう
str.pos
str.match
もしsource
文字列はstr
指定された子文字列の終わりは true を返します.
str.endswith(source, str)
返した値もしsource
文字列はstr
指定された子文字列の終了は true,またはfalse です.
パラメータ
source
(series string) ソース文字列str
(series string) 検索する子文字列.また会おう
str.startswith
もしsource
文字列はstr
中に指定された子文字列の始まりは true を返します.
str.startswith(source, str)
返した値もしsource
文字列はstr
指定された子文字列の始まりは true,または false です.
パラメータ
source
(series string) ソース文字列str
(series string) 検索する子文字列.また会おう
str.endswith
文字列を書き換えるには,source
文字列の子文字列は、子文字列はbegin_pos
指定されたインデックス文字から始まり,source
文字列の
str.substring(source, begin_pos)
str.substring(source, begin_pos, end_pos)
例
sym= "EXCHANGE_NAME:SYMBOL_NAME"
pos = str.pos(sym, ":") // Get position of ":" character
tkr= str.substring(sym, pos+1) // "SYMBOL_NAME"
if barstate.islastconfirmedhistory
runtime.log(tkr)
返した値ソース文字列から抽出した子文字列.
パラメータ
source
(series string) ソース文字列から子文字列を抽出する.begin_pos
(series int) を抽出した子文字列の開始位置. それは独占的である. (抽出した子文字列にはその位置の文字が含まれている).end_pos
(series int) 終了位置、それは独占的である (引出した文字列にはその位置の文字が含まれていない)、オプションである。デフォルト値はsource
文字列の長さ.コメント文字列のインデックスは0から始まる.begin_pos
これは,end_pos
この関数は,空の文字列を返す.
また会おう
str.contains
str.pos
str.match
str.tonumber(string)
返した値有効数字を含む場合,文字列の浮点型,そうでない場合は na です.
パラメータ
string
(series string) intまたはfloatの文字列表示形式.形式文字列と値をフォーマット文字列に変換する.形式文字列には文字テキストとフォーマットされる各値の大きな括弧{} の1つの占有符が含まれます.各占有符には,その必須パラメータを代用するインデックス ((0から始まる) と選択可能な形式説明符が含まれます.インデックスはstr.formatパラメータリスト内のパラメータの位置を示します.
str.format(formatString, arg0, arg1, ...)
例
// The format specifier inside the curly braces accepts certain modifiers:
// - Specify the number of decimals to display:
s1 = str.format("{0,number,#.#}", 1.34) // returns: 1.3
runtime.log(s1)
// - Round a float value to an integer:
s2 = str.format("{0,number,integer}", 1.34) // returns: 1
runtime.log(s2)
// - Display a number in currency:
s3 = str.format("{0,number,currency}", 1.34) // returns: $1.34
runtime.log(s3)
// - Display a number as a percentage:
s4 = str.format("{0,number,percent}", 0.5) // returns: 50%
runtime.log(s4)
// EXAMPLES WITH SEVERAL ARGUMENTS
// returns: Number 1 is not equal to 4
s5 = str.format("Number {0} is not {1} to {2}", 1, "equal", 4)
runtime.log(s5)
// returns: 1.34 != 1.3
s6 = str.format("{0} != {0, number, #.#}", 1.34)
runtime.log(s6)
// returns: 1 is equal to 1, but 2 is equal to 2
s7 = str.format("{0, number, integer} is equal to 1, but {1, number, integer} is equal to 2", 1.34, 1.52)
runtime.log(s7)
// returns: The cash turnover amounted to $1,340,000.00
s8 = str.format("The cash turnover amounted to {0, number, currency}", 1340000)
runtime.log(s8)
// returns: Expected return is 10% - 20%
s9 = str.format("Expected return is {0, number, percent} - {1, number, percent}", 0.1, 0.2)
runtime.log(s9)
返した値形式化された文字列.
パラメータ
formatString
(series string) 形式の文字列.arg0, arg1, ...
(series int/float/bool/string/na/int[]/float[]/bool[]/string[]) はフォーマットする値である.コメント引用されていないスタイルのすべての括弧はバランスをとらなければなりません.例えば,
文字列の文字数に対応する整数を返します.
str.length(string)
返した値ソース文字列の文字数.
パラメータ
string
(series string) ソース文字列文字をすべて小文字に変換した新しい文字列を返します.
str.lower(source)
返した値すべての文字が新しい文字列に変換される.
パラメータ
source
(series string) 変換する文字列.また会おう
str.upper
文字をすべて大文字に変換した新しい文字列を返します.
str.upper(source)
返した値すべての文字が新しい文字列に大文字で変換される.
パラメータ
source
(series string) 変換する文字列.また会おう
str.lower
組み合わせた場合regex
この式は,source
文字列の新しい子文字列,または
str.match(source, regex)
例
s = input.string("It's time to sell some EXCHANGE_NAME:SYMBOL_NAME!")
// finding first substring that matches regular expression "[\w]+:[\w]+"
var string tickerid = str.match(s, "[\\w]+:[\\w]+")
if barstate.islastconfirmedhistory
runtime.log(tickerid) // "EXCHANGE_NAME:SYMBOL_NAME"
返した値
source
文字列の新しい子文字列は,regex
公式表現は,他の場合は,
パラメータ
source
(series string) ソース文字列regex
(series string) この文字列にマッチする正規表現.コメントこの関数は,source
文字列に最初に登場する正規表現である.regex
文字列内の反斜め\
また会おう
str.contains
str.substring
戻るsource
文字列に最初に登場するstr
文字列の位置が表示されなければ,
str.pos(source, str)
返した値
str
文字列はsource
文字列の位置は
パラメータ
source
(series string) ソース文字列str
(series string) 検索する子文字列.コメント文字列インデックスは0から始まる.
また会おう
str.contains
str.match
str.substring
この文字列は N + 1 番目の文字列を返します.target
文字列や以前にもあったものtarget
文字列はreplacement
この文字列は,occurrence
中間指定. N は,代用するターゲット文字列がソース文字列に表示されるマッチングインデックスである.
str.replace(source, target, replacement, occurrence)
例
var source = "EXCHANGE1:SYMBOL1 / EXCHANGE1:SYMBOL2"
// Replace first occurrence of "EXCHANGE1" with "EXCHANGE2" replacement string
var newSource = str.replace(source, "EXCHANGE1", "EXCHANGE2", 0)
if barstate.islastconfirmedhistory
// Display "EXCHANGE2:SYMBOL1 / EXCHANGE1:SYMBOL2"
runtime.log(newSource)
返した値文字列が処理されています
パラメータ
source
(series string) ソース文字列target
(series string) 文字列を入れ替えましたreplacement
(series string) 挿入する文字列は,ターゲット文字列ではなく,occurrence
(series int) 代替するターゲット文字列は,ソース文字列に表示されるマッチングインデックスである.最初のマッチングインデックスは0から始まる.オプションである.デフォルト値は0である.また会おう
str.replace_all
str.match
文字列を入れ替えて,ソース文字列に現れるたびに目標文字列を入れ替える.
str.replace_all(source, target, replacement)
返した値文字列が処理されています
パラメータ
source
(series string) ソース文字列target
(series string) 文字列を入れ替えましたreplacement
(series string) 対象文字列が表示されるたびに,文字列が替わります.文字列を子文字列の配列に分割し,配列IDを返します.
str.split(string, separator)
返した値文字列の行列のIDは、
パラメータ
string
(series string) ソース文字列separator
(series string) 各子文字列を分離する文字列.str.tostring(value)
str.tostring(value, format)
str.tostring(value[])
str.tostring(value[], format)
返した値
value
参数の文字列が表示される形式は,
もしvalue
引数は文字列で,元のように返します.
どこにいるのかvalue
Na のとき,関数は文字列
パラメータ
value
(series int/float/bool/string/int[]/float[]/bool[]/string[]) の要素が文字列の値または配列IDに変換される.format
(シリーズ文字列) フォーマット文字列. このフォーマットを受け入れます.* 定数: format.mintick, format.percent, format.volume. オプション. デフォルト値は コメント浮点値のフォーマットも必要に応じてこれらの値に四五を入れます.例えば,str.tostring ((3.99,
機能の色は,透明性を指定し,与えられた色に適用します.
color.new(color, transp)
例
plot(close, color=color.new(color.red, 50))
返した値透明性のある色はあります.
パラメータ
color
(シリーズの色)transp
(series int/float) 使用可能な値は0 (不透明) から100 (見えない) までですコメント非常数のパラメータ (例えば,
RGB色モデルを使用して透明性のある新しい色を作成します.
color.rgb(red, green, blue, transp)
例
plot(close, color=color.rgb(255, 0, 0, 50))
返した値透明性のある色はあります.
パラメータ
red
(series int/float) 赤色. 可能な値は0から255である.green
(series int/float) 緑色.可能な値は0から255である.blue
(series int/float) 青色. 可能な値は0から255である.transp
(series int/float) 選択可能です。色透明。可能な値は0 (非透明) から100 (透明) まで。デフォルト値は0である。コメント非常数のパラメータ (例えば,
コントロールで変数情報を印刷します.
FMZ PINEは,FBの言語で機能している.runtime.debug(value)
参数1つしかない.
ブログのコンテンツを輸出する.
FMZ PINEは,FBの言語で機能している.runtime.log(1, 2, 3, close, high, ...)
複数のパラメータを転送できます.
実行時にエラーが発生し,message
参数で指定されたエラーメッセージ.
runtime.error(message)
パラメータmessage (series string) エラーメッセージ.
インプットをスクリプト設定のインプットラベルページに追加し,スクリプトユーザーに設定オプションを提供することを許可します. この機能は,自動で
input(defval, title, tooltip, inline, group)
input(defval, title, inline, group, tooltip)
例
i_switch = input(true, "On/Off") // 设置true,默认勾选
plot(i_switch ? open : na)
i_len = input(7, "Length")
i_src = input(close, "Source") // 下拉框,默认选择close
plot(ta.sma(i_src, i_len))
i_col = input(color.red, "Plot Color")
plot(close, color=i_col)
i_text = input("Hello!", "Message")
runtime.log(i_text)
返した値変数の値を入力します.
パラメータ
defval
(const int/float/bool/string/color or source-type built-ins) スクリプトのclose
、hlc3
ほらtitle
(const string) 入力されたヘッタール. 指定していない場合は,変数名を入力されたヘッタールとして使用します. 指定したヘッタールが空っぽのヘッタールであれば,名前は空の文字列になります.tooltip
(const string) この文字列は,ツール提示のアイコンの上にマウスが停まっているときにユーザーに表示されます.inline
(const string) 一行に同じ参数を使用したすべての入力呼び出しを組み合わせます.参数として使用された文字列は表示されません.それは同じ行に属する入力だけを識別します.group
(const string) 同じ集合参数文字列を使用して,すべての入力の上に標本を作成します. この文字列は標本のテキストとしても使用されます.コメントinput関数の返した値は常に変数に割り当てられる.上記の例を参照.
また会おう
input.bool
input.color
input.int
input.float
input.string
input.timeframe
input.source
インプットをスクリプト設定のインプットラベルページに追加し,スクリプトユーザーに設定オプションを提供することを許可します. この機能には,ユーザが計算源,例えばclose,hl2などを選択できるようにドロップダウンメニューを追加します. スクリプトに1つのインプット.ソース (input.source) 呼び出しのみが含まれている場合,ユーザはグラフ上の別の指標の出力をソースとして選択することもできます.
input.source(defval, title, tooltip, inline, group)
例
i_src = input.source(close, "Source")
plot(i_src)
返した値変数の値を入力します.
パラメータ
defval
(series int/float) は,スクリプトのtitle
(const string) 入力されたヘッタール. 指定していない場合は,変数名を入力されたヘッタールとして使用します. 指定したヘッタールが空っぽのヘッタールであれば,名前は空の文字列になります.tooltip
(const string) この文字列は,ツール提示のアイコンの上にマウスが停まっているときにユーザーに表示されます.inline
(const string) 一行に同じ参数を使用したすべての入力呼び出しを組み合わせます.参数として使用された文字列は表示されません.それは同じ行に属する入力だけを識別します.group
(const string) 同じ集合参数文字列を使用して,すべての入力の上に標本を作成します. この文字列は標本のテキストとしても使用されます.コメント input.source函数的结果总是应该分配给一个变量,见上面的例子。
また会おう
input.bool
input.int
input.float
input.string
input.timeframe
input.color
input
Input をスクリプト設定の入力オプションタブに追加します. この機能は,文字入力フィールドをスクリプトの入力に追加します.
input.string(defval, title, options, tooltip, inline, group, confirm)
例
i_text = input.string("Hello!", "Message")
runtime.log(i_text)
返した値変数の値を入力します.
パラメータ
defval
(const string) スクリプトのoptions
参数と組み合わせた場合,この値は,そのうちの1つである必要があります.title
(const string) 入力されたヘッタール. 指定していない場合は,変数名を入力されたヘッタールとして使用します. 指定したヘッタールが空っぽのヘッタールであれば,名前は空の文字列になります.options
[tooltip
(const string) この文字列は,ツール提示のアイコンの上にマウスが停まっているときにユーザーに表示されます.inline
(const string) 一行に同じ参数を使用したすべての入力呼び出しを組み合わせます.参数として使用された文字列は表示されません.それは同じ行に属する入力だけを識別します.group
(const string) 同じ集合参数文字列を使用して,すべての入力の上に標本を作成します. この文字列は標本のテキストとしても使用されます.confirm
(const bool) true とすると,指標がグラフに追加される前に入力値を確認するように要求されます.デフォルト値は false です.コメント input.string函数的结果总是应该分配给一个变量,见上面的例子。
また会おう
input.bool
input.int
input.float
input.timeframe
input.source
input.color
input
インプットをスクリプト設定の入力ラベルページに追加します.これはスクリプトユーザーに設定オプションを提供することを可能にします.この機能はスクリプトの入力に再選択ラベルを追加します.
input.bool(defval, title, tooltip, inline, group, confirm)
例
i_switch = input.bool(true, "On/Off")
plot(i_switch ? open : na)
返した値変数の値を入力します.
パラメータ
defval
(const bool) は,スクリプトのtitle
(const string) 入力されたヘッタール. 指定していない場合は,変数名を入力されたヘッタールとして使用します. 指定したヘッタールが空っぽのヘッタールであれば,名前は空の文字列になります.tooltip
(const string) この文字列は,ツール提示のアイコンの上にマウスが停まっているときにユーザーに表示されます.inline
(const string) 一行に同じ参数を使用したすべての入力呼び出しを組み合わせます.参数として使用された文字列は表示されません.それは同じ行に属する入力だけを識別します.group
(const string) 同じ集合参数文字列を使用して,すべての入力の上に標本を作成します. この文字列は標本のテキストとしても使用されます.confirm
(const bool) true とすると,指標がグラフに追加される前に入力値を確認するように要求されます.デフォルト値は false です.コメント input.bool函数的结果总是应该分配给一个变量,见上面的例子。
また会おう
input.int
input.float
input.string
input.timeframe
input.source
input.color
input
インプットをスクリプト設定のインプットラベルページに追加します.これはスクリプトユーザーに設定オプションを提供することを可能にします.この機能は,インプットのインプットに整数のインプットフィールドを追加します.
input.int(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.int(defval, title, options, tooltip, inline, group, confirm)
例
i_len1 = input.int(10, "Length 1", minval=5, maxval=21, step=1)
plot(ta.sma(close, i_len1))
i_len2 = input.int(10, "Length 2", options=[5, 10, 21])
plot(ta.sma(close, i_len2))
返した値変数の値を入力します.
パラメータ
defval
(const int) は,スクリプトのoptions
参数と組み合わせた場合,この値は,そのうちの1つである必要があります.title
(const string) 入力されたヘッタール. 指定していない場合は,変数名を入力されたヘッタールとして使用します. 指定したヘッタールが空っぽのヘッタールであれば,名前は空の文字列になります.minval
(const int) 入力変数の最小可能値です。オプションです。maxval
(const int) 入力変数の最大可能値です。オプションです。step
(const int) 入力のステップ長値を増やしたり減らしたりする. ※オプション. ※デフォルト値は 1 です.options
(tuple of const int values: [val1, val2,...]) 引き下ろしメニューから選択したオプションリスト,コマで区切られ,括弧で括り:[val1, val2,...]................................................................minval
、maxval
そしてstep
パラメータは.tooltip
(const string) この文字列は,ツール提示のアイコンの上にマウスが停まっているときにユーザーに表示されます.inline
(const string) 一行に同じ参数を使用したすべての入力呼び出しを組み合わせます.参数として使用された文字列は表示されません.それは同じ行に属する入力だけを識別します.group
(const string) 同じ集合参数文字列を使用して,すべての入力の上に標本を作成します. この文字列は標本のテキストとしても使用されます.confirm
(const bool) true とすると,指標がグラフに追加される前に入力値を確認するように要求されます.デフォルト値は false です.コメント input.int函数的结果总是应该分配给一个变量,见上面的例子。
また会おう
input.bool
input.float
input.string
input.timeframe
input.source
input.color
input
インプットをスクリプト設定のインプットラベルページに追加する.これは,スクリプトユーザーに設定オプションを提供することを可能にする.この機能は,浮点インプットフィールドをスクリプトのインプットに追加する.
input.float(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.float(defval, title, options, tooltip, inline, group, confirm)
例
i_angle1 = input.float(0.5, "Sin Angle", minval=-3.14, maxval=3.14, step=0.02)
plot(math.sin(i_angle1) > 0 ? close : open, "sin", color=color.green)
i_angle2 = input.float(0, "Cos Angle", options=[-3.14, -1.57, 0, 1.57, 3.14])
plot(math.cos(i_angle2) > 0 ? close : open, "cos", color=color.red)
返した値変数の値を入力します.
パラメータ
defval
(const int/float) は,スクリプトのoptions
参数と組み合わせた場合,この値は,そのうちの1つである必要があります.title
(const string) 入力されたヘッタール. 指定していない場合は,変数名を入力されたヘッタールとして使用します. 指定したヘッタールが空っぽのヘッタールであれば,名前は空の文字列になります.minval
(const int/float) 入力変数の最小可能値。オプション。maxval
(const int/float) 入力変数の最大可能値。オプション。step
(const int/float) 入力のステップ長値を増やしたり減らしたりします. ※オプションです. ※デフォルト値は 1 です.options
(tuple of const int/float values: [val1, val2,...]) 引き下げメニューから選択したオプションリストを,コマで区切って括弧で括り:[val1, val2,...];;この参数を使用すると使用できません.minval
、maxval
そしてstep
パラメータは.tooltip
(const string) この文字列は,ツール提示のアイコンの上にマウスが停まっているときにユーザーに表示されます.inline
(const string) 一行に同じ参数を使用したすべての入力呼び出しを組み合わせます.参数として使用された文字列は表示されません.それは同じ行に属する入力だけを識別します.group
(const string) 同じ集合参数文字列を使用して,すべての入力の上に標本を作成します. この文字列は標本のテキストとしても使用されます.confirm
(const bool) true とすると,指標がグラフに追加される前に入力値を確認するように要求されます.デフォルト値は false です.コメント input.float函数的结果总是应该分配给一个变量,见上面的例子。
また会おう
input.bool
input.int
input.string
input.timeframe
input.source
input.color
input
インプットをスクリプト設定のインプットラベルページに追加し,スクリプトユーザーに設定オプションを提供することを許可します. この機能は色選択器を追加し,ユーザーが色板または16桁の設定値から色と透明性を選択できるようにします.
input.color(defval, title, tooltip, inline, group, confirm)
例
i_col = input.color(color.red, "Plot Color")
plot(close, color=i_col)
返した値変数の値を入力します.
パラメータ
defval
(const color) は,スクリプトのtitle
(const string) 入力されたヘッタール. 指定していない場合は,変数名を入力されたヘッタールとして使用します. 指定したヘッタールが空っぽのヘッタールであれば,名前は空の文字列になります.tooltip
(const string) この文字列は,ツール提示のアイコンの上にマウスが停まっているときにユーザーに表示されます.inline
(const string) 一行に同じ参数を使用したすべての入力呼び出しを組み合わせます.参数として使用された文字列は表示されません.それは同じ行に属する入力だけを識別します.group
(const string) 同じ集合参数文字列を使用して,すべての入力の上に標本を作成します. この文字列は標本のテキストとしても使用されます.confirm
(const bool) true とすると,指標がグラフに追加される前に入力値を確認するように要求されます.デフォルト値は false です.コメント input.color函数的结果总是应该分配给一个变量,见上面的例子。
また会おう
input.bool
input.int
input.float
input.string
input.timeframe
input.source
input
価格入力をスクリプトに追加するタグ設定/タグページを入力するタグを使用します.confirm = true
インタラクティブな入力モードを有効にして,チャートをクリックして価格を選択します.
input.price(defval, title, tooltip, inline, group, confirm)
例
price1 = input.price(title="Date", defval=42)
plot(price1)
price2 = input.price(54, title="Date")
plot(price2)
返した値変数の値を入力します.
パラメータ
defval
(const int/float) は,スクリプトのtitle
(const string) 入力されたヘッタール. 指定していない場合は,変数名を入力されたヘッタールとして使用します. 指定したヘッタールが空っぽのヘッタールであれば,名前は空の文字列になります.tooltip
(const string) この文字列は,ツール提示のアイコンの上にマウスが停まっているときにユーザーに表示されます.inline
(const string) 一行に同じ参数を使用したすべての入力呼び出しを組み合わせます.参数として使用された文字列は表示されません.それは同じ行に属する入力だけを識別します.group
(const string) 同じ集合参数文字列を使用して,すべての入力の上に標本を作成します. この文字列は標本のテキストとしても使用されます.confirm
(const bool) true の場合は,インタラクティブな入力モードを有効にして,指標をグラフに追加するときにグラフをクリックして選択を完了するか,指標を選択し,その後選択を移動して選択を完了します. ※オプション. ※デフォルト値は false です.コメント2つの関数に対して呼び出されている場合,inline
パラメータが同じパラメータを使用すると,時間入力と価格入力と組み合わせて使用できます.
また会おう
input.bool
input.int
input.float
input.string
input.resolution
input.source
input.color
input
インプットがスクリプト設定の入力ラベルページに追加され,スクリプトユーザーに設定オプションを提供することを許可します. この機能は,ドラッグリストを追加し,ユーザーがタイムサイクルセレクターを使用して特定のタイムサイクルを選択し,文字列として戻すことを許可します. セレクターは,ユーザーがグラフのタイムサイクルを使用する可能性のあるタイムサイクルをドラッグメニューに追加したカスタムタイムサイクルを含みます.
input.timeframe(defval, title, options, tooltip, inline, group, confirm)
例
i_res = input.timeframe('D', "Resolution", options=['D', 'W', 'M'])
s = request.security(syminfo.tickerid, i_res, close)
plot(s)
返した値変数の値を入力します.
パラメータ
defval
(const string) スクリプトのoptions
参数と組み合わせた場合,この値は,そのうちの1つである必要があります.title
(const string) 入力されたヘッタール. 指定していない場合は,変数名を入力されたヘッタールとして使用します. 指定したヘッタールが空っぽのヘッタールであれば,名前は空の文字列になります.options
(tuple of const string values: [val1, val2,...]) 選択可能なオプションのリスト.tooltip
(const string) この文字列は,ツール提示のアイコンの上にマウスが停まっているときにユーザーに表示されます.inline
(const string) 一行に同じ参数を使用したすべての入力呼び出しを組み合わせます.参数として使用された文字列は表示されません.それは同じ行に属する入力だけを識別します.group
(const string) 同じ集合参数文字列を使用して,すべての入力の上に標本を作成します. この文字列は標本のテキストとしても使用されます.confirm
(const bool) true とすると,指標がグラフに追加される前に入力値を確認するように要求されます.デフォルト値は false です.コメント input.timeframe函数的结果总是应该分配给一个变量,见上面的例子。
また会おう
input.bool
input.int
input.float
input.string
input.source
input.color
input
暫定
暫定
Arnaud Legoux 移動平均線. これは,ガース分布を移動平均値の重みとして使用する.
ta.alma(series, length, offset, sigma)
ta.alma(series, length, offset, sigma, floor)
例
plot(ta.alma(close, 9, 0.85, 6))
// same on pine, but much less efficient
pine_alma(series, windowsize, offset, sigma) =>
m = offset * (windowsize - 1)
//m = math.floor(offset * (windowsize - 1)) // Used as m when math.floor=true
s = windowsize / sigma
norm = 0.0
sum = 0.0
for i = 0 to windowsize - 1
weight = math.exp(-1 * math.pow(i - m, 2) / (2 * math.pow(s, 2)))
norm := norm + weight
sum := sum + series[windowsize - i - 1] * weight
sum / norm
plot(pine_alma(close, 9, 0.85, 6))
返した値アルノ・レグオ 移動平均線
パラメータ
series
(series int/float) 実行される一連の値.length
(series int) K線の数 (長さ)offset
(simple int/float) 制御のスムーズさ (<<<1>) と応答性 (<<<<<<<0>) のバランスを取る.sigma
(simple int/float) ALMAの滑らかさを変更する.シグマが大きいほど,ALMAが滑らかになる.floor
(simple bool) 選択可能なパラメータ.ALMAを計算する前に,偏差量計算が下限になるかどうかを指定する.デフォルト値はfalseである.また会おう
ta.sma
ta.ema
ta.rma
ta.wma
ta.vwma
ta.swma
sma は移動平均値,つまりxの最後のy値を y で割る.
ta.sma(source, length)
例
plot(ta.sma(close, 15))
// same on pine, but much less efficient
pine_sma(x, y) =>
sum = 0.0
for i = 0 to y - 1
sum := sum + x[i] / y
sum
plot(pine_sma(close, 15))
返した値
length
線が戻るsource
移動平均線は,
パラメータ
source
(series int/float) 実行される一連の値.length
(series int) K線の数 (長さ)また会おう
ta.ema
ta.rma
ta.wma
ta.vwma
ta.swma
ta.alma
cog (重点) は,統計学とフィボナッチ金比例に基づいた指標である.
ta.cog(source, length)
例
plot(ta.cog(close, 10))
// the same on pine
pine_cog(source, length) =>
sum = math.sum(source, length)
num = 0.0
for i = 0 to length - 1
price = source[i]
num := num + price * (i + 1)
-num / sum
plot(pine_cog(close, 10))
返した値集中する
パラメータ
source
(series int/float) 実行される一連の値.length
(series int) K線の数 (長さ)また会おう
ta.stoch
衡量系列与其ta.sma之间的差异
ta.dev(source, length)
例
plot(ta.dev(close, 10))
// the same on pine
pine_dev(source, length) =>
mean = ta.sma(source, length)
sum = 0.0
for i = 0 to length - 1
val = source[i]
sum := sum + math.abs(val - mean)
dev = sum/length
plot(pine_dev(close, 10))
返した値
length
線が戻るsource
偏りがある.
パラメータ
source
(series int/float) 実行される一連の値.length
(series int) K線の数 (長さ)また会おう
ta.variance
ta.stdev
ta.stdev(source, length, biased)
例
plot(ta.stdev(close, 5))
//the same on pine
isZero(val, eps) => math.abs(val) <= eps
SUM(fst, snd) =>
EPS = 1e-10
res = fst + snd
if isZero(res, EPS)
res := 0
else
if not isZero(res, 1e-4)
res := res
else
15
pine_stdev(src, length) =>
avg = ta.sma(src, length)
sumOfSquareDeviations = 0.0
for i = 0 to length - 1
sum = SUM(src[i], -avg)
sumOfSquareDeviations := sumOfSquareDeviations + sum * sum
stdev = math.sqrt(sumOfSquareDeviations / length)
plot(pine_stdev(close, 5))
返した値標準差
パラメータ
source
(series int/float) 実行される一連の値.length
(series int) K線の数 (長さ)biased
(series bool) は,どの推定値を使用すべきかを指定します. ※オプションです. ※デフォルト値は true です.コメントもしbiased
true の場合,関数は全体全体に対する偏差推定を使用して計算し,false の場合 - サンプルに対する偏差のない推定を用います.
また会おう
ta.dev
ta.variance
ema関数は指数加重移動平均線を返します. emaでは,加重因子は指数下降を示します. これは,次の式を使用して計算されます:EMA = alpha * source + (1 - alpha) * EMA[1], alpha = 2 / (length + 1) です.
ta.ema(source, length)
例
plot(ta.ema(close, 15))
//the same on pine
pine_ema(src, length) =>
alpha = 2 / (length + 1)
sum = 0.0
sum := na(sum[1]) ? src : alpha * src + (1 - alpha) * nz(sum[1])
plot(pine_ema(close,15))
返した値
source
移動平均線の指数,alpha = 2 / (長さ + 1) ー
パラメータ
source
(series int/float) 実行される一連の値.length
(simple int) K線数 (長さ)コメントこの変数/関数を使用すると指標が再描画される可能性があります.
また会おう
ta.sma
ta.rma
ta.wma
ta.vwma
ta.swma
ta.alma
Wma 関数は返しますlength
K線がsource
WMAでは,加重因子は算数級数で減算される.
ta.wma(source, length)
例
plot(ta.wma(close, 15))
// same on pine, but much less efficient
pine_wma(x, y) =>
norm = 0.0
sum = 0.0
for i = 0 to y - 1
weight = (y - i) * y
norm := norm + weight
sum := sum + x[i] * weight
sum / norm
plot(pine_wma(close, 15))
返した値
length
線が戻るsource
体重移動平均線は,
パラメータ
source
(series int/float) 実行される一連の値.length
(series int) K線の数 (長さ)また会おう
ta.sma
ta.ema
ta.rma
ta.vwma
ta.swma
ta.alma
固定長さの対称加重移動平均線:4.重量: [1/6,2 / 6,2 / 6,1 / 6].
ta.swma(source)
例
plot(ta.swma(close))
// same on pine, but less efficient
pine_swma(x) =>
x[3] * 1 / 6 + x[2] * 2 / 6 + x[1] * 2 / 6 + x[0] * 1 / 6
plot(pine_swma(close))
返した値対称加重移動平均線は,
パラメータ
source
(series int/float) ソースシリーズ.また会おう
ta.sma
ta.ema
ta.rma
ta.wma
ta.vwma
ta.alma
hma関数は船体移動平均HMAを返します.
ta.hma(source, length)
例
src = input(defval=close, title="Source")
length = input(defval=9, title="Length")
hmaBuildIn = ta.hma(src, length)
plot(hmaBuildIn, title="Hull MA", color=#674EA7)
返した値Hull Moving Average を返します. Hull Moving Average を返します.
パラメータ
source
(series int/float) 実行される一連の値.length
簡単な int 文字列数また会おう
ta.ema
ta.rma
ta.wma
ta.vwma
ta.sma
RSIで使用される移動平均線である. これは指数加重移動平均線で,alpha加重値は =1/長さである.
ta.rma(source, length)
例
plot(ta.rma(close, 15))
//the same on pine
pine_rma(src, length) =>
alpha = 1/length
sum = 0.0
sum := na(sum[1]) ? ta.sma(src, length) : alpha * src + (1 - alpha) * nz(sum[1])
plot(pine_rma(close, 15))
返した値
source
移動平均線は,x=1で,x=1で,x=1で,x=1で,x=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1で,y=1でlength
。
パラメータ
source
(series int/float) 実行される一連の値.length
(simple int) K線数 (長さ)また会おう
ta.sma
ta.ema
ta.wma
ta.vwma
ta.swma
ta.alma
ta.rsi
相対強度指数. それは最後の使用です.length
K線でsource
変化が起こっていますta.rma()
計算した.
ta.rsi(source, length)
例
plot(ta.rsi(close, 7))
// same on pine, but less efficient
pine_rsi(x, y) =>
u = math.max(x - x[1], 0) // upward ta.change
d = math.max(x[1] - x, 0) // downward ta.change
rs = ta.rma(u, y) / ta.rma(d, y)
res = 100 - 100 / (1 + rs)
res
plot(pine_rsi(close, 7))
返した値比較強弱指標 (RSI)
パラメータ
source
(series int/float) 実行される一連の値.length
(simple int) K線数 (長さ)また会おう
ta.rma
真の強弱指数. これは金融機関の潜在動力の移動平均線を使用する.
ta.tsi(source, short_length, long_length)
返した値真の強弱指数、範囲 [-1,1] の値、
パラメータ
source
(series int/float) ソースシリーズ.short_length
(simple int) 短い長さ.long_length
(simple int) 長文字列の長さroc (変化率) が表示されるsource
値と値の相違です.source
ブログに投稿されたlength
値の差は,
公式は100 * change (src, length) / src (length) です.
ta.roc(source, length)
返した値
length
線が戻るsource
変化の割合は,
パラメータ
source
(series int/float) 実行される一連の値.length
(series int) K線の数 (長さ)文字列の最小値と最大値の差を返します.
ta.range(source, length)
返した値序列の最小値と最大値の差である.
パラメータ
source
(series int/float) 実行される一連の値.length
(series int) K線の数 (長さ)MACD (滑らかな異動平均線) は,株価の傾向の強度,方向性,動力,持続時間の変化を明らかにするものである.
ta.macd(source, fastlen, slowlen, siglen)
例
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)
plot(macdLine, color=color.blue)
plot(signalLine, color=color.orange)
plot(histLine, color=color.red, style=plot.style_histogram)
単に1つの値が必要であれば,このような位置表示符_
例
[_, signalLine, _] = ta.macd(close, 12, 26, 9)
plot(signalLine, color=color.orange)
返した値3つのMACDシリーズ構成要素:MACD線,信号線,直線線.
パラメータ
source
(series int/float) 実行される一連の値.fastlen
(simple int) ショートライン参数slowlen
(simple int) 遅い長さの参数.siglen
(simple int) シグナル長さのパラメータ.また会おう
ta.sma
ta.ema
配列のパターンを返します. 同じ周波数を持つ複数の値がある場合は最小値を返します.
ta.mode(source, length)
返した値序列のパターンは
パラメータ
source
(series int/float) 実行される一連の値.length
(series int) K線の数 (長さ)列の中位数を返します.
ta.median(source, length)
返した値列の中位数である.
パラメータ
source
(series int/float) 実行される一連の値.length
(series int) K線の数 (長さ)線形回帰曲線──ユーザが定義した時間帯内で指定した価格に最も一致する線──最小二乗を用いて計算される.この関数の結果は,次の式を用いて計算される:linreg = intercept + slope * (length - 1 - offset),ここで,intercept と slope は使用される.source
列の最小二乗を計算する値である.
ta.linreg(source, length, offset)
返した値線形回帰曲線
パラメータ
source
(series int/float) ソースシリーズ.length
(シリーズ int)offset
(simple int) 偏移するブリンズ・バンド (Blink Band) とは,技術分析ツールで,証券価格の単純な移動平均線 (SMA) と2つの標準偏差 (正向と負向) の間隔が異なるが,ユーザーの好みに合わせて調整できる一組のラインで定義される.
ta.bb(series, length, mult)
例
[middle, upper, lower] = ta.bb(close, 5, 4)
plot(middle, color=color.yellow)
plot(upper, color=color.yellow)
plot(lower, color=color.yellow)
// the same on pine
f_bb(src, length, mult) =>
float basis = ta.sma(src, length)
float dev = mult * ta.stdev(src, length)
[basis, basis + dev, basis - dev]
[pineMiddle, pineUpper, pineLower] = f_bb(close, 5, 4)
plot(pineMiddle)
plot(pineUpper)
plot(pineLower)
返した値ブリン・ベルト.
パラメータ
series
(series int/float) 実行中の系数ウウオヤン取引が同時に行われることを望むなら,
軽い雲JSと同じようなトランザクションも行えますか? ありがとうございました.
リサ20231詳細なドキュメントをありがとうございました.
芸術このPineScriptは,Okexのシミュレーションディスクをプラットフォーム上でどのように使っているのでしょうか?
芸術開発者のプラットフォームに直接コピーして利用できます!
発明者 量化 - 微かな夢PINE言語は単種策のみを行うが,多種策は,python,javascript,c++で設計を書くのがベストである.
発明者 量化 - 微かな夢OKXは特殊なもので,彼らの模擬環境とリアルディスク環境は同じアドレスですが,別の場所では区別されます.
軽い雲OKX模擬盤は使えませんでした.
発明者 量化 - 微かな夢この多様なアーキテクチャの問題は,各取引所のインターフェースが異なるため,インターフェースの周波数制限が異なるため,多くの問題が生じる.
発明者 量化 - 微かな夢雲山さん,この提案をありがとうございました.
軽い雲JSと混同した方が良いと感じて,JSは様々な取引方法により適している.
トレンドハンター販売価格は各品種にわたって行われます.
発明者 量化 - 微かな夢嫌なことをする.
軽い雲素晴らしい,ありがとう,夢大さん.
発明者 量化 - 微かな夢PINE言語の戦略は,一時的に単一品種のみです.
発明者 量化 - 微かな夢この記事へのトラックバック一覧です.
発明者 量化 - 微かな夢ほら,もういいから
発明者 量化 - 微かな夢PINE 模範庫のパラメータは,交換取引所のベースアドレスを設定することができます. 文書の開始: PINE 言語取引庫の模範庫のパラメータ.