x 값으로 다시 초기화됩니다.
객체 타입 varip 키워드 사용
//@version=5
indicator("Objects using `varip` fields demo")
//@type A custom type that counts the bars and ticks in the script's execution.
type Counter
int bars = 0
varip int ticks = 0
//@variable A `Counter` object whose reference persists throughout all bars.
var Counter counter = Counter.new()
// Add 1 to the `bars` and `ticks` fields. The `ticks` field is not subject to rollback on unconfirmed bars.
counter.bars += 1
counter.ticks += 1
// Plot both fields for comparison.
plot(counter.bars, "Bar counter", color.blue, 3)
plot(counter.ticks, "Tick counter", color.purple, 3)
파인에서, varip 키워드를 사용하면 스크립트 실행 내내 객체의 필드가 계속 존재하도록 지시할 수 있으며, 확인되지 않은 칼럼 내에 돌아가지 않습니다. 카운터 타입의 선언에서, bars 필드는 varp 키워드를 사용하지 않아서, 확인되지 않은 각 열에 대해 회전한다. ticks 필드는 varp 키워드를 사용해서, 확인되지 않은 열에 대해 회전하지 않는다. counter 오브젝트는 var 키워드를 사용하여 선언되었으므로 스크립트 실행 내내 지속됩니다. 각 연산에서 bars 필드와 ticks 필드가 증가한다. bars 필드는 확인되지 않은 각 기둥에서 회전하지만 ticks 필드는 회전하지 않는다. 마지막으로 counter.bars와 counter.ticks 필드를 그리면서 그 사이의 차이를 비교할 수 있다. counter.bars의 값은 각 확인되지 않은 열 안에 돌아가는 반면 counter.ticks의 값은 스크립트 실행이 끝날 때까지 계속 증가한다.
필드 값을 수정합니다.
type order
float price
float amount
string symbol
if strategy.position_size == 0 and open > close
strategy.entry("long", strategy.long, 1)
order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker)
if strategy.position_size != 0
runtime.log(order1)
order1.price := 999
order1.amount := 100
runtime.log(order1)
runtime.error("stop")
사용할 수 있습니다:=
재배치 연산자는 객체 필드의 값을 변경한다.
객체 집합
예를 들어, 사용자가 정의한 order 타입의 객체를 저장하는 null 배열을 선언합니다:
type order
float price
float amount
string symbol
arrOrder = array.new<order>()
order1 = order.new(99, 1, "BTC_USDT")
order2 = order.new(100, 2, "ETH_USDT")
array.push(arrOrder, order1)
array.push(arrOrder, order2)
runtime.log(arrOrder)
runtime.error("stop")
또는
type order
float price
float amount
string symbol
var array<order> arrOrder = na
arrOrder := array.new<order>()
order1 = order.new(99, 1, "BTC_USDT")
order2 = order.new(100, 2, "ETH_USDT")
array.push(arrOrder, order1)
array.push(arrOrder, order2)
runtime.log(arrOrder)
runtime.error("stop")
복제 대상
파인에서는, 객체는 참조로 할당된다. 기존의 객체가 새로운 변수에 할당될 때, 둘 다 동일한 객체를 가리킨다.
//@version=5
indicator("")
type pivotPoint
int x
float y
pivot1 = pivotPoint.new()
pivot1.x := 1000
pivot2 = pivot1
pivot2.x := 2000
// Both plot the value 2000.
plot(pivot1.x)
plot(pivot2.x)
아래의 예제에서, 우리는 pivot1 객체를 생성하고, 그 x 필드를 1000로 설정한다. 그리고, 우리는 pivot2가 그 pivot1 객체에 대한 참조를 포함하는 변수를 선언하고, 따라서 둘 다 같은 인스턴스를 가리키고 있다. 따라서, pivot2.x를 변경하면 pivot1.x도 변경된다, 왜냐하면 둘 다 x 같은 객체의 필드를 가리키고 있기 때문이다.
원본 객체로부터 독립된 복사본을 만들기 위해, 이 경우 우리는 내장된 copy() 방법을 사용할 수 있습니다. 이 예제에서, 우리는 pivot2가 pivot1 객체의 복제 인스턴스의 변수를 참조한다고 선언합니다. 이제, pivot2.x를 변경하면 pivot1.x가 변경되지 않습니다, 왜냐하면 그것은 x가 개별 객체의 필드를 참조하기 때문입니다:
//@version=5
indicator("")
type pivotPoint
int x
float y
pivot1 = pivotPoint.new()
pivot1.x := 1000
pivot2 = pivotPoint.copy(pivot1)
pivot2.x := 2000
// Plots 1000 and 2000.
plot(pivot1.x)
plot(pivot2.x)
참고로, TradingView의 copy 메소드는 간접 복사이다. 만약 객체가 특별한 타입의 필드 (array 등) 를 가지고 있다면, 그 객체의 간접 복사 속의 필드들은 그 객체와 동일한 인스턴스를 가리키게 된다. FMZ 플랫폼은 Deep Copy를 직접 구현하고 추가적인 처리가 필요하지 않습니다.
더 깊이 복사
//@version=5
indicator("test deepCopy")
type orderInfo
float price
float amount
type labelInfo
orderInfo order
string labelMsg
labelInfo1 = labelInfo.new(orderInfo.new(100, 0.1), "test labelInfo1")
labelInfo2 = labelInfo.copy(labelInfo1)
labelInfo1.labelMsg := "labelInfo1->2" // 修改 labelInfo1 的基础类型字段,看是否影响 labelInfo2
labelInfo1.order.price := 999 // 修改 labelInfo1 的复合类型字段,看是否影响 labelInfo2
runtime.log(labelInfo1)
runtime.log(labelInfo2)
runtime.error("stop")
테스트 결과, labelInfo.copy ((labelInfo1) 가 실행될 때 심복으로, labelInfo1의 어떤 필드를 변경하는 것은 labelInfo2에 영향을 미치지 않는다.
파인 언어의 메소드 (Methods) 는 특정 인스턴스의 내장 또는 사용자 정의된 타입과 연관된 특수 함수이다. 대부분의 면에서, 이들은 일반 함수와 기본적으로 동일하지만, 더 짧고 편리한 문법을 제공한다. 사용자가 직접 점자 기호를 사용하여 변수에 대한 메소드를 액세스할 수 있으며, 이는 파인 객체의 필드를 액세스하는 것과 같다. 파인은 배열, 매트릭스, 맵 라인, 필드 라인 등 모든 특수 유형의 내장 메소드를 포함한다.
내장 메소드
예를 들어, 다음과 같은 스크립트 코드가 있습니다.
//@version=5
indicator("Custom Sample BB", overlay = true)
float sourceInput = input.source(close, "Source")
int samplesInput = input.int(20, "Samples")
int n = input.int(10, "Bars")
float multiplier = input.float(2.0, "StdDev")
var array<float> sourceArray = array.new<float>(samplesInput)
var float sampleMean = na
var float sampleDev = na
// Identify if `n` bars have passed.
if bar_index % n == 0
// Update the queue.
array.push(sourceArray, sourceInput)
array.shift(sourceArray)
// Update the mean and standard deviaiton values.
sampleMean := array.avg(sourceArray)
sampleDev := array.stdev(sourceArray) * multiplier
// Calculate bands.
float highBand = sampleMean + sampleDev
float lowBand = sampleMean - sampleDev
plot(sampleMean, "Basis", color.orange)
plot(highBand, "Upper", color.lime)
plot(lowBand, "Lower", color.red)
이 문자는 다음과 같이 쓰여질 수 있습니다.
//@version=5
indicator("Custom Sample BB", overlay = true)
float sourceInput = input.source(close, "Source")
int samplesInput = input.int(20, "Samples")
int n = input.int(10, "Bars")
float multiplier = input.float(2.0, "StdDev")
var array<float> sourceArray = array.new<float>(samplesInput)
var float sampleMean = na
var float sampleDev = na
// Identify if `n` bars have passed.
if bar_index % n == 0
// Update the queue.
sourceArray.push(sourceInput)
sourceArray.shift()
// Update the mean and standard deviaiton values.
sampleMean := sourceArray.avg()
sampleDev := sourceArray.stdev() * multiplier
// Calculate band values.
float highBand = sampleMean + sampleDev
float lowBand = sampleMean - sampleDev
plot(sampleMean, "Basis", color.orange)
plot(highBand, "Upper", color.lime)
plot(lowBand, "Lower", color.red)
PINE가 지원하는 것을 볼 수 있습니다.Methods
그 다음에는 코드입니다.array.avg(sourceArray)
이 경우, f (x) = f (x) = f (x) = f (x) = f (x) = f (x) = f (x) = f (x) = f (x) = f (x).sourceArray.avg()
。
참고: FMZ는 현재 지원되지 않습니다.array.avg
이런 호출들.
사용자 정의 메소드
Pine는 사용자가 정의하는 사용자 정의 메소드를 임의의 내장 또는 사용자 정의 타입의 객체와 함께 사용하도록 허용한다. 정의 메소드는 정의 함수와 본질적으로 동일하지만 두 가지 중요한 차이점이 있습니다.
1 method 키워드는 함수 이름 전에 포함되어야 한다. 2. method의 arguments, 이 중 첫 번째 arguments의 타입은 명백한 선언이 되어야 합니다, 왜냐하면 그것은 그 메소드가 연관될 객체의 타입을 나타내는 것이기 때문입니다.
예를 들어, 다음 코드에 브린 지수를 계산하는 코드가 사용자 정의 된 방법으로 포장됩니다:
//@version=5
indicator("Custom Sample BB", overlay = true)
float sourceInput = input.source(close, "Source")
int samplesInput = input.int(20, "Samples")
int n = input.int(10, "Bars")
float multiplier = input.float(2.0, "StdDev")
var array<float> sourceArray = array.new<float>(samplesInput)
var float sampleMean = na
var float sampleDev = na
// Identify if `n` bars have passed.
if bar_index % n == 0
// Update the queue.
sourceArray.push(sourceInput)
sourceArray.shift()
// Update the mean and standard deviaiton values.
sampleMean := sourceArray.avg()
sampleDev := sourceArray.stdev() * multiplier
// Calculate band values.
float highBand = sampleMean + sampleDev
float lowBand = sampleMean - sampleDev
plot(sampleMean, "Basis", color.orange)
plot(highBand, "Upper", color.lime)
plot(lowBand, "Lower", color.red)
다음으로 수정됩니다.
//@version=5
indicator("Custom Sample BB", overlay = true)
float sourceInput = input.source(close, "Source")
int samplesInput = input.int(20, "Samples")
int n = input.int(10, "Bars")
float multiplier = input.float(2.0, "StdDev")
var array<float> sourceArray = array.new<float>(samplesInput)
method maintainQueue(array<float> srcArray, float value, bool takeSample = true) =>
if takeSample
srcArray.push(value)
srcArray.shift()
srcArray
method calcBB(array<float> srcArray, float mult, bool calculate = true) =>
var float mean = na
var float dev = na
if calculate
mean := srcArray.avg()
dev := srcArray.stdev() * mult
[mean, mean + dev, mean - dev]
bool newSample = bar_index % n == 0
[sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample)
plot(sampleMean, "Basis", color.orange)
plot(highBand, "Upper", color.lime)
plot(lowBand, "Lower", color.red)
키워드 method 선언을 사용하는 사용자 정의 메소드를 볼 수 있습니다:maintainQueue,calcBB의 변수 목록의 첫 번째 변수는array<float>
타입 △는 이 메서드가array<float>
타입 변수의 방법, 그래서 다음과 같은 코드를 호출하여 브린 지수를 계산하는 것을 볼 수 있다.
[sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample)
메서드 재부하
사용자 정의 메소드는 동일한 아이덴티커를 가진 기존의 내장 메소드와 사용자 정의 메소드를 덮고 다시 로드할 수 있다. 이 기능은 사용자가 동일한 메소드 이름 아래 다른 변수 서명과 관련된 여러 개의 루트를 정의할 수 있다. 간단한 예로, 우리가 변수의 타입을 식별하기 위해 메소드를 정의하고 싶다고 가정하자. 사용자 정의 메소드와 관련된 객체 타입을 명시적으로 지정해야 하기 때문에, 우리가 인식하기를 원하는 각 타입에 대해 다시 로드를 정의해야 한다.
//@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 스크립트 기반이 자바스크립트 언어로 구현되어 있기 때문에 숫자 타입은 모두 플래프트 타입 데이터 ((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
K선에서 수초를 나타내는 int의 형태는 △
매개변수
timeframe
(simple string) 시간 주기。 옵션。 기본값은 timeframe.period。참고 사항
에 대해timeframe
>= ‘1M’ 함수는 한 달의 30.4167 (365⁄12) 날의 수를 기준으로 계산한다.
이 부분도 참조하십시오.
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 - 요청된 데이터는 가능한 격차와 합병 ((na값) △ 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를 반환하고 실행을 계속합니다.currency
(simple string) 상품의 통화 관련 값을 (… 예를 들어 OHLC) 통화로 변환한다. 그리고 변환된 값에 따라 계산된다. expression . 사용 된 변환 비율은 FX_IDC 쌍의 전날의 매일 환율을 기반으로 한다.참고 사항
이 기능을 이용한 파인스크립트 코드는 역사 기록과 실시간 데이터에 대해 다른 계산을 할 수 있다.
만약 당신이 요청된 상품에 대해 추가적인 매개 변수를 지정하고 싶다면, 예를 들어 거래 시간이나 조정 유형, 당신은 ticker.new() 함수를 사용할 수 있다.
‘ticker’ 변수를 사용할 수 없습니다. 점차를 이 함수에 전달합니다. ‘ticker.new’ 변수 또는 AAPL+MSFT와 같은 주식 코드의 문자열 표현을 사용할 수 있습니다.*TSLA”。
현재 한 스크립트에는 최대 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
하위 문자열은 true를 반환하고, 그렇지 않으면 false를 반환한다.
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 또는 FALSE 입니다.
매개변수
source
(series string) 소스 문자열str
(series string) 검색하는 하위 문자열이 부분도 참조하십시오.
str.pos
str.match
만약source
문자열은str
이 식에서 정의된 하위 문자열의 끝은 true를 반환하고, 그렇지 않으면 false를 반환한다.
str.endswith(source, str)
값을 반환합니다.
만약source
문자열은str
△ △ △ △ △ △ △
매개변수
source
(series string) 소스 문자열str
(series string) 검색하는 하위 문자열이 부분도 참조하십시오.
str.startswith
만약source
문자열은str
이중에서 지정된 하위 문자열이 시작되면 true, 그렇지 않으면 false를 반환한다.
str.startswith(source, str)
값을 반환합니다.
만약source
문자열은str
△ (x) 에서 지정한 하위 문자열의 시작은 true이고, 그렇지 않으면 false이다.
매개변수
source
(series string) 소스 문자열str
(series string) 검색하는 하위 문자열이 부분도 참조하십시오.
str.endswith
다시 한 번 다시 한 번source
문자열의 하위 문자열.begin_pos
특정 인덱스에서 시작해서source
문자열의 ‘end_pos - 1’。
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의 문자열 표현 형태。포맷 문자열과 값을 포맷 문자열로 변환한다. 포맷 문자열은 텍스트와 포맷해야 하는 각 값의 대괄호{} 중 하나의 점수를 포함할 수 있다. 각 점수는 그것을 대체할 필수적인 매개 변수의 지수를 포함하고 있다. 그리고 선택 가능한 포맷 설명자이다. 인덱스는 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[]) 포맷해야 할 값참고 사항 인용되지 않은 스타일의 모든 괄호는 균형을 유지해야 한다. 예를 들어, “ab {0} de”와 “ab ‘}’ de”는 유효한 스타일이지만, “ab {0’}’ de”, “ab } de”와 “”{““는 유효한 스타일이 아니다.
이 문자열의 문자 수에 해당하는 정수를 반환합니다.
str.length(string)
값을 반환합니다. 소스 문자열의 문자수
매개변수
string
(series string) 소스 문자열모든 글자가 소문자로 변환된 새로운 문자열을 반환합니다.
str.lower(source)
값을 반환합니다. 모든 글자가 소문자로 된 새로운 문자열에 변환됩니다.
매개변수
source
(series string) 변환하려는 문자열이 부분도 참조하십시오.
str.upper
모든 글자가 대문자로 변환된 새로운 문자열을 반환합니다.
str.upper(source)
값을 반환합니다. 모든 문자는 대문자로 된 새로운 문자열로 변환됩니다.
매개변수
source
(series string) 변환하려는 문자열이 부분도 참조하십시오.
str.lower
일치하는 경우regex
정규 표현식, 반환source
문자열의 새 자수 문자열, 그렇지 않으면 ‘na’를 반환한다.
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
만약 string의 새로운 하위 string이regex
정규 표현식, 그렇지 않으면 ‘na’。
매개변수
source
(series string) 소스 문자열regex
(series string) 이 문자열과 일치하는 정규 표현식참고 사항
함수 반환source
문자열에서 처음 등장하는 정규 표현식:
regex
문자열의 반축<unk> 기호는 과 같은 추가 반축 기호를 사용하여 변환이 필요합니다.\d은 정규 표현식 \d。을 나타낸다.
이 부분도 참조하십시오.
str.contains
str.substring
다시 돌아왔어요source
문자열에서 처음 나타납니다.str
문자열의 위치, 그렇지 않으면 ‘na’를 반환한다.
str.pos(source, str)
값을 반환합니다.
str
문자열은source
문자열의 위치
매개변수
source
(series string) 소스 문자열str
(series string) 검색하는 하위 문자열참고 사항 문자열 인덱스는 0에서 시작됩니다.
이 부분도 참조하십시오.
str.contains
str.match
str.substring
새로운 문자열을 반환합니다.target
문자열과 이전 문자열target
문자열을replacement
N이 있는 문자열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를 대입하면 NaN을 반환한다.
매개변수
value
(series int/float/bool/string/int[]/float[]/bool[]/string[]) 그 요소를 문자열의 값이나 배열 ID로 변환한다.format
(series string) Format string. Accepts these format.* constants: format.mintick, format.percent, format.volume. Optional. The default value is ‘#.##########’.참고 사항 플래잉 포인트 값의 형식은 또한 필요한 경우 이러한 값들을 사각지대에 넣습니다. 예를 들어 str.tostring ((3.99, ‘#’) 는 4을 반환합니다. 0을 0으로 표시하려면 ‘#’ 대신 ‘0’을 사용하십시오. 예를 들어, ‘#.000’입니다. format.mintick을 사용할 때, 이 값은 syminfo.mintick으로 나누기 가능한 가장 근접한 숫자로 둥글게 들어간다. △ 반환된 문자열은 0을 따른다. x 변수가 문자열이라면 동일한 문자열 값을 반환한다. Bool 타입의 arguments는 true 또는 false를 반환합니다. x가 na일 때 함수는 NaN을 반환한다.
기능 색은 주어진 색에 투명성을 적용한다.
color.new(color, transp)
예를 들어
plot(close, color=color.new(color.red, 50))
값을 반환합니다. 색은 특정한 투명성을 가진다.
매개변수
color
(series color)transp
(series int/float) 사용할 수 있는 값은 0 (투명하지 않음) 에서 100 (보이지 않음) 까지참고 사항 매우 많은 수의 변수를 사용하는 것은 (예를 들어, simple, input 또는 series) 스크립트 설정/스타일 태그 페이지에서 표시되는 색상에 영향을 미칩니다. 자세한 내용은 사용자 설명서를 참조하십시오.
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 (투명하지 않은) 이 기본값이다.참고 사항 매우 많은 수의 변수를 사용하는 것은 (예를 들어, simple, input 또는 series) 스크립트 설정/스타일 태그 페이지에서 표시되는 색상에 영향을 미칩니다. 자세한 내용은 사용자 설명서를 참조하십시오.
컨트롤러에서 변수 정보를 인쇄하십시오.
FMZ PINE 언어에는 고유한 기능이 있습니다.runtime.debug(value)
, 단 하나의 변수가 있습니다.
로그에서 출력하세요.
FMZ PINE 언어에는 고유한 기능이 있습니다.runtime.log(1, 2, 3, close, high, ...)
, 여러 개의 변수를 전달할 수 있습니다.
이 경우, 호출 시에는 실행 오류가 발생할 수 있으며,message
매개 변수에서 지정된 오류 메시지
runtime.error(message)
매개변수 message (series string) 오류 메시지
input를 스크립트 설정의 input 태그 페이지에 추가합니다. 이것은 스크립트 사용자에게 구성 옵션을 제공하도록 허용합니다. 이 함수는 defval 에 사용되는 파라미터 유형을 자동으로 탐지하고 해당 입력 플러그인을 사용합니다.
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
스크립트 설정의 입력 태그 페이지에 input를 추가하여 스크립트 사용자에게 구성 옵션을 제공 할 수 있습니다. 이 기능은 사용자가 계산 소스를 선택할 수 있는 드롭다운 메뉴를 추가했습니다. close, hl2 등과 같이. 스크립트가 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
변수와 함께 사용할 때, 이 값은 둘 중 하나가 되어야 한다.title
(const string) 입력의 제목。 지정되지 않은 경우, 변수의 이름을 입력의 제목으로 사용합니다。 제목이 지정되어 있지만 제목이 빈 경우, 이름은 빈 문자열이 됩니다。options
(List of constants: [<type>…]) 선택 가능한 옵션 목록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를 스크립트 설정의 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를 스크립트 설정의 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
변수와 함께 사용할 때, 이 값은 둘 중 하나가 되어야 한다.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를 스크립트 설정의 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
변수와 함께 사용할 때, 이 값은 둘 중 하나가 되어야 한다.title
(const string) 입력의 제목。 지정되지 않은 경우, 변수의 이름을 입력의 제목으로 사용합니다。 제목이 지정되어 있지만 제목이 빈 경우, 이름은 빈 문자열이 됩니다。minval
(const int/float) 입력 변수의 최소 가능한 값。 옵션。maxval
(const int/float) 입력 변수의 최대 가능한 값。 옵션。step
(const int/float) 입력을 늘리거나 줄이는 단계 길이를 사용한다.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) 한 줄에서 동일한 변수를 사용하여 모든 입력 호출을