리소스 로딩... 로딩...

FMZ PINE 스크립트 문서

저자:발명가들의 수량화 - 작은 꿈, 창작: 2022-04-28 16:05:05, 업데이트: 2024-10-12 17:25:27

필드 값을 수정

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")

객체 필드의 값은:=재배정 운영자

객체 수집

이 예제는 사용자가 정의한 순서 타입의 객체를 보유할 빈 배열을 선언합니다:

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)

다음 예제에서, 우리는 피보트1 객체를 만들고 그 x 필드를 1000로 설정합니다. 그러면 우리는 피보트1 객체에 대한 참조를 포함하는 피보트2 변수를 선언합니다. 따라서 둘 다 동일한 인스턴스에 가리키고 있습니다. 따라서, 피보트2.x를 변경하면 둘 다 같은 객체의 x 필드에 참조하기 때문에 피보트1.x도 변경됩니다.

원래 객체와 독립적인 복사본을 만들기 위해, 이 경우 우리는 내장된 복사 (() 방법을 사용할 수 있습니다. 이 예제에서, 우리는 변수 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의 복사 메소드는 한 복사이다. 객체가 특수 유형의 필드 (열, 등) 를 가지고 있다면, 객체의 한 복사본의 이러한 필드는 객체와 동일한 인스턴스를 가리킬 것입니다. FMZ 플랫폼은 직접 깊이 복사 구현, 추가 처리 필요 없습니다. 당신은 다음 예를 참조할 수 있습니다:

깊이 복사

//@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"    // Modify the base type field of labelInfo1 to see if it affects labelInfo2
labelInfo1.order.price := 999             // Modify the composite type field of labelInfo1 to see if it affects labelInfo2

runtime.log(labelInfo1)
runtime.log(labelInfo2)
runtime.error("stop")

테스트 결과는 labelInfo.copy ((labelInfo1) 가 실행될 때 심층 복사본이라는 것을 보여줍니다. 그리고 labelInfo1의 모든 필드를 수정하면 labelInfo2가 영향을 받지 않습니다.

방법

파인 언어의 메소드는 내장형 또는 사용자 정의형의 특정 인스턴스와 연관된 특수 함수이다. 대부분의 측면에서, 그것들은 본질적으로 일반 함수와 동일하지만, 더 짧고 편리한 문법을 제공한다. 사용자는 파인 객체의 필드에 액세스하는 것과 마찬가지로 점 표기법을 사용하여 변수에 직접 메소드를 액세스할 수 있다. 파인에는 배열, 행렬, 지도, 선, 채울 선 등 모든 특수 타입에 대한 내장된 메소드가 포함되어 있다. 이 메소드는 사용자에게 이러한 유형의 특수 프로그램을 스크립트에서 호출하는 보다 간결한 방법을 제공한다.

내장된 방법

예를 들어, 이런 스크립트 코드:

//@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)방법의 형태로 쓸 수 있습니다.sourceArray.avg()... 참고로 FMZ는array.avg currently.

사용자 정의 메소드

파이인은 사용자가 임의의 내장형 또는 사용자 정의형의 객체와 작동하는 사용자 정의 메소드를 정의할 수 있게 해준다. 메소드를 정의하는 것은 기본적으로 함수를 정의하는 것과 같지만 두 가지 주요 차이점이 있다:

  1. 메소드 키워드는 함수 이름 전에 포함되어야 합니다.
  2. 메소드의 첫 번째 매개 변수의 유형은 메소드가 연관될 객체의 유형을 나타내는 것이기 때문에 명시적으로 선언되어야 합니다.

예를 들어, 다음 코드에서 볼링거 지표를 계산하는 코드는 사용자 정의 방법으로 포괄됩니다.

//@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)

당신은 키워드 메소드: maintainQueue와 calcBB와 선언 사용자 정의 메소드의 매개 변수 목록의 첫 번째 매개 변수가 유형을 볼 수 있습니다array<float>, 즉, 방법은 타입의 변수의 방법입니다array<float>, 그래서 다음 코드가 볼링거 지표를 계산하기 위해 호출되는 것을 볼 수 있습니다.

[sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample)

과부하 방법

사용자 정의 메소드는 기존의 내장 메소드와 사용자 정의 메소드를 동일한 식별자로 대체하고 과부하할 수 있습니다. 이 기능은 사용자가 동일한 메소드 이름 아래 다른 논증 서명과 관련된 여러 루틴을 정의할 수 있습니다. 간단한 예로, 변수의 유형을 식별하는 메소드를 정의하고 싶다고 가정합니다. 사용자 정의 메소드에 연관된 객체 유형을 명시적으로 지정해야하기 때문에 인식하고 싶은 각 유형에 대한 과부하를 정의해야합니다. 다음으로 우리는 변수s 타입의 문자열 표현을 반환하고 다섯 가지 기본 유형에 대한 과부하를 갖는 getType (() 메소드를 정의합니다.

//@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")     // Pass the argument close directly; specify the argument title and assign the string "test plot"

논증 이름 할당을 지정 한 후, 더 이상 변수를 직접 논증으로 전달할 수 없으며, 그 다음의 논증들은 논증 이름 할당의 형태로 작성되어야 합니다.

// plot(close, title="test", color.red)    // Although the third argument of plot is the color value, but this will report an error
plot(close, title="test", color=color.red) // Correct writing
plot(close, "test", color.red)             // Correct writing

기간

시간 프레임.초에서

지난 기간을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)

반환1 바에 있는 초의 숫자의 int 표현timeframe.

주장

  • timeframe(단순 문자열) 시간 프레임. 선택적입니다. 기본은 시간 프레임. 기간입니다.

언급의 경우timeframe>= 1M 함수는 달의 30.4167 (365/12) 일 기준으로 초 수를 계산합니다.

또한 참조 input.timeframe timeframe.period

ticker.heikinashi

평형 평균 int 표현값을 요청하기 위해 틱어 식별자를 생성합니다.

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(단순 문자열) 제품 코드 식별자

또한 참조 syminfo.tickerid syminfo.ticker request.security

요청

request.data

외부 데이터 요청

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, "perpetual-spot difference")
plot(futuresPrice, "futures prices", overlay=true)
plot(spotPrice, "spot prices", 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)

반환 값속성 대조는 데이터 시리즈를 지정합니다.

주장

  • url(단순 문자열) 요청된 데이터 소스 url 및 데이터 소스 응답의 데이터 형식은 요구 사항을 충족해야 합니다 (적어도 시간 및 데이터 속성을 포함):{"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(단순 문자열) 는 속성 이름을 지정하고 필요한 데이터를 반환합니다. 예를 들어:"$.spot_close_price", 사용$.전자로, 그리고 속성의 이름은 데이터 소스를 요청할 때 응답의 데이터의 데이터 필드의 속성과 일치합니다.

오류가 표시되면,request.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

다른 다양성/해결도를 요청하세요.

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(단순한 문자열) 상징.
  • timeframe(단순 문자열) 시간 기간. 빈 문자열은 차트의 현재 해상도로 해석됩니다.
  • 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. 기본 값은 barmerge.lookahead_off입니다. 버전 3부터 시작하여. 동작이 실시간에서 동일하며 역사에서만 다르다는 점에 유의하십시오.
  • ignore_invalid_symbol(const bool) 선택적 인 논증. 지정된 기호가 발견되지 않으면 함수의 동작을 결정합니다: 거짓이라면 스크립트가 중지되어 실행 시간 오류를 반환합니다. 사실이라면 함수가 na를 반환하고 실행을 계속합니다. 기본 값은 거짓입니다.
  • currency(단순 문자열) 기호의 통화 관련 값 (예: OHLC) 이 변환될 수 있는 통화.expression변환된 값에 기초하여 계산됩니다. 사용 된 변환율은 전날의 FX_IDC 쌍 일일율에 기초합니다. 선택 사항입니다. 기본값은 syminfo.currency입니다. 가능한 값: ISO 4217 형식의 통화 코드 (예: USD) 또는 통화 내의 상수 중 하나. * 이름 공간, 예: currency.USD.

언급이 함수를 사용하는 파인스크립트 코드는 역사와 실시간 데이터에 대해 다르게 계산할 수 있습니다. 요청된 기호에 대한 추가 인수를 지정하고 싶다면, 예를 들어 세션 또는 조정 유형,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

str

str.contains

true 를 반환합니다.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)

반환만약str발견되었습니다.source문자열, 그렇지 않으면 거짓.

주장

  • source소스 문자열
  • str검색해야 할 하위 문자열.

또한 참조 str.pos str.match

str.endswith

true 를 반환합니다.source하위 문자열로 끝나는 줄str그렇지 않으면 거짓입니다.

str.endswith(source, str)

반환만약source하위 문자열로 끝나는 줄str그렇지 않으면 거짓입니다.

주장

  • source소스 문자열
  • str검색해야 할 하위 문자열.

또한 참조 str.startswith

str.startswith

true 를 반환합니다.source하위 문자열로 시작됩니다str그렇지 않으면 거짓입니다.

str.startswith(source, str)

반환만약source하위 문자열로 시작됩니다str그렇지 않으면 거짓입니다.

주장

  • source소스 문자열
  • str검색해야 할 하위 문자열.

또한 참조 str.endswith

str.substring

새로운 문자열을 반환합니다.source하위 문자열은 지표에서 지정된 문자열로 시작합니다.begin_pos그리고 end_pos - 1까지source string.

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(시리즈 문자열) 소스 문자열에서 하위 문자열을 추출합니다.
  • begin_pos(series int) 추출된 하위 문자열의 시작 위치. 그것은 포괄적입니다 ( 추출된 하위 문자열에는 그 위치에 있는 문자가 포함됩니다).
  • end_pos(series int) 종료 위치. 그것은 배타적입니다 (수출된 문자열은 그 위치의 문자를 포함하지 않습니다). 선택적입니다. 기본값은source string.

언급문자열 인덱싱은 0에서 시작됩니다.begin_pos이 값은end_pos, 함수는 빈 문자열을 반환합니다.

또한 참조 str.contains str.pos str.match

str.tonumber

str.tonumber(string)

반환유효한 숫자를 포함하면 문자열의 부동 버전, 그렇지 않으면.

주장

  • string(시리즈 문자열) int 또는 float의 문자열 표현

str.format

포맷 문자열과 value(s) 을 포맷된 문자열로 변환한다. 포맷 문자열에는 문자 텍스트와 포맷될 각 값에 대한 커리 브래시 {}로 한 개의 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔널 포지셔

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(시리즈 문자열) 형식 문자열
  • arg0, arg1, ...(열 int/float/bool/string/na/int[]/float[]/bool[]/string[]) 형식화 값

언급표기되지 않은 패턴 내의 모든 곱슬 모양의 브레이크는 균형을 잡아야합니다. 예를 들어, ab {0} deab } de는 유효한 패턴이지만, ab {0} de, ab } de{는 그렇지 않습니다.

str.length

그 문자열에 있는 문자열의 수에 해당하는 정수를 반환합니다.

str.length(string)

반환소스 문자열의 문자 숫자

주장

  • string소스 문자열

str.lower

모든 글자가 소문자로 변환된 새로운 문자열을 반환합니다.

str.lower(source)

반환모든 글자가 소문자로 변환된 새로운 문자열

주장

  • source(시리즈 문자열) 문자열을 변환합니다.

또한 참조 str.upper

str.upper

모든 글자가 대문자로 변환된 새로운 문자열을 반환합니다.

str.upper(source)

반환모든 글자가 대문자로 변환된 새로운 문자열

주장

  • source(시리즈 문자열) 문자열을 변환합니다.

또한 참조 str.lower

str.match

새로운 하위 문자열을 반환합니다source문자열이 a와 일치하는 경우regex정규 표현식, 그렇지 않으면.

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문자열이 a와 일치하는 경우regex정규 표현식, 그렇지 않으면.

주장

  • source소스 문자열
  • regex(시리즈 문자열) 이 문자열이 일치해야 하는 정규 표현식

언급함수는 정규 표현식의 첫 번째 발생을 반환합니다.source끈. 역삼각형 regex문자열은 추가적인 역슬래쉬로 탈출해야 합니다. 예를 들어, \d는 정규 표현식 \d을 의미합니다.

또한 참조 str.contains str.substring

str.pos

첫 번째 발생의 위치를 반환str줄에sourcestring, na 그렇지 않으면.

str.pos(source, str)

반환의 위치str줄에source string.

주장

  • source소스 문자열
  • str검색해야 할 하위 문자열.

언급문자열 인덱싱은 0에서 시작합니다.

또한 참조 str.contains str.match str.substring

str.replace

N + 1th 발생과 함께 새로운 문자열을 반환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 "EXCHANGE1:SYMBOL1 / EXCHANGE1:SYMBOL2"
    runtime.log(newSource)

반환가공된 끈.

주장

  • source소스 문자열
  • target(시리즈 문자열) 문자열을 교체합니다.
  • replacement(시리즈 문자열) 대상 문자열 대신 삽입되는 문자열.
  • occurrence(series int) 소스 문자열에서 교체되는 대상 문자열의 발생의 일치 지수는 첫 번째 일치에 대해 0에서 시작됩니다. 선택적입니다. 기본 값은 0입니다.

또한 참조 str.replace_all str.match

str.replace_all

소스 문자열의 목표 문자열의 모든 출현을 대체 문자열로 대체합니다.

str.replace_all(source, target, replacement)

반환가공된 끈.

주장

  • source소스 문자열
  • target(시리즈 문자열) 문자열을 교체합니다.
  • replacement(시리즈 문자열) 대상 문자열의 각 발생에 대해 대체해야 하는 문자열.

str.split

문자열을 하위 문자열의 배열로 나누고 배열 ID를 반환합니다.

str.split(string, separator)

반환문자열의 ID.

주장

  • string소스 문자열
  • separator(시리즈 문자열) 각 하위 문자열을 분리하는 문자열

str.tostring

str.tostring(value)
str.tostring(value, format)
str.tostring(value[])
str.tostring(value[], format)

반환문자열 표현value논쟁. 만약value문자는 문자열이고, 그대로 반환됩니다. 그 때valueis na, 함수는 문자열 NaN을 반환합니다.

주장

  • value(series int/float/bool/string/int[]/float[]/bool[]/string[]) 값 또는 배열 ID는 요소가 문자열로 변환됩니다.
  • format(시리즈 문자열) 형식 문자열. 이러한 형식을 허용 합니다.* 상수: format.mintick, format.percent, format.volume. 선택 사항. 기본 값은 #.#########.

언급플로트 값의 포맷은 필요한 경우 그 값을 둥글게 합니다. 예를 들어 str.tostring ((3.99, #) 는 4을 반환합니다. 후속 0을 표시하려면 # 대신 0을 사용하십시오. 예를 들어, #.000. format.mintick를 사용할 때, 값은 나머지 없이 syminfo.mintick로 나눌 수 있는 가장 가까운 숫자로 둥글게 됩니다. 문자열은 후속 0으로 반환됩니다. 만약 x 문자가 문자열이라면, 같은 문자열 값이 반환됩니다. true 또는 false를 반환합니다. x가 na일 때 함수는 NaN을 반환합니다.

색상

color.new

함수 색은 주어진 색에 지정된 투명성을 적용합니다.

color.new(color, transp)

예제

plot(close, color=color.new(color.red, 50))

반환특정 투명성 색상

주장

  • color(시리즈 색상)
  • transp(series int/float) 가능한 값은 0 (투명하지 않음) 에서 100 (보이지 않음) 까지 있습니다.

언급변수가 아닌 변수를 사용하는 경우 (예: simple, input 또는 series) 스크립트 Settings/Style 탭에서 표시되는 색상에 영향을 줄 것입니다. 자세한 내용은 사용자 설명서를 참조하십시오.

color.rgb

RGB 색상 모델을 사용하여 투명성을 가진 새로운 색상을 만듭니다.

color.rgb(red, green, blue, transp)

예제

plot(close, color=color.rgb(255, 0, 0, 50))

반환특정 투명성 색상

주장

  • red(시리즈 int/float) 빨간색 구성 요소. 가능한 값은 0에서 255입니다.
  • green(시리즈 int/float) 녹색 색상 구성 요소. 가능한 값은 0에서 255입니다.
  • blue(시리즈 int/float) 파란색 색상 구성 요소. 가능한 값은 0에서 255입니다.
  • transp(시리즈 int/float) 선택. 색상 투명성. 가능한 값은 0 (무투화) 에서 100 (보이지 않는) 이다. 기본 값은 0.

언급변수가 아닌 변수를 사용하는 경우 (예: simple, input 또는 series) 스크립트 Settings/Style 탭에서 표시되는 색상에 영향을 줄 것입니다. 자세한 내용은 사용자 설명서를 참조하십시오.

실행 시간

runtime.debug

변수 정보를 콘솔에 인쇄해

FMZ PINE 언어 특수한 기능runtime.debug(value), 단지 논쟁과 함께.

runtime.log

로그에서 출력 컨텐츠

FMZ PINE 언어 특수한 기능runtime.log(1, 2, 3, close, high, ...), 당신은 여러 주장을 통과 할 수 있습니다.

runtime.error

호출할 때, 실행 시간 오류를 발생message argument.

runtime.error(message)

주장메시지 (시리즈 문자열) 오류 메시지.

입력

입력

스크립트 설정의 입력 탭에 입력 기능을 추가하여 스크립트 사용자에게 구성 옵션을 제공할 수 있습니다. 이 함수는 자동으로 defval에 사용되는 논증의 유형을 감지하고 해당 입력 위젯을 사용합니다.

input(defval, title, tooltip, inline, group)
input(defval, title, inline, group, tooltip)

예제

i_switch = input(true, "On/Off")     // Set true, the default is checked.
plot(i_switch ? open : na)

i_len = input(7, "Length")
i_src = input(close, "Source")       // Drop-down box, select close by default.
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-in) 스크립트Settings/Inputs 탭에서 제안된 입력 변수의 기본값을 결정하고 스크립트 사용자가 변경할 수 있습니다. 소스 타입의 내장값은 계산의 소스를 지정하는 일련 플로트 변수입니다.close, hlc3, 등등
  • title(conststring) 입력의 제목. 지정되지 않은 경우 변수 이름은 입력의 제목으로 사용됩니다. 제목이 지정되어 있지만 비어있는 경우 이름은 빈 문자열입니다.
  • tooltip(const string) 도구 팁 아이콘을 누르면 사용자에게 표시되는 문자열.
  • inline(conststring) 같은 문장을 사용하는 모든 입력 호출을 한 줄에 결합합니다. 문자로 사용되는 문자열은 표시되지 않습니다. 동일한 줄에 속하는 입력값을 식별하는 데만 사용됩니다.
  • group(const string) 같은 그룹 논증 문자열을 사용하여 모든 입력 위에 헤더를 만듭니다. 문자열은 헤더의 텍스트로도 사용됩니다.

언급입력 함수의 결과는 항상 변수에 할당되어야 합니다. 위의 예제를 참조하십시오.

또한 참조 input.bool input.color input.int input.float input.string input.timeframe input.source

input.source

스크립트 설정의 입력 탭에 입력 기능을 추가하여 스크립트 사용자에게 구성 옵션을 제공할 수 있습니다. 이 기능은 사용자가 계산을 위한 소스를 선택할 수 있는 드롭다운 기능을 추가합니다. 예를 들어 close, hl2 등이 있습니다. 스크립트에는 하나의 input.source() 호출만 포함되는 경우, 사용자가 다른 지표의 출력을 소스로 선택할 수 있습니다.

input.source(defval, title, tooltip, inline, group)

예제

i_src = input.source(close, "Source")
plot(i_src)

반환입력 변수의 값

주장

  • defval(series int/float) 스크립트 Settings/Inputs 탭에서 제안된 입력 변수의 기본 값을 결정하고 사용자가 변경할 수 있습니다.
  • title(conststring) 입력의 제목. 지정되지 않은 경우 변수 이름은 입력의 제목으로 사용됩니다. 제목이 지정되어 있지만 비어있는 경우 이름은 빈 문자열입니다.
  • tooltip(const string) 도구 팁 아이콘을 누르면 사용자에게 표시되는 문자열.
  • inline(conststring) 같은 문장을 사용하는 모든 입력 호출을 한 줄에 결합합니다. 문자로 사용되는 문자열은 표시되지 않습니다. 동일한 줄에 속하는 입력값을 식별하는 데만 사용됩니다.
  • group(const string) 같은 그룹 논증 문자열을 사용하여 모든 입력 위에 헤더를 만듭니다. 문자열은 헤더의 텍스트로도 사용됩니다.

언급input.source 함수의 결과는 항상 변수에 할당되어야 합니다. 위의 예제를 참조하십시오.

또한 참조 input.bool input.int input.float input.string input.timeframe input.color input

input.string

스크립트 설정의 입력 탭에 입력값을 추가하여 스크립트 사용자에게 구성 옵션을 제공할 수 있습니다. 이 함수는 스크립트 입력값에 문자열 입력값을 추가합니다.

input.string(defval, title, options, tooltip, inline, group, confirm)

예제

i_text = input.string("Hello!", "Message")
runtime.log(i_text)

반환입력 변수의 값

주장

  • defval(const string) 사용자가 변경할 수 있는 스크립트Settings/Inputs 탭에서 제안된 입력 변수의 기본 값을 결정합니다.options그 중 하나여야 합니다.
  • title(conststring) 입력의 제목. 지정되지 않은 경우 변수 이름은 입력의 제목으로 사용됩니다. 제목이 지정되어 있지만 비어있는 경우 이름은 빈 문자열입니다.
  • options(상수 목록: [<형>...]) 선택할 수 있는 옵션 목록
  • tooltip(const string) 도구 팁 아이콘을 누르면 사용자에게 표시되는 문자열.
  • inline(conststring) 같은 문장을 사용하는 모든 입력 호출을 한 줄에 결합합니다. 문자로 사용되는 문자열은 표시되지 않습니다. 동일한 줄에 속하는 입력값을 식별하는 데만 사용됩니다.
  • 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

스크립트 설정의 입력 탭에 입력 기능을 추가하여 스크립트 사용자에게 구성 옵션을 제공할 수 있습니다. 이 기능은 스크립트 입력에 체크마크를 추가합니다.

input.bool(defval, title, tooltip, inline, group, confirm)

예제

i_switch = input.bool(true, "On/Off")
plot(i_switch ? open : na)

반환입력 변수의 값

주장

  • defval(const bool) 스크립트Settings/Inputs 탭에서 제안된 입력 변수의 기본값을 결정합니다. 사용자가 변경할 수 있는 곳.
  • title(conststring) 입력의 제목. 지정되지 않은 경우 변수 이름은 입력의 제목으로 사용됩니다. 제목이 지정되어 있지만 비어있는 경우 이름은 빈 문자열입니다.
  • tooltip(const string) 도구 팁 아이콘을 누르면 사용자에게 표시되는 문자열.
  • inline(conststring) 같은 문장을 사용하는 모든 입력 호출을 한 줄에 결합합니다. 문자로 사용되는 문자열은 표시되지 않습니다. 동일한 줄에 속하는 입력값을 식별하는 데만 사용됩니다.
  • 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

스크립트 설정의 입력 탭에 입력값을 추가하여 스크립트 사용자에게 구성 옵션을 제공할 수 있습니다. 이 함수는 스크립트 입력값에 정수 입력값을 추가합니다.

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) 스크립트Settings/Inputs 탭에서 제안된 입력 변수의 기본 값을 결정합니다. 스크립트 사용자가 변경할 수 있습니다.options그 중 하나여야 합니다.
  • title(conststring) 입력의 제목. 지정되지 않은 경우 변수 이름은 입력의 제목으로 사용됩니다. 제목이 지정되어 있지만 비어있는 경우 이름은 빈 문자열입니다.
  • minval(const int) 입력 변수의 최소 가능한 값. 선택적입니다.
  • maxval(const int) 입력 변수의 최대 가능한 값. 선택적입니다.
  • step(const int) 입력값을 증가 / 감소시키는 데 사용되는 단계 값. 선택적입니다. 기본값은 1.
  • options(const int 값의 튜플: [val1, val2,...]) 우수점으로 분리되어 사각형 괄호에 포함 된 드롭다운 메뉴에서 선택할 수있는 옵션 목록: [val1, val2,...]. 이 인수를 사용하면minval, maxval그리고step논증들은 사용할 수 없습니다.
  • tooltip(const string) 도구 팁 아이콘을 누르면 사용자에게 표시되는 문자열.
  • inline(conststring) 같은 문장을 사용하는 모든 입력 호출을 한 줄에 결합합니다. 문자로 사용되는 문자열은 표시되지 않습니다. 동일한 줄에 속하는 입력값을 식별하는 데만 사용됩니다.
  • 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

스크립트 설정의 입력 탭에 입력값을 추가하여 스크립트 사용자에게 구성 옵션을 제공할 수 있습니다. 이 함수는 스크립트 입력값에 플로트 입력값을 추가합니다.

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) 스크립트Settings/Inputs 탭에서 제안된 입력 변수의 기본 값을 결정합니다. 스크립트 사용자가 변경할 수 있습니다.options그 중 하나여야 합니다.
  • title(conststring) 입력의 제목. 지정되지 않은 경우 변수 이름은 입력의 제목으로 사용됩니다. 제목이 지정되어 있지만 비어있는 경우 이름은 빈 문자열입니다.
  • minval(const int/float) 입력 변수의 최소 가능한 값. 선택적입니다.
  • maxval(const int/float) 입력 변수의 최대 가능한 값. 선택적입니다.
  • step(const int/float) 입력값을 증가/감축하는 데 사용되는 단계 값. 선택적입니다. 기본값은 1입니다.
  • options(const int/float 값의 튜플: [val1, val2,...]) 우수점으로 분리된 드롭다운 메뉴에서 선택할 수 있는 옵션 목록, 사각형 괄호에 포함: [val1, val2,...]. 이 인수를 사용할 때,minval, maxval그리고step논증들은 사용할 수 없습니다.
  • tooltip(const string) 도구 팁 아이콘을 누르면 사용자에게 표시되는 문자열.
  • inline(conststring) 같은 문장을 사용하는 모든 입력 호출을 한 줄에 결합합니다. 문자로 사용되는 문자열은 표시되지 않습니다. 동일한 줄에 속하는 입력값을 식별하는 데만 사용됩니다.
  • group(const string) 같은 그룹 논증 문자열을 사용하여 모든 입력 위에 헤더를 만듭니다. 문자열은 헤더의 텍스트로도 사용됩니다.
  • confirm(const bool) true라면, 표시가 차트에 추가되기 전에 입력값을 확인하도록 요청됩니다. 기본 값은 false입니다.

