sing 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)
In Pine kann die Varip-Keyword verwendet werden, um anzuzeigen, dass ein Feld mit einem Objekt während der gesamten Ausführung des Skripts fortbesteht und nicht in einer unbestätigten Spalte zurückläuft.
In einer Erklärung des Typs Counter verwendet das bars-Feld keine Varip-Schlüsselwörter, so dass es in jeder unbestätigten Spalte zurückläuft. Das ticks-Feld verwendet die Varip-Schlüsselwörter, so dass es in keiner unbestätigten Spalte zurückläuft.
Das counter-Objekt wird mit dem Schlüsselwort var deklariert, so dass es während der gesamten Ausführung des Skripts bestehen bleibt.
In jeder Iteration werden die bars- und ticks-Felder um 1 erhöht. Die bars-Felder werden in jeder unbestätigten Spalte zurückgerollt, während die ticks-Felder nicht.
Schließlich können Sie die Unterschiede zwischen den Feldern counter.bars und counter.ticks vergleichen, indem Sie die Felder counter.bars und counter.ticks abbilden. Die Werte von counter.bars werden in jeder unbestätigten Spalte zurückgerollt, während die Werte von counter.ticks steigen, bis die Ausführung des Skripts beendet ist.
**Ändern von Feldwerten**
```pine
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")
Verwendbar:=
Der Revaluation-Operator ändert den Wert des Objektfeldes.
Objektgruppe
Das Beispiel deklariert ein Null-Array, das Objekte des benutzerdefinierten Order-Types speichert:
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")
oder
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")
Objekt zu kopieren
In Pine werden Objekte durch Referenzen zugewiesen. Wenn ein vorhandenes Objekt einer neuen Variablen zugewiesen wird, weisen beide auf dasselbe Objekt hin.
//@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)
In dem folgenden Beispiel erstellen wir ein Pivot1-Objekt und setzen dessen Feld x auf 1000. Dann erklären wir, dass ein Pivot2 eine Variable enthält, die auf dieses Pivot1-Objekt verweist, so dass beide auf die gleiche Instanz verweisen. Daher ändert eine Änderung von Pivot2.x auch Pivot1.x, da beide auf das Feld x des gleichen Objekts verweisen.
Um eine Kopie zu erstellen, die unabhängig von dem ursprünglichen Objekt ist, können wir in diesem Fall die integrierte copy () -Methode verwenden. In diesem Beispiel deklarieren wir die Variablen, in denen pivot2 auf die kopierte Instanz des pivot1-Objekts verweist. Jetzt ändert die Änderung von pivot2.x nicht pivot1.x, da es sich um ein Feld handelt, in dem x ein einzelnes Objekt ist:
//@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)
Es ist zu beachten, dass die Copy-Methode von TradingView eine leichte Kopie ist. Wenn ein Objekt Felder eines speziellen Typs (Array usw.) hat, werden diese Felder in der leichten Kopie des Objekts auf die gleiche Instanz des Objekts verweisen. Die FMZ-Plattform implementiert Deep Copy direkt, ohne zusätzliche Bearbeitung, wie zum Beispiel:
Tiefkopie
//@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")
Die Testergebnisse werden bei der Ausführung von labelInfo.copy ((labelInfo1) als tiefe Kopien ausgeführt, und Änderungen an den Feldern von labelInfo1 haben keinen Einfluss auf labelInfo2。
Methoden der Sprache Pine sind spezielle Funktionen, die mit den integrierten oder benutzerdefinierten Typen einer bestimmten Instanz verbunden sind. In den meisten Fällen sind sie im Wesentlichen die gleichen wie die regulären Funktionen, bieten jedoch eine kürzere und bequemere Syntax. Benutzer können Methoden direkt mit Punktzeichen auf Variablen zugreifen, so wie sie Felder von Pine-Objekten zugreifen.
Eingebettete Methoden
Ein Beispiel dafür ist der folgende Text:
//@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)
Das kann man auch so schreiben:
//@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)
Das zeigt die Unterstützung von PINE.Methods
Danach der Code.array.avg(sourceArray)
Die Methoden können in folgender Form geschrieben werden:sourceArray.avg()
。
Hinweis: FMZ wird vorläufig nicht unterstütztarray.avg
Ein solcher Aufruf.
Benutzerdefinierte Methoden
Pine erlaubt die Benutzerdefinition von benutzerdefinierten Methoden, die mit Objekten jeglicher eingebetteter oder benutzerdefinierter Art verwendet werden. Die Definitionsmethode ist im Wesentlichen die gleiche wie die Definitionsfunktion, jedoch mit zwei wichtigen Unterschieden:
Zum Beispiel wird der Code für die Berechnung des Brin-Index in den folgenden Code als benutzerdefinierte Methode eingebettet:
//@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)
Es wurde geändert in:
//@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)
Man kann sehen, dass die benutzerdefinierte Methode, die die Schlüsselwortmethod-Erklärung verwendet, die erste Parameter in der Parameterliste von maintainQueue und calcBB istarray<float>
Der Typ ≠ bedeutet, dass die Methodearray<float>
Die Methode der Typusvariablen, so dass man sehen kann, dass man den folgenden Code aufruft, um den Brin-Index zu berechnen:
[sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample)
Methods erneut laden
Benutzerdefinierte Methoden können vorhandene eingebaute und benutzerdefinierte Methoden mit demselben Identifikator überladen und überladen. Diese Funktion erlaubt dem Benutzer, mehrere Prozeduren zu definieren, die mit unterschiedlichen Parametersignaturen unter demselben Methodennamen verbunden sind. Als einfaches Beispiel nehmen wir an, dass wir eine Methode definieren möchten, um den Typ einer Variablen zu identifizieren. Da wir den Objekttyp, der mit der benutzerdefinierten Methode verbunden ist, explizit angeben müssen, müssen wir für jeden Typ, den wir identifizieren möchten, eine Überlastung definieren.
//@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")
Die Basisart für jede Variable wird festgelegtgetType()
Welche Überlastung wird verwendet? Auf der FMZ-Plattform wird der Werttyp als Float-Daten beurteilt, da die Basis der PINE-Skripte als Javascript-Sprache implementiert ist.
Der Aufruf einer Funktion kann mit Parametern übertragen werden, kann mit einem Parameternamen bewertet werden, kann direkt in die Variablen der entsprechenden Parameterposition übertragen werden und unterstützt auch die Mischverwendung. Zum Beispiel:
plot(close, title="test plot") // 直接传参数 close ;指定参数 title ,赋值字符串"test plot"
Nach der Angabe des Parameternamens können die Variablen nicht mehr direkt als Parameter übertragen werden, sondern die folgenden Parameter müssen als Parametername-Angabe geschrieben werden.
// plot(close, title="test", color.red) // 虽然plot第三个参数是颜色值,但是这样写就会报错
plot(close, title="test", color=color.red) // 正确写法
plot(close, "test", color.red) // 正确写法
Wir werden es weitergeben.timeframe
Umrechnung der Zeitspanne der Parameter in Sekunden.
timeframe.in_seconds(timeframe)
Beispiel
// 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)
Rückgabewert
timeframe
Die Zahl der Sekunden in einer K-Zeile ist in der Form int angegeben.
Parameter
timeframe
(simple string) Zeitrahmen. Optional. Der Standardwert ist timeframe.period.Anmerkung
Fürtimeframe
>= Die Funktion “1M” berechnet die Sekunden nach 30.4167 (365⁄12) Tagen in einem Monat.
Siehe auch
input.timeframe
timeframe.period
Die Erstellung eines Code-Identifikators fordert einen glatten mittleren K-Linienwert.
ticker.heikinashi(symbol)
Beispiel
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)
Rückgabewert Die String-Werte des Aktiencodes können an die Funktion request.security weitergegeben werden.
Parameter
symbol
(simple string) Kennzeichen für Warencodes.Siehe auch
syminfo.tickerid
syminfo.ticker
request.security
Anfrage nach externen Daten
request.data(url, attribute)
Beispiel
/*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)
Rückgabewert
Parameterattribute
Bestimmte Datenreihe
Parameter
url
(simple string) Die Datenquelle, auf die die Anfrage eingereicht wurde, muss das Format haben, in dem die Antwort eingereicht wird (mindestens die Attribute time, data):{"data": [], "schema": ["time", "data"]}
Die Datenformate in den Beispielen sind zu entnehmen: {
"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) Geben Sie den Namen der Eigenschaft an und geben Sie die gewünschten Daten zurück."$.spot_close_price"
,verwenden$.
Als Vorzeichen werden die Attribute in den Datenfeldern der Daten, die bei der Anforderung der Datenquelle beantwortet werden, mit den Attributnamen übereinstimmen.Wenn es sich um eine Fehlermeldung handelt, müssen Sie diese überprüfen.request.data
Ob der gewünschte Zeitrahmen mit dem Zeitrahmen der Rückmessung übereinstimmt.
In diesem Fall ist die SQL-Aussage für die Datenabfrage data-data:
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;
Das ist ein Video, das auf der FMZ-Plattform verfügbar ist.DatenexplorationSeitenabfragen, Erstellen von Datenlinks, wie in dem Beispielhttps://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data
。
Eine andere Sorte/Auflösung verlangen.
request.security(symbol, timeframe, expression, gaps, lookahead, ignore_invalid_symbol, currency)
Beispiel
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)
Rückgabewert Anforderungsreihe
Parameter
symbol
(simple string) Warencode.timeframe
(simple string) Zeitspanne. Die leere Zeichenfolge wird als die aktuelle Zeitspanne der Grafik interpretiert.expression
(series int/float/bool/color) kann von der Aufforderung request.security berechnet werden und einen Ausdruck zurückgeben. Es kann eine Reihe oder eine Gruppe von Elementen sein, die in eine Reihe umgewandelt werden können.gaps
(barmerge_gaps) Die angeforderte Datenzusammenschlussstrategie: die automatische Zusammenführung der Daten mit den Hauptreihen der OHLC-Daten. Mögliche Werte: barmerge.gaps_on, barmerge.gaps_off. barmerge.gaps_on - die angeforderten Daten werden mit möglichen Abständen zusammengeführt.lookahead
(barmerge_lookahead) Geben Sie die gewünschte Datenzusammenschlussstrategie. Mögliche Werte: barmerge.lookahead_on, barmerge.lookahead_off. Ab Version 3 ist der Standardwert barmerge.lookahead_off. Bitte beachten Sie, dass das Verhalten identisch mit dem Echtzeitverhalten ist, nur in der Geschichte.ignore_invalid_symbol
(const bool) Eine Option, die das Verhalten der Funktion bestimmt, wenn die angegebene Ware nicht gefunden wird: Wenn false, wird das Skript gestoppt und die Ausführung zurückgegeben. Wenn true, wird die Funktion zurückgegeben und ausgeführt.currency
(simple string) Umwandlung des Währungsbezogenen Wertes der Ware (z. B. OHLC) in die Währung . Dann berechnet man den Wert nach der Umwandlung expression . Die verwendeten Umrechnungsraten basieren auf dem täglichen Wechselkurs des FX_IDC-Paares am Vortag (z. B. in Bezug auf die berechnete K-Linie). Optional . Der Standardwert ist syminfo.currency . Mögliche Werte: Drei-Alpha-Zeichen mit einem Währungscode im ISO 4217-Format (z. B. USD) oder currency.* Eine der Konstanten im Namensraum, z. B. currency.USD Anmerkung
Die PineScript-Code, die diese Funktion verwendet, kann unterschiedliche Berechnungen für die historischen und die Echtzeitdaten vornehmen.
Wenn Sie zusätzliche Parameter für die angeforderte Ware festlegen möchten, wie z. B. die Transaktionszeit oder den Anpassungstyp, können Sie die Funktion ticker.new() verwenden.
Es ist nicht möglich, die Variable ‘ticker’ zu verwenden, um die Abweichung an diese Funktion weiterzugeben. Sie können die Variable ‘ticker.new’ oder die Zeichenkettenform des Aktiencodes verwenden, z. B. AAPL+MSFT*TSLA”。
Derzeit können maximal 40 Request.security-Aufrufe in einem Skript verwendet werden.
Bitte beachten Sie, dass die Verwendung dieser Variable/Funktion dazu führen kann, dass der Indikator neu abgebildet wird.
Die zulässigen Auflösungsparameter sind:
1S, 5S, 15S, 30S - Sekundenintervalle (die Graphik-Periode sollte kleiner als oder gleich der Periode der Anfrage sein)
Von 1 bis 1440 Minuten
Von 1D bis 365D Tage
Von 1 W bis 52 W in wenigen Wochen
Von 1 M bis 12 M einige Monate
Siehe auch
syminfo.ticker
syminfo.tickerid
timeframe.period
ta.correlation
barmerge.lookahead_off
barmerge.lookahead_on
Wennsource
Die Zeichenfolge enthältstr
Wenn Sie eine Substring verwenden, gibt es die Antwort “true” oder “false”.
str.contains(source, str)
Beispiel
// 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)
Rückgabewert
Wenn insource
Finde in einer Stringstr
, ist wahr, andernfalls ist falsch.
Parameter
source
(series string) Quelle der Zeichenfolgestr
(series string) Suche nach einer Unterzeichenfolge.Siehe auch
str.pos
str.match
Wennsource
Die Zeichenfolge iststr
Wenn die angegebene Unterzeichenfolge endet, wird true oder false zurückgegeben.
str.endswith(source, str)
Rückgabewert
Wennsource
Die Zeichenfolge iststr
Die in der Unterzeitschrift angegebenen Zeichenfolgen enden mit true oder false.
Parameter
source
(series string) Quelle der Zeichenfolgestr
(series string) Suche nach einer Unterzeichenfolge.Siehe auch
str.startswith
Wennsource
Die Zeichenfolge iststr
Wenn die angegebene Unterzeichenfolge beginnt, wird true zurückgegeben, andernfalls false.
str.startswith(source, str)
Rückgabewert
Wennsource
Die Zeichenfolge iststr
Die angegebene Unterzeichenfolge beginnt mit true, andernfalls mit false.
Parameter
source
(series string) Quelle der Zeichenfolgestr
(series string) Suche nach einer Unterzeichenfolge.Siehe auch
str.endswith
Gibt eine neue String zurück, diesource
Unterstring der String.begin_pos
Die Zeichen beginnen mit dem angegebenen Index und erstrecken sich bis zumsource
Das ‘end_pos - 1’ der String.
str.substring(source, begin_pos)
str.substring(source, begin_pos, end_pos)
Beispiel
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)
Rückgabewert Unterstring, der aus der Quelle extrahiert wird.
Parameter
source
(series string) Quelle, aus der die Unterstring extrahiert wird.begin_pos
(series int) Der Anfangsort der extrahierten Unterstring. Es ist exklusiv. ((Die extrahierte Unterstring enthält die Zeichen dieser Position)end_pos
(series int) Endposition。 es ist exklusiv (die gewonnene Zeichenfolge enthält keine Zeichen für diese Position)。 optional。 die Standardwerte sindsource
Die Länge der Zeichenfolge.Anmerkung
Die String-Index beginnt mit 0. Wennbegin_pos
gleichend_pos
, die Funktion gibt eine leere Zeichenfolge zurück.
Siehe auch
str.contains
str.pos
str.match
str.tonumber(string)
Rückgabewert Wenn sie eine gültige Zahl enthält, ist sie der Floating-Point-Typ der String, ansonsten ist sie na。
Parameter
string
(series string) Eine Zeichenkette, die in der Form von int oder float dargestellt wird.Konvertieren von Formatstrings und -werten in formatierte Strings. Die Formatstrings können Text und ein Positionszeichen in Großklammern {} für jeden Wert enthalten, der formatiert werden soll. Jedes Positionszeichen enthält einen Index, der die erforderlichen Parameter ersetzt, die es ersetzen soll (beginnend mit 0), sowie eine optional Formatschreibung. Die Indexierung zeigt an, wo der Parameter in der Str.format-Parameterliste ist.
str.format(formatString, arg0, arg1, ...)
Beispiel
// 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)
Rückgabewert Formatierte Zeichenfolge.
Parameter
formatString
(series string) Formatted Zeichenfolge。arg0, arg1, ...
(series int/float/bool/string/na/int[]/float[]/bool[]/string[]) Wert, der formatiert werden soll.Anmerkung Alle Klammern in einem nicht zitierten Stil müssen ausgeglichen sein. Zum Beispiel sind “ab {0} de” und “ab ‘}’ de” gültige Stile, aber “ab {0’}’ de”, “ab } de” und “‘{”” sind keine gültigen Stile.
Gibt eine ganze Zahl zurück, die der Anzahl der Zeichen in der Zeichenfolge entspricht.
str.length(string)
Rückgabewert Anzahl der Zeichen in der Quellschnur.
Parameter
string
(series string) Quelle der ZeichenfolgeGibt eine neue Zeichenfolge zurück, in der alle Buchstaben in Kleinbuchstaben umgewandelt werden.
str.lower(source)
Rückgabewert Alle Buchstaben werden in eine neue Zeichenfolge mit Kleinbuchstaben umgewandelt.
Parameter
source
(series string) Die zu konvertierende Zeichenfolge.Siehe auch
str.upper
Gibt eine neue Zeichenfolge zurück, in der alle Buchstaben in Großbuchstaben umgewandelt werden.
str.upper(source)
Rückgabewert Alle Buchstaben werden in neue Strings in Großbuchstaben umgewandelt.
Parameter
source
(series string) Die zu konvertierende Zeichenfolge.Siehe auch
str.lower
Wenn es stimmt.regex
Regelmäßige Ausdrücke werden zurückgegebensource
Die neue Unterzeichen einer Zeichenfolge, die ‘na’ zurückgibt.
str.match(source, regex)
Beispiel
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"
Rückgabewert
source
Der neue Unterstring der String, wenn es eineregex
Die korrekte Ausdrucksweise ist ‘na’
Parameter
source
(series string) Quelle der Zeichenfolgeregex
(series string) Reguläre Ausdrücke, die mit dieser Zeichenfolge übereinstimmen.Anmerkung
Funktion gibt zurücksource
Der erste regelmäßige Ausdruck in der Zeichenkette:
regex
Die Rückschreibung <unk> in einer String erfordert die Verwendung zusätzlicher Rückschreibungen, z. B. \d steht für den regulären Ausdruck \d。
Siehe auch
str.contains
str.substring
Zurück.source
Erstmals in einer Zeichenfolgestr
Die Position der Zeichenfolge, sonst wird ‘na’ zurückgegeben.
str.pos(source, str)
Rückgabewert
str
Die Zeichenfolge istsource
Position in der Zeichenfolge.
Parameter
source
(series string) Quelle der Zeichenfolgestr
(series string) Suche nach einer Unterzeichenfolge.Anmerkung Die String-Index beginnt mit 0。
Siehe auch
str.contains
str.match
str.substring
Gibt eine neue String zurück, in der die ersten N+1 Male vorkommentarget
Strings und vorherigetarget
Die Zeichenfolge wird durchreplacement
String, bei dem N inoccurrence
Geben Sie in .N den entsprechenden Index an, der in der Quelle erscheint, um den Zielstring zu ersetzen.
str.replace(source, target, replacement, occurrence)
Beispiel
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)
Rückgabewert String, der bearbeitet wurde
Parameter
source
(series string) Quelle der Zeichenfolgetarget
(series string) wird durch eine String ersetztreplacement
(series string) Die String, die eingefügt werden soll, anstelle der Ziel-String.occurrence
(series int) Ziel-String, der ersetzt werden soll, ist der entsprechende Index, der in der Quell-String erscheint. Der erste entsprechende Index beginnt mit 0 und ist optional. Der Standardwert ist 0Siehe auch
str.replace_all
str.match
Ersetzen Sie die Ziel-String, die jedes Mal in der Quelle erscheint, durch eine Ersatz-String.
str.replace_all(source, target, replacement)
Rückgabewert String, der bearbeitet wurde
Parameter
source
(series string) Quelle der Zeichenfolgetarget
(series string) wird durch eine String ersetztreplacement
(series string) Jedes Mal, wenn eine Zielserie erscheint, wird sie ersetztSpaltet die String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String-String
str.split(string, separator)
Rückgabewert Die ID der String-Array
Parameter
string
(series string) Quelle der Zeichenfolgeseparator
(series string) Die Strings, die jede einzelne Unterstringung trennen.str.tostring(value)
str.tostring(value, format)
str.tostring(value[])
str.tostring(value[], format)
Rückgabewert
value
Die Strings der Parameter sind in der Form。
Wennvalue
Die Parameter sind Strings und werden als solche zurückgegeben.
Wennvalue
Wenn na verwendet wird, gibt die Funktion die String-Zeiche NaN zurück.
Parameter
value
(series int/float/bool/string/int[]/float[]/bool[]/string[]) dessen Elemente in die Werte oder Array-IDs der String umgewandelt werden.format
(series string) Format string. Accepts these format.* constants: format.mintick, format.percent, format.volume. Optional. The default value is ‘#.##########’.Anmerkung Die Formatierung von Floating-Point-Werten kann diese Werte auch umschreiben, wenn dies notwendig ist, z. B. wird str.tostring ((3.99, ‘#’) zurückgegeben 4。 Um die Null zu zeigen, verwenden Sie ‘0’ anstelle von ‘#’. Zum Beispiel ‘#.000’. Wenn format.mintick verwendet wird, wird dieser Wert zu der nächstgelegenen Zahl, die ohne Restzahl durch syminfo.mintick geteilt werden kann, umkreist. Die zurückgegebenen Strings werden mit Nullen gefolgt. Wenn x ein String ist, wird der gleiche Stringwert zurückgegeben. Der Typ Bool gibt entweder TRUE oder FALSE zurück. Wenn x gleich na ist, gibt die Funktion NaN♦ zurück.
Funktionsfarben geben die Transparenz an, die auf die gegebene Farbe angewendet wird.
color.new(color, transp)
Beispiel
plot(close, color=color.new(color.red, 50))
Rückgabewert Die Farbe hat eine bestimmte Transparenz.
Parameter
color
(series color)transp
(series int/float) Die verfügbaren Werte reichen von 0 (untransparent) bis 100 (unsichtbar)Anmerkung Die Verwendung einer unbegrenzten Anzahl von Parametern (z. B. simple, input oder series) wirkt sich auf die Farbe aus, die auf der Seite mit den Einstellungen/Styles der Skriptabelle angezeigt wird. Weitere Informationen finden Sie in der Benutzerhandbuch.
Erstellen Sie neue Farben mit Transparenz mithilfe des RGB-Farbmodells.
color.rgb(red, green, blue, transp)
Beispiel
plot(close, color=color.rgb(255, 0, 0, 50))
Rückgabewert Die Farbe hat eine bestimmte Transparenz.
Parameter
red
(series int/float) Rot. Die möglichen Werte sind von 0 bis 255green
(series int/float) Grün. Die möglichen Werte liegen zwischen 0 und 255blue
(series int/float) Blau. Die möglichen Werte sind von 0 bis 255transp
(series int/float) ist optional. Die Farbe ist transparent. Die möglichen Werte reichen von 0 (untransparent) bis 100 (transparent). Der Standardwert ist 0 (transparent).Anmerkung Die Verwendung einer unbegrenzten Anzahl von Parametern (z. B. simple, input oder series) wirkt sich auf die Farbe aus, die auf der Seite mit den Einstellungen/Styles der Skriptabelle angezeigt wird. Weitere Informationen finden Sie in der Benutzerhandbuch.
Drucken Sie die Variablen-Informationen auf der Steuerung.
FMZ PINE hat eine spezielle Funktion, die die Sprache beeinflusst.runtime.debug(value)
, nur ein Parameter.
Inhalte aus dem Tagebuch.
FMZ PINE hat eine spezielle Funktion, die die Sprache beeinflusst.runtime.log(1, 2, 3, close, high, ...)
, kann mehrere Parameter übertragen werden.
Wenn Sie diese aufrufen, können Sie einen Betriebsfehler verursachen, und es kann zu einem Fehler bei der Ausführung kommen.message
Fehlermeldung im Parameter angegeben.
runtime.error(message)
Parameter Message (series string) ist eine Fehlermeldung.
Input wird in die Eingabe-Tagseite der Skript-Einstellungen hinzugefügt, die es Ihnen ermöglicht, den Benutzern der Skripte Konfigurationsoptionen anzubieten. Diese Funktion erkennt automatisch die Arten von Parametern für die Defval-Einstellungen und verwendet die entsprechenden Eingabe-Plugins.
input(defval, title, tooltip, inline, group)
input(defval, title, inline, group, tooltip)
Beispiel
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)
Rückgabewert Variablenwerte eingeben
Parameter
defval
(const int/float/bool/string/color or source-type built-ins) Der Standardwert für die empfohlene Eingabevariable, der auf der Tabellen-Einstellungen/Eingabe-Tabellen-Tabellenseite des Skripts festgelegt wird, von dem aus der Skripterbenutzer sie ändern kann. Die Inbuilt-Funktion des Quelltyps ist die inbuilt-Serie von Buffer-Variablen, die die Berechnungsquelle angeben:close
、hlc3
Und so weiter.title
(const string) Eingabetitel. Wenn nicht angegeben, wird der Variablenname als Eingabetitel verwendet. Wenn ein Titel angegeben ist, aber der Titel leer ist, wird der Name als leerer String verwendet.tooltip
(const string) Diese Zeichenfolge wird dem Benutzer angezeigt, wenn die Maus auf dem Tooltip-Icon hängt.inline
(const string) Alle Eingabeaufrufe, die die gleichen Parameter in einer Zeile verwenden, kombinieren. Die als Parameter verwendeten Strings werden nicht angezeigt. Sie werden nur verwendet, um Eingaben zu erkennen, die zu derselben Zeile gehören.group
(const string) Erstellen Sie eine Überschrift über allen Eingaben mit der gleichen Komponenten-Zahlen-String. Diese String wird auch als Text für die Überschrift verwendet.Anmerkung Die Rückgabe einer Input-Funktion sollte stets einer Variablen zugewiesen werden. Siehe oben.
Siehe auch
input.bool
input.color
input.int
input.float
input.string
input.timeframe
input.source
Hinzufügen von Input in die Input-Tab-Seite der Skript-Einstellungen, die es Ihnen ermöglicht, den Skriptbenutzern Konfigurationsoptionen anzubieten. Diese Funktion hat ein Dropdown-Menü hinzugefügt, das es dem Benutzer ermöglicht, die Berechnungsquelle zu wählen, z. B. close, hl2 usw. Wenn das Skript nur einen Input.source () Aufruf enthält, kann der Benutzer auch eine andere Kennziffer in der Tabelle als Ausgabequelle wählen.
input.source(defval, title, tooltip, inline, group)
Beispiel
i_src = input.source(close, "Source")
plot(i_src)
Rückgabewert Variablenwerte eingeben
Parameter
defval
(series int/float) Der Standardwert für die empfohlene Eingabevariable in der Tabelle Einstellungen/Eingabetabelle des Skripts, von der aus der Benutzer sie ändern kann.title
(const string) Eingabetitel. Wenn nicht angegeben, wird der Variablenname als Eingabetitel verwendet. Wenn ein Titel angegeben ist, aber der Titel leer ist, wird der Name als leerer String verwendet.tooltip
(const string) Diese Zeichenfolge wird dem Benutzer angezeigt, wenn die Maus auf dem Tooltip-Icon hängt.inline
(const string) Alle Eingabeaufrufe, die die gleichen Parameter in einer Zeile verwenden, kombinieren. Die als Parameter verwendeten Strings werden nicht angezeigt. Sie werden nur verwendet, um Eingaben zu erkennen, die zu derselben Zeile gehören.group
(const string) Erstellen Sie eine Überschrift über allen Eingaben mit der gleichen Komponenten-Zahlen-String. Diese String wird auch als Text für die Überschrift verwendet.Anmerkung Das Ergebnis der Funktion input.source sollte immer einer Variablen zugewiesen werden, wie in dem Beispiel oben.
Siehe auch
input.bool
input.int
input.float
input.string
input.timeframe
input.color
input
Die Input Optionskarte, in der Input zu den Skript-Einstellungen hinzugefügt wird, ermöglicht es Ihnen, den Benutzern der Skripte Konfigurationsoptionen anzubieten. Diese Funktion fügt den String-Eingabefeld in die Eingabe der Skripte ein.
input.string(defval, title, options, tooltip, inline, group, confirm)
Beispiel
i_text = input.string("Hello!", "Message")
runtime.log(i_text)
Rückgabewert Variablenwerte eingeben
Parameter
defval
(const string) Der Standardwert für die vorgeschlagene Eingabevariable in der Tabelle Einstellungen/Eingabetabelle des Skripts, von dem aus der Benutzer sie ändern kann.options
Wenn die Parameter zusammen verwendet werden, muss dieser Wert einer von ihnen sein.title
(const string) Eingabetitel. Wenn nicht angegeben, wird der Variablenname als Eingabetitel verwendet. Wenn ein Titel angegeben ist, aber der Titel leer ist, wird der Name als leerer String verwendet.options
(List of constants: [<type>…]) eine Liste der verfügbaren Optionen.tooltip
(const string) Diese Zeichenfolge wird dem Benutzer angezeigt, wenn die Maus auf dem Tooltip-Icon hängt.inline
(const string) Alle Eingabeaufrufe, die die gleichen Parameter in einer Zeile verwenden, kombinieren. Die als Parameter verwendeten Strings werden nicht angezeigt. Sie werden nur verwendet, um Eingaben zu erkennen, die zu derselben Zeile gehören.group
(const string) Erstellen Sie eine Überschrift über allen Eingaben mit der gleichen Komponenten-Zahlen-String. Diese String wird auch als Text für die Überschrift verwendet.confirm
(const bool) Wenn true verwendet wird, wird der Benutzer aufgefordert, die Eingabe zu bestätigen, bevor der Indikator in die Tabelle aufgenommen wird. Die Standardwahrheit ist false.Anmerkung Das Ergebnis einer input.string-Funktion sollte immer einer Variablen zugeordnet werden, wie in dem Beispiel oben.
Siehe auch
input.bool
input.int
input.float
input.timeframe
input.source
input.color
input
Input wird in die Eingabe-Tagseite der Skript-Einstellungen hinzugefügt, die es Ihnen ermöglicht, den Benutzern der Skripte Konfigurationsoptionen anzubieten. Diese Funktion fügt den Eingaben der Skripte eine Auswahlmarkierung hinzu.
input.bool(defval, title, tooltip, inline, group, confirm)
Beispiel
i_switch = input.bool(true, "On/Off")
plot(i_switch ? open : na)
Rückgabewert Variablenwerte eingeben
Parameter
defval
(const bool) Bestimmt den Defaultwert für die empfohlene Eingabevariable auf der Tabelle Einstellungen/Eingabetabelle des Skripts, von der aus der Benutzer sie ändern kann.title
(const string) Eingabetitel. Wenn nicht angegeben, wird der Variablenname als Eingabetitel verwendet. Wenn ein Titel angegeben ist, aber der Titel leer ist, wird der Name als leerer String verwendet.tooltip
(const string) Diese Zeichenfolge wird dem Benutzer angezeigt, wenn die Maus auf dem Tooltip-Icon hängt.inline
(const string) Alle Eingabeaufrufe, die die gleichen Parameter in einer Zeile verwenden, kombinieren. Die als Parameter verwendeten Strings werden nicht angezeigt. Sie werden nur verwendet, um Eingaben zu erkennen, die zu derselben Zeile gehören.group
(const string) Erstellen Sie eine Überschrift über allen Eingaben mit der gleichen Komponenten-Zahlen-String. Diese String wird auch als Text für die Überschrift verwendet.confirm
(const bool) Wenn true verwendet wird, wird der Benutzer aufgefordert, die Eingabe zu bestätigen, bevor der Indikator in die Tabelle aufgenommen wird. Die Standardwahrheit ist false.Anmerkung Das Ergebnis der Funktion input.bool sollte immer einer Variablen zugewiesen werden, wie in dem Beispiel oben.
Siehe auch
input.int
input.float
input.string
input.timeframe
input.source
input.color
input
Hinzufügen von Input zu den Eingabe-Tagseiten der Skript-Einstellungen, die es Ihnen ermöglichen, den Benutzern der Skripte Konfigurationsoptionen anzubieten. Diese Funktion fügt die Integer-Eingabe-Felder zu den Eingaben der Skripte hinzu.
input.int(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.int(defval, title, options, tooltip, inline, group, confirm)
Beispiel
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))
Rückgabewert Variablenwerte eingeben
Parameter
defval
(const int) Der Standardwert für die empfohlene Eingabevariable, der in der Tabelle Einstellungen/Eingabetabelle des Skripts festgelegt wird, von dem aus der Skripterverbraucher sie ändern kann.options
Wenn die Parameter zusammen verwendet werden, muss dieser Wert einer von ihnen sein.title
(const string) Eingabetitel. Wenn nicht angegeben, wird der Variablenname als Eingabetitel verwendet. Wenn ein Titel angegeben ist, aber der Titel leer ist, wird der Name als leerer String verwendet.minval
(const int) Der kleinste mögliche Wert der eingegebenen Variablen.maxval
(const int) Höchstmögliche Werte der eingegebenen Variablen.step
(const int) Die Schrittlänge, um die Eingabe zu erhöhen/reduzieren. Optional. Der Standardwert ist 1options
(tuple of const int values: [val1, val2, …]) Eine Liste der aus dem Dropdown-Menü gewählten Optionen, die durch Kommas getrennt und in quadratischen Klammern umschrieben sind:[val1, val2, …] ≠ nicht verwendet werden, wenn der Parameter verwendet wirdminval
、maxval
Undstep
Parametertooltip
(const string) Diese Zeichenfolge wird dem Benutzer angezeigt, wenn die Maus auf dem Tooltip-Icon hängt.inline
(const string) Alle Eingabeaufrufe, die die gleichen Parameter in einer Zeile verwenden, kombinieren. Die als Parameter verwendeten Strings werden nicht angezeigt. Sie werden nur verwendet, um Eingaben zu erkennen, die zu derselben Zeile gehören.group
(const string) Erstellen Sie eine Überschrift über allen Eingaben mit der gleichen Komponenten-Zahlen-String. Diese String wird auch als Text für die Überschrift verwendet.confirm
(const bool) Wenn true verwendet wird, wird der Benutzer aufgefordert, die Eingabe zu bestätigen, bevor der Indikator in die Tabelle aufgenommen wird. Die Standardwahrheit ist false.Anmerkung Das Ergebnis einer input.int-Funktion sollte immer einer Variablen zugeordnet werden, wie in dem Beispiel oben.
Siehe auch
input.bool
input.float
input.string
input.timeframe
input.source
input.color
input
Hinzufügen von Input in die Eingabe-Tagseite der Skript-Einstellungen, die Ihnen die Möglichkeit bietet, den Benutzern der Skripte Konfigurationsoptionen bereitzustellen. Diese Funktion fügt dem Eingabefeld der Floating-Points die Eingaben der Skripte hinzu.
input.float(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.float(defval, title, options, tooltip, inline, group, confirm)
Beispiel
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)
Rückgabewert Variablenwerte eingeben
Parameter
defval
(const int/float) Der Standardwert für die empfohlene Eingabevariable in der Tabelle Einstellungen/Eingabetabelle des Skripts, von der der Skripterbenutzer sie ändern kann. Wenn die Werteliste mit übereinstimmtoptions
Wenn die Parameter zusammen verwendet werden, muss dieser Wert einer von ihnen sein.title
(const string) Eingabetitel. Wenn nicht angegeben, wird der Variablenname als Eingabetitel verwendet. Wenn ein Titel angegeben ist, aber der Titel leer ist, wird der Name als leerer String verwendet.minval
(const int/float) Minimaler möglicher Wert der eingegebenen Variablen。 optional。maxval
(const int/float) Höchstmögliche Werte der eingegebenen Variablen.step
(const int/float) Die Schrittlänge, um die Eingabe zu erhöhen/reduzieren. Optional. Der Standardwert ist 1options
(tuple of const int/float values: [val1, val2, …]) Eine Liste der aus dem Dropdown-Menü gewählten Optionen, die durch Kommas getrennt und in quadratischen Klammern umschrieben sind:[val1, val2, …] ≠ nicht verwendet werden, wenn der Parameter verwendet wirdminval
、maxval
Undstep
Parametertooltip
(const string) Diese Zeichenfolge wird dem Benutzer angezeigt, wenn die Maus auf dem Tooltip-Icon hängt.inline
(const string) Alle Eingabeaufrufe, die die gleichen Parameter in einer Zeile verwenden, kombinieren. Die als Parameter verwendeten Strings werden nicht angezeigt. Sie werden nur verwendet, um Eingaben zu erkennen, die zu derselben Zeile gehören.group
(const string) Erstellen Sie eine Überschrift über allen Eingaben mit der gleichen Komponenten-Zahlen-String. Diese String wird auch als Text für die Überschrift verwendet.confirm
(const bool) Wenn true verwendet wird, wird der Benutzer aufgefordert, die Eingabe zu bestätigen, bevor der Indikator in die Tabelle aufgenommen wird. Die Standardwahrheit ist false.Anmerkung Das Ergebnis der Funktion input.float sollte immer einer Variablen zugeordnet werden, wie in dem Beispiel oben.
Siehe auch
input.bool
input.int
input.string
input.timeframe
input.source
input.color
input
Hinzufügen von Input in die Eingabe-Tagseite der Skript-Einstellungen, die es Ihnen ermöglicht, den Benutzern der Skripte Konfigurationsoptionen anzubieten. Diese Funktion fügt einen Farb-Selektor hinzu, der es dem Benutzer ermöglicht, Farbe und Transparenz aus der Farbpalette oder dem Sechzehntel zu wählen.
input.color(defval, title, tooltip, inline, group, confirm)
Beispiel
i_col = input.color(color.red, "Plot Color")
plot(close, color=i_col)
Rückgabewert Variablenwerte eingeben
Parameter
defval
(const color) Der Defaultwert für die empfohlene Eingabevariable in der Tabelle Einstellungen/Eingabetabelle des Skripts, von der der Benutzer sie ändern kann.title
(const string) Eingabetitel. Wenn nicht angegeben, wird der Variablenname als Eingabetitel verwendet. Wenn ein Titel angegeben ist, aber der Titel leer ist, wird der Name als leerer String verwendet.