언급input.float 함수의 결과는 항상 변수에 할당되어야 합니다. 위의 예를 참조하십시오.

또한 참조 input.bool input.int input.string input.timeframe input.source input.color input

input.color

스크립트 설정의 입력 탭에 입력 기능을 추가하여 스크립트 사용자에게 구성 옵션을 제공할 수 있습니다. 이 기능은 사용자가 색상 패러다임 또는 헥스 값에서 색상 및 투명성을 선택할 수 있도록 색상 선택기를 추가합니다.

input.color(defval, title, tooltip, inline, group, confirm) 

예제

i_col = input.color(color.red, "Plot Color")
plot(close, color=i_col)

반환입력 변수의 값

주장

  • defval(const color) 스크립트Settings/Inputs 탭에서 제안된 입력 변수의 기본값을 결정하고, 사용자가 변경할 수 있습니다.
  • title(conststring) 입력의 제목. 지정되지 않은 경우 변수 이름은 입력의 제목으로 사용됩니다. 제목이 지정되어 있지만 비어있는 경우 이름은 빈 문자열입니다.
  • tooltip(const string) 도구 팁 아이콘을 누르면 사용자에게 표시되는 문자열.
  • inline(conststring) 같은 문장을 사용하는 모든 입력 호출을 한 줄에 결합합니다. 문자로 사용되는 문자열은 표시되지 않습니다. 동일한 줄에 속하는 입력값을 식별하는 데만 사용됩니다.
  • group(const string) 같은 그룹 논증 문자열을 사용하여 모든 입력 위에 헤더를 만듭니다. 문자열은 헤더의 텍스트로도 사용됩니다.
  • confirm(const bool) true라면, 표시가 차트에 추가되기 전에 입력값을 확인하도록 요청됩니다. 기본 값은 false입니다.

언급input.color 함수의 결과는 항상 변수에 할당되어야 합니다. 위의 예제를 참조하십시오.

또한 참조 input.bool input.int input.float input.string input.timeframe input.source input

input.price

스크립트 설정/입문 탭에 가격 입력 추가합니다.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) 스크립트 Settings/Inputs 탭에서 제안된 입력 변수의 기본 값을 결정하고 사용자가 변경할 수 있습니다.
  • title(conststring) 입력의 제목. 지정되지 않은 경우 변수 이름은 입력의 제목으로 사용됩니다. 제목이 지정되어 있지만 비어있는 경우 이름은 빈 문자열입니다.
  • tooltip(const string) 도구 팁 아이콘을 누르면 사용자에게 표시되는 문자열.
  • inline(conststring) 같은 문장을 사용하는 모든 입력 호출을 한 줄에 결합합니다. 문자로 사용되는 문자열은 표시되지 않습니다. 동일한 줄에 속하는 입력값을 식별하는 데만 사용됩니다.
  • group(const string) 같은 그룹 논증 문자열을 사용하여 모든 입력 위에 헤더를 만듭니다. 문자열은 헤더의 텍스트로도 사용됩니다.
  • confirm(const bool) true 경우, 인터랙티브 입력 모드가 활성화되고 지표가 차트에 추가될 때 차트를 클릭하거나 지표를 선택하고 그 후에 선택지를 이동함으로써 선택이 이루어집니다. 선택 사항입니다. 기본값은 false입니다.

언급인터랙티브 모드를 사용할 때, 시간 입력과 가격 입력이 결합될 수 있습니다.inline argument.

또한 참조 input.bool input.int input.float input.string input.resolution input.source input.color input

input.timeframe

스크립트 설정의 입력 탭에 입력 기능을 추가하여 스크립트 사용자에게 구성 옵션을 제공할 수 있습니다. 이 기능은 사용자가 타임프레임 선택기를 통해 특정 타임프레임을 선택하여 문자열로 반환할 수 있는 드롭다운을 추가합니다. 선택기는 사용자가 차트의 타임프레임 드롭다운을 사용하여 추가한 사용자 지정 타임프레임을 포함합니다.

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) 사용자가 변경할 수 있는 스크립트Settings/Inputs 탭에서 제안된 입력 변수의 기본 값을 결정합니다.options그 중 하나여야 합니다.
  • title(conststring) 입력의 제목. 지정되지 않은 경우 변수 이름은 입력의 제목으로 사용됩니다. 제목이 지정되어 있지만 비어있는 경우 이름은 빈 문자열입니다.
  • options(투프

더 많은

구걸자왜 전략 광장 복제 피인 전략이 현실화되지 않는지

발명가들의 수량화 - 작은 꿈자, 우리는 그것을 확인합니다.

구걸자의 최적화된 트렌드 트래커

발명가들의 수량화 - 작은 꿈안녕하세요, 구체적으로 어떤 전략이 있을까요?