Schlüsselwörter, Grammatik und Einstellungsbeschreibung
Code-Struktur
Die allgemeine Struktur, der der Code in Pine folgt:
<version>
<declaration_statement>
<code>
Anmerkungen
Kommentare für die FMZ-Pine-Sprache: Einzeilinks//Mehrsprachige Anmerkungen/* */Wie die Kommentare in den folgenden Beispielen geschrieben werden:
pine
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9) // 计算MACD指标
/*
plot函数在图表上画出指标线
*/
plot(macdLine, color = color.blue, title='macdLine')
plot(signalLine, color = color.orange, title='signalLine')
plot(histLine, color = color.red, title='histLine')
Veröffentlichung
Die Kompilator-Anweisung in der folgenden Form sagt dem Kompilator, in welcher Version des Skripts Pine geschrieben wurde:
pine
//@version=5
Standardversion v5, kann im Code übersehen werden//@version=5。
Erklärung
Die Anweisungssätze bestimmen den Typ des Skripts, was wiederum entscheidet, was darin erlaubt ist, und wie es verwendet und ausgeführt wird. Sie setzen die Schlüsselattribute des Skripts ein, wie z. B. seinen Namen, wo er erscheint, wenn er in die Grafik hinzugefügt wird, die Genauigkeit und Format der Werte, die er anzeigt, und die Werte, die für bestimmte Verhaltensweisen bei der Steuerung seines Laufens gelten, wie z. B. die maximale Anzahl der Grafikobjekte, die er in der Grafik anzeigt. Für Strategien umfassen die Attribute Parameter, die mit der Rückwärtskontrolle gemessen werden, wie z. B. Startkapital, Provisionen, Gleitpunkte usw.indicator()oderstrategy()Das ist eine sehr schwierige Aufgabe.
Der Code
Eine Zeile in einem Skript, die keine Kommentare oder Kompilierer-Anweisungen enthält, ist ein Statement, das die Algorithmen des Skripts umsetzt. Ein Statement kann eines dieser Inhalte sein.
- Variablenerklärung
- Variablen neu zuordnen
- Funktionserklärung
- Eingebettete Funktionsaufrufe, benutzerdefinierte Funktionsaufrufe
if,for,whileoderswitchGleichgewichtsstruktur
Sätze können auf verschiedene Arten angeordnet werden.
- Einige Sätze können in einer Zeile ausgedrückt werden, wie z. B. die meisten Variablenerklärungen, die nur eine Zeile mit einem Funktionsaufruf oder eine Einzelarbeitserklärung enthalten. Andere, wie Strukturen, benötigen immer mehrere Zeilen, da sie einen lokalen Block benötigen.
- Die globalen Aussagen des Skripts (d. h. die Teile, die nicht zu den lokalen Blöcken gehören) können nicht als
空格oder制表符(Tab-Taste) beginnen. Ihr erster Buchstabe muss auch der erste Buchstabe der Zeile sein. Zeilen, die mit der ersten Position in der Zeile beginnen, sind per Definition Teil des globalen Umfangs des Skripts. - Eine Struktur- oder Mehrzeilenfunktionsanweisung erfordert immer eine
local block。 Ein lokaler Block muss in ein Kennzeichen oder vier Leerzeichen geschrumpft werden (andernfalls wird er als die fortlaufende Inhalte der vorherigen Codezeile analysiert), wobei jeder lokale Block einen anderen lokalen Bereich definiert。 - Mehrere einzelne Sätze können in einer Zeile durch die Verwendung des Kommas ((,) als Trennzeichen in einer Reihe zusammengefügt werden.
- Eine Zeile kann Kommentare enthalten oder nur Kommentare sein.
- Die Zeilen können auch eingewickelt werden (weiter auf mehreren Zeilen).
Zum Beispiel umfasst es drei lokale Blöcke, eine in einer benutzerdefinierten Funktionsanweisung und zwei, die die if-Struktur in einer Variablenanweisung verwenden, wie folgt:
pine
indicator("", "", true) // 声明语句(全局范围),可以省略不写
barIsUp() => // 函数声明(全局范围)
close > open // 本地块(本地范围)
plotColor = if barIsUp() // 变量声明 (全局范围)
color.green // 本地块 (本地范围)
else
color.red // 本地块 (本地范围)
runtime.log("color", color = plotColor) // 调用一个内置函数输出日志 (全局范围)
Code-Wechsel
Längere Zeilen können in mehrere Zeilen aufgeteilt oder "eingepflanzt" werden. Die eingepflanzte Zeile muss in eine beliebige Anzahl von Leerstellen geschrumpft werden, sofern sie nicht ein Vielfaches von 4 ist (diese Grenzen dienen dazu, in lokale Blöcke zu schrumpfen).
pine
a = open + high + low + close
Es kann in folgenden Formularen verpackt werden (beachten Sie, dass die Anzahl der Zeilen, die pro Zeile eingekrümmt werden, kein Vielfaches von 4 ist):
pine
a = open +
high +
low +
close
Ein langer Plot ((() -Aufruf kann in eine Packe packt werden.
pine
close1 = request.security(syminfo.tickerid, "D", close) // syminfo.tickerid 当前交易对的日线级别收盘价数据系列
close2 = request.security(syminfo.tickerid, "240", close) // syminfo.tickerid 当前交易对的240分钟级别收盘价数据系列
plot(ta.correlation(close, open, 100), // 一行长的plot()调用可以被包装
color = color.new(color.purple, 40),
style = plot.style_area,
trackprice = true)
Sätze in einer benutzerdefinierten Funktionsanweisung können auch verpackt werden. Da jedoch die lokalen Blöcke grammatisch mit einem Verkürzungszeichen beginnen müssen (z. B. 4 Felder oder 1 Schreibzeichen), müssen die Fortsetzungssätze der Sätze, wenn sie in die nächste Zeile aufgeteilt werden, mit einem oder mehr Verkürzungen beginnen (z. B. nicht gleich dem Vielfachen von 4 Feldern).
pine
test(c, o) =>
ret = c > o ?
(c > o+5000 ?
1 :
0):
(c < o-5000 ?
-1 :
0)
a = test(close, open)
plot(a, title="a")
Zeitfolge
Zeitreihen sind keine Datentypen oder -formate. Zeitreihen sind ein grundlegendes Konzept in der Sprache PINE. Sie werden verwendet, um Werte zu speichern, die sich zeitlich fortlaufend ändern, wobei jeder Wert einem Zeitpunkt entspricht.
Mit integrierten VariablenopenDas ist ein Beispiel.openDie eingebaute Variable zeichnet den Eröffnungspreis für jede K-Linie BAR auf, wenn dieseopenDas ist die Daten von 5 Minuten K-Linien-Perioden.openIn der Variablen werden die Eröffnungspreise für alle 5 Minuten der K-Zeile BAR ({column}) aufgezeichnet.openDas heißt, wir beziehen den Eröffnungswert der K-Linie BAR, in der wir uns gerade befinden. Um den vorherigen Wert in der Zeitserie zu beziehen, verwenden wir[]Der historische Operator, wenn die Strategie auf einer K-Linie BAR ausgeführt wird,open[1]Das bedeutet, dass der Anfangspreis der vorherigen K-Linie BAR der aktuellen K-Linie BAR angegeben wird.
ObwohlZeitfolgeEs ist leicht, an die Datenstruktur "Array" zu denken, obwohl die Sprache PINE auch Array-Typen hat. Sie sind jedoch ein völlig anderes Konzept als die Zeitreihen.
Die PINE-Sprache ist so konzipiert, dass die Zeitreihen in der Strategie-Code leicht berechnet werden können, ohne dass eine Kreislauf-Struktur wie for verwendet wird, sondern nur mit einer eingebauten Funktion der PINE-Sprache.ta.cum(close)Als weiteres Beispiel müssen wir den Mittelwert der Differenz zwischen dem höchsten und dem niedrigsten Wert der letzten 14 K-Linien berechnen.ta.sma(high - low, 14)
Das Ergebnis eines Aufrufs einer Funktion auf einer Zeitreihenfolge hinterlässt auch eine Spur auf der Zeitreihenfolge.[]Der historische Operator bezieht sich auf den vorherigen Wert. Zum Beispiel, um zu testen, ob der Schlusskurs der aktuellen K-Linie BAR den Maximalwert des höchsten Wertes der letzten 10 K-Linie BAR überschreitet (exklusive der aktuellen K-Linie BAR).breach = close > ta.highest(close, 10)[1]Das kann man auch so schreiben:breach = close > ta.highest(close[1], 10)Das ist es.ta.highest(close, 10)[1]Undta.highest(close[1], 10)Es ist gleichwertig.
Das kann mit folgenden Codes verifiziert werden:
pine
strategy("test pine", "test", true)
a = ta.highest(close, 10)[1]
b = ta.highest(close[1], 10)
plotchar(true, title="a", char=str.tostring(a), location=location.abovebar, color=color.red)
plotchar(true, title="b", char=str.tostring(b), location=location.belowbar, color=color.green)
Der oben genannte Testcode gibt a und b auf jeder BAR ihre entsprechenden Zeitreihenwerte aus, so dass a und b immer gleich sind, also gleichwertig.
Historisches Referenzieren
In Trading View gibt es eine maximale Anzahl von Artikeln für historische Datenbezüge (maximal 5000), z. B. folgender Code:
pine
//@version=6
indicator("test")
ema = ta.ema(close, 10000) // 报错:Error on bar 0: The 'ema'->'sum' function references too many historical candles (10000), the limit is 5000.
plot(ema, "ema")
// pre10000 = ema[10000] // 报错:Invalid number of bars back specified in the history-referencing operator. It accepts a value between 0 and 5000.
// plot(pre10000, "pre10000")
"Transaktions-Einstellungen" in der "Pine-Language-Trading-Klasse" mit der PINE-Language-Strategie auf der FMZ, Parameter: "Längste Periodennummer der Variablen" spezifisch für die maximale Anzahl von Artikeln, auf die Daten bezogen werden können.
pine
indicator("test")
ema = ta.ema(close, 1000) // ema = ta.ema(close, 3000) 则报错:Invalid number 3000 of bars back specified in the history-referencing operator. It accepts a value between 0 and 2000.
plot(ema, "ema")
Das Parameter "Längste Periodenzahl der Variablen" sollte nicht zu groß eingestellt werden.
Modellparameter der Pine-Sprache
Beschreibung der Parameter-Einstellungen für die in der PINE-Strategie integrierte Vorlage "Pine Language Transaction Class Repository".
Handelsplatz
- Ausführung
Schlusskursmodell: Das Modell wird erst ausgeführt, wenn der aktuelle BAR abgelaufen ist, und der Handel wird ausgeführt, wenn der folgende BAR beginnt.
Echtzeit-Preismodell: Bei jeder Preisänderung wird das Modell ausgeführt, und der Handel wird sofort ausgeführt, wenn ein Signal vorliegt. - Default-Start-Hand-Nummer: Wenn die Handelsanweisung keine Handelsmenge angibt, wird der Handel mit der Anzahl ausgeführt, die für diese Einstellung festgelegt ist.
- Maximaler Betrag pro Auftrag: Entsprechend der tatsächlichen Platzierung, in Kombination mit dieser Parameter-Einstellung, bestimmen Sie die maximale Anzahl pro Auftrag und vermeiden Sie die Platzierung.
- Der Preisverlust liegt bei:
定价货币精度Der Parameter und dieser Parameter bestimmen den Kursschwung zum Zeitpunkt des Auftrags. Zum Beispiel, wenn die Preisschwelle auf 2 festgelegt ist, d.h. auf die zweite Zahl der Komma, auf 0,01 genau. Dann repräsentiert jeder Kursschwungpunkt 0,01 Preiseinheiten. Wenn der Kursschwungpunkt auf 5 gesetzt ist, ist der Kursschwung zum Zeitpunkt des Auftrags 0,05 (der Kursschwungwert ist der Teil des Preises, der zum Zeitpunkt des Auftrags zum Zeitpunkt des Auftrags zum besseren Zweck und zum Abschluss des Auftrags überschüttet). - Maximaler Zyklus der Variablen: Anzahl der BAR-Linien, die das Diagramm beeinflussen, und
javascriptIn der Strategie aufgerufenSetMaxBarLenDie Funktionen sind gleich.
Futures-Optionen
- Varietätcode: Vertragscode, der nur dann eingestellt werden muss, wenn das Exchange-Objekt ein Non-Cash Exchange-Objekt ist.
- Mindestbetrag der Aufträge: Der Mindestbetrag der Aufträge zum Zeitpunkt der Bestellung.
Reale Optionen
- Automatische Wiederaufnahme des Fortschritts: Wiederherstellung des Zustands vor dem Ende der letzten Strategie.
- Anzahl der Auftragswiederholungen: Wenn der Auftrag nicht ausgeführt wird, wird der Auftrag widerrufen und der Auftrag erneut getestet. Dieser Parameter dient zur Begrenzung der maximalen Anzahl von Wiederholungen.
- Netzwerk-Umfrageintervalle ((Millisekunden): Nur für REST-Protokollen gültig, um Netzwerk-Anfragenintervalle zu steuern und zu vermeiden, dass Anfragen zu häufig sind und die Börsengrenzen überschreiten.
- Kontosynchronisierungszeit (in Sekunden): Zeitspanne, in der die Kontodaten synchronisiert werden.
- Positionssynchronisierung nach der Eröffnung der Position (in Millisekunden): Die Einstellung einer größeren Synchronisierung kann diese Probleme lindern.
- Hebelzahl: Setzen Sie die Hebelzahl.
In-Konto-Transaktionen und andere Einstellungen
- Einmalige Transaktionsmenge: Die Standard-Einmalige Transaktionsmenge gilt nur für Bargeld.
- Minimaler Umsatz: Minimaler Umsatz.
- Preisexaktheit: Preisexaktheit, also die geringe Zahl der Preise.
- Handelsartgenauigkeit: Genauigkeit der nächsten Bestellung, d.h. die kleine Zahl der nächsten Bestellung.
- Die Gebühren für die Berechnung von Daten mit dieser Einstellung betragen 0,002 = 2 tausendstel.
- Verlust- und Verluststatistiken: Verlust- und Verluststatistiken werden nur auf der Festplatte verwendet.
- Versagter Wiederaufnahmeversuch ((ms): Wiederaufnahmeintervall bei fehlgeschlagenen Netzwerkanfragen.
- Die Verwendung eines Agenten gilt nur für REST-Protokollen.
- Verbergen Sie häufige Netzwerkfehler: Verbergen Sie häufige Fehler im Logbereich.
- Die Umschalt-Basis-Adresse gilt nur für REST-Protokollen.
- Push-Benachrichtigungen: Nachrichten an Postfächer weiterleiten usw.
Bestellung aufgeben
Positionen eröffnen
pine
strategy(title = "open long example", pyramiding = 3) // pyramiding 允许的同方向下单的次数
strategy.entry("long1", strategy.long, 0.01) // 市价开多仓,指定分组标签为long1
strategy.entry("long2", strategy.long, 0.02, when = close > ta.ema(close, 10)) // 条件触发,执行下单,市价开多仓
strategy.entry("long3", strategy.long, 0.03, limit = 30000) // 指定(较低的)价格,计划下买单订单,等待成交开仓,限价开仓
Niederlage
pine
strategy(title = "close long example", pyramiding = 2) // pyramiding 允许的同方向下单的次数
strategy.entry("long1", strategy.long, 0.1) // 市价开多仓,指定分组标签为long1
strategy.entry("long2", strategy.long, 0.1) // 市价开多仓,指定分组标签为long2
strategy.close("long1", when = strategy.position_size > 0.1, qty_percent = 50, comment = "close buy entry for 50%") // 平仓,指定平掉分组标签为long1的仓位的50%持仓
strategy.close("long2", when = strategy.position_size > 0.1, qty_percent = 80, comment = "close buy entry for 80%") // 平仓,指定平掉分组标签为long2的仓位的80%持仓
Handelsmechanismen
Die PINE-Sprache hat eine ähnliche Positionsmechanik wie einseitige Positionen. Zum Beispiel, wenn Positionen in mehreren Richtungen gehalten werden (z. B. wenn eine Position in mehreren Richtungen gehalten wird), werden die Orders, die zum Verkauf von Operationen, Planungslisten usw. ausgelöst (im Gegensatz zur Positionshaltung), zuerst die Positionen in mehreren Richtungen ausgeglichen (im Gegensatz zu allen Positionen), und dann die Orders ausgelöst (im Gegensatz zur Positionshaltung vor der Position).
Planungsbogen
Bei der Bestellung mit der Bestellinstruktion wird der Marktpreis als Default verwendet, wenn kein Preis angegeben ist. Außer dem Marktpreis kann auch über den Planbestell bestellt werden, der Planbestell wird nicht sofort betrieben. Der Planbestell kann in der Programmauftrags-Queue eingestellt werden, in der kein Programm vorhanden ist, wenn er ausgelöst wird.Festplatte / RückmessungIn der "Plan-Order"-Tabelle des Zeit-Status-Informations (d.h. der Status-Archiv, in dem die Strategie ausgeführt wird) sieht man, dass das System nur dann wirklich bestellt, wenn die Markt-Echtzeit-Preise die Bedingungen für die Auslösung dieser Plan-Einzelteile erfüllen. Daher ist es normal, dass diese Bestellungen mit einer geringen Abweichung von den Transaktionspreisen abschließen.strategy.entryWenn wir eine Funktion anfordern, können wirlimit、stopParameter
var isTrade = false
if not barstate.ishistory and not isTrade
isTrade := true
strategy.entry("test 1", strategy.long, 0.1, stop=close*1.3, comment="test 1 order") // stop
strategy.entry("test 2", strategy.long, 0.2, limit=close*0.7, comment="test 2 order") // limit
strategy.entry("test 3", strategy.short, 0.3, stop=close*0.6, limit=close*1.4, comment="test 3 order") // stop-limit
-
Limit-Bestellung
Setzen Sie den Limitpreis für die Bestellung, wenn die Bestellung als Kaufpreis gilt (d.h.
directionDie Parameter sindstrategy.longDer Auftrag wird nur dann ausgelöst, wenn der aktuelle Marktpreis unter diesem liegt.
Wenn der Auftrag auf der Liste steht (d.h.directionDie Parameter sindstrategy.shortDer Auftrag wird nur dann ausgelöst, wenn der aktuelle Marktpreis höher ist als dieser Preis. -
Stop-Befehl
Setzen Sie einen Stop-Loss-Preis für eine Order, der nur dann ausgelöst wird, wenn der aktuelle Marktpreis höher ist als der Preis, zu dem die Order gekauft wurde.
Wenn ein Auftrag als Verkaufspreis ausgeführt wird, wird der Auftrag nur dann ausgelöst, wenn der aktuelle Marktpreis unter diesem Preis liegt. -
Stop-Limit-Bestellung
Gleichzeitig eingestellt
limit、stopParameter, bei denen der Auftrag zu dem zuerst qualifizierten Preis ausgelöst wird.
Prozentsatz der Ansprüche
pine
//@version=5
strategy("Percent of Equity Order", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// 简单的均线交叉策略
longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
// 如果均线交叉条件满足,则买入或卖出
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
Geben Siedefault_qty_type=strategy.percent_of_equityNach der Einstellungdefault_qty_valueAls Prozentsatz ((0 ~ 100), 1 ist 1%. Der Auftrag wird nach der Anzahl der Währungen berechnet, die auf dem Konto angegeben sind. Beispielsweise: Das aktuelle Konto hat 10000 USDT und setzt einen Auftrag von 1%, d.h. einen Auftrag mit 100 USDT (berechnet nach dem aktuellen Preis beim Verkauf).
Erklärung, Logik und Schlüsselwörter
var
var ist das Schlüsselwort für die Verteilung und einmalige Initialisierung von Variablen.
In der Regel führt eine Variablenzuweisung ohne das Schlüsselwort var dazu, dass die Variablenwerte bei jeder Datenaktualisierung überschrieben werden. Im Gegensatz dazu können Variablen, die mit dem Schlüsselwort var zugewiesen werden, trotz der Datenaktualisierung die Statuskarte behalten und nur dann ändern, wenn die Bedingungen in den if-Expressions erfüllt sind.
var variable_name = expression
Erklärungen:
variable_name- jeder Name der in Pine Script erlaubten Benutzervariablen ((, der aus groß- und kleingeschriebenen lateinischen Buchstaben, Zahlen und Unterstrichen besteht))_), aber nicht mit einer Ziffer.)expression- Jeder arithmetische Ausdruck, wie die Definition einer regulären Variablen. Der Ausdruck wird berechnet und der Variablen einmal zugewiesen.
Beispiel
pine
// Var keyword example
var a = close
var b = 0.0
var c = 0.0
var green_bars_count = 0
if close > open
var x = close
b := x
green_bars_count := green_bars_count + 1
if green_bars_count >= 10
var y = close
c := y
plot(a, title = "a")
plot(b, title = "b")
plot(c, title = "c")
Die Variable 'a' behält den Schlusskurs der ersten Säule jeder Säule in der Reihe.
Die Variable 'b' hält den Schlusskurs der ersten in der Reihe, der grünen Zitronen-Preisschwange.
Die Variable 'c' hält den Schlusskurs für die zehnte Kartoffel in der Reihe.
Auf der FMZ gibt es eine Realzeit- und eine Schlusskursmodell, die für dievar、varipDie Variablen der Erklärung werden mit dem folgenden Code getestet:
pine
strategy("test pine", "test 1", true)
// 测试 var varip
var i = 0
varip ii = 0
// 将策略逻辑每轮改变的i、ii打印在图上
plotchar(true, title="ii", char=str.tostring(ii), location=location.abovebar, color=color.red)
plotchar(true, title="i", char=str.tostring(i), location=location.belowbar, color=color.green)
// 每轮逻辑执行都给i、ii递增1
if true
i := i + 1
ii := ii + 1
-
Echtzeit-Preismodell
Der Testcode wird in zwei Phasen ausgeführt: 1. Historische K-Linie 2. Echtzeit-K-Linie 3. Bei einem Echtzeit-Preismodell und der historischen K-Linie.var、varipDie Variablen i und ii der Erklärung werden bei jeder Ausführung des Strategiecodes in der Erhöhung ausgeführt, daif trueSo können wir sehen, dass die Zahlen, die auf der K-Linie BAR der Rückmessung angezeigt werden, jeweils in der Zunahme von 1 angezeigt werden. Wenn die historische K-Linie Phase endet, beginnt die reale K-Linie Phase.var、varipDa es sich um ein Echtzeit-Preismodell handelt, wird der Strategiecode für jede Preisänderung innerhalb einer K-Linie BAR ausgeführt.i := i + 1Undii := ii + 1Der Unterschied ist, dass ii jedes Mal geändert wird. Obwohl i auch jedes Mal geändert wird, wird der vorherige Wert bei der nächsten Ausführung der Strategie-Logik wiederhergestellt, bis der aktuelle K-Linien-BAR abgelaufen ist, um den Wert von i zu aktualisieren (das heißt, der vorherige Wert wird bei der nächsten Ausführung der Strategie-Logik nicht wiederhergestellt). So kann man sehen, dass die Variable i immer noch pro BAR erhöht wird. -
Schlusskursmodell
Da die Schlusskursmodelle eine Strategie-Logik ausführen, wenn jeder K-Line BAR abgelaufen ist. In der Schlusskursmodelle werden die historischen K-Line-Phasen und die Echtzeit-K-Line-Phasen in der Schlusskursmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodellmodvar、varipDie Variablen, die in der Erklärung angegeben sind, zeigen sich in den oben genannten Beispielen in einer exzessiven Erhöhung, nämlich in einer Erhöhung von 1 BAR pro K-Zeile.
varip
varip ((var intrabar persist) ist ein Schlüsselwort für die Verteilung und einmalige Initialisierung von Variablen. Es ist ähnlich wie das Schlüsselwort var, aber die Variablen mit der Varip-Erklärung behalten ihren Wert zwischen den K-Linien-Aktualisierungen in Echtzeit.
varip variable_name = expression
Erklärungen:
variable_name- jeder Name der in Pine erlaubten Benutzervariablen ((), der sich aus Groß- und Kleinbuchstaben, Zahlen und Unterstrichen zusammensetzen kann_), aber nicht mit einer Ziffer.)expression- jeder arithmetische Ausdruck, wie bei der Definition einer regulären Variablen. Auf der ersten K-Zeile wird der Ausdruck nur einmal berechnet und der Variablen einmal zugewiesen.
Beispiel
pine
// varip
varip int v = -1
v := v + 1
plot(v)
Mit var gibt die Grafik den Wert bar_index zurück. Mit varip geschieht das gleiche auf der historischen K-Linie, aber auf der realen K-Linie gibt die Grafik einen Wert zurück, der für jeden tick um 1 erhöht wird.
Anmerkung
Nur mit einfachen Typen wie float, int, bool, string und Arrays dieser Typen verwendet werden.
true
Der Wert einer Variablen vom Typ Boole, oder wenn der Ausdruck verwendet wirdVergleichoderLogikDer Operator berechnet die Werte:
Anmerkung
Siehe auchVergleichOperator undLogikBeschreibung des Operators:
Siehe auch
bool
false
Zeigt die Werte einer Boole-Variablen sowie die Ergebnisse von Vergleichs- und Logikoperationen.
Anmerkung
Siehe auchVergleichOperator undLogikBeschreibung des Operators:
Siehe auch
bool
if
Eine If-Anweisung definiert den Satzblock, der ausgeführt werden muss, wenn die Ausdrucksbedingung erfüllt wird. Die Schreibsprache Pine Version 4 erlaubt die Verwendung der <unk>else if<unk>-Syntax.
Der Code stammt von:
var_declarationX = if condition
var_decl_then0
var_decl_then1
...
var_decl_thenN
return_expression_then
else if [optional block]
var_decl_else0
var_decl_else1
...
var_decl_elseN
return_expression_else
else
var_decl_else0
var_decl_else1
...
var_decl_elseN
return_expression_else
Anmerkung
var_declarationX- Diese Variable erhält die Werte der if-Sätze
condition- Wenn die Bedingung wahr ist, wird ein Satzblock verwendetthenDie Logik in dervar_decl_then0,var_decl_then1Wenn die Bedingung "false" ist, wird ein Satzblock verwendet.else ifoderelseDie Logik in dervar_decl_else0,var_decl_else1Das ist eine gute Idee.
return_expression_then , return_expression_else- Der letzte Ausdruck im Modul oder der Ausdruck aus dem Blockelse gibt den endgültigen Wert des Statements zurück. Wenn die Variablen am Ende der Erklärung stehen, ist ihr Wert der Ergebnis.
Der Typ der zurückgegebenen Werte für die if-Aussage hängt vonreturn_expression_thenUndreturn_expression_elseDie Typen müssen übereinstimmen, wenn sie auf TradingView ausgeführt werden: Es ist unmöglich, einen Integerwert aus dem Then-Sentenzblock zurückzugeben, wenn Sie einen Stringwert in der else-Block haben. Wenn die folgenden Beispiele auf FMZ ausgeführt werden, werden sie nicht fehlerhaft, und wenn die y-Werte "open" sind, ist die Zahl bei der Plotzeichnung n/a.
Beispiel
pine
// This code compiles
x = if close > open
close
else
open
// This code doesn’t compile by trading view
// y = if close > open
// close
// else
// "open"
plot(x)
Kann weggelassen werdenelseBlock <unk> In diesem Fall wird der Variablen var_declarationX ein <unk>empty-Threshold (na, false oder <unk>) zugewiesen, wenn die Bedingung false ist:
Beispiel
pine
// if
x = if close > open
close
// If current close > current open, then x = close.
// Otherwise the x = na.
plot(x)
Es können mehrere <unk>else if<unk>-Blöcke verwendet werden oder gar keine. <unk>then<unk>, <unk>else if<unk>, <unk>else<unk>-Blöcke werden mit vier Leerstellen verschoben:
Beispiel
pine
// if
x = if open > close
5
else if high > low
close
else
open
plot(x)
Kann ignoriert werdenifDas Ergebnis der Aussage ((<unk>var_declarationX=<unk> ist auszulassen)). Es kann nützlich sein, wenn Sie die Nebenwirkungen der Aussage benötigen, z. B. im Strategiehandel:
Beispiel
pine
if (ta.crossover(high, low))
strategy.entry("BBandLE", strategy.long, stop=low)
else
strategy.cancel(id="BBandLE")
Die If-Sätze können sich gegenseitig umfassen:
Beispiel
pine
// if
float x = na
if close > open
if close > close[1]
x := close
else
x := close[1]
else
x := open
plot(x)
for
Die 'for'-Struktur erlaubt die Wiederholung mehrerer Sätze:
[var_declaration =] for counter = from_num to to_num [by step_num]
statements | continue | break
return_expression
var_declaration- Eine optionale Variablen-Anweisung, die als Wert des return_expression für den Rücklauf zugewiesen wird.
counter- Variable, die den Wert des Rücklaufzählers speichern und bei jeder Iteration des Rücklaufes den Wert 1 oder step_num erhöhen/reduzieren.
from_num- Startwert des Zählers. Die Verwendung von Thresholds int/float Thresholds/Expressions ist erlaubt.
to_num- Endwert des Zählers. Der Kreislauf wird unterbrochen, wenn der Zähler größer als to_num ist (oder kleiner als to_num, wenn from_num > to_num ist). Die Verwendung von Thresholds int/float Thresholds/Expressions ist erlaubt, aber sie werden nur bei der ersten Iteration des Kreislaufs bewertet.
step_num- Der Zähler nimmt zu oder sinkt. Es ist optional. Der Standardwert ist +1 oder -1, je nachdem, welcher der größte von from_num oder to_num ist.
statements | continue | break- Eine beliebige Anzahl von Sätzen, oder 'continue' oder 'break' Schlüsselwörter, in 4 Leerzeichen oder eine Tab eingekrümmt.
return_expression- Die Rückgabewert des Loops wird, wenn vorhanden, einer Variablen in der var_declaration zugewiesen. Wenn der Loop aufgrund der Schlüsselwörter <unk>continue<unk> oder <unk>break<unk> aussteigt, wird die Rückgabewert des Loops der Wert der letzten Variablen zugewiesen, die vor dem Aussteigen des Loops zugewiesen wurden.
continue- Schlüsselwörter, die nur im Rücklauf verwendet werden können. Sie führen dazu, dass die nächste Iteration des Rücklaufes ausgeführt wird.
break- Die Schlüsselwörter für den Rückzug aus dem Kreis.
Beispiel
pine
// Here, we count the quantity of bars in a given 'lookback' length which closed above the current bar's close
qtyOfHigherCloses(lookback) =>
int result = 0
for i = 1 to lookback
if close[i] > close
result += 1
result
plot(qtyOfHigherCloses(14))
for...in
for...inDie Struktur erlaubt die Wiederholung von mehreren Anweisungen für jedes Element im Array. Sie kann mit jedem der folgenden Parameter verwendet werden:array_element, oder mit zwei Parametern:[index, array_element]Die zweite Form beeinträchtigt nicht die Funktion des Loops. Sie verfolgt den Index der aktuellen Iteration in der ersten Variablen des Moleküls.
[var_declaration =] for array_element in array_id
statements | continue | break
return_expression
[var_declaration =] for [index, array_element] in array_id
statements | continue | break
return_expression
var_declaration- eine wählbare Variablen-Anweisung, die den Kreislaufreturn_expressionWerte von
index- Optionale Variablen, die den aktuellen Iterationsindex verfolgen. Der Index beginnt mit 0. Die Variablen sind im Kreislauf unveränderlich.array_elementIn der Untergruppe
array_element- enthält die Variablen für jedes Element der fortlaufenden Arrays, die in der Schleife behandelt werden sollen. Diese Variablen sind im Schleifer unveränderlich.
array_id- Array-ID für die Kreis-Iteration.
statements | continue | break- Eine beliebige Anzahl von Sätzen, oder 'continue' oder 'break' Schlüsselwörter, in 4 Leerzeichen oder eine Tab eingekrümmt.
return_expression- Die Rückgabewert des Loops wird zugewiesen anvar_declarationWenn der Lauf aufgrund des Schlüsselworts 'continue' oder 'break' beendet wird, ist der Rückgabewert der Lauf die letzte Variable, die vor dem Ausstieg bewertet wurde.
continue- Schlüsselwörter, die nur im Rücklauf verwendet werden können. Sie führen dazu, dass die nächste Iteration des Rücklaufes ausgeführt wird.
break- Die Schlüsselwörter für den Rückzug aus dem Kreis.
Es ist erlaubt, Elemente oder Größen der Arrays innerhalb der Loop zu ändern.
Hier verwenden wirfor...inEinparametrische Formulierungen für die Bestimmung, wie viele OHLC-Werte der K-Zeile größer sind als die 'close'-Werte der SMA auf jeder K-Zeile:
Beispiel
pine
// Here we determine on each bar how many of the bar's OHLC values are greater than the SMA of 'close' values
float[] ohlcValues = array.from(open, high, low, close)
qtyGreaterThan(value, array) =>
int result = 0
for currentElement in array
if currentElement > value
result += 1
result
plot(qtyGreaterThan(ta.sma(close, 20), ohlcValues))
Hier benutzen wir die zwei Formulierungen von for...in, um unsereisPosDer Wert des Arrays ist trueWenn sie bei uns sind.valuesArrayDie entsprechenden Werte im Array sind in der richtigen Zeit:
Beispiel
pine
// for...in
var valuesArray = array.from(4, -8, 11, 78, -16, 34, 7, 99, 0, 55)
var isPos = array.new_bool(10, false)
for [index, value] in valuesArray
if value > 0
array.set(isPos, index, true)
if barstate.islastconfirmedhistory
runtime.log(str.tostring(isPos))
Siehe auch
for while array.sum array.min array.max
while
whileDie Sätze erlauben die bedingte Iteration der lokalen Codeblöcke.
variable_declaration = while boolean_expression
...
continue
...
break
...
return_expression
Erklärungen:
variable_declaration- Wahlbare Variablen-Erklärungen.return expressionDie Variable kann mit einer Initialisierung versehen werden.
boolean_expression- Wenn es wahr ist, wird ausgeführtwhileWenn false ist, wird inwhileDie Szenarien werden nach den Sätzen ausgeführt.
continue - continueDie Schlüsselwörter führen zu einer Abzweigung des Kreislaufs in die nächste Iteration.
break - breakSchlüsselwörter beenden den Kreislauf. Das Skript wird ausgeführt.whileDie Aussage wird wieder aufgenommen.
return_expression- Ich gebe.whileOptionale Zeile, die Werte zurückgibt.
Beispiel
pine
// This is a simple example of calculating a factorial using a while loop.
int i_n = input.int(10, "Factorial Size", minval=0)
int counter = i_n
int factorial = 1
while counter > 0
factorial := factorial * counter
counter := counter - 1
plot(factorial)
Anmerkung
AnfangswhileDer lokale Codeblock nach der Zeile muss in vier Leerzeichen oder ein Zeichner eingekrempelt werden.whileDie KreisläufewhileDer nächste Boolean-Ausdruck muss entweder endgültig falsch sein oder ausgeführt werden.break。
switch
Der switch-Operator überträgt die Kontrolle an einen der mehreren Sätze, je nach den Bedingungen und den Werten des Ausdrucks.
[variable_declaration = ] switch expression
value1 => local_block
value2 => local_block
...
=> default_local_block
[variable_declaration = ] switch
boolean_expression1 => local_block
boolean_expression2 => local_block
...
=> default_local_block
Der Begriff "switch" wird mit den Ausdrücken:
Beispiel
pine
// Switch using an expression
string i_maType = input.string("EMA", "MA type", options = ["EMA", "SMA", "RMA", "WMA"])
float ma = switch i_maType
"EMA" => ta.ema(close, 10)
"SMA" => ta.sma(close, 10)
"RMA" => ta.rma(close, 10)
// Default used when the three first cases do not match.
=> ta.wma(close, 10)
plot(ma)
Switch ohne Ausdruck:
Beispiel
pine
strategy("Switch without an expression", overlay = true)
bool longCondition = ta.crossover( ta.sma(close, 14), ta.sma(close, 28))
bool shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
switch
longCondition => strategy.entry("Long ID", strategy.long)
shortCondition => strategy.entry("Short ID", strategy.short)
Rückgabewert
Der Wert des letzten Ausdrucks in dem ausgeführten lokalen Statementblock.
Anmerkung
Nur ausgeführtlocal_blockBeispiel oderdefault_local_blockEiner davon.default_local_blockNur mit=>Die Markierung wird zusammen eingeführt und nur ausgeführt, wenn das vorherige Block nicht ausgeführt wurde. WennswitchDas Ergebnis der Aussage ist einer Variablen zugewiesen und nicht angegebendefault_local_blockWenn nicht ausgeführt,local_block, wird zurückgegeben.naIch werde...switchWenn die Ergebnisse der Sätze den Variablen zugeordnet werden, werden allelocal_blockDie Instanz muss den gleichen Typ zurückgeben.
series
series ist ein Schlüsselwort, das den Datensatztyp angibt.seriesSchlüsselwörter sind in der Regel unnötig.
Operator
=
Verwendet wird, um Variablen Werte zuzuweisen, aber nur wenn Variablen erklärt werden (für den ersten Gebrauch).
:=
Der Verwertungsoperator, der den Werten der Variablen auf der linken Seite zugeordnet wird.
!=
Nicht gleich ≠. Die Ausdrucksweise ist für jeden Typ gültig ≠.
expr1 != expr2
Rückgabewert
Bull-Werte, oder eine Reihe von Bull-Werten.
%
Modellzahlen ((Integer-Zusatzzahlen)) gelten für Zahlenwerte ausgedrückt.
expr1 % expr2
Rückgabewert
Eine ganze Zahl oder ein Floating Point oder eine Reihe von Werten.
Anmerkung
In einem Pine-Skript wird der Handel bei der Berechnung des Restbetrages der ganzen Zahlen unterbrochen. Das heißt, er wird zu dem kleinsten absoluten Wert umgerechnet. Der erhaltene Wert wird mit dem gleichen Symbol wie die Dividende gekennzeichnet.
Beispiel: -1 % 9 = -1 - 9 * truncate ((-1/9) = -1 - 9 * truncate ((-0.111) = -1 - 9 * 0 = -1。
%=
Modulbezeichnung. Gilt für Zahlen.
expr1 %= expr2
Beispiel
pine
// Equals to expr1 = expr1 % expr2.
a = 3
b = 3
a %= b
// Result: a = 0.
plot(a)
Rückgabewert
Eine ganze Zahl oder ein Floating Point oder eine Reihe von Werten.
*
Die Multiplikation gilt für Zahlen.
expr1 * expr2
Rückgabewert
Eine ganze Zahl oder ein Floating Point oder eine Reihe von Werten.
*=
Die Multiplikationsbezeichnung gilt für Zahlen.
expr1 *= expr2
Beispiel
pine
// Equals to expr1 = expr1 * expr2.
a = 2
b = 3
a *= b
// Result: a = 6.
plot(a)
Rückgabewert
Eine ganze Zahl oder ein Floating Point oder eine Reihe von Werten.
+
Zusätzliche oder einheitliche Positivzahlen. Für Zahlen oder Zeichenketten.
expr1 + expr2
+ expr
Rückgabewert
Binäre Strings+Gibt eine Zusammenführung von express1 und express2 zurück
Die Zahl gibt eine ganze Zahl oder einen Floating-Point-Wert oder eine Reihe von Werten zurück:
Die binäre '+' gibt expr1 plus expr2。 zurück.
Ein Yuan + Ein Yuan gibt expr zurück (nicht hinzugefügt für die Symmetrie des Ein-Yuan-Operators).
Anmerkung
Sie können Arithmetik-Operatoren mit Zahlen und Variablen verwenden. Im Falle von Variablen werden die Operatoren auf die Elemente angewendet.
+=
Adjektiv-Beschreibung <unk> für Zahlen oder Zeichenketten <unk>
expr1 += expr2
Beispiel
pine
// Equals to expr1 = expr1 + expr2.
a = 2
b = 3
a += b
// Result: a = 5.
plot(a)
Rückgabewert
Für Strings gibt es eine Serienfolge von expr1 und expr2. Für Zahlen gibt es eine ganze Zahl oder einen Floating-Point-Wert oder eine Reihe von Werten.
Anmerkung
Sie können Arithmetik-Operatoren mit Zahlen und Variablen verwenden. Im Falle von Variablen werden die Operatoren auf die Elemente angewendet.
-
Abzug oder Ein-Meter-Negativ-Nummer. Für die Zahlen-Ausdrücke.
expr1 - expr2
- expr
Rückgabewert
Gibt eine ganze Zahl oder einen Floating-Point-Wert oder eine Reihe von Werten zurück:
Die Binäre '+' gibt expr1 minus expr2 wieder.
Einfache-Gibt die Negativform von express zurück.
Anmerkung
Sie können Arithmetik-Operatoren mit Zahlen und Variablen verwenden. Im Falle von Variablen werden die Operatoren auf die Elemente angewendet.
-=
Abträglichkeitsbezeichnung. Gilt für Zahlen.
expr1 -= expr2
Beispiel
pine
// Equals to expr1 = expr1 - expr2.
a = 2
b = 3
a -= b
// Result: a = -1.
plot(a)
Rückgabewert
Eine ganze Zahl oder ein Floating Point oder eine Reihe von Werten.
/
Ausnahmen gelten für die numerischen Ausdrücke.
expr1 / expr2
Rückgabewert
Eine ganze Zahl oder ein Floating Point oder eine Reihe von Werten.
/=
Der Ausnahmebefehl gilt für die numerischen Ausdrücke.
expr1 /= expr2
Beispiel
pine
// Equals to expr1 = expr1 / expr2.
a = 3
b = 3
a /= b
// Result: a = 1.
plot(a)
Rückgabewert
Eine ganze Zahl oder ein Floating Point oder eine Reihe von Werten.
<
Weniger als ≠ gilt für die Zahlenform ≠
expr1 < expr2
Rückgabewert
Bull-Werte, oder eine Reihe von Bull-Werten.
<=
Weniger als oder gleich ≠ ≠ ≠
expr1 <= expr2
Rückgabewert
Bull-Werte, oder eine Reihe von Bull-Werten.
==
Gilt für jede Art von Ausdruck.
expr1 == expr2
Rückgabewert
Bull-Werte, oder eine Reihe von Bull-Werten.
=>
Der Operator '=>' wird verwendet, um eine benutzerdefinierte Funktionsdeklaration undswitchIn der Aussage:
Die Syntax der Funktionsdeklaration lautet:
<identifier>([<parameter_name>[=<default_value>]], ...) =>
<local_block>
<function_result>
Eine.<local_block>Es sind null oder mehr Pine-Aussagen.
<function_result>Ist eine Variable, ein Ausdruck oder eine Gruppe.
Beispiel
pine
// single-line function
f1(x, y) => x + y
// multi-line function
f2(x, y) =>
sum = x + y
sumChange = ta.change(sum, 10)
// Function automatically returns the last expression used in it
plot(f1(30, 8) + f2(1, 3))
Anmerkung
Weitere Informationen zu den Benutzerdefinitionen finden Sie auf den Seiten "Erklärungen" und "Skriptbibliothek" des Benutzerhandbuchs.
>
Größer als <unk> gilt für Zahlen.
expr1 > expr2
Rückgabewert
Bull-Werte, oder eine Reihe von Bull-Werten.
>=
Größer als oder gleich: Gilt für numerische Ausdrücke:
expr1 >= expr2
Rückgabewert
Bull-Werte, oder eine Reihe von Bull-Werten.
?:
Der Dreifach-Bedingungs-Operator.
expr1 ? expr2 : expr3
Beispiel
pine
// Draw circles at the bars where open crosses close
s2 = ta.cross(open, close) ? math.avg(open,close) : na
plot(s2, style=plot.style_circles, linewidth=2, color=color.red)
// Combination of ?: operators for 'switch'-like logic
c = timeframe.isintraday ? color.red : timeframe.isdaily ? color.green : timeframe.isweekly ? color.blue : color.gray
plot(hl2, color=c)
Rückgabewert
Wenn expr1 als true bewertet wird, dann ist expr2 und wenn nicht, dann ist es expr3. Die Nullwerte ((0 und NaN+, Infinity,-Infinity) werden als false und alle anderen Werte als true angesehen.
Anmerkung
Wenn Sie es nicht benötigen, verwenden Sie na als eine Abzweigung von na.
Sie können zwei oder mehrere?:-Operatoren kombinieren, um eine Aussage wie "<unk>switch<unk>" zu realisieren (siehe Beispiel oben).
Sie können Arithmetik-Operatoren mit Zahlen und Variablen verwenden. Im Falle von Variablen werden die Operatoren auf die Elemente angewendet.
Siehe auch
na
[]
Die Serie Subtitle <unk> bietet Zugriff auf die vorherigen Werte der Serie expr1 <unk> expr2 ist die Zahl der letzten k Zeilen, die ein Wert sein muss <unk> die Floating wird nach unten umgeordnet <unk>
expr1[expr2]
Beispiel
pine
// [] can be used to "save" variable value between bars
a = 0.0 // declare `a`
a := a[1] // immediately set current value to the same as previous. `na` in the beginning of history
if high == low // if some condition - change `a` value to another
a := low
plot(a)
Rückgabewert
Eine Reihe von Werten.
Siehe auch
math.floor
and
Die Logik AND ≠ gilt für Boolean-Ausdrücke ≠.
expr1 and expr2
Rückgabewert
Bull-Werte, oder eine Reihe von Bull-Werten.
or
OR-Logik gilt für Boolean-Ausdrücke.
expr1 or expr2
Rückgabewert
Bull-Werte, oder eine Reihe von Bull-Werten.
not
Logische Umkehrung ((NOT) <unk>) <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk>
not expr1
Rückgabewert
Bull-Werte, oder eine Reihe von Bull-Werten.
Datentyp Schlüsselwörter
bool
Die Schlüsselwörter des Typs bool (bool) für explizit erklärte Variablen oder Parameter. Die Werte der Variablen "Bool" können true, false oder na sein.
Beispiel
pine
// bool
bool b = true // Same as `b = true`
b := na
plot(b ? open : close)
Anmerkung
Die ausdrückliche Erwähnung des Typs in der Variablenerklärung ist optional, es sei denn, er wird mit na initiiert. Weitere Informationen zum Typ Pine finden Sie auf der Benutzerhandbuchseite des Typesystems.
Siehe auch
var varip int float color string true false
int
Die Schlüsselwörter des Typs <unk>int <unk> ((integer)) für die eindeutige Angabe von Variablen oder Parametern.
Beispiel
pine
// int
int i = 14 // Same as `i = 14`
i := na
plot(i)
Anmerkung
Die ausdrückliche Erwähnung des Typs in der Variablenerklärung ist optional, es sei denn, er wird mit na initiiert. Weitere Informationen zum Typ Pine finden Sie auf der Benutzerhandbuchseite des Typesystems.
Siehe auch
var varip float bool color string
float
Schlüsselwörter vom Typ float für explizit deklarierte Variablen oder Parameter.
Beispiel
pine
// float
float f = 3.14 // Same as `f = 3.14`
f := na
plot(f)
Anmerkung
Die eindeutige Erwähnung des Typs in der Variablenerklärung ist optional, es sei denn, es wird mit na initialisiert.
Siehe auch
var varip int bool color string
string
Schlüsselwort vom Typ "string" für explizit deklarierte Variablen oder Parameter.
Beispiel
pine
// string
string s = "Hello World!" // Same as `s = "Hello world!"`
// string s = na // same as ""
plot(na, title=s)
Anmerkung
Die ausdrückliche Erwähnung des Typs in der Variablenerklärung ist optional, es sei denn, er wird mit na initiiert. Weitere Informationen zum Typ Pine finden Sie auf der Benutzerhandbuchseite des Typesystems.
Siehe auch
var varip int float bool str.tostring str.format
color
Das Schlüsselwort für den Typ "color", der für die Variablen oder Parameter einer expliziten Erklärung verwendet wird.
Beispiel
pine
// color
color textColor = color.green
if barstate.islastconfirmedhistory
runtime.log("test", textcolor = textColor)
Anmerkung
Die Farbschrift hat das folgende Format: #RRGGBB oder #RRGGBBAA. Die Buchstabenpaare repräsentieren die sechzehnstelligen Werte von 00 bis FF ((zehnstellige 0 bis 255), wobei RR, GG und BB die Werte der Farbanteile von Rot, Grün und Blau sind. AA ist die Farbtransparenz (oder die Alphaanteil), wobei 00 nicht sichtbar ist und FF nicht transparent ist.
Die ausdrückliche Erwähnung des Typs in der Variablenerklärung ist optional, es sei denn, er wird mit na initiiert. Weitere Informationen zum Typ Pine finden Sie auf der Benutzerhandbuchseite des Typesystems.
Siehe auch
var varip int float string color.rgb color.new
array
Die Schlüsselwörter für die Array-Array-Typen von Arrays, die Variablen oder Parameter ausdrücklich deklarieren.array.new<type>,array.fromDie Funktion erzeugt ein Arrayobjekt ((oder ID) <unk>.
Beispiel
pine
// array
array<float> a = na
a := array.new<float>(1, close)
plot(array.get(a, 0))
Anmerkung
Die Array-Objekte sind immer in der Form von <unk>-Serie <unk>.
Siehe auch
var array.new array.from
Objects
Die PINE-Objekte sind ein Beispiel für die benutzerdefinierten Typen ((UDT) und können als Methodenlose Klassen verstanden werden, die es dem Benutzer ermöglichen, in der Strategie benutzerdefinierte Typen zu erstellen, die verschiedene Werte in einer Einheit organisieren.
Definition des Typs
Lassen Sie uns einen Order-Typ definieren, um die Bestellinformationen zu speichern:
pine
type order
float price
float amount
string symbol
- verwenden
typeKeyword-Erklärungs-Typ - Das Schlüsselwort type wird von der Typenbezeichnung gefolgt.
- Die erste Zeile "type" definiert den Typennamen und dann in vier Leerzeichen die Felder, die der Typ enthält.
- Jedes Feld muss seinen Datentyp angeben, z. B. int, float, string.
Erstellen von Objekten
Benutzen Sie die erklärten Typen, die aufgerufen werdennew()Objekt der Funktion:
pine
order1 = order.new()
pine
order1 = order.new(100, 0.1, "BTC_USDT")
pine
order1 = order.new(amount = 0.1, symbol = "BTC_USDT", price = 100)
Sie können auch leere Objekte erstellen:
pine
order order1 = na
Hier ist ein Beispiel aus der Praxis:
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)
// runtime.log(order1) // 输出 {"data":{"price":46002.8,"amount":1,"symbol":"swap"},"_meta":0,"_type":"order"}
Ein Beispiel ist dieser Satz:
pine
order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker)
Das kann auch in folgender Form geschrieben werden:
pine
order order1 = na
order1 := order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker)
Objekt-Typ für die Verwendung von var-Keywords
pine
//@version=5
indicator("Objects using `var` demo")
//@type A custom type to hold index, price, and volume information.
type BarInfo
int index = bar_index
float price = close
float vol = volume
//@variable A `BarInfo` instance whose fields persist through all iterations, starting from the first bar.
var BarInfo firstBar = BarInfo.new()
//@variable A `BarInfo` instance declared on every bar.
BarInfo currentBar = BarInfo.new()
// Plot the `index` fields of both instances to compare the difference.
plot(firstBar.index, "firstBar")
plot(currentBar.index, "currentBar")
Wenn eine variable des Objekts mit einem benutzerdefinierten Typ zugewiesen wird, wird die Keyword-Erklärung mit var automatisch auf alle Felder des Objekts angewendet. Das bedeutet, dass ein mit der Keyword-Erklärung deklariertes Objekt seinen Zustand zwischen jeder Iteration behält, ohne dass seine Feldwerte bei jeder Iteration neu initialisiert werden müssen.
- Das firstBar-Objekt wird mit dem Schlüsselwort var deklariert, so dass sein Feld ((index, price, vol)) seine Werte bei jeder Iteration behält, beginnend mit dem ersten Eintrag bis zum Ende des letzten Eintrags.
- Das currentBar-Objekt verwendet keine var-Keyword-Erklärung, so dass seine Felder bei jedem Eintrag neu initialisiert werden und bei jeder Iteration ein neues Objekt vorhanden ist.
Indem Sie die Index-Felder zweier Objekte abbilden, können Sie die Unterschiede zwischen ihnen vergleichen. firstBar.index behält bei jeder Iteration den vorher festgelegten Wert bei, während currentBar.index bei jeder Iteration als bar_index-Wert des aktuellen Eintrags neu initialisiert wird.
Objekt-Typ für die Verwendung von Varip-Keywords
pine
//@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)
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:
pine
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
pine
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.
pine
//@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:
pine
//@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
pine
//@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。
Methods
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:
pine
//@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:
pine
//@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.MethodsDanach der Code.array.avg(sourceArray)Die Methoden können in folgender Form geschrieben werden:sourceArray.avg()。
Hinweis: FMZ wird vorläufig nicht unterstütztarray.avgEin 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:
- Das Schlüsselwort "method" muss vor dem Funktionsnamen stehen.
- Parameter der Methode, wobei der Typ des ersten Parameter eine eindeutige Angabe sein muss, da er den Typ des Objekts angibt, mit dem die Methode verbunden ist.
Zum Beispiel wird der Code für die Berechnung des Brin-Index in den folgenden Code als benutzerdefinierte Methode eingebettet:
pine
//@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:
pine
//@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:
pine
[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.
pine
//@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.
Eingebettete Funktionen
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:
pine
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.
pine
// plot(close, title="test", color.red) // 虽然plot第三个参数是颜色值,但是这样写就会报错
plot(close, title="test", color=color.red) // 正确写法
plot(close, "test", color.red) // 正确写法
timeframe
timeframe.in_seconds
Wir werden es weitergeben.timeframeUmrechnung der Zeitspanne der Parameter in Sekunden.
timeframe.in_seconds(timeframe)
Beispiel
pine
// 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
timeframeDie 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
ticker
ticker.heikinashi
Die Erstellung eines Code-Identifikators fordert einen glatten mittleren K-Linienwert.
ticker.heikinashi(symbol)
Beispiel
pine
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
request
request.data
Anfrage nach externen Daten
request.data(url, attribute)
Beispiel
pine
/*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
ParameterattributeBestimmte 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:json{ "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.dataOb der gewünschte Zeitrahmen mit dem Zeitrahmen der Rückmessung übereinstimmt.
In diesem Fall ist die SQL-Aussage für die Datenabfrage 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;
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。
request.security
Eine andere Sorte/Auflösung verlangen.
request.security(symbol, timeframe, expression, gaps, lookahead, ignore_invalid_symbol, currency)
Beispiel
pine
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 <unk>. Dann berechnet man den Wert nach der Umwandlung <unk>expression <unk>. Die verwendeten Umrechnungsraten basieren auf dem täglichen Wechselkurs des FX_IDC-Paares am Vortag <unk> (z. B. in Bezug auf die berechnete K-Linie). Optional <unk>. Der Standardwert ist syminfo.currency <unk>. Mögliche Werte: Drei-Alpha-Zeichen mit einem Währungscode im ISO 4217-Format (z. B. <unk>USD<unk>) oder currency.* Eine der Konstanten im Namensraum, z. B. currency.USD <unk>
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
str
str.contains
WennsourceDie Zeichenfolge enthältstrWenn Sie eine Substring verwenden, gibt es die Antwort "true" oder "false".
str.contains(source, str)
Beispiel
pine
// 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 insourceFinde in einer Stringstr, ist wahr, andernfalls ist falsch.
Parameter
source(series string) Quelle der Zeichenfolgestr(series string) Suche nach einer Unterzeichenfolge.
str.endswith
WennsourceDie Zeichenfolge iststrWenn die angegebene Unterzeichenfolge endet, wird true oder false zurückgegeben.
str.endswith(source, str)
Rückgabewert
WennsourceDie Zeichenfolge iststrDie 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
str.startswith
WennsourceDie Zeichenfolge iststrWenn die angegebene Unterzeichenfolge beginnt, wird true zurückgegeben, andernfalls false.
str.startswith(source, str)
Rückgabewert
WennsourceDie Zeichenfolge iststrDie 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
str.substring
Gibt eine neue String zurück, diesourceUnterstring der String.begin_posDie Zeichen beginnen mit dem angegebenen Index und erstrecken sich bis zumsourceDas 'end_pos - 1' der String.
str.substring(source, begin_pos)
str.substring(source, begin_pos, end_pos)
Beispiel
pine
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 sindsourceDie Länge der Zeichenfolge.
Anmerkung
Die String-Index beginnt mit 0. Wennbegin_posgleichend_pos, die Funktion gibt eine leere Zeichenfolge zurück.
Siehe auch
str.contains str.pos str.match
str.tonumber
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.
str.format
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
pine
// 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.
str.length
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 Zeichenfolge
str.lower
Gibt 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
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
str.match
Wenn es stimmt.regexRegelmäßige Ausdrücke werden zurückgegebensourceDie neue Unterzeichen einer Zeichenfolge, die 'na' zurückgibt.
str.match(source, regex)
Beispiel
pine
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
sourceDer neue Unterstring der String, wenn es eineregexDie korrekte Ausdrucksweise ist 'na' <unk>
Parameter
source(series string) Quelle der Zeichenfolgeregex(series string) Reguläre Ausdrücke, die mit dieser Zeichenfolge übereinstimmen.
Anmerkung
Funktion gibt zurücksourceDer erste regelmäßige Ausdruck in der Zeichenkette:
regexDie Rückschreibung <unk> in einer String erfordert die Verwendung zusätzlicher Rückschreibungen, z. B. <unk>\d<unk> steht für den regulären Ausdruck <unk>\d<unk>。
Siehe auch
str.contains str.substring
str.pos
Zurück.sourceErstmals in einer ZeichenfolgestrDie Position der Zeichenfolge, sonst wird 'na' zurückgegeben.
str.pos(source, str)
Rückgabewert
strDie Zeichenfolge istsourcePosition 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
str.replace
Gibt eine neue String zurück, in der die ersten N+1 Male vorkommentargetStrings und vorherigetargetDie Zeichenfolge wird durchreplacementString, bei dem N inoccurrenceGeben Sie in .N den entsprechenden Index an, der in der Quelle erscheint, um den Zielstring zu ersetzen.
str.replace(source, target, replacement, occurrence)
Beispiel
pine
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 0
Siehe auch
str.replace_all str.match
str.replace_all
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 ersetzt
str.split
Spaltet 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
str.tostring(value)
str.tostring(value, format)
str.tostring(value[])
str.tostring(value[], format)
Rückgabewert
valueDie Strings der Parameter sind in der Form。
WennvalueDie Parameter sind Strings und werden als solche zurückgegeben.
WennvalueWenn na verwendet wird, gibt die Funktion die String-Zeiche NaN<unk> 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 <unk>4<unk>。
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 <unk>NaN<unk>♦ zurück.
color
color.new
Funktionsfarben geben die Transparenz an, die auf die gegebene Farbe angewendet wird.
color.new(color, transp)
Beispiel
pine
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. <unk>simple<unk>, <unk>input<unk> oder <unk>series<unk>) 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.
color.rgb
Erstellen Sie neue Farben mit Transparenz mithilfe des RGB-Farbmodells.
color.rgb(red, green, blue, transp)
Beispiel
pine
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. <unk>simple<unk>, <unk>input<unk> oder <unk>series<unk>) 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.
runtime
runtime.debug
Drucken Sie die Variablen-Informationen auf der Steuerung.
FMZ PINE hat eine spezielle Funktion, die die Sprache beeinflusst.runtime.debug(value), nur ein Parameter.
runtime.log
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.
runtime.error
Wenn Sie diese aufrufen, können Sie einen Betriebsfehler verursachen, und es kann zu einem Fehler bei der Ausführung kommen.messageFehlermeldung im Parameter angegeben.
runtime.error(message)
Parameter
Message (series string) ist eine Fehlermeldung.
input
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 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
pine
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、hlc3Und 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
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
pine
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
input.string
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
pine
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.optionsWenn 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.bool
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
pine
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
input.int
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
pine
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.optionsWenn 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、maxvalUndstepParametertooltip(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
input.float
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
pine
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 <unk> übereinstimmtoptionsWenn 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、maxvalUndstepParametertooltip(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
input.color
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
pine
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.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.color sollte immer einer Variablen zugeordnet werden, wie in dem Beispiel oben.
Siehe auch
input.bool input.int input.float input.string input.timeframe input.source input
input.price
Hinzufügen von Preiseinträgen in die Tabelle Einstellungen/Eingabe-Tabelle des Skripts.confirm = trueAktivieren Sie den interaktiven Eingabe-Modus und wählen Sie die Preise, indem Sie auf das Diagramm klicken.
input.price(defval, title, tooltip, inline, group, confirm)
Beispiel
pine
price1 = input.price(title="Date", defval=42)
plot(price1)
price2 = input.price(54, title="Date")
plot(price2)
Rückgabewert
Variablenwerte eingeben
Parameter
defval(const int/float) Der Standardwert 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, wird der interaktive Eingabe-Modus aktiviert und die Auswahl erfolgt entweder durch Anklicken auf das Diagramm, wenn der Indikator in das Diagramm hinzugefügt wird, oder durch Auswahl des Indikators und anschließende Bewegung der Auswahl. Optional. Der Standardwert ist false.
Anmerkung
Wenn zwei Funktionen in Interaktionsmodus aufgerufen werdeninlineWenn die Parameter dieselben Parameter verwenden, kann die Zeit-Eingabe mit der Preis-Eingabe kombiniert werden.
Siehe auch
input.bool input.int input.float input.string input.resolution input.source input.color input
input.timeframe
Hinzufügen von Input in die Eingabe-Tabelle der Skript-Einstellungen, die es Ihnen ermöglicht, den Benutzern der Skripte Konfigurationsoptionen anzubieten. Diese Funktion fügt eine Dropdown-Liste hinzu, die es dem Benutzer ermöglicht, eine bestimmte Zeitspanne über den Zeitperiode-Selektor auszuwählen und sie als String zurückzugeben. Der Selektor enthält die Zeiträume, die der Benutzer möglicherweise in den Diagrammen verwendet, einschließlich der benutzerdefinierten Zeiträume, die er aus dem Dropdown-Menü hinzufügt.
input.timeframe(defval, title, options, tooltip, inline, group, confirm)
Beispiel
pine
i_res = input.timeframe('D', "Resolution", options=['D', 'W', 'M'])
s = request.security(syminfo.tickerid, i_res, close)
plot(s)
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.optionsWenn 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(tuple of const string values: [val1, val2, ...]) 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
Die Ergebnisse der input.timeframe-Funktion sollten immer einer Variablen zugeordnet werden, wie in dem Beispiel oben.
Siehe auch
input.bool input.int input.float input.string input.source input.color input
input.integer
Nicht vorläufig
input.resolution
Nicht vorläufig
ta
ta.alma
Arnaud Legoux Moving Average. Es verwendet die Gauss-Verteilung als Gewichtung des Moving Averages.
ta.alma(series, length, offset, sigma)
ta.alma(series, length, offset, sigma, floor)
Beispiel
pine
plot(ta.alma(close, 9, 0.85, 6))
// same on pine, but much less efficient
pine_alma(series, windowsize, offset, sigma) =>
m = offset * (windowsize - 1)
//m = math.floor(offset * (windowsize - 1)) // Used as m when math.floor=true
s = windowsize / sigma
norm = 0.0
sum = 0.0
for i = 0 to windowsize - 1
weight = math.exp(-1 * math.pow(i - m, 2) / (2 * math.pow(s, 2)))
norm := norm + weight
sum := sum + series[windowsize - i - 1] * weight
sum / norm
plot(pine_alma(close, 9, 0.85, 6))
Rückgabewert
Arnaud Legoux bewegliche Durchschnittswerte
Parameter
series(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).offset(simple int/float) Kontrolle der Balance zwischen Glattigkeit ((näher an 1) und Reaktionsfähigkeit ((näher an 0)).sigma(simple int/float) Ändert die Glattigkeit von ALMA. Je größer die Sigma, desto glatter ist ALMA.floor(simple bool) Optionale Parameter. Bevor ALMA berechnet wird, wird angegeben, ob die Abweichung als untere Grenze berechnet wird. Der Standardwert ist false.
Siehe auch
ta.sma ta.ema ta.rma ta.wma ta.vwma ta.swma
ta.sma
Die Funktion sma gibt den Moving Average zurück, also den letzten Wert von x in y, geteilt durch y。
ta.sma(source, length)
Beispiel
pine
plot(ta.sma(close, 15))
// same on pine, but much less efficient
pine_sma(x, y) =>
sum = 0.0
for i = 0 to y - 1
sum := sum + x[i] / y
sum
plot(pine_sma(close, 15))
Rückgabewert
lengthK-Strecke zurückgegebensourceEin einfacher gleitender Durchschnitt.
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
Siehe auch
ta.ema ta.rma ta.wma ta.vwma ta.swma ta.alma
ta.cog
cog ((Schwerpunkt)) basiert auf der Statistik und der Fibonacci-Goldene Rate.
ta.cog(source, length)
Beispiel
pine
plot(ta.cog(close, 10))
// the same on pine
pine_cog(source, length) =>
sum = math.sum(source, length)
num = 0.0
for i = 0 to length - 1
price = source[i]
num := num + price * (i + 1)
-num / sum
plot(pine_cog(close, 10))
Rückgabewert
Schwerpunkt
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
Siehe auch
ta.stoch
ta.dev
Unterschiede zwischen der Messreihe und ihrer ta.sma
ta.dev(source, length)
Beispiel
pine
plot(ta.dev(close, 10))
// the same on pine
pine_dev(source, length) =>
mean = ta.sma(source, length)
sum = 0.0
for i = 0 to length - 1
val = source[i]
sum := sum + math.abs(val - mean)
dev = sum/length
plot(pine_dev(close, 10))
Rückgabewert
lengthK-Strecke zurückgegebensourceDie Abweichungen
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
Siehe auch
ta.variance ta.stdev
ta.stdev
ta.stdev(source, length, biased)
Beispiel
pine
plot(ta.stdev(close, 5))
//the same on pine
isZero(val, eps) => math.abs(val) <= eps
SUM(fst, snd) =>
EPS = 1e-10
res = fst + snd
if isZero(res, EPS)
res := 0
else
if not isZero(res, 1e-4)
res := res
else
15
pine_stdev(src, length) =>
avg = ta.sma(src, length)
sumOfSquareDeviations = 0.0
for i = 0 to length - 1
sum = SUM(src[i], -avg)
sumOfSquareDeviations := sumOfSquareDeviations + sum * sum
stdev = math.sqrt(sumOfSquareDeviations / length)
plot(pine_stdev(close, 5))
Rückgabewert
Unterschiede im Standard
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).biased(series bool) Bestimmt, welche Schätzung verwendet werden soll. Optional. Der Standardwert ist true.
Anmerkung
WennbiasedWenn true, berechnet die Funktion mit einer partiellen Schätzung für die Gesamtheit, und wenn false, mit einer unparteiischen Schätzung für die Probe.
Siehe auch
ta.dev ta.variance
ta.ema
Die ema-Funktion gibt einen exponentiell gewichteten Moving Average zurück. In ema ist der Gewichtsfaktor exponentiell abwärts. Es wird mit der folgenden Formel berechnet: EMA = alpha * source + (1 - alpha) * EMA[1], wobei alpha = 2 / (length + 1) ≠
ta.ema(source, length)
Beispiel
pine
plot(ta.ema(close, 15))
//the same on pine
pine_ema(src, length) =>
alpha = 2 / (length + 1)
sum = 0.0
sum := na(sum[1]) ? src : alpha * src + (1 - alpha) * nz(sum[1])
plot(pine_ema(close,15))
Rückgabewert
sourceDer exponentielle gleitende Durchschnitt, alpha = 2 / (Länge + 1) ◦
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(simple int) Anzahl der K-Zeilen (länge).
Anmerkung
Bitte beachten Sie, dass die Verwendung dieser Variable/Funktion dazu führen kann, dass der Indikator neu abgebildet wird.
Siehe auch
ta.sma ta.rma ta.wma ta.vwma ta.swma ta.alma
ta.wma
WMA-Funktion wird zurückgegebenlengthK-LiniesourceIn wma nimmt der Gewichtsfaktor in arithmetischen Graden ab.
ta.wma(source, length)
Beispiel
pine
plot(ta.wma(close, 15))
// same on pine, but much less efficient
pine_wma(x, y) =>
norm = 0.0
sum = 0.0
for i = 0 to y - 1
weight = (y - i) * y
norm := norm + weight
sum := sum + x[i] * weight
sum / norm
plot(pine_wma(close, 15))
Rückgabewert
lengthK-Strecke zurückgegebensourceGewichtete bewegliche Durchschnitte.
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
Siehe auch
ta.sma ta.ema ta.rma ta.vwma ta.swma ta.alma
ta.swma
Symmetrisch-gewichtete gleitende Mittelwerte mit fester Länge: 4. Gewicht:[1/6,2 / 6,2 / 6,1 / 6]。
ta.swma(source)
Beispiel
pine
plot(ta.swma(close))
// same on pine, but less efficient
pine_swma(x) =>
x[3] * 1 / 6 + x[2] * 2 / 6 + x[1] * 2 / 6 + x[0] * 1 / 6
plot(pine_swma(close))
Rückgabewert
Symmetrisch gewichtete gleitende Durchschnitte.
Parameter
source(series int/float) Quelle der Serie <unk>
Siehe auch
ta.sma ta.ema ta.rma ta.wma ta.vwma ta.alma
ta.hma
Die hma-Funktion liefert den Wasserschiff beweglichen Durchschnitt HMA。.
ta.hma(source, length)
Beispiel
pine
src = input(defval=close, title="Source")
length = input(defval=9, title="Length")
hmaBuildIn = ta.hma(src, length)
plot(hmaBuildIn, title="Hull MA", color=#674EA7)
Rückgabewert
Hull Moving Average der Quelle in der Spalte 'length'
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(simple int) Anzahl der K-Zeilen
Siehe auch
ta.ema ta.rma ta.wma ta.vwma ta.sma
ta.rma
Der Moving Average, der im RSI verwendet wird. Es ist ein Index-gewichteter Moving Average, alpha-gewichtet = 1 / Länge.
ta.rma(source, length)
Beispiel
pine
plot(ta.rma(close, 15))
//the same on pine
pine_rma(src, length) =>
alpha = 1/length
sum = 0.0
sum := na(sum[1]) ? ta.sma(src, length) : alpha * src + (1 - alpha) * nz(sum[1])
plot(pine_rma(close, 15))
Rückgabewert
sourceDer Index bewegt sich durchschnittlich, alpha = 1 /.length。
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(simple int) Anzahl der K-Zeilen (länge).
Siehe auch
ta.sma ta.ema ta.wma ta.vwma ta.swma ta.alma ta.rsi
ta.rsi
Der Relative Intensitätsindex.lengthK ist onlinesourceAufwärts- und Abwärtsveränderungenta.rma()Berechnet
ta.rsi(source, length)
Beispiel
pine
plot(ta.rsi(close, 7))
// same on pine, but less efficient
pine_rsi(x, y) =>
u = math.max(x - x[1], 0) // upward ta.change
d = math.max(x[1] - x, 0) // downward ta.change
rs = ta.rma(u, y) / ta.rma(d, y)
res = 100 - 100 / (1 + rs)
res
plot(pine_rsi(close, 7))
Rückgabewert
Relativ starke Indikatoren (RSI)
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(simple int) Anzahl der K-Zeilen (länge).
Siehe auch
ta.rma
ta.tsi
Der Index der wahren Stärken und Schwächen ist ein beweglicher Durchschnitt der potenziellen Dynamik der Finanzinstrumente.
ta.tsi(source, short_length, long_length)
Rückgabewert
Der Index der wahren Stärken und Schwächen.[Die Werte in -1,1]
Parameter
source(series int/float) Quelle der Serie <unk>short_length(simple int) Eine kurze Länge.long_length(simple int) Länge der langen Zeile。
ta.roc
Die Funktion roc (Veränderungsrate) wird angezeigt.sourceDer aktuelle Wert vonsourceVor ein paar Tagen.lengthUnterschiede zwischen Werten
Berechnet durch folgende Formel: 100 * change ((src, length) / src[length]。
ta.roc(source, length)
Rückgabewert
lengthK-Strecke zurückgegebensourceVeränderung in der Bevölkerung
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
ta.range
Gibt die Differenz zwischen den Minimal- und Maximalwerten der Sequenz zurück.
ta.range(source, length)
Rückgabewert
Die Differenz zwischen der Minimal- und der Maximal-Wertzahl in einer Reihe.
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
ta.macd
Der MACD soll die Stärke, Richtung, Dynamik und Dauer der Aktienpreisentwicklung zeigen.
ta.macd(source, fastlen, slowlen, siglen)
Beispiel
pine
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)
plot(macdLine, color=color.blue)
plot(signalLine, color=color.orange)
plot(histLine, color=color.red, style=plot.style_histogram)
Wenn Sie nur einen Wert benötigen, verwenden Sie einen Positionierer wie '_':
Beispiel
pine
[_, signalLine, _] = ta.macd(close, 12, 26, 9)
plot(signalLine, color=color.orange)
Rückgabewert
Die drei MACD-Bausteine sind MACD-Leitung, Signal-Leitung und Verteiler-Leitung.
Parameter
source(series int/float) Die auszuführenden Serienwerte.fastlen(simple int) Schnellleiter-Parameterslowlen(simple int) Langsamer Länge-Parameter ≠siglen(simple int) Parameter für die Signallänge。
ta.mode
Modus der Rückgabe von Sequenzen. Gibt es mehrere Werte mit der gleichen Frequenz, wird der kleinste Wert zurückgegeben.
ta.mode(source, length)
Rückgabewert
Modell der Sequenz.
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
ta.median
Die mittlere Zahl der zurückgegebenen Sequenz.
ta.median(source, length)
Rückgabewert
Die mittlere Zahl der Sequenz.
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
ta.linreg
Die lineare Regressionskurve. Eine Linie, die am besten zu den vom Benutzer definierten Zeiträumen angegebenen Preisen passt. Sie wird mit dem Minimum-Doppel-Verhältnis berechnet. Die Ergebnisse dieser Funktion werden mit der folgenden Formel berechnet: linreg = intercept + slope * (length - 1 - offset), wobei intercept und slope verwendet werden.sourceDie Berechnung des Minimum-Doppelzinswerts der Reihe.
ta.linreg(source, length, offset)
Rückgabewert
Lineare Regressionskurve
Parameter
source(series int/float) Quelle der Serie <unk>length(series int)offset(simple int) Verlagerung
ta.bb
Die Brinbands sind ein technisches Analysetool, das durch eine Reihe von Linien definiert ist, die zwei Standarddeviationen (positiv und negativ) von der einfachen Moving Average (SMA) der Wertpapierpreise entfernt sind, aber an die Vorlieben des Benutzers angepasst werden können.
ta.bb(series, length, mult)
Beispiel
pine
[middle, upper, lower] = ta.bb(close, 5, 4)
plot(middle, color=color.yellow)
plot(upper, color=color.yellow)
plot(lower, color=color.yellow)
// the same on pine
f_bb(src, length, mult) =>
float basis = ta.sma(src, length)
float dev = mult * ta.stdev(src, length)
[basis, basis + dev, basis - dev]
[pineMiddle, pineUpper, pineLower] = f_bb(close, 5, 4)
plot(pineMiddle)
plot(pineUpper)
plot(pineLower)
Rückgabewert
Blinken
Parameter
series(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).mult(simple int/float) Standarddifferenzfaktor
Siehe auch
ta.sma ta.stdev ta.kc
ta.bbw
Die Breite des Brinbands ≠ die Entfernung von der Ober- und Unterbahn zur Mittellinie ≠
ta.bbw(series, length, mult)
Beispiel
pine
plot(ta.bbw(close, 5, 4), color=color.yellow)
// the same on pine
f_bbw(src, length, mult) =>
float basis = ta.sma(src, length)
float dev = mult * ta.stdev(src, length)
((basis + dev) - (basis - dev)) / basis
plot(f_bbw(close, 5, 4))
Rückgabewert
Die Bandbreite von Brin:
Parameter
series(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).mult(simple int/float) Standarddifferenzfaktor
Siehe auch
ta.bb ta.sma ta.stdev
ta.cci
Der CCI (Commodity Path Index) wird berechnet, wenn der Unterschied zwischen dem typischen Preis eines Produkts und seinem einfachen gleitenden Durchschnitt durch die durchschnittliche absolute Abweichung des typischen Preises dividiert wird. Der Index wird mit einer Rückwärtsbewegung von 0,015 verkleinert, um mehr lesbare Zahlen zu liefern.
ta.cci(source, length)
Rückgabewert
Der Warenkanalindex der Quelle, die auf der lengthK-Linie zurückgegeben wird.
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
ta.change
Differenz zwischen dem aktuellen und dem vorherigen Wert, source - source[length]。
ta.change(source, length)
ta.change(source)
Rückgabewert
Das Ergebnis der Senkung:
Parameter
source(series int/float) Quelle der Serie <unk>length(series int) Verlagerung von der aktuellen k-Zeile auf die vorherige k-Zeile. Optional, wenn nicht angegeben, wird length = 1 verwendet.
ta.mom
sourcePreise undsourcePreiselengthDas ist nur ein Unterschied: source - source[length]。
ta.mom(source, length)
Rückgabewert
sourcePreise undsourcePreiselengthDie Dynamik vor der K-Linie
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Verschiebung von der aktuellen k-Zeile zur vorherigen k-Zeile.
Siehe auch
ta.change
ta.cmo
Der Candle-Dynamik-Schwankungs-Indikator. Berechne die Summe der jüngsten Aufstiegspunkte mit der Summe der jüngsten Abstiegspunkte, subtrahiere sie und dividiere das Ergebnis durch die Summe aller Preisbewegungen in derselben Periode
ta.cmo(series, length)
Beispiel
pine
plot(ta.cmo(close, 5), color=color.yellow)
// the same on pine
f_cmo(src, length) =>
float mom = ta.change(src)
float sm1 = math.sum((mom >= 0) ? mom : 0.0, length)
float sm2 = math.sum((mom >= 0) ? 0.0 : -mom, length)
100 * (sm1 - sm2) / (sm1 + sm2)
plot(f_cmo(close, 5))
Rückgabewert
Schwankungsindikator für die Dynamik von Chandra
Parameter
series(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
Siehe auch
ta.rsi ta.stoch math.sum
ta.percentile_linear_interpolation
Der Prozentsatz wird mit einer linearen Intervallmethode zwischen den beiden jüngsten Ranglisten berechnet.
ta.percentile_linear_interpolation(source, length, percentage)
Rückgabewert
lengthK-Strecke zurückgegebensourceDie erste Prozentzahl P der Reihe <unk>.
Parameter
source(series int/float) Ausführbarer Wert der Serie ((Quelle))length(Series int) Anzahl der K-Streifen in der Vergangenheit (länge)percentage(simple int/float) Prozentsatz, Zahlen im Bereich von 0 bis 100
Anmerkung
Bitte beachten Sie, dass nicht alle Prozentsätze, die mit dieser Methode berechnet werden, Teil des Datensatzes sind.
Siehe auch
ta.percentile_nearest_rank
ta.percentile_nearest_rank
Der Prozentsatz basiert auf den neuesten Rankingmethoden.
ta.percentile_nearest_rank(source, length, percentage)
Rückgabewert
lengthK-Strecke zurückgegebensourceDie erste Prozentzahl P der Reihe <unk>.
Parameter
source(series int/float) Ausführbarer Wert der Serie ((Quelle))length(Series int) Anzahl der K-Streifen in der Vergangenheit (länge)percentage(simple int/float) Prozentsatz, Zahlen im Bereich von 0 bis 100
Anmerkung
Die Verwendung der jüngsten Reihenfolge mit weniger als den letzten 100 k Linienlängen führt dazu, dass die gleiche Zahl für mehrere Prozentzahlen verwendet wird.
Die Prozentzahlen der neuesten Rankings sind Teil des Datensatzes der Eingaben.
Der hundertste Prozentpunkt ist definiert als der größte Wert im Eingangsdatensatz.
Siehe auch
ta.percentile_linear_interpolation
ta.percentrank
Der Prozentsatz ist der Prozentsatz, in dem der vorherige Wert kleiner oder gleich dem aktuellen Wert einer bestimmten Reihe ist.
ta.percentrank(source, length)
Rückgabewert
lengthK-Strecke zurückgegebensourceDer Prozentsatz.
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
ta.variance
Die Differenz ist die erwartete Abweichung (ta.sma) einer Reihe von Quadratzahlen von ihrem Mittelwert, die informell die Entfernung einer Gruppe von Zahlen von ihrem Mittelwert misst.
ta.variance(source, length, biased)
Rückgabewert
lengthK-Strecke zurückgegebensourceDie Differenz
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).biased(series bool) Bestimmt, welche Schätzung verwendet werden soll. Optional. Der Standardwert ist true.
Anmerkung
WennbiasedWenn true, berechnet die Funktion mit einer partiellen Schätzung für die Gesamtheit, und wenn false, mit einer unparteiischen Schätzung für die Probe.
ta.tr
ta.tr(handle_na)
Rückgabewert
Wirkliche Reichweite. Es ist math.max (high - low, math.abs (high - close)[1]), math.abs(low - close[1]))。
Parameter
handle_na(simple bool) Wie wird der NaN-Wert behandelt. Wenn true und der Vortags-Schlusskurs NaN ist, wird tr als Hoch-Low des Tages berechnet. Andernfalls wird (((wenn false) tr NaN zurückgeben. Bitte beachten Sie, dass ta.atr mit ta.true verwendet wird.
Anmerkung
ta.tr(false)Undta.trGenau das Gleiche.
Siehe auch
ta.atr
ta.mfi
Der Cashflow-Indikator ist ein technischer Indikator, der den Preis und die Transaktionsmenge verwendet, um zu überkaufen oder zu verkaufen.
ta.mfi(series, length)
Beispiel
pine
plot(ta.mfi(hlc3, 14), color=color.yellow)
// the same on pine
pine_mfi(src, length) =>
float upper = math.sum(volume * (ta.change(src) <= 0.0 ? 0.0 : src), length)
float lower = math.sum(volume * (ta.change(src) >= 0.0 ? 0.0 : src), length)
mfi = 100.0 - (100.0 / (1.0 + upper / lower))
mfi
plot(pine_mfi(hlc3, 14))
Rückgabewert
Kapitalflussindikatoren
Parameter
series(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
ta.kc
Der Kentner Gang. Der Kentner Gang ist ein technischer Indikator, der einen mittleren Moving Average sowie einen Up-and-Down Gang enthält.
ta.kc(series, length, mult)
ta.kc(series, length, mult, useTrueRange)
Beispiel
pine
[middle, upper, lower] = ta.kc(close, 5, 4)
plot(middle, color=color.yellow)
plot(upper, color=color.yellow)
plot(lower, color=color.yellow)
// the same on pine
f_kc(src, length, mult, useTrueRange) =>
float basis = ta.ema(src, length)
float span = (useTrueRange) ? ta.tr : (high - low)
float rangeEma = ta.ema(span, length)
[basis, basis + rangeEma * mult, basis - rangeEma * mult]
[pineMiddle, pineUpper, pineLower] = f_kc(close, 5, 4, true)
plot(pineMiddle)
plot(pineUpper)
plot(pineLower)
Rückgabewert
Die Kettner Passage
Parameter
series(series int/float) Die auszuführenden Serienwerte.length(simple int) Anzahl der K-Zeilen (länge).mult(simple int/float) StandarddifferenzfaktoruseTrueRange(simple bool) Optionale Parameter. Geben Sie an, ob ein wahrer Bereich verwendet werden soll; der Default ist true. Wenn der Wert false ist, wird der Bereich mit dem Ausdruck ((high-low) berechnet.
Siehe auch
ta.ema ta.atr ta.bb
ta.kcw
Die Breite der Kentnerkanäle. Die Breite der Kentnerkanäle ist die Differenz zwischen den oberen und unteren Kanälen, dividiert durch den Wert der mittleren Kanäle.
ta.kcw(series, length, mult)
ta.kcw(series, length, mult, useTrueRange)
Beispiel
pine
plot(ta.kcw(close, 5, 4), color=color.yellow)
// the same on pine
f_kcw(src, length, mult, useTrueRange) =>
float basis = ta.ema(src, length)
float span = (useTrueRange) ? ta.tr : (high - low)
float rangeEma = ta.ema(span, length)
((basis + rangeEma * mult) - (basis - rangeEma * mult)) / basis
plot(f_kcw(close, 5, 4, true))
Rückgabewert
Breite des Kentner-Kanals
Parameter
series(series int/float) Die auszuführenden Serienwerte.length(simple int) Anzahl der K-Zeilen (länge).mult(simple int/float) StandarddifferenzfaktoruseTrueRange(simple bool) Optionale Parameter. Geben Sie an, ob ein wahrer Bereich verwendet werden soll; der Default ist true. Wenn der Wert false ist, wird der Bereich mit dem Ausdruck ((high-low) berechnet.
Siehe auch
ta.kc ta.ema ta.atr ta.bb
ta.correlation
Relative Koeffizienten. Beschreiben, wie sehr zwei Reihen von ihren ta.sma-Werten abweichen.
ta.correlation(source1, source2, length)
Rückgabewert
Bezogener Faktor
Parameter
source1(series int/float) Quelle der Serie <unk>source2(series int/float) Zielreihelength(Series int) Länge (Zahl der K-Zeilen)
Siehe auch
request.security
ta.cross
ta.cross(source1, source2)
Rückgabewert
Wenn zwei Reihen sich kreuzen, ist es wahr, andernfalls ist es falsch.
Parameter
source1(series int/float) Erste Datenreihesource2(series int/float) Die zweite Datenreihe.
Siehe auch
ta.change
ta.crossover
source1-series wird als Überschreitung definiertsource2-series, wenn es auf der aktuellen K-Linie ist,source1ist größer alssource2Wir haben die Werte für die K-Reihe und die K-Reihe.source2Wert von source1小于source2`Werte von
ta.crossover(source1, source2)
Rückgabewert
Wennsource1Durchgehensource2Die Antwort lautet true oder false.
Parameter
source1(series int/float) Erste Datenreihesource2(series int/float) Die zweite Datenreihe.
ta.crossunder
source1-series ist definiert als insource2-series unter der Kreuzung, wenn auf der aktuellen K-Linie,source1ist kleiner alssource2Wir haben die Werte für die K-Strecke und die K-Strecke.source1ist größer alssource2Werte von
ta.crossunder(source1, source2)
Rückgabewert
Wennsource1existierensource2Unterkreuzt, dann ist es wahr oder falsch.
Parameter
source1(series int/float) Erste Datenreihesource2(series int/float) Die zweite Datenreihe.
ta.atr
Die Funktion ATR (Mittelwert der realen Schwankungsbreite) gibt die RMA des realen Bereichs zurück. Die realen Schwankungen sind max (hoch - niedrig, abs (hoch - nahe)[1]), abs(low - close[1]))。
ta.atr(length)
Beispiel
pine
plot(ta.atr(14))
//the same on pine
pine_atr(length) =>
trueRange = na(high[1])? high-low : math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1]))
//true range can be also calculated with ta.tr(true)
ta.rma(trueRange, length)
plot(pine_atr(14))
Rückgabewert
Durchschnitt der realen Schwankungen (ATR)
Parameter
length (simple int) Länge (Zahl der K-Zeilen)
ta.sar
Die Parallax-Linie ist eine Methode, die von J. Welles Wilder, Jr. entwickelt wurde, um potenzielle Umkehrungen in der Kursrichtung von Handelsmärkten zu erkennen.
ta.sar(start, inc, max)
Beispiel
pine
plot(ta.sar(0.02, 0.02, 0.2), style=plot.style_cross, linewidth=3)
// The same on Pine
pine_sar(start, inc, max) =>
var float result = na
var float maxMin = na
var float acceleration = na
var bool isBelow = na
bool isFirstTrendBar = false
if bar_index == 1
if close > close[1]
isBelow := true
maxMin := high
result := low[1]
else
isBelow := false
maxMin := low
result := high[1]
isFirstTrendBar := true
acceleration := start
result := result + acceleration * (maxMin - result)
if isBelow
if result > low
isFirstTrendBar := true
isBelow := false
result := math.max(high, maxMin)
maxMin := low
acceleration := start
else
if result < high
isFirstTrendBar := true
isBelow := true
result := math.min(low, maxMin)
maxMin := high
acceleration := start
if not isFirstTrendBar
if isBelow
if high > maxMin
maxMin := high
acceleration := math.min(acceleration + inc, max)
else
if low < maxMin
maxMin := low
acceleration := math.min(acceleration + inc, max)
if isBelow
result := math.min(result, low[1])
if bar_index > 1
result := math.min(result, low[2])
else
result := math.max(result, high[1])
if bar_index > 1
result := math.max(result, high[2])
result
plot(pine_sar(0.02, 0.02, 0.2), style=plot.style_cross, linewidth=3)
Rückgabewert
Die Parallax-Linie dreht sich auf die Zeigefläche.
Parameter
start(simple int/float) beginnt <unk>inc(simple int/float) erhöhtmax(simple int/float) maximal
ta.barssince
Berechnen Sie die Anzahl der K-Zeilen, wenn die vorherige Bedingung wahr ist.
ta.barssince(condition)
Beispiel
pine
// get number of bars since last color.green bar
plot(ta.barssince(close >= open))
Rückgabewert
Anzahl der Zeilen k, wenn die Bedingung wahr ist.
Anmerkung
Die Funktion gibt nach der aktuellen K-Zeile nur dann na。 zurück, wenn diese Bedingung noch nie erfüllt wurde.
Bitte beachten Sie, dass die Verwendung dieser Variable/Funktion dazu führen kann, dass der Indikator neu abgebildet wird.
Siehe auch
ta.lowestbars ta.highestbars ta.valuewhen ta.highest ta.lowest
ta.cum
sourceDas ist die Summe der Summe der Summe.sourceDie Summe aller Elemente von
ta.cum(source)
Rückgabewert
Zusammenfassung der Serie
Parameter
source(series int/float)
Siehe auch
math.sum
ta.dmi
Die dmi-Funktion gibt den dynamischen Index DMI。 zurück.
ta.dmi(diLength, adxSmoothing)
Beispiel
pine
len = input.int(17, minval=1, title="DI Length")
lensig = input.int(14, title="ADX Smoothing", minval=1, maxval=50)
[diplus, diminus, adx] = ta.dmi(len, lensig)
plot(adx, color=color.red, title="ADX")
plot(diplus, color=color.blue, title="+DI")
plot(diminus, color=color.orange, title="-DI")
Rückgabewert
Die drei Subgruppen der DMI-Serie: Positive Bewegung ((+DI), Negative Bewegung ((-DI) und Durchschnittsbewegung ((ADX)) [2].
Parameter
diLength(simple int) DI Period。adxSmoothing(simple int) ADX-Gleichzyklus
Siehe auch
ta.rsi ta.tsi ta.mfi
ta.falling
TestssourceSerie fürlengthK-Line-long ist im Rückgang.
ta.falling(source, length)
Rückgabewert
Wenn wir jetztsourceWeniger alslengthDie K-Linie kehrt zu jeder vorherigensourceDer Wert ist true oder false.
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
Siehe auch
ta.rising
ta.rising
TestssourceSerie fürlengthK-Line-long ist auf dem Vormarsch
ta.rising(source, length)
Rückgabewert
Wenn wir jetztsourceMehr als das.lengthDie K-Linie kehrt zu jeder vorherigensourceDer Wert ist true oder false.
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
Siehe auch
ta.falling
ta.pivothigh
Diese Funktion gibt den Preis des Pivot-High-Points zurück. Wenn kein Pivot-High-Points vorhanden ist, wird NaN<unk> zurückgegeben.
ta.pivothigh(source, leftbars, rightbars)
ta.pivothigh(leftbars, rightbars)
Beispiel
pine
leftBars = input(2)
rightBars=input(2)
ph = ta.pivothigh(leftBars, rightBars)
plot(ph, style=plot.style_cross, linewidth=3, color= color.red, offset=-rightBars)
Rückgabewert
Der Preis an dieser Stelle oder "NaN".
Parameter
source(series int/float) Auswählbare Parameter。 Berechnungswert der Datenreihe。 Default 'High'。leftbars(series int/float) Linke Kraftrightbars(series int/float) Die rechte Länge.
Anmerkung
Wenn die Parameter 'leftbars' oder 'rightbars' seriell sind, sollten Sie die max_bars_back-Funktion als 'source'-Variable verwenden.
ta.pivotlow
Diese Funktion gibt den Preis des Pivot-Low-Punktes zurück. Wenn kein Pivot-Low-Punkt vorhanden ist, gibt sie den Wert von NaN<unk> zurück.
ta.pivotlow(source, leftbars, rightbars)
ta.pivotlow(leftbars, rightbars)
Beispiel
pine
leftBars = input(2)
rightBars=input(2)
pl = ta.pivotlow(close, leftBars, rightBars)
plot(pl, style=plot.style_cross, linewidth=3, color= color.blue, offset=-rightBars)
Rückgabewert
Der Preis an dieser Stelle oder "NaN".
Parameter
source(series int/float) Optionale Parameter。 Berechnungswert der Datenreihe。 Standard ist <unk>Low<unk>。leftbars(series int/float) Linke Kraftrightbars(series int/float) Die rechte Länge.
Anmerkung
Wenn die Parameter 'leftbars' oder 'rightbars' seriell sind, sollten Sie die max_bars_back-Funktion als 'source'-Variable verwenden.
ta.highest
Die höchste der angegebenen Werte der letzten k-Zeile.
ta.highest(source, length)
ta.highest(length)
Rückgabewert
Höchste Wert in der Reihe.
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
Anmerkung
Zwei Versionen von args:sourceEs ist eine Serie.lengthist die Anzahl der zurückgegebenen K-Streifen.
Eine Arg-Version:lengthist die Anzahl der zurückgegebenen K-Linien.sourceDie Serie
Siehe auch
ta.lowest ta.lowestbars ta.highestbars ta.valuewhen ta.barssince
ta.highestbars
Die maximale Abweichung einer gegebenen Anzahl von Zahlen über die k-Linie.
ta.highestbars(source, length)
ta.highestbars(length)
Rückgabewert
Die höchste k-Linie.
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
Anmerkung
Zwei Versionen von args:sourceEs ist eine Serie.lengthist die Anzahl der zurückgegebenen K-Streifen.
Eine Arg-Version:lengthist die Anzahl der zurückgegebenen K-Linien.sourceDie Serie
Siehe auch
ta.lowest ta.highest ta.lowestbars ta.barssince ta.valuewhen
ta.stoch
Zufällige Kennziffern. Berechnungsformel: 100 * (close - lowest, length) / (highest, high, length) - lowest, length)
ta.stoch(source, high, low, length)
Rückgabewert
Zufällig
Parameter
source(series int/float) Quelle der Serie <unk>high(series int/float) Hochreihenlow(series int/float) Niedrigere Reihelength(Series int) Länge (Zahl der K-Zeilen)
Siehe auch
ta.cog
ta.supertrend
Ein Supertrend-Indikator. Ein Supertrend-Indikator ist ein Indikator, der einem Trend folgt.
ta.supertrend(factor, atrPeriod)
Beispiel
pine
//@version=5
indicator("Pine Script™ Supertrend")
[supertrend, direction] = ta.supertrend(3, 10)
plot(direction < 0 ? supertrend : na, "Up direction", color = color.green, style=plot.style_linebr)
plot(direction > 0 ? supertrend : na, "Down direction", color = color.red, style=plot.style_linebr)
// The same on Pine Script™
pine_supertrend(factor, atrPeriod) =>
src = hl2
atr = ta.atr(atrPeriod)
upperBand = src + factor * atr
lowerBand = src - factor * atr
prevLowerBand = nz(lowerBand[1])
prevUpperBand = nz(upperBand[1])
lowerBand := lowerBand > prevLowerBand or close[1] < prevLowerBand ? lowerBand : prevLowerBand
upperBand := upperBand < prevUpperBand or close[1] > prevUpperBand ? upperBand : prevUpperBand
int direction = na
float superTrend = na
prevSuperTrend = superTrend[1]
if na(atr[1])
direction := 1
else if prevSuperTrend == prevUpperBand
direction := close > upperBand ? -1 : 1
else
direction := close < lowerBand ? 1 : -1
superTrend := direction == -1 ? lowerBand : upperBand
[superTrend, direction]
[pineSupertrend, pineDirection] = pine_supertrend(3, 10)
plot(pineDirection < 0 ? pineSupertrend : na, "Up direction", color = color.green, style=plot.style_linebr)
plot(pineDirection > 0 ? pineSupertrend : na, "Down direction", color = color.red, style=plot.style_linebr)
Rückgabewert
Zwei Subgruppen der Übertrendreihe: die Übertrendlinie und die Trendrichtung. Die möglichen Werte sind 1 (in Richtung nach unten) und -1 (in Richtung nach oben).
Parameter
factor(series int/float) ATR wird mit dem Multiplikator multipliziert.atrPeriod(simple int) Durchschnittliche reale Wellenlänge
Siehe auch
ta.macd
ta.lowest
Die Mindestwerte für eine gegebene Anzahl von Zeilen, die an der k-Zeile vorbeigehen.
ta.lowest(source, length)
ta.lowest(length)
Rückgabewert
Mindeste Wert in der Reihe.
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
Anmerkung
Zwei Versionen von args:sourceEs ist eine Serie.lengthist die Anzahl der zurückgegebenen K-Streifen.
Eine Arg-Version:lengthist die Anzahl der zurückgegebenen K-Linien.sourceDie Serie
Siehe auch
ta.highest ta.lowestbars ta.highestbars ta.valuewhen ta.barssince
ta.lowestbars
Die Mindestverschiebung einer gegebenen Anzahl von K-Linien.
ta.lowestbars(source, length)
ta.lowestbars(length)
Rückgabewert
Die Abweichung auf die untere k-Linie.
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Gibt eine K-Zeile zurück.
Anmerkung
Zwei Versionen von args:sourceEs ist eine Serie.lengthist die Anzahl der zurückgegebenen K-Streifen.
Eine Arg-Version:lengthist die Anzahl der zurückgegebenen K-Linien.sourceDie Serie
Siehe auch
ta.lowest ta.highest ta.highestbars ta.barssince ta.valuewhen
ta.valuewhen
Gibt den Wert der Quellsource-Quellreihe für die K-Linie zurück, bei der die Quellcondition-Quelle als n-tes jüngstes Vorkommen wahr ist.
ta.valuewhen(condition, source, occurrence)
Beispiel
pine
slow = ta.sma(close, 7)
fast = ta.sma(close, 14)
// Get value of `close` on second most recent cross
plot(ta.valuewhen(ta.cross(slow, fast), close, 1))
Parameter
condition(series bool) Suche nach einer Bedingungsource(series int/float/bool/color) Der Wert, der von der K-Zeile zurückgegeben wird, die die Bedingungen erfüllt.occurrence(simple int) Auftreten der Bedingung ≠ die Zahl beginnt mit 0 und geht zurück in der Zeit, so dass ≠ 0 ≠ der jüngste ≠ condition ≠ 1 ≠ der zweitlängste ≠ 2 und so weiter ≠ muss eine ganze Zahl sein >= 0 ≠
Anmerkung
Diese Funktion muss auf jeder K-Zeile ausgeführt werden. Es wird nicht empfohlen, sie in einer For- oder While-Loop-Struktur zu verwenden, da sie sich unerwartet verhalten kann. Bitte beachten Sie, dass die Verwendung dieser Funktion dazu führen kann, dass der Indikator neu gezeichnet wird.
Siehe auch
ta.lowestbars ta.highestbars ta.barssince ta.highest ta.lowest
ta.vwap
Gewichtete Durchschnittspreise
ta.vwap(source)
Rückgabewert
Gewichtete Durchschnittszahl
Parameter
source(series int/float) Quelle der Serie <unk>
Siehe auch
ta.vwap
ta.vwma
Funktion vwma wird zurückgegebenlengthK-LiniesourceDer durchschnittlich gewichtete Moving Average der Transaktionsmenge ≠ ist gleich: sma (Quelle * Volumen, Länge) / sma (Volumen, Länge).
ta.vwma(source, length)
Beispiel
pine
plot(ta.vwma(close, 15))
// same on pine, but less efficient
pine_vwma(x, y) =>
ta.sma(x * volume, y) / ta.sma(volume, y)
plot(pine_vwma(close, 15))
Rückgabewert
lengthK-Strecke zurückgegebensourceDie Transaktionsmenge ist ein gewichteter Moving Average.
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
Siehe auch
ta.sma ta.ema ta.rma ta.wma ta.swma ta.alma
ta.wpr
Williams %R. Dieser Schwankungsindikator zeigt die Beziehung zwischen dem aktuellen Schlusskurs und den hohen/niedrigen Preisen in der Vergangenheit.
ta.wpr(length)
Beispiel
pine
plot(ta.wpr(14), title="%R", color=color.new(#ff6d00, 0))
Rückgabewert
Williams %R。
Parameter
length(series int) Anzahl der Zeilen K。
plot
plot
Eine Reihe von Daten auf einer Grafik zu zeichnen.
plot(series, title, color, linewidth, style, trackprice, histbase, offset, join, editable, show_last, display)
Beispiel
pine
plot(high+low, title='Title', color=color.new(#00ffaa, 70), linewidth=2, style=plot.style_area, offset=15, trackprice=true)
// You may fill the background between any two plots with a fill() function:
p1 = plot(open)
p2 = plot(close)
fill(p1, p2, color=color.new(color.green, 90))
Rückgabewert
Graphische Objekte, die für Fill verwendet werden können.
Parameter
series(series int/float) Die zu zeichnende Datenreihe. Die erforderlichen Parameter.title(const string) Zeichnung der Überschrift。color(series color) Farbe der Zeichnung. Sie können Konstanten wie 'color = red' oder 'color =#ff001a' sowie komplexe Ausdrücke wie 'color = close >= open ? green: red' verwenden.linewidth(input int) Zeichnen Sie die Breite der Linien. Der Standardwert ist 1. Nicht für alle Stile gilt.style(plot_style) Plot-Typ. Die möglichen Werte sind plot.style_line, plot.style_stepline, plot.style_stepline_diamond, plot.style_histogram, plot.style_cross, plot.style_area, plot.style_columns, plot.style_circles, plot.style_linebr, plot.style_areabr. Der Standardwert ist plot.style_line.trackprice(input bool) Wenn true, wird die horizontale Preislinie auf der Ebene des letzten Kennwerts angezeigt.histbase(input int/float) Der Wert des Referenzniveaus wird verwendet, wenn ein Diagramm im Plot.style_histogramm, Plot.style_columns oder Plot.style_area-Stil erstellt wird. Der Standardwert ist 0.0offset(series int) Bewegt die Grafik links oder rechts auf einer bestimmten Anzahl von K-Linien. 0 ist der Standardwert.join(input bool) Wenn true ist, wird der Zeichnungspunkt mit der Leitung verbunden. Dies gilt nur für die Formen plot.style_cross und plot.style_circles.editable(const bool) Wenn true verwendet wird, können Sie den Grafikstil im Format-Dialogfeld bearbeiten. Die Standardeinstellung ist true.show_last(input int) Wenn eingestellt, definiert man die Anzahl der K-Linien, die in der Grafik gezeichnet werden (< zurück von der letzten K-Linie) <unk>.display(plot_display) Die Steuerung zeigt die Position der Zeichnung an. Die möglichen Werte sind: display.none, display.all. Die Standardwerte sind display.all.overlay(const bool) Der Parameter, der von der FMZ-Plattform erweitert wird, um die aktuelle Funktion auf der Hauptgrafik ([settrue]) oder der Nebengrafik ([setfalse]) anzuzeigen. Die Default-Wertung ist false.strategyoderindicatorInoverlayParameter eingestelltstrategyoderindicatorKeine EinstellungenoverlayDie Parameter werden nach den Standardparametern behandelt.
Siehe auch
plotshape plotchar bgcolor
plotshape
Zeichnen Sie die sichtbaren Formen auf der Grafik.
plotshape(series, title, style, location, color, offset, text, textcolor, editable, size, show_last, display)
Beispiel
pine
data = close >= open
plotshape(data, style=shape.xcross)
Parameter
series(series bool) Eine Reihe von Daten, die als eine Form dargestellt werden. Die Reihe wird als eine Reihe von Boole-Werten für alle Positionswerte außer location.absolute betrachtet. Die erforderlichen Parameter.title(const string) Zeichnung der Überschrift。style(input string) Zeichnungstypen。 Die möglichen Werte sind: shape.xcross, shape.cross, shape.triangleup, shape.triangledown, shape.flag, shape.circle, shape.arrowup, shape.arrowdown, shape.labelup, shape.labeldown, shape.square, shape.diamond。 Der Standardwert ist shape.xcross。location(input string) Form der Position in der Grafik. Mögliche Werte sind: location.abovebar, location.belowbar, location.top, location.bottom, location.absolute. Die Standardwerte sind location.abovebar.color(series color) Farbe in Form. Sie können Konstanten wie 'color = red' oder 'color =#ff001a' und komplexe Ausdrücke wie 'color = close >= open ? green: red' verwenden. Optionale Parameter.offset(series int) Die Form bewegt sich auf einer bestimmten Anzahl von K-Zeilen nach links oder rechts. Der Standardwert ist 0text(const string) Text wird in Form angezeigt. Sie können mehrere Zeilen Text verwenden, wobei Sie die Zeilen mit einer '\n' Übersetzungsfolge trennen. Beispiel: 'line one\nline two'textcolor(series color) Farbe des Textes. Sie können Konstanten wie 'textcolor=red' oder 'textcolor=#ff001a' und komplexe Ausdrücke wie 'textcolor = close >= open ? green: red' verwenden. Optionale Parameter.editable(const bool) Wenn true, kann der Plotshape-Stil im Format-Dialogfeld bearbeitet werden. Die Standardeinstellung ist true.show_last(input int) Wenn eingestellt, definiert man die Anzahl der Formen, die in der Grafik abgebildet werden (<< zurück von der letzten k-Zeile zurück) <unk>size(const string) Die Größe der Zeichen in der Grafik. Die möglichen Werte sind size.auto, size.tiny, size.small, size.normal, size.large, size.huge. Die Standardwahrung ist size.auto.display(plot_display) Die Steuerung zeigt die Position der Zeichnung an. Die möglichen Werte sind: display.none, display.all. Die Standardwerte sind display.all.overlay(const bool) Der Parameter, der von der FMZ-Plattform erweitert wird, um die aktuelle Funktion auf der Hauptgrafik ([settrue]) oder der Nebengrafik ([setfalse]) anzuzeigen. Die Default-Wertung ist false.strategyoderindicatorInoverlayParameter eingestelltstrategyoderindicatorKeine EinstellungenoverlayDie Parameter werden nach den Standardparametern behandelt.
Siehe auch
plot plotchar bgcolor
plotchar
Zeichnen Sie die sichtbaren Formen mit einem beliebigen Unicode-Zeichen auf der Grafik.
plotchar(series, title, char, location, color, offset, text, textcolor, editable, size, show_last, display)
Beispiel
pine
data = close >= open
plotchar(data, char='❄')
Parameter
series(series bool) Eine Reihe von Daten, die als eine Form dargestellt werden. Die Reihe wird als eine Reihe von Boole-Werten für alle Positionswerte außer location.absolute betrachtet. Die erforderlichen Parameter.title(const string) Zeichnung der Überschrift。char(input string) Zeichen als visuelle Formenlocation(input string) Form der Position in der Grafik. Mögliche Werte sind: location.abovebar, location.belowbar, location.top, location.bottom, location.absolute. Die Standardwerte sind location.abovebar.color(series color) Farbe in Form. Sie können Konstanten wie 'color = red' oder 'color =#ff001a' und komplexe Ausdrücke wie 'color = close >= open ? green: red' verwenden. Optionale Parameter.offset(series int) Die Form bewegt sich auf einer bestimmten Anzahl von K-Zeilen nach links oder rechts. Der Standardwert ist 0text(const string) Text wird in Form angezeigt. Sie können mehrere Zeilen Text verwenden, wobei Sie die Zeilen mit einer '\n' Übersetzungsfolge trennen. Beispiel: 'line one\nline two'textcolor(series color) Farbe des Textes. Sie können Konstanten wie 'textcolor=red' oder 'textcolor=#ff001a' und komplexe Ausdrücke wie 'textcolor = close >= open ? green: red' verwenden. Optionale Parameter.editable(const bool) Wenn true ist, kann der Plotchar-Stil im Format-Dialogfeld bearbeitet werden. Die Standardeinstellung ist true.show_last(input int) Wenn so eingestellt, wird die Anzahl der Diagramme definiert, die in der Tabelle angezeigt werden sollen (<< zurück von der letzten k-Zeile) <unk>size(const string) Die Größe der Zeichen in der Grafik. Die möglichen Werte sind: size.auto,size.tiny,size.small,size.normal,size.large,size.huge. Die Standardwerte sind size.auto.display(plot_display) Die Steuerung zeigt die Position der Zeichnung an. Die möglichen Werte sind: display.none, display.all. Die Standardwerte sind display.all.overlay(const bool) Der Parameter, der von der FMZ-Plattform erweitert wird, um die aktuelle Funktion auf der Hauptgrafik ([settrue]) oder der Nebengrafik ([setfalse]) anzuzeigen. Die Default-Wertung ist false.strategyoderindicatorInoverlayParameter eingestelltstrategyoderindicatorKeine EinstellungenoverlayDie Parameter werden nach den Standardparametern behandelt.
Siehe auch
plot plotshape bgcolor
plotcandle
Zeichnen Sie die Wurzeln auf der Grafik.
plotcandle(open, high, low, close, title, color, wickcolor, editable, show_last, bordercolor, display)
Beispiel
pine
indicator("plotcandle example", overlay=true)
plotcandle(open, high, low, close, title='Title', color = open < close ? color.green : color.red, wickcolor=color.black)
Parameter
open(series int/float) Die Datenöffnungsreihe wird als Schachtelöffnungswert。 notwendige Parameter。 verwendet.high(series int/float) Hochreihen-Daten als Hochwert der Reihe. Die erforderlichen Parameter.low(series int/float) Die Daten der niedrigen Reihe werden als niedrige Werte für die Kette verwendet.close(series int/float) Schließung der Serie als Wert für die Schließung der k-Zeile. Die erforderlichen Parameter.title(const string) Titel der plotcandle. Optionale Parameter.color(series color) Die Farbe des Bildschirms. Sie können Konstanten wie 'color = red' oder 'color = #ff001a' und komplexe Ausdrücke wie 'color = close >= open ? green: red' verwenden. Optionale Parameter.wickcolor(series color) Die Farbe des Leuchtkörpers.editable(const bool) Wenn true, kann der Plotcandle-Stil im Format-Dialogfeld bearbeitet werden. Die Standardeinstellung ist true.show_last(input int) Wenn eingestellt, definiert die Zahl der Ecken, die in der Tabelle angezeigt werden (< zurück von der letzten k-Zeile) <unk>.bordercolor(series color) Die Farbe der Rahmen des Bildschirms.display(plot_display) Die Steuerung zeigt die Position der Zeichnung an. Die möglichen Werte sind: display.none, display.all. Die Standardwerte sind display.all.overlay(const bool) Der Parameter, der von der FMZ-Plattform erweitert wird, um die aktuelle Funktion auf der Hauptgrafik ([settrue]) oder der Nebengrafik ([setfalse]) anzuzeigen. Die Default-Wertung ist false.strategyoderindicatorInoverlayParameter eingestelltstrategyoderindicatorKeine EinstellungenoverlayDie Parameter werden nach den Standardparametern behandelt.
Anmerkung
Wenn NaN in der Hoch- und Niedrig-Gewinn-Skala verwendet wird, muss die K-Linie nicht angezeigt werden.
Die Maximalwerte für auf, hoch, niedrig und auf werden auf auf und ab und die Minimalwerte auf auf und ab gesetzt.
Siehe auch
plotbar
plotarrow
Aufwärts- und Abwärts-Pfeile auf der Grafik: Aufwärts-Pfeile werden auf jeden positiven Indikator gezeichnet, während Abwärts-Pfeile auf jeden negativen Wert gezeichnet werden. Wenn der Indikator na zurückgibt, werden die Pfeile nicht gezeichnet. Die Pfeile haben unterschiedliche Höhen, je größer der absolute Wert des Indikators ist, desto länger werden die Pfeile gezeichnet.
plotarrow(series, title, colorup, colordown, offset, minheight, maxheight, editable, show_last, display)
Beispiel
codiff = close - open
plotarrow(codiff, colorup=color.new(color.teal,40), colordown=color.new(color.orange, 40), overlay=true)
Parameter
series(series int/float) Die Datenreihe, die als Pfeil gezeichnet werden soll. Die erforderlichen Parameter.title(const string) Zeichnung der Überschrift。colorup(series color) Farbe des aufwärts gerichteten Pfeils.colordown(series color) Farbe des nach unten gerichteten Pfeils.offset(series int) Bewegt den Pfeil nach links oder rechts auf einer bestimmten Anzahl von K-Linien. Der Standardwert ist 0minheight(input int) Die kleinste mögliche Pfeilhöhe in Pixel. Der Standardwert ist 5maxheight(input int) Die maximal mögliche Pfeilhöhe in Pixeln. Die Standardeinstellung ist 100editable(const bool) Wenn true, kann der Plotarrow-Stil im Format-Dialogfeld bearbeitet werden. Die Standardeinstellung ist true.show_last(input int) Definiert die Anzahl der Pfeile, die in der Tabelle angezeigt werden, wenn diese eingestellt ist (< zurück von der letzten k-Zeile) <unk>display(plot_display) Die Steuerung zeigt die Position der Zeichnung an. Die möglichen Werte sind: display.none, display.all. Die Standardwerte sind display.all.overlay(const bool) Der Parameter, der von der FMZ-Plattform erweitert wird, um die aktuelle Funktion auf der Hauptgrafik ([settrue]) oder der Nebengrafik ([setfalse]) anzuzeigen. Die Default-Wertung ist false.strategyoderindicatorInoverlayParameter eingestelltstrategyoderindicatorKeine EinstellungenoverlayDie Parameter werden nach den Standardparametern behandelt.
Siehe auch
plot plotshape plotchar barcolor bgcolor
array
array.pop
Die Funktion entfernt das letzte Element aus dem Array und gibt dessen Wert zurück.
array.pop(id)
Beispiel
pine
// array.pop example
a = array.new_float(5,high)
removedEl = array.pop(a)
plot(array.size(a))
plot(removedEl)
Rückgabewert
Werte der entfernten Elemente.
Parameter
id(any array type) Array-Objekte
Siehe auch
array.new_float array.set array.push array.remove array.insert array.shift
array.shift
Die Funktion entfernt das erste Element des Arrays und gibt dessen Wert zurück.
array.shift(id)
Beispiel
pine
// array.shift example
a = array.new_float(5,high)
removedEl = array.shift(a)
plot(array.size(a))
plot(removedEl)
Rückgabewert
Werte der entfernten Elemente.
Parameter
id(any array type) Array-Objekte
Siehe auch
array.unshift array.set array.push array.remove array.includes
array.unshift
Diese Funktion fügt die Werte in die ursprüngliche Position des Arrays ein.
array.unshift(id, value)
Beispiel
pine
// array.unshift example
a = array.new_float(5, 0)
array.unshift(a, open)
plot(array.get(a, 0))
Parameter
id(any array type) Array-Objektevalue(series <type of the array's elements>) Der Wert, der der ursprünglichen Position des Arrays hinzugefügt werden soll.
Siehe auch
array.shift array.set array.insert array.remove array.indexof
array.size
Die Funktion gibt die Anzahl der Elemente in der Matrix zurück.
array.size(id)
Beispiel
pine
// array.size example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
// note that changes in slice also modify original array
slice = array.slice(a, 0, 5)
array.push(slice, open)
// size was changed in slice and in original array
plot(array.size(a))
plot(array.size(slice))
Rückgabewert
Anzahl der Elemente in der Array.
Parameter
id(any array type) Array-Objekte
Siehe auch
array.new_float array.sum array.slice array.sort
array.slice
Diese Funktion erzeugt eine Aufspaltung aus einer vorhandenen Array. Wenn ein Objekt in der Aufspaltung geändert wird, werden die Änderungen sowohl auf die neue Array als auch auf die ursprüngliche Array angewendet.
array.slice(id, index_from, index_to)
Beispiel
pine
// array.slice example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
// take elements from 0 to 4
// *note that changes in slice also modify original array
slice = array.slice(a, 0, 5)
plot(array.sum(a) / 10)
plot(array.sum(slice) / 5)
Rückgabewert
Das ist eine schwache Kopie der zerrissenen Array.
Parameter
id(any array type) Array-Objekteindex_from(series int) Der Index beginnt mit Null, um zu extrahieren.index_to(series int) Der Index beginnt mit Null, bevor die Extraktion abgeschlossen ist. Die Funktion extrahiert die Elemente vor diesem Index.
Siehe auch
array.new_float array.get array.sort
array.abs
Gibt einen Array zurück, der die absoluten Werte für jedes Element des ursprünglichen Arrays enthält.
array.abs(id)
Parameter
id(int[]/float[Die Array-Objekte
Siehe auch
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.binary_search
Die Funktion gibt einen Index für den Wert zurück, und wenn dieser nicht gefunden wird, wird -1 zurückgegeben. Die Arrays, die gesucht werden, müssen in der Reihenfolge der Erhöhung sortiert sein.
array.binary_search(id, val)
Beispiel
pine
// array.binary_search
a = array.from(5, -2, 0, 9, 1)
array.sort(a) // [-2, 0, 1, 5, 9]
position = array.binary_search(a, 0) // 1
plot(position)
Parameter
id(int[]/float[Die Array-Objekteval(series int/float) Die Werte, die in einer Reihe gesucht werden.
Anmerkung
Die binäre Suche wird für Arrays verwendet, die in einer steigenden Reihenfolge vorgeordnet sind. Sie vergleicht zuerst die Elemente in der Mitte der Array mit den Zielwerten. Wenn die Elemente mit den Zielwerten übereinstimmen, wird ihre Position in der Array zurückgegeben.
Siehe auch
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.binary_search_leftmost
Wenn der Wert gefunden wird, gibt die Funktion den Index für diesen Wert zurück. Wenn der Wert nicht gefunden wird, gibt die Funktion den Index für das nächste kleinste Element zurück, das sich auf der linken Seite des Wertstands befindet, wenn es in der Array ist. Die Arrays, die gesucht werden müssen, müssen in der Reihenfolge der Erhöhung sortiert sein.
array.binary_search_leftmost(id, val)
Beispiel
pine
// array.binary_search_leftmost
a = array.from(5, -2, 0, 9, 1)
array.sort(a) // [-2, 0, 1, 5, 9]
position = array.binary_search_leftmost(a, 3) // 2
plot(position)
Parameter
id(int[]/float[Die Array-Objekteval(series int/float) Die Werte, die in einer Reihe gesucht werden.
Anmerkung
Die binäre Suche wird für Arrays verwendet, die in einer steigenden Reihenfolge vorgeordnet sind. Sie vergleicht zuerst die Elemente in der Mitte der Array mit den Zielwerten. Wenn die Elemente mit den Zielwerten übereinstimmen, wird ihre Position in der Array zurückgegeben.
Siehe auch
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.binary_search_rightmost
Wenn der Wert gefunden wird, gibt die Funktion den Index für diesen Wert zurück. Wenn der Wert nicht gefunden wird, gibt die Funktion den Index für die Elemente zurück, auf denen der Wert rechts von seiner Position in der Array liegt. Die Arrays müssen in aufsteigender Reihenfolge sortiert sein.
array.binary_search_rightmost(id, val)
Beispiel
pine
// array.binary_search_rightmost
a = array.from(5, -2, 0, 9, 1)
array.sort(a) // [-2, 0, 1, 5, 9]
position = array.binary_search_rightmost(a, 3) // 3
plot(position)
Parameter
id(int[]/float[Die Array-Objekteval(series int/float) Die Werte, die in einer Reihe gesucht werden.
Anmerkung
Die binäre Suche arbeitet in der Erhöhungsfolge für die sortierten Arrays. Sie vergleicht zunächst die Elemente in der Mitte der Array mit den Zielwerten. Wenn die Elemente mit den Zielwerten übereinstimmen, wird ihre Position in der Array zurückgegeben. Wenn der Wert des Elements größer als der Zielwert ist, wird die Suche in der unteren Hälfte der Array fortgesetzt.
Siehe auch
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.sort
Diese Funktion ordnet die Elemente der Array.
array.sort(id, order)
Beispiel
pine
// array.sort example
a = array.new_float(0,0)
for i = 0 to 5
array.push(a, high[i])
array.sort(a, order.descending)
if barstate.islast
runtime.log(str.tostring(a))
Parameter
id(int[]/float[]/string[Die Array-Objekteorder(sort_order) Ordnungsfolge: order.ascending (default) oder order.descending.
Siehe auch
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.sort_indices
Gibt eine Index-Array zurück, die ihre Elemente in der Reihenfolge, in der sie verwendet werden, um die ursprüngliche Array zu indexieren. Es wird die ursprüngliche Array nicht geändert.
array.sort_indices(id, order)
Beispiel
pine
// array.sort_indices
a = array.from(5, -2, 0, 9, 1)
sortedIndices = array.sort_indices(a) // [1, 2, 4, 0, 3]
indexOfSmallestValue = array.get(sortedIndices, 0) // 1
smallestValue = array.get(a, indexOfSmallestValue) // -2
plot(smallestValue)
Parameter
id(int[]/float[]/string[Die Array-Objekteorder(sort_order) Ordnungsfolge: order.ascending oder order.descending.
Siehe auch
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.clear
Diese Funktion löscht alle Elemente aus dem Array.
array.clear(id)
Beispiel
pine
// array.clear example
a = array.new_float(5,high)
array.clear(a)
array.push(a, close)
plot(array.get(a,0))
plot(array.size(a))
Parameter
id(any array type) Array-Objekte
Siehe auch
array.new_float array.insert array.push array.remove array.pop
array.concat
Diese Funktion wird verwendet, um zwei Arrays zu kombinieren. Sie schiebt alle Elemente aus der zweiten Array in die erste Array und gibt sie dann zurück.
array.concat(id1, id2)
Beispiel
pine
// array.concat example
a = array.new_float(0,0)
b = array.new_float(0,0)
for i = 0 to 4
array.push(a, high[i])
array.push(b, low[i])
c = array.concat(a,b)
plot(array.size(a))
plot(array.size(b))
plot(array.size(c))
Rückgabewert
Das erste Array enthält die kombinierten Elemente aus dem zweiten Array.
Parameter
id1(any array type) Das erste Array-Objekt.id2(any array type) Das zweite Array-Objekt.
Siehe auch
array.new_float array.insert array.slice
array.copy
Diese Funktion erstellt eine Kopie eines vorhandenen Arrays.
array.copy(id)
Beispiel
pine
// array.copy example
length = 5
a = array.new_float(length, close)
b = array.copy(a)
a := array.new_float(length, open)
plot(array.sum(a) / length)
plot(array.sum(b) / length)
Rückgabewert
Kopien der Arrays.
Parameter
id(any array type) Array-Objekte
Siehe auch
array.new_float array.get array.slice array.sort
array.stdev
Die Funktion gibt die Standarddifferenz der Array-Elemente zurück.
array.stdev(id, biased)
Beispiel
pine
// array.stdev example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.stdev(a))
Rückgabewert
Die Array-Elemente sind nicht standardmäßig.
Parameter
id(int[]/float[Die Array-Objektebiased(series bool) Bestimmt, welche Schätzung verwendet werden soll. Optional. Der Standardwert ist true.
Anmerkung
WennbiasedWenn true, berechnet die Funktion mit einer partiellen Schätzung für die Gesamtheit, und wenn false, mit einer unparteiischen Schätzung für die Probe.
Siehe auch
array.new_float array.max array.min array.avg
array.standardize
Die Funktion gibt ein Array mit standardisierten Elementen zurück.
array.standardize(id)
Beispiel
pine
// array.standardize example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
b = array.standardize(a)
plot(array.min(b))
plot(array.max(b))
Rückgabewert
Arrays mit standardisierten Elementen.
Parameter
id(int[]/float[Die Array-Objekte
Siehe auch
array.max array.min array.mode array.avg array.variance array.stdev
array.variance
Die Funktion gibt die Differenz der Array-Elemente zurück.
array.variance(id, biased)
Beispiel
pine
// array.variance example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.variance(a))
Rückgabewert
Quadrat der Elemente der Array.
Parameter
id(int[]/float[Die Array-Objektebiased(series bool) Bestimmt, welche Schätzung verwendet werden soll. Optional. Der Standardwert ist true.
Anmerkung
WennbiasedWenn true, berechnet die Funktion mit einer partiellen Schätzung für die Gesamtheit, und wenn false, mit einer unparteiischen Schätzung für die Probe.
Siehe auch
array.new_float array.stdev array.min array.avg array.covariance
array.covariance
Die Funktion gibt die Kohärenz der beiden Arrays zurück.
array.covariance(id1, id2, biased)
Beispiel
pine
// array.covariance example
a = array.new_float(0)
b = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
array.push(b, open[i])
plot(array.covariance(a, b))
Rückgabewert
Die Kohärenz der beiden Arrays.
Parameter
id1(int[]/float[Die Array-Objekteid2(int[]/float[Die Array-Objektebiased(series bool) Bestimmt, welche Schätzung verwendet werden soll. Optional. Der Standardwert ist true.
Anmerkung
WennbiasedWenn true, berechnet die Funktion mit einer partiellen Schätzung für die Gesamtheit, und wenn false, mit einer unparteiischen Schätzung für die Probe.
Siehe auch
array.new_float array.max array.stdev array.avg array.variance
array.fill
Die Funktion setzt die Elemente der Array auf einzelne Werte. Wenn kein Index angegeben ist, setzen Sie alle Elemente ein. Wenn nur der Anfangsindex angegeben ist (default 0), setzen Sie die Elemente ein, die mit diesem Index beginnen.
array.fill(id, value, index_from, index_to)
Beispiel
pine
// array.fill example
a = array.new_float(10)
array.fill(a, close)
plot(array.sum(a))
Parameter
id(any array type) Array-Objektevalue(series <type of the array's elements>) Die Werte, die verwendet werden, um die Array zu füllen.index_from(series int) Anfangsindex, Standard ist 0。index_to(series int) End-Index, wobei na ≠ größer sein muss als der Index des letzten Elements, das eingestellt werden soll.
Siehe auch
array.new_float array.set array.slice
array.includes
Wenn der Wert in der Array gefunden wird, gibt die Funktion true zurück, andernfalls false.
array.includes(id, value)
Beispiel
pine
// array.includes example
a = array.new_float(5,high)
p = close
if array.includes(a, high)
p := open
plot(p)
Rückgabewert
Wenn der Wert in der Array gefunden wird, ist er true, andernfalls false.
Parameter
id(any array type) Array-Objektevalue(series <type of the array's elements>) Die Werte, die in den Arrays gesucht werden.
Siehe auch
array.new_float array.indexof array.shift array.remove array.insert
array.insert
Die Funktion ändert den Inhalt des Arrays, indem sie neue Elemente in der richtigen Position hinzufügt.
array.insert(id, index, value)
Beispiel
pine
// array.insert example
a = array.new_float(5, close)
array.insert(a, 0, open)
plot(array.get(a, 5))
Parameter
id(any array type) Array-Objekteindex(series int) Index für die Eingabewerte.value(series <type of the array's elements>) Werden in die Array aufgenommen.
Siehe auch
array.new_float array.set array.push array.remove array.pop array.unshift
array.join
Die Funktion erstellt und gibt neue Strings zurück, die durch die Verbindung aller Elemente des Arrays, getrennt durch die angegebenen Trennzeichenstrings, getrennt werden.
array.join(id, separator)
Beispiel
pine
// array.join example
a = array.new_float(5, 5)
runtime.log(array.join(a, ","))
Parameter
id(int[]/float[]/string[Die Array-Objekteseparator(series string) Die Zeichenfolge, die die Elemente einer Reihe voneinander trennt.
Siehe auch
array.new_float array.set array.insert array.remove array.pop array.unshift
array.lastindexof
Diese Funktion gibt den Index zurück, in dem der Wert zuletzt aufgetreten ist. Wenn dieser Wert nicht gefunden wird, wird -1 zurückgegeben.
array.lastindexof(id, value)
Beispiel
pine
// array.lastindexof example
a = array.new_float(5,high)
index = array.lastindexof(a, high)
plot(index)
Rückgabewert
Index der Elemente
Parameter
id(any array type) Array-Objektevalue(series <type of the array's elements>) Die Werte, die in den Arrays gesucht werden.
Siehe auch
array.new_float array.set array.push array.remove array.insert
array.max
Die Funktion gibt den Maximalwert oder den n-ten Maximalwert in der angegebenen Array zurück.
array.max(id, nth)
Beispiel
pine
// array.max
a = array.from(5, -2, 0, 9, 1)
secondHighest = array.max(a, 2) // 1
plot(secondHighest)
Rückgabewert
Die größte oder die n-größte Zahl in der Reihe.
Parameter
id(int[]/float[Die Array-Objektenth(series int) gibt den n-ten größten Wert zurück, wobei 0 der größte Wert ist. Optional. Null ist der Standardwert.
Siehe auch
array.new_float array.min array.sum
array.min
Die Funktion gibt den Minimalwert, oder den n-ten Minimalwert in der gegebenen Reihenfolge, zurück.
array.min(id, nth)
Beispiel
pine
// array.min
a = array.from(5, -2, 0, 9, 1)
secondLowest = array.min(a, 1) // 0
plot(secondLowest)
Rückgabewert
Die kleinste oder die n-kleinste Wert in der Reihe.
Parameter
id(int[]/float[Die Array-Objektenth(series int) Die n-te Mindestwerte, die zurückgegeben werden sollen, wobei 0 die Mindestwerte ist. Optional. Default ist Null.
Siehe auch
array.new_float array.max array.sum
array.median
Die Funktion gibt die mittlere Zahl der Array-Elemente zurück.
array.median(id)
Beispiel
pine
// array.median example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.median(a))
Rückgabewert
Mediane der Elemente der Array.
Parameter
id(int[]/float[Die Array-Objekte
Siehe auch
array.avg array.variance array.min
array.mode
Die Funktion gibt das Modell der Array-Elemente zurück. Wenn mehrere Werte mit der gleichen Frequenz vorhanden sind, wird der Minimalwert zurückgegeben.
array.mode(id)
Beispiel
pine
// array.mode example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.mode(a))
Rückgabewert
Modell der Array-Elemente
Parameter
id(int[]/float[Die Array-Objekte
Siehe auch
array.new_float array.avg array.variance array.min
array.percentile_linear_interpolation
Gibt den angegebenen Prozentsatz des Array-Wertes zurück, der kleiner oder gleich ist als der Wert, der mit einem linearen Intervall angegeben wurde.
array.percentile_linear_interpolation(id, percentage)
Parameter
id(int[]/float[Die Array-Objektepercentage(series int/float) muss der Prozentsatz der Werte sein, der gleich oder kleiner als der zurückgegebene Wert ist.
Anmerkung
In der Statistik ist ein Prozentsatz der Anzahl von Ranking-Einheiten, die in einem bestimmten Punkt oder unter einem bestimmten Punkt erscheinen. Diese Messung zeigt die Prozentanteile der Standardfrequenzverteilung an, die unterhalb der von Ihnen gemessenen Prozentsätze liegen. Ein linearer Intervall schätzt den Wert zwischen zwei Rankings.
Siehe auch
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.percentile_nearest_rank
Gibt mit der Methode der jüngsten Reihenfolge einen Array-Wert zurück, der kleiner oder gleich ist als der Wert des angegebenen Prozentsatzes (in Prozent).
array.percentile_nearest_rank(id, percentage)
Parameter
id(int[]/float[Die Array-Objektepercentage(series int/float) muss der Prozentsatz der Werte sein, der gleich oder kleiner als der zurückgegebene Wert ist.
Anmerkung
In der Statistik ist ein Prozentsatz der Anzahl von Ranking-Einheiten, die in einem bestimmten Punkt oder unter einem bestimmten Punkt erscheinen. Diese Messung zeigt die Anzahl von Prozentpunkten in der Standardfrequenzverteilung, die unter dem Prozentpunkt liegt, den Sie messen.
Siehe auch
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.percentrank
Gibt die Prozentsatzreihenfolge der mittleren Werte zurück.
array.percentrank(id, index)
Parameter
id(int[]/float[Die Array-Objekteindex(series int) berechnet die Werte in ihrer Prozentordnung.
Anmerkung
Der Prozentsatz ist der Prozentsatz, wie viele Elemente im Array kleiner als oder gleich dem Referenzwert sind.
Siehe auch
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.range
Die Funktion gibt die Differenz zwischen den Minimal- und Maximalwerten eines Arrays zurück.
array.range(id)
Beispiel
pine
// array.range example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.range(a))
Rückgabewert
Die Differenz zwischen dem kleinsten und dem größten Wert in der Reihe.
Parameter
id(int[]/float[Die Array-Objekte
Siehe auch
array.new_float array.min array.max array.sum
array.remove
Die Funktion ändert den Inhalt des Arrays, indem sie die Elemente mit dem angegebenen Index entfernt.
array.remove(id, index)
Beispiel
pine
// array.remove example
a = array.new_float(5,high)
removedEl = array.remove(a, 0)
plot(array.size(a))
plot(removedEl)
Rückgabewert
Werte der entfernten Elemente.
Parameter
id(any array type) Array-Objekteindex(series int) Der Index des zu löschenden Elements.
Siehe auch
array.new_float array.set array.push array.insert array.pop array.shift
array.reverse
Diese Funktion kehrt die Arrays um. Das erste Array-Element wird zum letzten, und das letzte Array-Element wird zum ersten.
array.reverse(id)
Beispiel
pine
// array.reverse example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.get(a, 0))
array.reverse(a)
plot(array.get(a, 0))
Parameter
id(any array type) Array-Objekte
Siehe auch
array.new_float array.sort array.push array.set array.avg
array.from
Die Funktion verwendet eine variable Anzahl von Parametern eines der folgenden Typen: int, float, bool, string, line, color, linefill und gibt ein Array des entsprechenden Typs zurück.
array.from(arg0, arg1, ...)
Beispiel
pine
// array.from_example
arr = array.from("Hello", "World!") // arr (string[]) will contain 2 elements: {Hello}, {World!}.
plot(close)
Rückgabewert
Werte der Array-Elemente
Parameter
arg0, arg1, ...(series int/float/bool/color/string/line/linefill) Array-Parameter für eine Reihe von Elementen.
array.new
Die Funktion erstellt eine neue<type>Objekt der Elementar-Array
array.new(size, initial_value)
Beispiel
pine
// array.new<string> example
a = array.new<string>(1, "Hello, World!")
runtime.log(array.get(a, 0))
Beispiel
pine
// array.new<color> example
a = array.new<color>()
array.push(a, color.red)
array.push(a, color.green)
plot(close, color = array.get(a, close > open ? 1 : 0))
Beispiel
pine
// array.new<float> example
length = 5
var a = array.new<float>(length, close)
if array.size(a) == length
array.remove(a, 0)
array.push(a, close)
plot(array.sum(a) / length, "SMA")
Beispiel
pine
// array.new<line> example
// draw last 15 lines
var a = array.new<line>()
array.push(a, line.new(bar_index - 1, close[1], bar_index, close))
if array.size(a) > 15
ln = array.shift(a)
line.delete(ln)
Rückgabewert
ID eines Array-Objekts, das zusammen mit anderen Arrays verwendet werden kann.*Funktion ()
Parameter
sizeDie Anfangsgröße der Serie (series int) ist frei. Die Standardgröße ist 0initial_value(series <type>) Der Anfangswert aller Serienelemente. Optional. Die Standardwahrung ist <unk>na<unk><unk>.
Anmerkung
Die Array-Index beginnt mit null.
Wenn Sie ein Array initialisieren und gleichzeitig alle seine Elemente angeben möchten, verwenden Sie die Funktion array.from。
Siehe auch
array.from array.push array.get array.size array.remove array.shift array.sum
array.new_bool
Diese Funktion erzeugt ein neues Array-Objekt, das aus Elementen des Typs bool besteht.
array.new_bool(size, initial_value)
Beispiel
pine
// array.new_bool example
length = 5
a = array.new_bool(length, close > open)
plot(array.get(a, 0) ? close : open)
Rückgabewert
ID eines Array-Objekts, das zusammen mit anderen Arrays verwendet werden kann.*Funktion ()
Parameter
sizeDie Anfangsgröße der Serie (series int) ist frei. Die Standardgröße ist 0initial_value(series bool) Die Anfangswerte aller Elemente der Serie. Optional. Der Standardwert ist <unk>na<unk>.
Anmerkung
Die Array-Index beginnt mit null.
Siehe auch
array.new_float array.get array.slice array.sort
array.new_float
Diese Funktion erzeugt ein neues Elementar-Array-Objekt des Floating-Point-Forms.
array.new_float(size, initial_value)
Beispiel
pine
// array.new_float example
length = 5
a = array.new_float(length, close)
plot(array.sum(a) / length)
Rückgabewert
ID eines Array-Objekts, das zusammen mit anderen Arrays verwendet werden kann.*Funktion ()
Parameter
sizeDie Anfangsgröße der Serie (series int) ist frei. Die Standardgröße ist 0initial_value(series int/float) Die Anfangswerte aller Elemente der Serie。 sind optional。 der Standardwert ist <unk>na<unk>。
Anmerkung
Die Array-Index beginnt mit null.
Siehe auch
array.new_bool array.get array.slice array.sort
array.new_int
Die Funktion erstellt ein neues Array-Objekt, das aus Elementen des Typs int besteht.
array.new_int(size, initial_value)
Beispiel
pine
// array.new_int example
length = 5
a = array.new_int(length, int(close))
plot(array.sum(a) / length)
Rückgabewert
ID eines Array-Objekts, das zusammen mit anderen Arrays verwendet werden kann.*Funktion ()
Parameter
sizeDie Anfangsgröße der Serie (series int) ist frei. Die Standardgröße ist 0initial_value(series int) Die Anfangswerte aller Elemente der Serie. Optional. Die Standardeinstellung ist <unk>na<unk>.
Anmerkung
Die Array-Index beginnt mit null.
Siehe auch
array.new_float array.get array.slice array.sort
array.new_string
Die Funktion erstellt ein neues Array Objekt für ein Element des String-Types ≠
array.new_string(size, initial_value)
Beispiel
pine
// array.new_string example
length = 5
a = array.new_string(length, "text")
runtime.log(array.get(a, 0))
Rückgabewert
ID eines Array-Objekts, das zusammen mit anderen Arrays verwendet werden kann.*Funktion ()
Parameter
sizeDie Anfangsgröße der Serie (series int) ist frei. Die Standardgröße ist 0initial_value(series string) Der Anfangswert aller Elemente der Serie. Optional. Der Standardwert ist <unk>na<unk>.
Anmerkung
Die Array-Index beginnt mit null.
Siehe auch
array.new_float array.get array.slice
array.get
Die Funktion gibt den Wert des Elements an der angegebenen Indexierung zurück.
array.get(id, index)
Beispiel
pine
// array.get example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i] - open[i])
plot(array.get(a, 9))
Rückgabewert
Werte der Array-Elemente
Parameter
id(any array type) Array-Objekteindex(series int) Der Index des Elements, dessen Wert zurückgegeben werden soll.
Siehe auch
array.new_float array.set array.slice array.sort
array.push
Die Funktion fügt dem Array einen Wert hinzu.
array.push(id, value)
Beispiel
pine
// array.push example
a = array.new_float(5, 0)
array.push(a, open)
plot(array.get(a, 5))
Parameter
id(any array type) Array-Objektevalue(series <type of the array's elements>) wird dem Elementwert am Ende der Array beigegeben.
Siehe auch
array.new_float array.set array.insert array.remove array.pop array.unshift
array.set
Die Funktion setzt die Werte des Elements auf den angegebenen Index.
array.set(id, index, value)
Beispiel
pine
// array.set example
a = array.new_float(10)
for i = 0 to 9
array.set(a, i, close[i])
plot(array.sum(a) / 10)
Parameter
id(any array type) Array-Objekteindex(series int) Der Index des Elements soll geändert werden.value(series <type of the array's elements>) Der neue Wert, der gesetzt werden soll.
Siehe auch
array.new_float array.get array.slice
array.sum
Die Funktion gibt die Summe der Array-Elemente zurück.
array.sum(id)
Beispiel
pine
// array.sum example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.sum(a))
Rückgabewert
Die Summe der Elemente der Array.
Parameter
id(int[]/float[Die Array-Objekte
Siehe auch
array.new_float array.max array.min
array.avg
Die Funktion gibt den Mittelwert der Array-Elemente zurück.
array.avg(id)
Beispiel
pine
// array.avg example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.avg(a))
Rückgabewert
Mittelwert der Array-Elemente.
Parameter
id(int[]/float[Die Array-Objekte
Siehe auch
array.new_float array.max array.min array.stdev
array.indexof
Diese Funktion gibt den Index zurück, in dem der Wert zum ersten Mal erscheint. Wenn dieser Wert nicht gefunden wird, wird -1 zurückgegeben.
array.indexof(id, value)
Beispiel
pine
// array.indexof example
a = array.new_float(5,high)
index = array.indexof(a, high)
plot(index)
Rückgabewert
Index der Elemente
Parameter
id(any array type) Array-Objektevalue(series <type of the array's elements>) Die Werte, die in den Arrays gesucht werden.
Siehe auch
array.lastindexof array.get array.lastindexof array.remove array.insert
strategy
existierenstrategyIn der entsprechenden eingebauten Funktion werden die Stop-Loss- und Stop-Stop-Punkte als Multiplikatoren des Preis-Sprungs definiert.strategy.exitFunktionprofit、lossDie Parameter sind in Punkten angegeben: Stop, Stop, Parameter.profitSetzt man auf 10, multipliziert man mit 10 als Stop-Loss-Differenz, ist das eine eingebaute Variable.syminfo.mintick。
strategy
Die Funktion setzt mehrere Strategie-Eigenschaften ein:
Bitte beachten Sie, dass die Quellen nur unterstützentitle,shorttitle,overlay,pyramiding,default_qty_type,default_qty_valueParameter, die durch die Interface-Parameter der PINE-Sprachstrategie eingestellt werden können.
strategy(title, shorttitle, overlay, format, precision, scale, pyramiding, calc_on_order_fills, calc_on_every_tick, max_bars_back, backtest_fill_limits_assumption, default_qty_type, default_qty_value, initial_capital, currency, slippage, commission_type, commission_value, process_orders_on_close, close_entries_rule, margin_long, margin_short, explicit_plot_zorder, max_lines_count, max_labels_count, max_boxes_count, risk_free_rate)
Beispiel
pine
strategy("Strategy", overlay = true)
// Enter long by market if current open is greater than previous high.
strategy.entry("Long", strategy.long, 1, when = open > high[1])
// Generate a full exit bracket (profit 10 points, loss 5 points per contract) from the entry named "Long".
strategy.exit("Exit", "Long", profit = 10, loss = 5)
Parameter
title(const string) wird in der Kennziffer/Strategie-Einlage als Kennziffertitel angezeigt. Das Parameter ist erforderlich.shorttitle(const string) Kurzüberschrift für den Indikator, der in der Diagramm-Beispiel angezeigt wird. Die Parameter sind optional.overlay(const bool) Wenn true, wird der Indikator als Überlagerung der Hauptreihe hinzugefügt. Wenn false - wird er in einem separaten Diagrammfenster hinzugefügt. False als Default.(const string) Der mögliche Typ der Formatierung des Indikatorwerts auf der Preis-Achse ist: format.inherit, format.price, format.volume。 default format.inherit。format(const int) Die Zahl nach der Anzahl der Floatpunkte des Indexwertes auf der Preis-Achse. Es muss eine nicht-negative ganze Zahl sein und nicht größer als 16 sein. Wenn es weggelassen wird, wird das Format der Vaterreihe verwendet. Wenn format format.inherit ist und dieses Parameter gesetzt wird, wird format zu format.price.precision(scale_type) Der Indikator sollte den Preiskoordinaten folgen. Die möglichen Werte sind: scale.right, scale.left, scale.none. Der Wert scale.none kann nur in Verbindung mit der Einstellung 'overlay=true' verwendet werden.scalepyramiding(const int) Die maximale Anzahl von Eintrittsordern, die in derselben Richtung erlaubt sind. Wenn der Wert 0 ist, kann nur ein Eintritts-Auftrag in derselben Richtung eröffnet werden, und alle anderen Eintritts-Auftrage werden abgelehnt.(const bool) Berechnung der zusätzlichen Intrabar-Order. Wenn die Parameter auf <unk>true<unk> gesetzt sind, wird die Strategie neu berechnet, sobald die K-Zeile nach der Bestellung gefüllt ist (und nicht nur beim Schließen der K-Zeile). Der Standardwert ist <unk>false<unk>.calc_on_order_fills(const bool) zusätzliche Intrabar-Strategie berechnet. Wenn das Parameter <unk>true<unk> ist, berechnet die Strategie jede Minute in Echtzeit, ohne die K-Linien zu schließen. Das Parameter beeinflusst nicht die Berechnung der Strategie mit den historischen Daten.calc_on_every_tick(const int) Die maximale Anzahl von Arrays, die für die Historik-Referenz-Strategie verwendet werden können.[]' Operator), wird diese Parameter auf jede eingebaute Variable oder Benutzervariable in einem Skript angewendet. Die Größe eines variablen Bufferbereichs in einem Pine-Skript wird normalerweise automatisch erkannt. In einigen Fällen ist dies jedoch nicht möglich, was der Grund dafür ist, dass die Parameter den Benutzern erlauben, die unterste Grenze für diesen Wert manuell zu setzen.max_bars_back(const int) Limit-Bill-Ausführung Hypothese. Der Limit-Bill wird nur dann in der Intrabar gehandelt, wenn der Marktpreis die angegebene Anzahl von Tick-Levels überschreitet.backtest_fill_limits_assumptiondefault_qty_type(const string) bestimmt fürqtyDie Werte der Parameter werden in den Funktionen strategy.entry oder strategy.order angegeben. Mögliche Werte sind: strategy.fixed für Kontrakt/Aktie/Uhrzahl, strategy.cash für Geldbetrag oder strategy.percent_of_equity für den Prozentsatz der verfügbaren Ansprüche.default_qty_value(const int/float) Default Anzahl der Transaktionen der Funktion strategy.entry oder strategy.order, deren Einheiten durch die Parameter definiert werden, die zusammen mit dem Parameter 'default_qty_type' verwendet werden, wenn ihr Parameter 'qty' nicht definiert ist.(const string) Konto-Währung dieser Strategie。 wählbar。 Der Standardwert ist die Währung der Waren in der Tabelle。 Mögliche Werte: currency.NONE, currency.USD, currency.EUR, currency.AUD, currency.GBP, currency.NZD, currency.CAD, currency.CHF, currency.HKD, currency.JPY, currency.NOK, currency.SEK, currency.SGD, currency.TRY, currency.ZAR, currency.BTC, currency.ETH, currency.MYR, currency.KRW。currency(const int) Die Gleitpunkte, die mit tick als Angebots-Einheit verwendet werden, werden von dem Transaktionspreis der Kauf-/Verkaufspreis- oder Stop-Loss-Bill hinzugefügt/abgezogen. Wenn mintick = 0.01 und der Gleitpunkt = 5, dann wird der Gesamtgleitpunkt 5 * 0.01 = 0.05 sein.slippage(const string) Art der Provision für jeden Auftrag. Die erlaubten Werte sind: strategy.commission.percent, strategy.commission.cash_per_contract, strategy.commission.cash_per_order.commission_type(const int/float) Kommissionswert der Bestellung. Abhängig von der gewählten Art (Kommissionsart) sind Prozentsätze oder Beträge enthalten.commission_value- ~~
process_orders_on_close~~Wenn (const bool) auf den Wert true gesetzt ist, werden weitere Versuche der Ausführung von Aufträgen generiert, nachdem der Grafikschluss ausgewählt und die Strategie berechnet wurde. Wenn es sich um Marktpreise handelt, wird der Broker-Simulator diese vor der Eröffnung des nächsten Grafiks ausführen. Wenn es sich um Limitpreise handelt, werden die Aufträge nur ausgeführt, wenn die Preisbedingungen erfüllt sind. (const string) Bestimmt die Reihenfolge, in der die Aufträge geschlossen werden. Die zulässigen Werte sind: 'FIFO' oder 'ANY'. FIFO (First-In, First-Out) bedeutet, dass der erste Handel geschlossen werden muss, wenn mehrere Geschäfte eröffnet werden. Diese Regel gilt für Aktien, Futures und US-Forex (NFA-Regel 2-43b). 'ANY' bedeutet, dass der Handel in jeder Reihenfolge geschlossen werden kann; dies ist in nicht-US-amerikanischen Devisenhandel erlaubt.close_entries_rule(const int) Zeigt die Anzahl der neuesten Linienpläne. Der Standardwert ist 50, der maximal zulässige Wert ist 500.max_lines_count(const int) Zeigt die Anzahl der jüngsten Taggraphiken. Der Standardwert ist 50, der maximal erlaubte Wert ist 500.max_labels_count(const int) Die Anzahl der letzten Box-Ziegel, die angezeigt werden. Der Standardwert ist 50, der maximal erlaubte Wert ist 500.max_boxes_count(const int/float) Mehrfachbürgschaft ist der Prozentsatz des Kaufpreises eines Wertpapiers, dessen Mehrfachposition in bar oder mit einer Pfand gedeckt werden muss. Muss nicht-negativ sein. Optional.margin_long(const int/float) Leerlaufbürgschaft ist der Prozentsatz des Kaufpreises eines Wertpapiers, dessen Leerlaufposition in bar oder mit einer Pfand abgedeckt werden muss. Muss nicht negativ sein. Optional. Die Standardeinstellung ist 100margin_short(const bool) Gibt die Reihenfolge an, in der die Indikatoren gezeichnet, gefüllt und horizontal dargestellt werden. Wenn true, wird die Grafik in der Reihenfolge gezeichnet, in der sie im Indikatorcode erscheinen, wobei jede neuere Grafik auf der vorherigen Grafik gezeichnet wird. Dies gilt nur für Plot*() Funktion, Fill und Hline. Optional. Die Standardwahrung ist false.explicit_plot_zorder(const int/float) Die ursprünglich verfügbare Geldmenge für Strategiegeschäfte in der Währung, die in der Währungsstange definiert ist. Optional. Die Standardeinstellung ist 1000000initial_capital(const int/float) Die risikofreie Rendite ist die jährliche prozentuale Veränderung des Anlagewerts mit dem geringsten Risiko oder mit Null, die zur Berechnung des Sharpe- und Sortino-Verhältnisses verwendet wird. Der Standardwert ist 2.risk_free_rate
Anmerkung
Jedes Strategie-Skript muss eine Strategie-Aufruf haben.
PineScript-Code mit dem Parameter calc_on_every_tick = true kann unterschiedliche Berechnungen für historische und Echtzeitdaten vornehmen.
Sie müssen wissen, dass die Ergebnisse unterschiedlich sind, wenn Sie einen nicht-standardisierten Chart als Grundlage für Ihre Strategie verwenden. Die Order wird zum Preis der Tabelle ausgeführt (z. B. für Heikin Ashi wird der Preis von Heikin Ashi verwendet (durchschnittlich) und nicht der tatsächliche Marktpreis). Daher empfehlen wir Ihnen dringend, den Standard-Chart-Typ in Ihrer Strategie zu verwenden.
Siehe auch
indicator
strategy.entry
Es handelt sich um einen Befehl zum Eintritt in einen Markt. Wenn ein Auftrag mit der gleichen ID bereits aufgehängt ist, kann der Auftrag geändert werden. Wenn kein Auftrag mit der angegebenen ID ausgegeben wird, wird ein neuer Auftrag ausgegeben. Um den Eintritt zu deaktivieren, sollte der Befehl strategy.cancel oder strategy.cancel_all verwendet werden.
strategy.entry(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)
Beispiel
pine
strategy(title = "simple strategy entry example")
strategy.entry("enter long", strategy.long, 1, when = open > high[1]) // enter long by market if current open great then previous high
strategy.entry("enter short", strategy.short, 1, when = open < low[1]) // enter short by market if current open less then previous low
Parameter
id(series string) Notwendige Parameter。 Auftragsbezeichner。 Der Auftrag kann durch Verweis auf seine Bezeichnungen storniert oder geändert werden。direction(strategy_direction) Ein notwendiger Parameter. Die Richtung der Marktpositionen: "strategy.long" ist die langfristige Richtung, "strategy.short" die unbestimmte Richtung.qty(series int/float) Optionale Parameter. Anzahl der getätigten Verträge/Aktien/Stunden/Einheiten. Die Voreinstellung lautet 'NaN'.limit(series int/float) Optionale Parameter ◦ Auftragsbegrenzung ◦ Auftragsart "limit" oder "stop-limit" ◦ Auftragsart "NaN" ◦stop(series int/float) Optionale Parameter. Der Stop-Loss-Preis des Auftrages. Wenn angegeben, ist der Auftragstyp "stop" oder "stop-limit". Andere Auftragstypen sind "NaN".(series string) Optionale Parameter. Der Auftrag gehört zu einer OCA-Gruppenbezeichnung. Wenn der Auftrag nicht zu einer OCA-Gruppe gehört, sollte ein leeres Zeichen vorhanden sein.Hinweis: FMZ unterstützt dieses Parameter nicht.oca_name(input string) Optionale Parameter。 OCA-Bestellgruppen-Typ。 Die erlaubten Werte sind: strategy.oca.none - Der Auftrag sollte nicht zu einer bestimmten OCA-Gruppe gehören; strategy.oca.cancel - Der Auftrag sollte zu einer OCA-Gruppe gehören, sobald der Auftrag abgeschlossen ist, werden alle anderen Aufträge in derselben Gruppe storniert; strategy.oca.reduce - Der Auftrag sollte zu einer OCA-Gruppe gehören, wenn X Anzahl von Auftragsverträgen platziert wurde, reduziert sich die Anzahl der anderen Auftragsverträge in derselben OCA-Gruppe um X。Hinweis: FMZ unterstützt dieses Parameter nicht.oca_typecomment(series string) Optionale Parameter。 weitere Hinweise auf Bestellungen。when(series bool) Optionale Parameter Status der Bestellung Wenn "true" ist, wird die Bestellung platziert Wenn "false" ist, passiert nichts keine Bestellung mit derselben ID, die zuvor platziert wurde, wurde widerrufen Der Standardwert ist "true" alert_message(series string) Eine Option, wenn Sie das Positionszeichen {{strategy.order.alert_message}} in der Eingabe-Nachricht-Eingabe-Feld des Dialogfelds "Erstellen Sie eine Eingabe-Nachricht" verwenden.
strategy.close
Es handelt sich um einen Ausstiegs-Order mit einer bestimmten ID. Wenn mehrere Eintritts-Order mit derselben ID vorliegen, werden sie alle gleichzeitig ausgeführt. Wenn beim Auslösen des Befehls kein offener Auftrag mit einer bestimmten ID vorhanden ist, wird der Befehl nicht ausgeführt.
strategy.close(id, when, comment, qty, qty_percent, alert_message)
Beispiel
pine
strategy("closeEntry Demo", overlay=false)
strategy.entry("buy", strategy.long, when = open > close)
strategy.close("buy", when = open < close, qty_percent = 50, comment = "close buy entry for 50%")
plot(strategy.position_size)
Parameter
id(series string) Notwendige Parameter。 Auftrags-ID。 Der Auftrag kann durch Verweis auf seine ID geschlossen werden。when(series bool) Auswählbare Parameter ◦ Bedingung des Befehls ◦qty(series int/float) Optionale Parameter. Anzahl der ausgehenden Verträge/Aktien/Uhrzahlen/Einheiten. Standardwert ist 'NaN'.qty_percent(series int/float) definiert den Prozentsatz der Flachposition als ((0-100) ◦, dessen Priorität unter der Priorität des 'qty'-Parameters liegt. Optional. Der Standardwert ist 100 ◦comment(series string) Optionale Parameter。 weitere Hinweise auf Bestellungen。alert_message(series string) Eine Option, wenn Sie das Positionszeichen {{strategy.order.alert_message}} in der Eingabe-Nachricht-Eingabe-Feld des Dialogfelds "Erstellen Sie eine Eingabe-Nachricht" verwenden.
strategy.close_all
Der Markt wird von einem Marktteilnehmer, der die Position auf dem Markt beherrscht, abgeschafft.
strategy.close_all(when, comment, alert_message)
Beispiel
pine
strategy("closeAll Demo", overlay=false)
strategy.entry("buy", strategy.long, when = open > close)
strategy.close_all(when = open < close, comment = "close all entries")
plot(strategy.position_size)
Parameter
when(series bool) Auswählbare Parameter ◦ Bedingung des Befehls ◦comment(series string) Optionale Parameter。 weitere Hinweise auf Bestellungen。alert_message(series string) Eine Option, wenn Sie das Positionszeichen {{strategy.order.alert_message}} in der Eingabe-Nachricht-Eingabe-Feld des Dialogfelds "Erstellen Sie eine Eingabe-Nachricht" verwenden.
strategy.exit
Es handelt sich um eine Ausgangsanweisung für einen bestimmten Eintritt oder die gesamte Marktposition. Wenn Orders mit derselben ID bereits gehängt sind, kann der Auftrag geändert werden. Wenn ein Eintritts-Auftrag nicht gehandelt wurde, aber ein Ausstiegs-Auftrag erschien, wird der Ausstiegs-Auftrag auf Eis gelegt, bis ein Ausstiegs-Auftrag nach der Eintritts-Auftrag platziert werden kann. Um einen Ausstiegs-Auftrag auszusetzen, sollte der Befehl strategy.cancel oder strategy.cancel_all verwendet werden.
strategy.exit(id, from_entry, qty, qty_percent, profit, limit, loss, stop, trail_price, trail_points, trail_offset, oca_name, comment, when, alert_message)
Beispiel
pine
strategy(title = "simple strategy exit example")
strategy.entry("long", strategy.long, 1, when = open > high[1]) // enter long by market if current open great then previous high
strategy.exit("exit", "long", profit = 10, loss = 5) // generate full exit bracket (profit 10 points, loss 5 points per contract) from entry with name "long"
Parameter
id(series string) Notwendige Parameter。 Auftragsbezeichner。 Der Auftrag kann durch Verweis auf seine Bezeichnungen storniert oder geändert werden。from_entry(series string) Optionale Parameter ≠ Exit mit dem angegebenen Eingangsbefehlsmarker ≠ Exit mit allen Positionen ≠ Leerzeichen ≠ Leerzeichen als Standard.qty(series int/float) Optionale Parameter. Anzahl der ausgehenden Verträge/Aktien/Uhrzahlen/Einheiten. Standardwert ist 'NaN'.qty_percent(series int/float) definiert den Prozentsatz der Flachposition als ((0-100) ◦, dessen Priorität unter der Priorität des 'qty'-Parameters liegt. Optional. Der Standardwert ist 100 ◦profit(series int/float) Optionale Parameter. Gewinnziel (in Punkten angegeben). Wenn angegeben, wird die Position bei Erreichen der angegebenen Gewinnmenge (in Punkten) mit einem Limit-Order beendet.limit(series int/float) Optionale Parameter. Gewinnziel ([Präsistenzpreis] angegeben werden muss). Wenn angegeben, dann zum angegebenen Preis ([Präsistenzpreis] oder besser). Ausstieg aus dem Markt. Das Parameter 'limit' hat eine höhere Priorität als das Parameter 'profit' (wenn der Wert nicht 'NaN' ist, ersetzt 'limit' 'profit').loss(series int/float) Optionale Parameter. Stop loss (in Punkten angegeben). Wenn angegeben, wird die Position mit einem Stop Loss beendet, wenn der angegebene Verlust (in Punkten angegeben) erreicht wird.stop(series int/float) Optionale Parameter Stop loss ([Präis anzugeben ist erforderlich]) Wenn angegeben, wird der Marktausstieg mit dem angegebenen Preis ([Präis] oder schlechter) durchgeführt Der Parameter Stop loss hat eine höhere Priorität als der Parameter Loss ([Präis] wenn der Wert nicht 'NaN' ist, wird 'Stop Loss' anstelle von 'Loss') Der Standardwert ist <unk>NaN<unk>trail_price(series int/float) Optionale Parameter: Tracking Stop Loss Activation Level (Preis muss angegeben werden). Wenn angegeben, wird ein Tracking Stop bei Erreichen des angegebenen Preisniveaus platziert. In der Tracking Trail_offset Parameter wird die Abweichung angegeben, um den anfänglichen Preis eines Tracking Stop Losses zu bestimmen (in Punkten): X-Punkte unterhalb des Aktivierungsniveaus, um aus der Mehrzahl auszusteigen; X-Punkte über dem Aktivierungsniveau, um aus der Leerheit auszusteigen.trail_points(series int/float) Optionale Parameter: Tracking Stop-Loss-Aktivierungsniveau (siehe Gewinn in Punkten). Wenn angegeben, wird ein Tracking-Stop-Bill platziert, wenn der berechnete Preisniveau (siehe Gewinnbetrag in Punkten) erreicht wird. In der Trailing-Trail-Offset-Parameter wird die Verlagerung des Startpreises des Tracking-Stop-Bills (siehe Punkte) angegeben: X Punkte unter dem Aktivierungsniveau, um aus der Mehrzahl auszusteigen; X Punkte über dem Aktivierungsniveau, um aus dem Leerstand auszusteigen.trail_offset(series int/float) Optionale Parameter. Tracking-Stop-Aktivierungsniveau (in Punkten angegeben). Die Abweichung in Punkten wird verwendet, um den Anfangspreis für Tracking-Stop-Billings zu bestimmen: X Punkte niedriger als 'trail_price' oder 'trail_points' für den Ausstieg aus dem Mehrwert; X Punkte höher als 'trail_price' oder 'trail_points' für den Ausstieg aus dem Leerwert.(series string) Optionale Parameter. Name der OCA-Gruppe (oca_type = strategy.oca.reduce) Gewinnziel, Stop-Loss / Tracking-Stop-Loss. Wenn kein Name angegeben ist, wird dieser automatisch generiert.Hinweis: FMZ unterstützt dieses Parameter nicht.oca_namecomment(series string) Optionale Parameter。 weitere Hinweise auf Bestellungen。when(series bool) Optionale Parameter Status der Bestellung Wenn "true" ist, wird die Bestellung platziert Wenn "false" ist, passiert nichts keine Bestellung mit derselben ID, die zuvor platziert wurde, wurde widerrufen Der Standardwert ist "true" alert_message(series string) Eine Option, wenn Sie das Positionszeichen {{strategy.order.alert_message}} in der Eingabe-Nachricht-Eingabe-Feld des Dialogfelds "Erstellen Sie eine Eingabe-Nachricht" verwenden.
strategy.cancel
Das ist ein Befehl, der den Namen der Angabe anspricht, um alle vorgefertigten Listen abzubrechen/auszuschalten, erzeugt durch die folgenden Funktionen: strategy.order, strategy.entry und strategy.exit。
strategy.cancel(id, when)
Beispiel
pine
strategy(title = "simple order cancellation example")
conditionForBuy = open > high[1]
strategy.entry("long", strategy.long, 1, limit = low, when = conditionForBuy) // enter long using limit order at low price of current bar if conditionForBuy is true
strategy.cancel("long", when = not conditionForBuy) // cancel the entry order with name "long" if conditionForBuy is false
Parameter
id(series string) Pflichtparameter。 Auftragsmarke。 Position der Marke, um einen Auftrag zu widerrufen。when(series bool) Optionale Parameter. Anhand der ID einen Auftrag stornieren. Wenn es "true" ist, wird der Auftrag storniert.
strategy.cancel_all
Dies ist die Annullierung/Deaktivierung aller Vorladen-Befehle, die durch die folgenden Funktionen erzeugt werden: strategy.order, strategy.entry und strategy.exit.
strategy.cancel_all(when)
Beispiel
pine
strategy(title = "simple all orders cancellation example")
conditionForBuy1 = open > high[1]
strategy.entry("long entry 1", strategy.long, 1, limit = low, when = conditionForBuy1) // enter long by limit if conditionForBuy1 is true
conditionForBuy2 = conditionForBuy1 and open[1] > high[2]
strategy.entry("long entry 2", strategy.long, 1, limit = ta.lowest(low, 2), when = conditionForBuy2) // enter long by limit if conditionForBuy2 is true
conditionForStopTrading = open < ta.lowest(low, 2)
strategy.cancel_all(conditionForStopTrading) // cancel both limit orders if the conditon conditionForStopTrading is true
Parameter
when(series bool) Optionale Parameter ◦ die Bedingungen für alle Bestellungen stornieren ◦ alle aktiven Bestellungen werden storniert, wenn die Bedingung wahr ist ◦ der Standardwert ist ◦ true ◦
strategy.order
Das ist der Befehl für die nächste Bestellung. Wenn ein Auftrag mit der gleichen ID bereits aufgehängt ist, kann der Auftrag geändert werden. Wenn kein Auftrag mit der angegebenen ID ausgeführt wird, wird ein neuer Auftrag ausgegeben. Um den Auftrag zu beenden, sollte der Befehl strategy.cancel oder strategy.cancel_all verwendet werden.
strategy.order(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)
Beispiel
strategy(title = "simple strategy order example")
strategy.order("buy", strategy.long, 1, when = open > high[1]) // buy by market if current open great then previous high
strategy.order("sell", strategy.short, 1, when = open < low[1]) // sell by market if current open less then previous low
Parameter
id(series string) Notwendige Parameter。 Auftragsbezeichner。 Der Auftrag kann durch Verweis auf seine Bezeichnungen storniert oder geändert werden。direction(strategy_direction) Ein notwendiger Parameter. Order-Richtung: "strategy.long" für Kauf und "strategy.short" für Verkauf.qty(series int/float) Optionale Parameter. Anzahl der getätigten Verträge/Aktien/Stunden/Einheiten. Die Voreinstellung lautet 'NaN'.limit(series int/float) Optionale Parameter ◦ Auftragsbegrenzung ◦ Auftragsart "limit" oder "stop-limit" ◦ Auftragsart "NaN" ◦stop(series int/float) Optionale Parameter. Der Stop-Loss-Preis des Auftrages. Wenn angegeben, ist der Auftragstyp "stop" oder "stop-limit". Andere Auftragstypen sind "NaN".(series string) Optionale Parameter. Der Auftrag gehört zu einer OCA-Gruppenbezeichnung. Wenn der Auftrag nicht zu einer OCA-Gruppe gehört, sollte ein leeres Zeichen vorhanden sein.Hinweis: FMZ unterstützt dieses Parameter nicht.oca_name(input string) Optionale Parameter。 OCA-Bestellgruppen-Typ。 Die erlaubten Werte sind: strategy.oca.none - Der Auftrag sollte nicht zu einer bestimmten OCA-Gruppe gehören; strategy.oca.cancel - Der Auftrag sollte zu einer OCA-Gruppe gehören, sobald der Auftrag abgeschlossen ist, werden alle anderen Aufträge in derselben Gruppe storniert; strategy.oca.reduce - Der Auftrag sollte zu einer OCA-Gruppe gehören, wenn X Anzahl von Auftragsverträgen platziert wurde, reduziert sich die Anzahl der anderen Auftragsverträge in derselben OCA-Gruppe um X。Hinweis: FMZ unterstützt dieses Parameter nicht.oca_typecomment(series string) Optionale Parameter。 weitere Hinweise auf Bestellungen。when(series bool) Optionale Parameter Status der Bestellung Wenn "true" ist, wird die Bestellung platziert Wenn "false" ist, passiert nichts keine Bestellung mit derselben ID, die zuvor platziert wurde, wurde widerrufen Der Standardwert ist "true" alert_message(series string) Eine Option, wenn Sie das Positionszeichen {{strategy.order.alert_message}} in der Eingabe-Nachricht-Eingabe-Feld des Dialogfelds "Erstellen Sie eine Eingabe-Nachricht" verwenden.
strategy.opentrades.entry_bar_index
Bar_index, der einen noch nicht ausgeglichenen Börsengang zurückgibt.
strategy.opentrades.entry_bar_index(trade_num)
Warte auf 10 K-Linien und mach die Position klar.
Beispiel
pine
strategy("`strategy.opentrades.entry_bar_index` Example")
barsSinceLastEntry() =>
strategy.opentrades > 0 ? bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) : na
// Enter a long position if there are no open positions.
if strategy.opentrades == 0
strategy.entry("Long", strategy.long)
// Close the long position after 10 bars.
if barsSinceLastEntry() >= 10
strategy.close("Long")
Parameter
trade_num(series int) Die Transaktionsnummer für den nicht ausgeglichenen Handel. Die Nummer für den ersten Handel ist null.
Siehe auch
strategy.closedtrades.entry_bar_index strategy.closedtrades.exit_bar_index
strategy.opentrades.entry_id
ID für die Rückgabe eines Eingangs in einen ungeklärten Handel.
strategy.opentrades.entry_id(trade_num)
Beispiel
pine
strategy("`strategy.opentrades.entry_id` Example", overlay = true)
// We enter a long position when 14 period sma crosses over 28 period sma.
// We enter a short position when 14 period sma crosses under 28 period sma.
longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
// Strategy calls to enter a long or short position when the corresponding condition is met.
if longCondition
strategy.entry("Long entry at bar #" + str.tostring(bar_index), strategy.long)
if shortCondition
strategy.entry("Short entry at bar #" + str.tostring(bar_index), strategy.short)
// Display ID of the latest open position.
if barstate.islastconfirmedhistory
runtime.log("Last opened position is " + strategy.opentrades.entry_id(strategy.opentrades - 1))
Rückgabewert
ID für die Rückgabe eines Eingangs in einen ungeklärten Handel.
Parameter
trade_num(series int) Die Transaktionsnummer für den nicht ausgeglichenen Handel. Die Nummer für den ersten Handel ist null.
Anmerkung
Wenn trade_num nicht im Bereich ist, gibt die Funktion na:0 zurück zu strategy.opentrades-1。
Siehe auch
strategy.opentrades.entry_bar_index strategy.opentrades.entry_time
strategy.opentrades.entry_price
Eintrittspreise für die Rückgabe von ungeklärten Positionen.
strategy.opentrades.entry_price(trade_num)
Beispiel
pine
strategy("strategy.closedtrades.entry_price Example 1")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Return the entry price for the latest closed trade.
entryPrice = strategy.closedtrades.entry_price(strategy.closedtrades - 1)
plot(entryPrice, "Long entry price")
Berechnung des durchschnittlichen ungeklärten Kurses
Beispiel
pine
strategy("strategy.opentrades.entry_price Example 2", pyramiding = 2)
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate average open position price.
avgOpenPositionPrice() =>
sumOpenPositionPrice = 0.0
for tradeNo = 0 to strategy.opentrades - 1
sumOpenPositionPrice += strategy.opentrades.entry_price(tradeNo) * strategy.opentrades.size(tradeNo) / strategy.position_size
result = nz(sumOpenPositionPrice / strategy.opentrades)
plot(avgOpenPositionPrice())
Parameter
trade_num(series int) Die Transaktionsnummer für den nicht ausgeglichenen Handel. Die Nummer für den ersten Handel ist null.
Siehe auch
strategy.closedtrades.exit_price
strategy.opentrades.entry_time
Zurück zu UNIX-Zeit für den Eintritt in eine noch nicht ausgeglichene Position.
strategy.opentrades.entry_time(trade_num)
Beispiel
pine
strategy("strategy.opentrades.entry_time Example")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculates duration in milliseconds since the last position was opened.
timeSinceLastEntry()=>
strategy.opentrades > 0 ? (time - strategy.opentrades.entry_time(strategy.opentrades - 1)) : na
plot(timeSinceLastEntry() / 1000 * 60 * 60 * 24, "Days since last entry")
Parameter
trade_num(series int) Die Transaktionsnummer für den nicht ausgeglichenen Handel. Die Nummer für den ersten Handel ist null.
Siehe auch
strategy.closedtrades.entry_time strategy.closedtrades.exit_time
strategy.opentrades.profit
Verluste, die auf ungeklärte Geschäfte zurückgehen. Verluste werden als negative Werte dargestellt.
strategy.opentrades.profit(trade_num)
Rückkehr zu den Gewinnen aus dem letzten Börsengang
Beispiel
pine
strategy("`strategy.opentrades.profit` Example 1", commission_type = strategy.commission.percent, commission_value = 0.1)
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
plot(strategy.opentrades.profit(strategy.opentrades - 1), "Profit of the latest open trade")
Berechnung des Gewinns aus allen ungeklärten Positionen
Beispiel
pine
strategy("`strategy.opentrades.profit` Example 2", pyramiding = 5)
// Strategy calls to enter 5 long positions every 2 bars.
if bar_index % 2 == 0
strategy.entry("Long", strategy.long, qty = 5)
// Calculate open profit or loss for the open positions.
tradeOpenPL() =>
sumProfit = 0.0
for tradeNo = 0 to strategy.opentrades - 1
sumProfit += strategy.opentrades.profit(tradeNo)
result = sumProfit
plot(tradeOpenPL(), "Profit of all open trades")
Parameter
trade_num(series int) Die Transaktionsnummer für den nicht ausgeglichenen Handel. Die Nummer für den ersten Handel ist null.
Siehe auch
strategy.closedtrades.profit strategy.openprofit strategy.netprofit strategy.grossprofit
strategy.opentrades.size
Gibt die Richtung und die Anzahl der Geschäfte in einem ungeklärten Handel zurück. Wenn dieser Wert > 0 ist, ist die Marktposition mehrköpfig. Wenn dieser Wert < 0 ist, ist die Marktposition leer.
strategy.opentrades.size(trade_num)
Beispiel
pine
strategy("`strategy.opentrades.size` Example 1")
// We calculate the max amt of shares we can buy.
amtShares = math.floor(strategy.equity / close)
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars
if bar_index % 15 == 0
strategy.entry("Long", strategy.long, qty = amtShares)
if bar_index % 20 == 0
strategy.close("Long")
// Plot the number of contracts in the latest open trade.
plot(strategy.opentrades.size(strategy.opentrades - 1), "Amount of contracts in latest open trade")
Berechnung des Prozentsatzes der durchschnittlichen Gewinne aus ungeklärten Positionen
Beispiel
pine
strategy("`strategy.opentrades.size` Example 2")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate profit for all open trades.
profitPct = 0.0
for tradeNo = 0 to strategy.opentrades - 1
entryP = strategy.opentrades.entry_price(tradeNo)
exitP = close
profitPct += (exitP - entryP) / entryP * strategy.opentrades.size(tradeNo) * 100
// Calculate average profit percent for all open trades.
avgProfitPct = nz(profitPct / strategy.opentrades)
Parameter
trade_num(series int) Die Transaktionsnummer für den nicht ausgeglichenen Handel. Die Nummer für den ersten Handel ist null.
Siehe auch
strategy.closedtrades.size strategy.position_size strategy.opentrades strategy.closedtrades
strategy.closedtrades.entry_bar_index
Bar_index, der einen ausgeglichenen Eintrag zurückgibt.
strategy.closedtrades.entry_bar_index(trade_num)
Beispiel
pine
strategy("strategy.closedtrades.entry_bar_index Example")
// Enter long trades on three rising bars; exit on two falling bars.
if ta.rising(close, 3)
strategy.entry("Long", strategy.long)
if ta.falling(close, 2)
strategy.close("Long")
// Function that calculates the average amount of bars in a trade.
avgBarsPerTrade() =>
sumBarsPerTrade = 0
for tradeNo = 0 to strategy.closedtrades - 1
// Loop through all closed trades, starting with the oldest.
sumBarsPerTrade += strategy.closedtrades.exit_bar_index(tradeNo) - strategy.closedtrades.entry_bar_index(tradeNo) + 1
result = nz(sumBarsPerTrade / strategy.closedtrades)
plot(avgBarsPerTrade())
Parameter
trade_num(series int) Die Nummer des Transaktions, der mit der Auszahlung begann. Die Nummer des ersten Transaktions ist null.
Siehe auch
strategy.closedtrades.exit_bar_index strategy.opentrades.entry_bar_index
strategy.closedtrades.exit_price
Rückkehr zum Ausgangspreis für einen ausgeglichenen Handel.
strategy.closedtrades.exit_price(trade_num)
Beispiel
pine
strategy("strategy.closedtrades.exit_price Example 1")
// We are creating a long trade every 5 bars
if bar_index % 5 == 0
strategy.entry("Long", strategy.long)
strategy.close("Long")
// Return the exit price from the latest closed trade.
exitPrice = strategy.closedtrades.exit_price(strategy.closedtrades - 1)
plot(exitPrice, "Long exit price")
Berechnen Sie den Prozentsatz der durchschnittlichen Gewinne für alle ausgeglichenen Geschäfte
Beispiel
pine
strategy("strategy.closedtrades.exit_price Example 2")
// Strategy calls to create single short and long trades.
if bar_index == last_bar_index - 15
strategy.entry("Long Entry", strategy.long)
else if bar_index == last_bar_index - 10
strategy.close("Long Entry")
strategy.entry("Short", strategy.short)
else if bar_index == last_bar_index - 5
strategy.close("Short")
// Calculate profit for both closed trades.
profitPct = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
entryP = strategy.closedtrades.entry_price(tradeNo)
exitP = strategy.closedtrades.exit_price(tradeNo)
profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100
// Calculate average profit percent for both closed trades.
avgProfitPct = nz(profitPct / strategy.closedtrades)
plot(avgProfitPct)
Parameter
trade_num(series int) Die Nummer des Transaktions, der mit der Auszahlung begann. Die Nummer des ersten Transaktions ist null.
Siehe auch
strategy.closedtrades.entry_price
strategy.closedtrades.exit_bar_index
Bar_index, der den ausgeglichenen Handel zurückgibt.
strategy.closedtrades.exit_bar_index(trade_num)
Beispiel
pine
strategy("strategy.closedtrades.exit_bar_index Example 1")
// Strategy calls to place a single short trade. We enter the trade at the first bar and exit the trade at 10 bars before the last chart bar.
if bar_index == 0
strategy.entry("Short", strategy.short)
if bar_index == last_bar_index - 10
strategy.close("Short")
// Calculate the amount of bars since the last closed trade.
barsSinceClosed = strategy.closedtrades > 0 ? bar_index - strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1) : na
plot(barsSinceClosed, "Bars since last closed trade")
Berechnen Sie die durchschnittliche K-Linie pro Transaktion.
Beispiel
pine
strategy("strategy.closedtrades.exit_bar_index Example 2")
// Enter long trades on three rising bars; exit on two falling bars.
if ta.rising(close, 3)
strategy.entry("Long", strategy.long)
if ta.falling(close, 2)
strategy.close("Long")
// Function that calculates the average amount of bars per trade.
avgBarsPerTrade() =>
sumBarsPerTrade = 0
for tradeNo = 0 to strategy.closedtrades - 1
// Loop through all closed trades, starting with the oldest.
sumBarsPerTrade += strategy.closedtrades.exit_bar_index(tradeNo) - strategy.closedtrades.entry_bar_index(tradeNo) + 1
result = nz(sumBarsPerTrade / strategy.closedtrades)
plot(avgBarsPerTrade())
Parameter
trade_num(series int) Die Nummer des Transaktions, der mit der Auszahlung begann. Die Nummer des ersten Transaktions ist null.
Siehe auch
bar_index
strategy.closedtrades.entry_id
Die Eintritts-ID für einen ausgeglichenen Handel wird zurückgegeben.
strategy.closedtrades.entry_id(trade_num)
Beispiel
pine
strategy("strategy.closedtrades.entry_id Example", overlay = true)
var isOpen = false
var openIndex = -1
// Enter a short position and close at the previous to last bar.
if not barstate.ishistory and not isOpen
strategy.entry("Short at bar #" + str.tostring(bar_index), strategy.short)
isOpen := true
openIndex := bar_index
if openIndex != -1 and bar_index > openIndex + 100
strategy.close_all()
// Display ID of the last entry position.
if barstate.islastconfirmedhistory
runtime.log("Last Entry ID is: " + strategy.closedtrades.entry_id(strategy.closedtrades - 1))
Rückgabewert
Die Eintritts-ID für einen ausgeglichenen Handel wird zurückgegeben.
Parameter
trade_num(series int) Die Nummer des Transaktions, der mit der Auszahlung begann. Die Nummer des ersten Transaktions ist null.
Anmerkung
Wenn trade_num nicht im Bereich ist, gibt die Funktion na:0 zurück zu strategy.closedtrades-1。
Siehe auch
strategy.closedtrades.entry_bar_index strategy.closedtrades.entry_time
strategy.closedtrades.entry_price
Eintrittspreise für die Rückgabe eines ausgeglichenen Deals.
strategy.closedtrades.entry_price(trade_num)
Beispiel
pine
strategy("strategy.closedtrades.entry_price Example 1")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Return the entry price for the latest entry.
entryPrice = strategy.closedtrades.entry_price(strategy.closedtrades - 1)
plot(entryPrice, "Long entry price")
Berechnen Sie den Prozentsatz der durchschnittlichen Gewinne für alle ausgeglichenen Geschäfte
Beispiel
pine
strategy("strategy.closedtrades.entry_price Example 2")
// Strategy calls to create single short and long trades
if bar_index == last_bar_index - 15
strategy.entry("Long Entry", strategy.long)
else if bar_index == last_bar_index - 10
strategy.close("Long Entry")
strategy.entry("Short", strategy.short)
else if bar_index == last_bar_index - 5
strategy.close("Short")
// Calculate profit for both closed trades.
profitPct = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
entryP = strategy.closedtrades.entry_price(tradeNo)
exitP = strategy.closedtrades.exit_price(tradeNo)
profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100
// Calculate average profit percent for both closed trades.
avgProfitPct = nz(profitPct / strategy.closedtrades)
plot(avgProfitPct)
Parameter
trade_num(series int) Die Nummer des Transaktions, der mit der Auszahlung begann. Die Nummer des ersten Transaktions ist null.
Siehe auch
strategy.closedtrades.exit_price strategy.closedtrades.size strategy.closedtrades
strategy.closedtrades.entry_time
Zurück zur UNIX-Zeit, in der der Handel ausgeglichen wurde.
strategy.closedtrades.entry_time(trade_num)
Beispiel
pine
strategy("strategy.closedtrades.entry_time Example", overlay = true)
// Enter long trades on three rising bars; exit on two falling bars.
if ta.rising(close, 3)
strategy.entry("Long", strategy.long)
if ta.falling(close, 2)
strategy.close("Long")
// Calculate the average trade duration
avgTradeDuration() =>
sumTradeDuration = 0
for i = 0 to strategy.closedtrades - 1
sumTradeDuration += strategy.closedtrades.exit_time(i) - strategy.closedtrades.entry_time(i)
result = nz(sumTradeDuration / strategy.closedtrades)
// Display average duration converted to seconds and formatted using 2 decimal points
if barstate.islastconfirmedhistory
runtime.log(str.tostring(avgTradeDuration() / 1000, "#.##") + " seconds")
Parameter
trade_num(series int) Die Nummer des Transaktions, der mit der Auszahlung begann. Die Nummer des ersten Transaktions ist null.
Siehe auch
strategy.opentrades.entry_time strategy.closedtrades.exit_time time
strategy.closedtrades.profit
Verluste, die auf einen ausgeglichenen Handel zurückkehren. Verluste werden als negative Werte dargestellt.
strategy.closedtrades.profit(trade_num)
Beispiel
pine
strategy("`strategy.closedtrades.profit` Example")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate average gross profit by adding the difference between gross profit and commission.
avgGrossProfit() =>
sumGrossProfit = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
sumGrossProfit += strategy.closedtrades.profit(tradeNo) - strategy.closedtrades.commission(tradeNo)
result = nz(sumGrossProfit / strategy.closedtrades)
plot(avgGrossProfit(), "Average gross profit")
Parameter
trade_num(series int) Die Nummer des Transaktions, der mit der Auszahlung begann. Die Nummer des ersten Transaktions ist null.
Siehe auch
strategy.opentrades.profit strategy.closedtrades.commission
strategy.closedtrades.size
Gibt die Richtung und die Anzahl der Geschäfte in einem ausgeglichenen Handel zurück. Wenn dieser Wert > 0 ist, ist die Marktposition mehrköpfig. Wenn dieser Wert < 0 ist, ist die Marktposition leer.
strategy.closedtrades.size(trade_num)
Beispiel
pine
strategy("`strategy.closedtrades.size` Example 1")
// We calculate the max amt of shares we can buy.
amtShares = math.floor(strategy.equity / close)
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars
if bar_index % 15 == 0
strategy.entry("Long", strategy.long, qty = amtShares)
if bar_index % 20 == 0
strategy.close("Long")
// Plot the number of contracts traded in the last closed trade.
plot(strategy.closedtrades.size(strategy.closedtrades - 1), "Number of contracts traded")
Berechnung des Prozentsatzes der durchschnittlichen Gewinne aus den Off-Position-Transaktionen
Beispiel
pine
strategy("`strategy.closedtrades.size` Example 2")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate profit for both closed trades.
profitPct = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
entryP = strategy.closedtrades.entry_price(tradeNo)
exitP = strategy.closedtrades.exit_price(tradeNo)
profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100
// Calculate average profit percent for both closed trades.
avgProfitPct = nz(profitPct / strategy.closedtrades)
plot(avgProfitPct)
Parameter
trade_num(series int) Die Nummer des Transaktions, der mit der Auszahlung begann. Die Nummer des ersten Transaktions ist null.
Siehe auch
strategy.opentrades.size strategy.position_size strategy.closedtrades strategy.opentrades
strategy.closedtrades.exit_time
Zurück zum UNIX-Zeitpunkt, zu dem der ausgeglichene Handel beendet wurde.
strategy.closedtrades.exit_time(trade_num)
Beispiel
pine
strategy("strategy.closedtrades.exit_time Example 1")
// Enter long trades on three rising bars; exit on two falling bars.
if ta.rising(close, 3)
strategy.entry("Long", strategy.long)
if ta.falling(close, 2)
strategy.close("Long")
// Calculate the average trade duration.
avgTradeDuration() =>
sumTradeDuration = 0
for i = 0 to strategy.closedtrades - 1
sumTradeDuration += strategy.closedtrades.exit_time(i) - strategy.closedtrades.entry_time(i)
result = nz(sumTradeDuration / strategy.closedtrades)
// Display average duration converted to seconds and formatted using 2 decimal points.
if barstate.islastconfirmedhistory
label.new(bar_index, high, str.tostring(avgTradeDuration() / 1000, "#.##") + " seconds")
Nach X Sekunden wird der ausgeschlossene Handel wieder geöffnet.
Beispiel
strategy("strategy.closedtrades.exit_time Example 2")
// Strategy calls to emulate a single long trade at the first bar.
if bar_index == 0
strategy.entry("Long", strategy.long)
reopenPositionAfter(timeSec) =>
if strategy.closedtrades > 0
if time - strategy.closedtrades.exit_time(strategy.closedtrades - 1) >= timeSec * 1000
strategy.entry("Long", strategy.long)
// Reopen last closed position after 120 sec.
reopenPositionAfter(120)
if ta.change(strategy.opentrades)
strategy.exit("Long", stop = low * 0.9, profit = high * 2.5)
Parameter
trade_num(series int) Die Nummer des Transaktions, der mit der Auszahlung begann. Die Nummer des ersten Transaktions ist null.
Siehe auch
strategy.closedtrades.entry_time
strategy.risk.allow_entry_in
Diese Funktion kann verwendet werden, um zu bestimmen, in welcher Richtung die Strategy.entry-Funktion zulässt.
strategy.risk.allow_entry_in(value)
Beispiel
pine
strategy("strategy.risk.allow_entry_in")
strategy.risk.allow_entry_in(strategy.direction.long)
strategy.entry("Long", strategy.long, when = open > close)
// Instead of opening a short position with 10 contracts, this command will close long entries.
strategy.entry("Short", strategy.short, when = open < close, qty = 10)
Parameter
value(simple string) Erlaubte Richtungen. Mögliche Werte:strategy.direction.all、strategy.direction.long、strategy.direction.short
strategy.risk.max_position_size
Der Zweck dieser Regel ist es, den maximalen Wert einer Marktposition zu bestimmen. Die Regel wirkt sich auf folgende Funktionen aus:strategy.entryDie Anzahl der Eintrittskanonen kann reduziert werden (wenn erforderlich) auf die Anzahl der Kontrakte/Aktien/Hände/Einheiten, so dass der Gesamtwert der Position nicht über den in 'strategy.risk.max_position_size' angegebenen Wert hinausgeht. Wenn die Mindestanzahl dennoch gegen die Regeln verstößt, wird kein Auftrag platziert.
strategy.risk.max_position_size(contracts)
Beispiel
pine
strategy("risk.max_position_size Demo", default_qty_value = 100)
strategy.risk.max_position_size(10)
strategy.entry("buy", strategy.long, when = open > close)
plot(strategy.position_size) // max plot value will be 10
Parameter
contracts(simple int/float) Notwendige Parameter. Höchste Anzahl an Verträgen/Aktien/Händlern/Einheiten der Position.
math
math.abs
Was ist?number >= 0,numberDer absolute Wert ist numberoder -number。
math.abs(number)
Rückgabewert
numberAbsolute Werte für
math.acos
Die acos-Funktion gibt die negative Eckung der Zahl ((in einem Bogen) zurück, z. B. cos ((acos ((y)) = y im Bereich y.[-1, 1]。
math.acos(angle)
Rückgabewert
Reverse-Effekt. Wenn y außerhalb des Bereichs ist[-1,1], der Rückwinkel ist in[In der Reichweite von 0, Pi] oder na.
math.random
Gibt einen pseudo-randomisierten Wert zurück. Die Funktion erzeugt eine unterschiedliche Reihe von Werten für jedes Skript, das ausgeführt wird. Die Verwendung der gleichen Werte für die auswählbaren Seed-Parameter erzeugt eine wiederholbare Reihe.
math.random(min, max, seed)
Rückgabewert
Ein zufälliger Wert.
Parameter
min(series int/float) Untere Grenze des Randomwertbereichs。 Der Wert ist nicht im Bereich enthalten。 Der Standardwert ist 0。max(series int/float) Obergrenze für den Bereich der zufälligen Werte. Der Wert ist nicht im Bereich enthalten. Der Standardwert ist 1seed(input int) Optionale Parameter. Es ist erlaubt, diese Funktion in Folge aufzurufen, um eine Reihe von wiederholbaren Werten zu erzeugen, wenn derselbe Seed verwendet wird.
math.asin
Die asin-Funktion gibt die Gegen-Synthese der Zahlen zurück ((in einem Bogen), wobei die Synthese ((asin ((y)) = y in einem Bereich von y[-1, 1]。
math.asin(angle)
Rückgabewert
Die Antitronschall-Werte. Wenn y außerhalb des Bereichs ist[-1,1], der Rückwinkel ist in[-Pi / 2, Pi / 2] oder in der Reichweite von na.
math.atan
Die atan-Funktion gibt die linke Schnittstelle der Zahlen zurück ((in einem Bogen), so dass tan ((atan ((y)) = y in jedem y.
math.atan(angle)
Rückgabewert
Die Rückwärtswinkel ist in[-Pi / 2, Pi / 2] im Bereich der
math.ceil
Die oberwärtsgeführte Integer-Funktion gibt die kleinste (und damit am wenigsten negative) ganze Zahl zurück, die größer oder gleich dem Argument ist.
math.ceil(number)
Rückgabewert
Mindeste ganze Zahl kleiner oder gleich einer gegebenen Zahl
Siehe auch
math.floor math.round
math.cos
Die cos-Funktion gibt einen Dreiecksschleife zurück.
math.cos(angle)
Rückgabewert
Die Dreiecksschlinge der Ecke.
Parameter
angle(series int/float) Winkel, in der Breite
math.exp
numberDie exp-Funktion von e ist numberDie Quadratur, wobei e die Eulerzahl ist.
math.exp(number)
Rückgabewert
Eines der Werte für e, das istnumberDas ist eine gute Idee.
Siehe auch
math.pow
math.floor
math.floor(number)
Rückgabewert
größtmögliche ganze Zahl kleiner oder gleich der angegebenen Zahl.
Siehe auch
math.ceil math.round
math.log
Was auch immer.numberDie natürliche Logarithmik von > 0 ist die einzige y, so dass e^y = number。
math.log(number)
Rückgabewert
numberDie natürlichen Argumente der .
Siehe auch
math.log10
math.log10
numberDie übliche Argumentation ist, dass man den Wert 10 erhöhen muss, um den Wert 10 zu erhalten.number。10^y = number。
math.log10(number)
Rückgabewert
numberDie logarithmische Basis von 10
Siehe auch
math.log
math.pow
Mathematische Funktionen
math.pow(base, exponent)
Beispiel
pine
// math.pow
plot(math.pow(close, 2))
Rückgabewert
baseErhöhung aufexponentWennbaseEs ist eine Reihe, die nach Elementen berechnet wird.
Parameter
base(series int/float) Gibt die Basis an, die verwendet werden soll.exponent(series int/float) Der angegebene Index.
math.sign
Wenn die Quadratzahl 0 ist, ist das Signal der Quadratzahl 0; wenn die Quadratzahl größer als 0 ist, ist es 1,0; wenn die Quadratzahl kleiner als 0 ist, ist es -1,0.
math.sign(number)
Rückgabewert
Das Logo der Parameter.
math.sin
Die Synthesefunktion gibt die Synthese eines Winkels zurück.
math.sin(angle)
Rückgabewert
Die Dreiecks-Synthese der Ecken.
Parameter
angle(series int/float) Winkel, in der Breite
math.sqrt
Was auch immernumberDie Quadratwurzel von >=0 ist die einzige Sache, bei der y >=0 so groß ist, dass y^2 = number。
math.sqrt(number)
Rückgabewert
numberDie Quadratwurzel.
Siehe auch
math.pow
math.tan
Der Dreiecksschnitt, in dem die Tan-Funktion den Winkel zurückgibt.
math.tan(angle)
Rückgabewert
Die Ecken des Dreiecks sind gerade.
Parameter
angle(series int/float) Winkel, in der Breite
math.round
Zurück.numberWenn der Wert von <unk> {\displaystyle <unk>} verwendet wird, wird der Wert von <unk> {\displaystyle <unk>} auf die nächstgelegene ganze Zahl verteilt und nach oben ausgeglichen.precisionDer Parameter gibt einen Floating-Point-Wert zurück, der in eine Vier- oder Fünf-Zahl-Zahl eingegeben wird.
math.round(number)
math.round(number, precision)
Rückgabewert
numberDie Werte der Werte werden in die nächste ganze Zahl oder entsprechend der Genauigkeit eingeteilt.
Parameter
number(series int/float) Umkreist werden soll.precision(series int) Optionale ParameternumberDie geringe Zahl, die mit einer Viertelzahl versehen wird. Wenn keine Parameter angegeben sind, wird die Viertelzahl mit einer Viertelzahl an die nächste ganze Zahl versehen.
Anmerkung
Bitte beachten Sie, dass die Funktion 'na' für 'na' zurückgibt.
Siehe auch
math.ceil math.floor
math.max
Gibt den größten von mehreren Werten zurück.
math.max(number0, number1, ...)
Beispiel
pine
// math.max
plot(math.max(close, open))
plot(math.max(close, math.max(open, 42)))
Rückgabewert
Die größte von mehreren gegebenen Werten.
Siehe auch
math.min
math.min
Gibt die kleinste von mehreren Werten zurück.
math.min(number0, number1, ...)
Beispiel
pine
// math.min
plot(math.min(close, open))
plot(math.min(close, math.min(open, 42)))
Rückgabewert
Minimaler Wert unter mehreren gegebenen Werten.
Siehe auch
math.max
math.avg
Berechnen Sie den Mittelwert aller Reihen ((entsprechende Elemente) <unk>.
math.avg(number0, number1, ...)
Rückgabewert
Durchschnitt
Siehe auch
math.sum ta.cum ta.sma
math.round_to_mintick
Gibt die Mintick-Werte zurück, die in die Ware eingezählt wurden, d.h. die können ohne Rest durch die nächstgelegenen Werte von syminfo.mintick dividiert und nach oben eingezählt werden.
math.round_to_mintick(number)
Rückgabewert
numberVier Runden und fünf Eingänge bis zum Tick.
Parameter
number(series int/float) Umkreist werden soll.
Siehe auch
math.ceil math.floor
math.sum
Die sum-Funktion gibt die Schiebe-Synthese der letzten y-Werte von x zurück.
math.sum(source, length)
Rückgabewert
lengthK-Strecke zurückgegebensourceZusammengefasst
Parameter
source(series int/float) Die auszuführenden Serienwerte.length(series int) Anzahl der K-Zeilen (länge).
math.todegrees
Von einem Winkel in der Einheit der Bogenlänge wird der nahezu äquivalente Winkel in der Einheit der Grade zurückgegeben.
math.todegrees(radians)
Rückgabewert
Winkelwert in Einheiten gemessen.
Parameter
radians(series int/float) Der Winkel in Einheiten des Bogen.
math.toradians
Von einem Winkel in Einheiten der Größe wird der nahezu äquivalente Winkel in Einheiten der Bogenlänge zurückgegeben.
math.toradians(degrees)
Rückgabewert
Winkelwert in Einheiten der Bogenlänge.
Parameter
degrees(series int/float) Der Winkel in Einheiten.
others
fixnan
NaN-Werte werden für die angegebene Reihe durch vorherige Nicht-NaN-Werte ersetzt.
fixnan(source)
Rückgabewert
Eine Serie ohne Na-Lücke.
Parameter
source(series int/float/bool/color)
nz
NaN-Werte durch Null (oder eine bestimmte Zahl in der Reihe) ersetzen.
nz(source, replacement)
nz(source)
Beispiel
pine
// nz
plot(nz(ta.sma(close, 100)))
Rückgabewert
sourceWenn es nicht so istnaWennsourceDie Werte fürnaWird 0 zurückgegeben, wird 1 zurückgegeben.replacementParameter
Parameter
source(series int/float/bool/color) Die Serie, die ausgeführt werden soll.replacement(series int/float/bool/color) ersetzt die Werte aller <unk>na-Thresholds in der <unk>source<unk>-Serie.
na
Wenn NaN, dann Testwert <unk>
na(x)
Rückgabewert
Wenn x keine gültige Zahl ist, dann ist es wahr (x ist NaN), andernfalls ist es falsch.
int
Umwandlung in na oder Trennung der Float-Werte in int。
int(x)
Rückgabewert
Umwandlung in die Parameterwerte nach int。
Siehe auch
float bool color string
float
Setzen Sie na auf Floating.
float(x)
Rückgabewert
Umwandlung in die Parameterwerte nach float。
Siehe auch
int bool color string
alert
Alarmereignisse werden ausgelöst, wenn sie während der K-Linie in Echtzeit aufgerufen werden, und Alarmereignisse werden zuvor als Kennzeichen oder als Strategie erstellt, die auf den Ereignissen der Alarmfunktion basieren.
alert(message, freq)
Beispiel
pine
// alert() example
ma = ta.sma(close, 14)
xUp = ta.crossover(close, ma)
if xUp
// Trigger the alert the first time a cross occurs during the real-time bar.
alert("Price (" + str.tostring(close) + ") crossed over MA (" + str.tostring(ma) + ").", alert.freq_once_per_bar)
plot(ma)
plotchar(xUp, "xUp", "▲", location.top, size = size.tiny)
Parameter
message(series string) Die Nachricht, die beim Auslösen des Alarms gesendet wird.freq(input string) Triggerfrequenz. Die möglichen Werte sind: alert.freq_all, alert.freq_once_per_bar, alert.freq_once_per_bar, alert.freq_once_per_bar, alert.freq_once_per_bar, alert.freq_once_per_bar, alert.freq_once_per_bar, alert.freq_once_per_bar, alert.freq_once_per_bar, alert.freq_once_per_bar, alert.freq_once_per_bar, alert.freq_once_per_bar, alert.freq_once_per_bar, alert.freq_once_per_bar, alert.freq_once_per_bar, alert.freq_once_per_bar, alert.freq_once_per_bar, alert.freq_once_per_bar, alert.alert.freq_once_per_bar, alert.alert.freq_once_per_bar, alert.freq_once_per_per_bar, alert
Anmerkung
Die Hilfszentrale zeigt Ihnen, wie Sie solche Warnungen erstellen können.
Im Gegensatz zu alertcondition zählt der alert-Aufruf nicht als zusätzliche Grafik.
Funktionsaufrufe können sowohl global als auch lokal eingesetzt werden.
Der Funktionsaufruf zeigt nichts auf der Grafik.
Der Parameter <unk>freq<unk> wirkt sich nur auf die Triggerfrequenz aus, bei der diese Funktion aufgerufen wird.
Siehe auch
alertcondition
alertcondition
Alarmbedingungen erstellen können Sie im Dialogfeld "Alarmbedingungen erstellen". Bitte beachten Sie, dass der alertcondition-Effekt keinen Alarm erstellt, sondern Ihnen nur weitere Optionen im Dialogfeld "Alarmbedingungen erstellen" bietet. Außerdem ist der Effekt des alertcondition-Effekts in der Grafik nicht sichtbar.
alertcondition(condition, title, message)
Beispiel
pine
// alertcondition
alertcondition(close >= open, title='Alert on Green Bar', message='Green Bar!')
Parameter
condition(series bool) Eine Reihe von Boole-Werten, die für Alarme verwendet werden. True bedeutet Alarm ausgelöst, false bedeutet keine Alarm.title(const string) Der Titel der Alarmbedingung. Optionale Parameter.message(const string) Anzeige einer Nachricht, wenn der Alarm ausgelöst wird. Optional.
Anmerkung
Bitte beachten Sie, dass in Pine v4 der Aufruf der Alarmbedingung eine zusätzliche Grafik erzeugt. Alle diese Aufrufe werden berücksichtigt, wenn wir die Anzahl der Ausgabefolgen für jedes Skript berechnen.
Siehe auch
alert
indicator
Für die KompatibilitätTrading ViewStrategiecode, der eigentlich nicht aufgerufen werden muss.
Siehe auch
strategy
time
Die time-Funktion gibt die UNIX-Zeit der aktuellen K-Zeile für den angegebenen Zeitbereich und die Transaktionszeit zurück. Wenn die Zeitpunkte nicht in der Transaktionszeit liegen, wird NaN zurückgegeben.sessionParameter
time(timeframe, session, timezone)
time(timeframe, session)
time(timeframe)
Beispiel
pine
timeinrange(res, sess) => not na(time(res, sess, "America/New_York")) ? 1 : 0
plot(timeinrange("1", "1300-1400"), color=color.red)
// This plots 1.0 at every start of 10 minute bar on a 1 minute chart:
newbar(res) => ta.change(time(res)) == 0 ? 0 : 1
plot(newbar("10"))
Wenn Sie eine Sitzung einrichten, können Sie nicht nur die Uhrzeit und die Minuten, sondern auch den Tag in der Woche angeben.
Wenn kein Datum angegeben ist, wird angenommen, dass die Handelszeit von Sonntag (1) bis Samstag (7) eingestellt ist, d. h. 1100-2000 RON ist identisch mit 1100-1200 RON: 1234567 RON.
Sie können dies ändern, indem Sie den Tag angeben. Zum Beispiel, für Waren, die 7 Tage in der Woche gehandelt werden und 24-Stunden-Handelszeiten haben, wird das folgende Skript nicht für Samstag und Sonntag gefärbt:
Beispiel
pine
// Time
t1 = time(timeframe.period, "0000-0000:23456")
bgcolor(t1 ? color.new(color.blue, 90) : na)
Eine.sessionDie Parameter können mehrere verschiedene Transaktionszeiten enthalten, die durch Kommas getrennt sind. So wird beispielsweise in folgenden Skripten ein K-Linienbild von 10:00 bis 11:00 und von 14:00 bis 15:00 (nur an Werktagen) hervorgehoben:
Beispiel
pine
// Time
t1 = time(timeframe.period, "1000-1100,1400-1500:23456")
bgcolor(t1 ? color.new(color.blue, 90) : na)
Rückgabewert
Unix-Zeit
Parameter
timeframe(simple string) Zeitspanne. Die leere Zeichenfolge wird als die aktuelle Zeitspanne des Diagramms interpretiert.(simple string) Handelszeitspezifikationen。 Optionale Parameter, Standard ist Handelszeiten。 Leere Strings werden als Handelszeiten für Waren interpretiert。 FMZ wird nicht unterstützt。sessiontimezone(simple string)sessionDer Parameter-Zeitzone。 kann nur verwendet werden, wenn die Sitzungszone der Antenne angegeben ist。 ist optional。 Der Standardwert ist syminfo.timezone。 kann mit der GMT-Ausdrucksweise ((z. B. <unk>GMT-5<unk>) oder dem IANA-Zeitzonendatenbanknamen ((z. B. <unk>America/New_York<unk>)) angegeben werden。
Anmerkung
UNIX-Zeit ist die Anzahl der Millisekunden, die seit dem 1. Januar 1970 (UTC 00:00:00) vergangen sind.
year
year(time)
year(time, timezone)
Rückgabewert
Das Jahr, in dem die UNIX-Zeit verfügbar ist (eine Wechselzeitzone).
Parameter
time(series int) ist die Unix-Zeit in Millisekunden.timezone(series string) Optionale Parameter ◦ Zeitzone ◦
Anmerkung
UNIX-Zeit ist die Anzahl der Millisekunden seit dem 1. Januar 1970 UTC 00:00:00 Uhr. Die Standardzeitzone ist syminfo.timezone. Sie können die möglichen Werte mit einem Zeitstempel überprüfen.
Bitte beachten Sie, dass diese Funktion das Jahr anhand der Öffnungszeit der K-Linie zurückgibt. Für die Übernacht-Handelszeit (z. B. EURUSD-Mondtags-Handelszeit, die am Sonntag um 17:00 UTC-4 beginnt) kann dieser Wert 1 niedriger sein als das Jahr des Handelstages.
Siehe auch
year time month dayofmonth dayofweek hour minute second
month
month(time)
month(time, timezone)
Rückgabewert
Monat, in dem die UNIX-Zeit verfügbar ist (eingeschaltete Zeitzone).
Parameter
time(series int) ist die Unix-Zeit in Millisekunden.timezone(series string) Optionale Parameter ◦ Zeitzone ◦
Anmerkung
UNIX-Zeit ist die Anzahl der Millisekunden seit dem 1. Januar 1970 UTC 00:00:00 Uhr. Die Standardzeitzone ist syminfo.timezone. Sie können die möglichen Werte mit einem Zeitstempel überprüfen.
Bitte beachten Sie, dass diese Funktion den Monat anhand der Öffnungszeit der K-Linie zurückgibt. Für die Übernacht-Handelszeit (z. B. EURUSD-Handelszeit am Montag beginnt am Sonntag um 17:00 UTC-4) kann dieser Wert 1 niedriger sein als der Monat des Handelstages.
Siehe auch
month time year dayofmonth dayofweek hour minute second
hour
hour(time)
hour(time, timezone)
Rückgabewert
UNIX-Zeit (eingeschaltete Zeitzone) [2].
Parameter
time(series int) ist die Unix-Zeit in Millisekunden.timezone(series string) Optionale Parameter ◦ Zeitzone ◦
Anmerkung
UNIX-Zeit ist die Anzahl der Millisekunden seit dem 1. Januar 1970 UTC 00:00:00 Uhr. Die Standardzeitzone ist syminfo.timezone. Sie können die möglichen Werte mit einem Zeitstempel überprüfen.
Siehe auch
hour time year month dayofmonth dayofweek minute second
minute
minute(time)
minute(time, timezone)
Rückgabewert
Minuten für die Bereitstellung von UNIX-Zeit ((Swap-Zeitzonen)) [2].
Parameter
time(series int) ist die Unix-Zeit in Millisekunden.timezone(series string) Optionale Parameter ◦ Zeitzone ◦
Anmerkung
UNIX-Zeit ist die Anzahl der Millisekunden seit dem 1. Januar 1970 UTC 00:00:00 Uhr. Die Standardzeitzone ist syminfo.timezone. Sie können die möglichen Werte mit einem Zeitstempel überprüfen.
Siehe auch
minute time year month dayofmonth dayofweek hour second
second
second(time)
second(time, timezone)
Rückgabewert
Die Anzahl der Sekunden, die für die UNIX-Zeit vorgesehen sind (eingeschaltete Zeitzonen).
Parameter
time(series int) ist die Unix-Zeit in Millisekunden.timezone(series string) Optionale Parameter ◦ Zeitzone ◦
Anmerkung
UNIX-Zeit ist die Anzahl der Millisekunden seit dem 1. Januar 1970 UTC 00:00:00 Uhr. Die Standardzeitzone ist syminfo.timezone. Sie können die möglichen Werte mit einem Zeitstempel überprüfen.
Siehe auch
second time year month dayofmonth dayofweek hour minute
weekofyear
weekofyear(time)
weekofyear(time, timezone)
Rückgabewert
Bereitstellung von UNIX-Zeit-Zyklen ((Austauschzeitzonen) }}.
Parameter
time(series int) ist die Unix-Zeit in Millisekunden.timezone(series string) Optionale Parameter ◦ Zeitzone ◦
Anmerkung
UNIX-Zeit ist die Anzahl der Millisekunden seit dem 1. Januar 1970 UTC 00:00:00 Uhr. Die Standardzeitzone ist syminfo.timezone. Sie können die möglichen Werte mit einem Zeitstempel überprüfen.
Bitte beachten Sie, dass die Funktion die Woche zurückgibt, je nachdem, wann die K-Linie geöffnet ist. Für die Übernacht-Handelszeit (z. B. EURUSD, deren Montag-Handelszeit am Sonntag um 17:00 Uhr beginnt) kann dieser Wert niedriger sein als der der Woche am Handelstag.
Siehe auch
weekofyear time year month dayofmonth dayofweek hour minute second
dayofweek
dayofweek(time)
dayofweek(time, timezone)
Rückgabewert
Die UNIX-Zeit wird in der Woche angegeben.
Parameter
time(series int) ist die Unix-Zeit in Millisekunden.timezone(series string) Optionale Parameter ◦ Zeitzone ◦
Anmerkung
Bitte beachten Sie, dass diese Funktion den Tag zurückgibt, je nachdem, wann die K-Linie geöffnet ist. Für die Übernacht-Handelszeiten (z. B. EURUSD-Handelszeiten am Montag, die am Sonntag um 17:00 Uhr beginnen) kann dieser Wert niedriger sein als der Tag des Handels.
UNIX-Zeit ist die Anzahl der Millisekunden seit dem 1. Januar 1970 UTC 00:00:00 Uhr. Die Standardzeitzone ist syminfo.timezone. Sie können die möglichen Werte mit einem Zeitstempel überprüfen.
Siehe auch
time dayofmonth
dayofmonth
dayofmonth(time)
dayofmonth(time, timezone)
Rückgabewert
Monatliche Datumsangaben für die UNIX-Zeit ((Swap-Zeitzonen) }}.
Parameter
time(series int) ist die Unix-Zeit in Millisekunden.timezone(series string) Optionale Parameter ◦ Zeitzone ◦
Anmerkung
UNIX-Zeit ist die Anzahl der Millisekunden seit dem 1. Januar 1970 UTC 00:00:00 Uhr. Die Standardzeitzone ist syminfo.timezone. Sie können die möglichen Werte mit einem Zeitstempel überprüfen.
Bitte beachten Sie, dass diese Funktion den Tag anhand der Öffnungszeit der K-Linie zurückgibt. Für die Übernacht-Handelszeiten (z. B. EURUSD-Handelszeiten am Montag, die am Sonntag um 17:00 UTC-4 beginnen) kann dieser Wert 1 niedriger sein als der Tag des Handels.
timestamp
Die Timestamp-Funktion gibt den angegebenen Tag und die angegebene Uhrzeit der UNIX-Zeit zurück.
timestamp(dateString)
timestamp(year, month, day, hour, minute, second)
timestamp(timezone, year, month, day, hour, minute, second)
Beispiel
pine
// timestamp
plot(timestamp(2016, 01, 19, 09, 30), linewidth=3, color=color.green)
plot(timestamp(syminfo.timezone, 2016, 01, 19, 09, 30), color=color.blue)
plot(timestamp(2016, 01, 19, 09, 30), color=color.yellow)
plot(timestamp("GMT+6", 2016, 01, 19, 09, 30))
plot(timestamp(2019, 06, 19, 09, 30, 15), color=color.lime)
plot(timestamp("GMT+3", 2019, 06, 19, 09, 30, 15), color=color.fuchsia)
plot(timestamp("Feb 01 2020 22:10:05"))
plot(timestamp("2011-10-10T14:48:00"))
plot(timestamp("04 Dec 1995 00:12:00 GMT+5"))
Rückgabewert
Unix-Zeit
Parameter
timezone(series string) Zeitzone。 optional。 der Standardwert ist syminfo.timezone。 kann mit der GMT-Ausdrucksweise ((z. B. <unk>GMT-5<unk>) oder dem IANA-Zeitzonendatenbanknamen ((z. B. <unk>America/New_York<unk>)) angegeben werden。year(series int) Jahrmonth(series int) Monatday(Series int) Taghour(series int) (optional) Stunden. Der Standardwert ist 0minute(series int) (optional) Minuten. Der Standardwert ist 0second(series int) (optionale Parameter) Second. Die Voreinstellung ist 0dateString(const string) Eine String, die ein Datum sowie eine optional angegebene Zeit und Zeitzone enthält. Ihr Format muss mit den IETF-Standards RFC 2822 oder ISO 8601 übereinstimmen. (<unk>DD MMM YYYY hh:mm:ss±hhmm<unk> oder<unk>YYYYY-MM-DDThh:mm:ss±hh:mm<unk>, also<unk>20 Feb 2020<unk> oder<unk>2020-02-20<unk>) Wenn keine Zeit angegeben ist, wird<unk>00:00<unk> verwendet. Wenn keine Zeitzone angegeben ist, wird GMT+0 verwendet.
Anmerkung
UNIX-Zeit ist die Anzahl der Millisekunden, die seit dem 1. Januar 1970 (UTC 00:00:00) vergangen sind.
Siehe auch
time timenow syminfo.timezone
fill
Der Hintergrund zwischen zwei Zeichnungen oder Hlines wird mit den angegebenen Farben ausgefüllt.
fill(hline1, hline2, color, title, editable, fillgaps, display)
fill(plot1, plot2, color, title, editable, show_last, fillgaps, display)
Beispiel
pine
h1 = hline(20)
h2 = hline(10)
fill(h1, h2, color=color.new(color.blue, 90))
p1 = plot(open)
p2 = plot(close)
fill(p1, p2, color=color.new(color.green, 90))
Parameter
hline1(hline) Das erste hline-Objekt.hline2(hline) Zweites hline-Objekt.plot1(plot) Das erste Objekt der Zeichnung.plot2(plot) Zweites Objekt der Zeichnung. Notwendige Parameter.color(series color) Farbe der Zeichnung. Sie können Konstanten wie 'color = red' oder 'color =#ff001a' sowie komplexe Ausdrücke wie 'color = close >= open ? green: red' verwenden.title(const string) Erstellt wurde ein Objekt, das den Titel füllt. Optionale Parametereditable(const bool) Wenn true, können die Füllstile im Format-Dialogfeld bearbeitet werden. Der Standardwert ist true.show_last(input int) Wenn eingestellt, wird die Anzahl der k Zeilen definiert, die das Diagramm füllen.fillgaps(const bool) steuert die fortlaufende Füllung der Lücke, d.h. wenn eine der Aufrufe von plot ()) den Wert na zurückgibt. Wenn true gesetzt wird, wird die letzte Füllung die Lücke weiterhin füllen.display(plot_display) Steuert die Anzeigeposition der Füllung. Die möglichen Werte sind: display.none, display.all.
Siehe auch
plot barcolor bgcolor hline
hline
Horizontale Linien werden auf einer bestimmten Festpreisebene dargestellt.
hline(price, title, color, linestyle, linewidth, editable, display)
Beispiel
pine
// input.hline
hline(3.14, title='Pi', color=color.blue, linestyle=hline.style_dotted, linewidth=2)
// You may fill the background between any two hlines with a fill() function:
h1 = hline(20)
h2 = hline(10)
fill(h1, h2, color=color.new(color.green, 90))
Rückgabewert
Hline-Objekte, die für Fill verwendet werden können.
Parameter
priceDer Wert, den das (input int/float) Objekt anzeigt.titleTitel des (const string) Objektscolor(input color) Die Farbe der Rendering-Leitung. Es muss eine Konstante sein (nicht ausgedrückt).linestyle(hline_style) Stil der Rendering-Zeile。 Mögliche Werte sind: solid, dotted, dotted。 Optionale Parameter。linewidth(input int) Die Breite der Rendering-Leitung ≠ 1 ≠ 1.editable(const bool) Wenn true ist, kann der Hline-Stil im Format-Dialogfeld bearbeitet werden. Der Standardwert ist true.display(plot_display) Anzeigeposition der Bedienung. Die möglichen Werte sind: display.none, display.all.overlay(const bool) Der Parameter, der von der FMZ-Plattform erweitert wird, um die aktuelle Funktion auf der Hauptgrafik ([settrue]) oder der Nebengrafik ([setfalse]) anzuzeigen. Die Default-Wertung ist false.strategyoderindicatorInoverlayParameter eingestelltstrategyoderindicatorKeine EinstellungenoverlayDie Parameter werden nach den Standardparametern behandelt.
bgcolor
Der Hintergrund der K-Linie wird mit der angegebenen Farbe ausgefüllt.
bgcolor(color, offset, editable, show_last, title, display, overlay)
Beispiel
pine
// bgcolor example
bgcolor(close < open ? color.new(color.red,70) : color.new(color.green, 70))
Parameter
color(series color) Füllung der Hintergrundfarbe. Sie können Konstanten wie <unk>red<unk> oder <unk>#ff001a<unk> sowie komplexe Ausdrücke wie 'close >= open ? green: red' verwenden.offset(series int) Farbreihe, die sich auf einer bestimmten Anzahl von K-Zeilen nach links oder rechts bewegt. Der Standardwert ist 0editable(const bool) Der bgcolor-Style kann im Format-Dialogfeld bearbeitet werden, wenn er auf "true" gesetzt wird.show_last(input int) Wenn eingestellt, wird die Anzahl der k Zeilen definiert, die das Diagramm füllen.title(const string) bgcolor Titel. Optionale Parameter.display(plot_display) steuert die Anzeigeposition von bgcolor. Die möglichen Werte sind: display.none, display.all.overlay(const bool) Der Parameter, der von der FMZ-Plattform erweitert wird, um die aktuelle Funktion auf der Hauptgrafik ([settrue]) oder der Nebengrafik ([setfalse]) anzuzeigen. Die Default-Wertung ist false.strategyoderindicatorInoverlayParameter eingestelltstrategyoderindicatorKeine EinstellungenoverlayDie Parameter werden nach den Standardparametern behandelt.
Siehe auch
plot
barcolor
K-Linienfarbe eingestellt.
barcolor(color, offset, editable, show_last, title, display)
Beispiel
pine
barcolor(close < open ? color.black : color.white)
Parameter
color(series color) K-Linienfarbe。 Sie können Konstanten wie <unk>red<unk> oder <unk>#ff001a<unk> verwenden, sowie komplexe Expressionen wie 'close >= open ? green: red‛。 die notwendigen Parameter。offset(series int) Farbreihe, die sich auf einer bestimmten Anzahl von K-Zeilen nach links oder rechts bewegt. Der Standardwert ist 0editable(const bool) Wenn true, kann der Barcolor-Stil im Format-Dialogfeld bearbeitet werden. Der Standardwert ist true.show_last(input int) Wenn eingestellt, wird die Anzahl der k Zeilen definiert, die das Diagramm füllen.title(const string) Barcolor-Titel。 Optionale Parameter。display(plot_display) Steuert die Anzeigeposition der K-Linienfarbe. Die möglichen Werte sind: display.none, display.all.
error
Kompatible Versionen von PINE v4error, Funktionen undruntime.errorEinvernehmen
Eingebettete Variable
order
order.ascending
Finden Sie die Reihenfolge der Arrays von der kleinsten zur größten.
Typ
sort_order
Siehe auch
array.new_float array.sort
order.descending
Finden Sie die Reihenfolge der Arrays von größer bis kleiner.
Typ
sort_order
Siehe auch
array.new_float array.sort
timeframe
timeframe.isdaily
Wenn die aktuelle Auflösung die Tages-Auflösung ist, wird true zurückgegeben, andernfalls false.
Typ
simple bool
Siehe auch
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isweekly timeframe.ismonthly
timeframe.isdwm
Wenn die aktuelle Auflösung täglich oder wöchentlich oder monatlich ist, wird true zurückgegeben, andernfalls false.
Typ
simple bool
Siehe auch
timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.isweekly timeframe.ismonthly
timeframe.isintraday
Wenn die aktuelle Zeitspanne eine Zeitspanne von Tagen (Minuten oder Sekunden) ist, wird true zurückgegeben, andernfalls wird false zurückgegeben.
Typ
simple bool
Siehe auch
timeframe.isminutes timeframe.isseconds timeframe.isdwm timeframe.isdaily timeframe.isweekly timeframe.ismonthly
timeframe.isminutes
Wenn die aktuelle Periode eine Minuten-Periode ist, wird true zurückgegeben, andernfalls wird false zurückgegeben.
Typ
simple bool
Siehe auch
timeframe.isdwm timeframe.isintraday timeframe.isseconds timeframe.isdaily timeframe.isweekly timeframe.ismonthly
timeframe.ismonthly
Wenn die aktuelle Auflösung die monatliche Auflösung ist, wird true zurückgegeben, andernfalls false.
Typ
simple bool
Siehe auch
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.isweekly
timeframe.isseconds
Wenn der aktuelle Zyklus Sekunden beträgt, wird true zurückgegeben, andernfalls false.
Typ
simple bool
Siehe auch
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isdaily timeframe.isweekly timeframe.ismonthly
timeframe.isweekly
Wenn die aktuelle Auflösung die auflösung pro Woche ist, wird true zurückgegeben, andernfalls wird false zurückgegeben.
Typ
simple bool
Siehe auch
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.ismonthly
timeframe.multiplier
Die Zeitspanne wird multipliziert, z. B. '60' - 60, 'D' - 1, '5D' - 5, '12M' - 12 <unk>.
Typ
simple int
Siehe auch
syminfo.ticker syminfo.tickerid timeframe.period
timeframe.period
Zeiträume wie '60' - 60 Minuten, 'D' - Tag, 'W' - Woche, 'M' - Monat, '5D' - 5 Tage, '12M' - 1 Jahr, '3M' - 1 Quartal.
Typ
simple string
Siehe auch
syminfo.ticker syminfo.tickerid timeframe.multiplier
display
display.none
Eine Namenskonstante, die die angezeigte Position der Karte angibt. Nirgendwo angezeigt. In der Alarmvorlage Nachricht verfügbar.
Typ
plot_display
Siehe auch
plot plotshape plotchar
display.all
Eine Namenskonstante, die die Position der Karte angibt. Anzeige jeder Position.
Typ
plot_display
Siehe auch
plot plotshape plotchar plotarrow plotbar plotcandle
shape
shape.xcross
Die Form der Plotshape-Funktion.
Typ
const string
Siehe auch
plotshape
shape.cross
Die Form der Plotshape-Funktion.
Typ
const string
Siehe auch
plotshape
shape.triangleup
Die Form der Plotshape-Funktion.
Typ
const string
Siehe auch
plotshape
shape.triangledown
Die Form der Plotshape-Funktion.
Typ
const string
Siehe auch
plotshape
shape.flag
Die Form der Plotshape-Funktion.
Typ
const string
Siehe auch
plotshape
shape.circle
Die Form der Plotshape-Funktion.
Typ
const string
Siehe auch
plotshape
shape.arrowup
Die Form der Plotshape-Funktion.
Typ
const string
Siehe auch
plotshape
shape.arrowdown
Die Form der Plotshape-Funktion.
Typ
const string
Siehe auch
plotshape
shape.labelup
Die Form der Plotshape-Funktion.
Typ
const string
Siehe auch
plotshape
shape.labeldown
Die Form der Plotshape-Funktion.
Typ
const string
Siehe auch
plotshape
shape.square
Die Form der Plotshape-Funktion.
Typ
const string
Siehe auch
plotshape
shape.diamond
Die Form der Plotshape-Funktion.
Typ
const string
Siehe auch
plotshape
color
color.aqua
ist die Namenskonstante für die Farbe #00BCD4
Typ
const color
color.black
ist die Nennkonstante der Farbe #363A45 <unk>.
Typ
const color
color.blue
ist die Namenskonstante der Farbe #2962ff。
Typ
const color
color.fuchsia
ist die Namenskonstante der Farbe #E040FB.
Typ
const color
color.gray
ist die Namenskonstante der Farbe #787B86
Typ
const color
color.green
ist die Namenskonstante der Farbe #4CAF50
Typ
const color
color.lime
ist die Namenskonstante der Farbe #00E676.
Typ
const color
color.maroon
Die Namenskonstante der Farbe #880E4F.
Typ
const color
color.navy
ist die Nennkonstante der Farbe #311B92 <unk>.
Typ
const color
color.olive
ist die Namenskonstante der Farbe #808000 <unk>.
Typ
const color
color.orange
ist die Namenskonstante der Farbe #FF9800。
Typ
const color
color.purple
ist die Nennkonstante der Farbe #9C27B0.
Typ
const color
color.red
ist die Namenskonstante der Farbe #FF5252.
Typ
const color
color.silver
Die Namenskonstante für die Farbe #B2B5BE.
Typ
const color
color.teal
color.teal
ist die Namenskonstante der Farbe #00897B.
Typ
const color
color.white
ist die Namenskonstante der Farbe #FFFFFF.
Typ
const color
color.yellow
ist die Namenskonstante der Farbe #FFEB3B.
Typ
const color
plot
plot.style_line
Benennungskonstanten im 'Line'-Stil, die als Plot-Funktion verwendet werdenstyleDie Parameter der Parameter.
Typ
plot_style
Siehe auch
plot plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles
plot.style_linebr
Die Namenskonstante im Stil von 'Line With Breaks' wird als Plot-Funktion verwendetstyleDie Parameter der Parameter. Ähnlich wie plot.style_line, außer dass die Leerzeichen in den Daten nicht gefüllt werden.
Typ
plot_style
Siehe auch
plot plot.style_line plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles
plot.style_histogram
Benennungskonstanten im 'Histogramm'-Stil, die als Plot-Funktion verwendet werdenstyleDie Parameter der Parameter.
Typ
plot_style
Siehe auch
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles
plot.style_columns
Namenskonstanten im 'Columns'-Stil, die als Plot-Funktion verwendet werdenstyleDie Parameter der Parameter.
Typ
plot_style
Siehe auch
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_circles
plot.style_circles
Die Namenskonstante im Stil von 'Circles', die als Plot-Funktion verwendet wirdstyleDie Parameter der Parameter.
Typ
plot_style
Siehe auch
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns
plot.style_area
Die Namenskonstante im 'Area'-Stil wird als Plot-Funktion verwendetstyleDie Parameter der Parameter.
Typ
plot_style
Siehe auch
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_areabr plot.style_cross plot.style_columns plot.style_circles
plot.style_areabr
Die Namenskonstanten im 'Area With Breaks'-Stil werden als Plot-Funktion verwendet.styleDie Parameter der Parameter. Ähnlich wie plot.style_area, außer dass die Leerzeichen in den Daten nicht gefüllt werden.
Typ
plot_style
Siehe auch
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_columns plot.style_circles
plot.style_cross
Namenskonstanten im 'Cross'-Stil, die als Plot-Funktion verwendet werdenstyleDie Parameter der Parameter.
Typ
plot_style
Siehe auch
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_area plot.style_areabr plot.style_columns plot.style_circles
plot.style_stepline
Benennungskonstanten im Stil von Step Line, die als Plot-Funktion verwendet werdenstyleDie Parameter der Parameter.
Typ
plot_style
Siehe auch
plot plot.style_stepline_diamond plot.style_linebr plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles
plot.style_stepline_diamond
Die Namenskonstante im Stil 'Step Line With Diamonds' wird als Plot-Funktion verwendetstyleDie Parameter der Parameter 。 sind ähnlich wie plot.style_stepline, außer dass die Datenänderungen auch mit den Anzeichen der Anzeichen der Anzeichen gekennzeichnet werden。
Typ
plot_style
Siehe auch
plot plot.style_line plot.style_linebr plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles
location
location.abovebar
location.abovebar
Plotshape, die Positionswerte für die Plotchar-Funktion. Die Form wird über der Linie der Hauptreihe k gezeichnet.
Typ
const string
Siehe auch
plotshape plotchar location.belowbar location.top location.bottom location.absolute
location.belowbar
Plotshape, die Positionswerte für die Plotchar-Funktion. Die Form wird in der Hauptreihe k unterhalb der Linie gezeichnet.
Typ
const string
Siehe auch
plotshape plotchar location.abovebar location.top location.bottom location.absolute
location.top
Plotshape, die Positionswerte der Plotchar-Funktion. Die Form wird in der Nähe der oberen Grafikrandung gezeichnet.
Typ
const string
Siehe auch
plotshape plotchar location.abovebar location.belowbar location.bottom location.absolute
location.bottom
Plotshape, die Positionswerte der Plotchar-Funktion. Die Form wird in der Nähe der unteren Grafikrandung gezeichnet.
Typ
const string
Siehe auch
plotshape plotchar location.abovebar location.belowbar location.top location.absolute
location.absolute
Plotshape, die Positionswerte der Plotchar-Funktion. Die Form wird auf einem Diagramm dargestellt, wobei die Kennwerte als Preiskoordinaten verwendet werden.
Typ
const string
Siehe auch
plotshape plotchar location.abovebar location.belowbar location.top location.bottom
size
size.auto
size.auto
Plotshape, die Größe der Plotchar-Funktion. Die Größe der Form passt sich automatisch an die Größe der k-Zeile an.
Typ
const string
Siehe auch
plotshape plotchar size.tiny size.small size.normal size.large size.huge
size.tiny
Plotshape, die Größe der Plotchar-Funktion. Die Größe der Form ist klein.
Typ
const string
Siehe auch
plotshape plotchar size.auto size.small size.normal size.large size.huge
size.small
Plotshape, die Größe der Plotchar-Funktion.
Typ
const string
Siehe auch
plotshape plotchar size.auto size.tiny size.normal size.large size.huge
size.normal
Plotshape, die Größe der Plotchar-Funktion.
Typ
const string
Siehe auch
plotshape plotchar size.auto size.tiny size.small size.large size.huge
size.large
Plotshape, die Größe der Plotchar-Funktion.
Typ
const string
Siehe auch
plotshape plotchar size.auto size.tiny size.small size.normal size.huge
size.huge
Die Größe der Plotshape, Plotchar-Funktion.
Typ
const string
Siehe auch
plotshape plotchar size.auto size.tiny size.small size.normal size.large
alert
alert.freq_once_per_bar
Nennkonstante, die zusammen mit dem 'freq'-Parameter der alert() -Funktion verwendet wird.
Der erste Funktionsaufruf in der K-Zeile löst den Alarm aus.
Typ
const string
Siehe auch
alert
alert.freq_all
Nennkonstante, die zusammen mit dem 'freq'-Parameter der alert() -Funktion verwendet wird.
Alle Funktionsaufrufe lösen Alarm aus.
Typ
const string
Siehe auch
alert
alert.freq_once_per_bar_close
Nennkonstante, die zusammen mit dem 'freq'-Parameter der alert() -Funktion verwendet wird.
Der Aufruf der Funktion wird nur während der letzten Skript-Idealisierung der Echtzeit-K-Linie ausgeführt und löst eine Alarmanlage beim Schließen aus.
Typ
const string
Siehe auch
alert
format
format.inherit
ist eine Namenskonstante.
Typ
const string
Siehe auch
format.price format.volume
format.price
ist eine Namenskonstante.
Typ
const string
Anmerkung
Wenn format format.price ist, wird der Standardpreis festgelegt. Sie können den Precision-Wert mit den Precision-Parametern der Indexfunktion ändern.
Siehe auch
format.inherit format.volume
format.volume
ist eine Namenskonstante.
Typ
const string
Siehe auch
format.inherit format.price
syminfo
syminfo.ticker
Der Warencode ohne Börsenvorwort, z. B. "MSFT".
Typ
simple string
Siehe auch
syminfo.tickerid timeframe.period timeframe.multiplier
syminfo.tickerid
Warencode mit Börsenvorwort, z. B. BATS: MSFT<unk>, NASDAQ: MSFT<unk>
Typ
simple string
Siehe auch
syminfo.ticker timeframe.period timeframe.multiplier
syminfo.basecurrency
Die Basiswährung der Ware. Für die Warenkode BTCUSD<unk>, Rückgabe<unk> BTC<unk>.
Typ
simple string
Siehe auch
syminfo.currency syminfo.ticker
syminfo.currency
Währung des Gegenstands. Währungscode für die Rückgabe: <unk> USD<unk>, <unk> EUR<unk> usw.
Typ
simple string
Siehe auch
syminfo.basecurrency syminfo.ticker
syminfo.type
Der Typ des aktuellen Warencodes <unk>. Die möglichen Werte sind stock, futures, index, forex, crypto, fund, dr <unk>.
Typ
simple string
Siehe auch
syminfo.ticker
syminfo.mintick
Minimaler Wert der aktuellen Sorte. Template-Parameter in der "Pine-Language-Trading-Class-Repository" auf der FMZ, der Festplatte/Retest-SchnittstellePreiswährungspräzisionDieser Wert kann gesteuert werden.PreiswährungspräzisionSetzen Sie 2, dass der Preis zum Zeitpunkt des Handels bis in die zweite Ziffernzahl präzise ist und die kleinste Preisänderung in der Einheit 0.01 ◦ syminfo.mintick ist 0.01 ◦.
Typ
simple float
Siehe auch
syminfo.pointvalue
syminfo.pointvalue
Punktwert der aktuellen Ware
Typ
simple float
Siehe auch
syminfo.mintick
syminfo.timezone
Die Zeitzonen für die Wechsel der Hauptreihen der Diagramme. Für mögliche Werte siehe Timestamp.
Typ
simple string
Siehe auch
timestamp
barstate
barstate.islastconfirmedhistory
Wenn der Skript am Ende des Datensatzes auf der letzten K-Linie ausgeführt wird, oder wenn der Skript auf der K-Linie vor dem Ende des Datensatzes ausgeführt wird, wird true zurückgegeben, wenn der Markt geöffnet ist. Andernfalls wird false zurückgegeben.
Typ
series bool
Anmerkung
Der PineScript-Code dieser Variablen ermöglicht unterschiedliche Berechnungen für historische Datensätze und Echtzeitdaten.
Bitte beachten Sie, dass die Verwendung dieser Variable/Funktion dazu führen kann, dass der Indikator neu abgebildet wird.
Siehe auch
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew
barstate.isnew
Wenn das Skript derzeit auf der neuen k-Zeile berechnet wird, wird true zurückgegeben, andernfalls false.
Typ
series bool
Anmerkung
Der PineScript-Code dieser Variablen ermöglicht unterschiedliche Berechnungen für historische Datensätze und Echtzeitdaten.
Bitte beachten Sie, dass die Verwendung dieser Variable/Funktion dazu führen kann, dass der Indikator neu abgebildet wird.
Siehe auch
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isconfirmed barstate.islastconfirmedhistory
barstate.isfirst
Wenn die aktuelle k-Zeile die erste k-Zeile der k-Zeilgruppe ist, wird true zurückgegeben, andernfalls wird false zurückgegeben.
Typ
series bool
Anmerkung
Der PineScript-Code dieser Variablen ermöglicht unterschiedliche Berechnungen für historische Datensätze und Echtzeitdaten.
Bitte beachten Sie, dass die Verwendung dieser Variable/Funktion dazu führen kann, dass der Indikator neu abgebildet wird.
Siehe auch
barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory
barstate.islast
Wenn die aktuelle K-Zeile die letzte K-Zeile der Gruppe von K-Zeilen ist, wird true zurückgegeben, andernfalls wird false zurückgegeben.
Typ
series bool
Anmerkung
Der PineScript-Code dieser Variablen ermöglicht unterschiedliche Berechnungen für historische Datensätze und Echtzeitdaten.
Bitte beachten Sie, dass die Verwendung dieser Variable/Funktion dazu führen kann, dass der Indikator neu abgebildet wird.
Siehe auch
barstate.isfirst barstate.ishistory barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory
barstate.ishistory
Wenn die aktuelle k-Linie die historische k-Linie ist, wird true zurückgegeben, andernfalls wird false zurückgegeben.
Typ
series bool
Anmerkung
Der PineScript-Code dieser Variablen ermöglicht unterschiedliche Berechnungen für historische Datensätze und Echtzeitdaten.
Bitte beachten Sie, dass die Verwendung dieser Variable/Funktion dazu führen kann, dass der Indikator neu abgebildet wird.
Siehe auch
barstate.isfirst barstate.islast barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory
barstate.isconfirmed
Wenn das Skript die letzte (schließende) Aktualisierung der aktuellen K-Zeile berechnet, wird true zurückgegeben. Das nächste Skript wird auf der neuen K-Zeilen-Daten berechnet.
Typ
series bool
Anmerkung
Der PineScript-Code dieser Variablen ermöglicht unterschiedliche Berechnungen für historische Datensätze und Echtzeitdaten.
Es wird nicht empfohlen, barstate.isconfirmed in Request.security-Ausdrücken zu verwenden. Es ist unvorhersehbar, was von einer Request.security-Anfrage erwartet wird.
Bitte beachten Sie, dass die Verwendung dieser Variable/Funktion dazu führen kann, dass der Indikator neu abgebildet wird.
Siehe auch
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew barstate.islastconfirmedhistory
barstate.isrealtime
Wenn die aktuelle K-Linie die Echtzeit-K-Linie ist, wird true zurückgegeben, andernfalls wird false zurückgegeben.
Typ
series bool
Anmerkung
Der PineScript-Code dieser Variablen ermöglicht unterschiedliche Berechnungen für historische Datensätze und Echtzeitdaten.
Bitte beachten Sie, dass die Verwendung dieser Variable/Funktion dazu führen kann, dass der Indikator neu abgebildet wird.
Siehe auch
barstate.isfirst barstate.islast barstate.ishistory barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory
barstate.time
Nicht vorläufig
ta
ta.accdist
Akkumulations-/Verteilungsindex
Typ
series float
ta.iii
Der Intensitätsindex in der Scheibe.
Typ
series float
Beispiel
pine
// Intraday Intensity Index
plot(ta.iii, color=color.yellow)
// the same on pine
f_iii() =>
(2 * close - high - low) / ((high - low) * volume)
plot(f_iii())
ta.nvi
Negative Massenwerte
Typ
series float
Beispiel
pine
// Negative Volume Index
plot(ta.nvi, color=color.yellow)
// the same on pine
f_nvi() =>
float ta_nvi = 1.0
float prevNvi = (nz(ta_nvi[1], 0.0) == 0.0) ? 1.0: ta_nvi[1]
if nz(close, 0.0) == 0.0 or nz(close[1], 0.0) == 0.0
ta_nvi := prevNvi
else
ta_nvi := (volume < nz(volume[1], 0.0)) ? prevNvi + ((close - close[1]) / close[1]) * prevNvi : prevNvi
result = ta_nvi
plot(f_nvi())
ta.pvi
Die Massenindikatoren.
Typ
series float
Beispiel
pine
// Positive Volume Index
plot(ta.pvi, color=color.yellow)
// the same on pine
f_pvi() =>
float ta_pvi = 1.0
float prevPvi = (nz(ta_pvi[1], 0.0) == 0.0) ? 1.0: ta_pvi[1]
if nz(close, 0.0) == 0.0 or nz(close[1], 0.0) == 0.0
ta_pvi := prevPvi
else
ta_pvi := (volume > nz(volume[1], 0.0)) ? prevPvi + ((close - close[1]) / close[1]) * prevPvi : prevPvi
result = ta_pvi
plot(f_pvi())
ta.obv
Energieflut-Indikatoren
Typ
series float
Beispiel
pine
// On Balance Volume
plot(ta.obv, color=color.yellow)
// the same on pine
f_obv() =>
ta.cum(math.sign(ta.change(close)) * volume)
plot(f_obv())
ta.pvt
Preis- und Werteentwicklung.
Typ
series float
Beispiel
pine
// Price-Volume Trend
plot(ta.pvt, color=color.yellow)
// the same on pine
f_pvt() =>
ta.cum((ta.change(close) / close[1]) * volume)
plot(f_pvt())
ta.wad
Die Luftwaffe hat die Luftwaffe in die Luft geschickt.
Typ
series float
Beispiel
pine
// Williams Accumulation/Distribution
plot(ta.wad, color=color.yellow)
// the same on pine
f_wad() =>
trueHigh = math.max(high, close[1])
trueLow = math.min(low, close[1])
mom = ta.change(close)
gain = (mom > 0) ? close - trueLow : (mom < 0) ? close - trueHigh : 0
ta.cum(gain)
plot(f_wad())
ta.wvad
William-Variante-Ausscheidung
Typ
series float
Beispiel
pine
// Williams Variable Accumulation/Distribution
plot(ta.wvad, color=color.yellow)
// the same on pine
f_wvad() =>
(close - open) / (high - low) * volume
plot(f_wvad())
math
math.e
ist die Nennkonstante der Eulerzahl. Sie ist gleich 2,7182818284590452.
Typ
const float
Siehe auch
math.phi math.pi math.rphi
math.phi
ist die Nennkonstante der goldenen Division ≠ 1.6180339887498948 ≠
Typ
const float
Siehe auch
math.e math.pi math.rphi
math.pi
Ist die Nennkonstante der Achimedeschen Konstante. Sie ist gleich 3,1415926535897932.
Typ
const float
Siehe auch
math.e math.phi math.rphi
math.rphi
ist die Nennkonstante der Goldschnittquote. Sie ist gleich 0,6180339887498948.
Typ
const float
Siehe auch
math.e math.pi math.phi
strategy
strategy.equity
Aktuelle Interessen ((strategy.initial_capital + strategy.netprofit + strategy.openprofit))
Typ
series float
Siehe auch
strategy.netprofit strategy.openprofit strategy.position_size
strategy.position_size
Die Richtung und Größe der aktuellen Marktposition. Wenn der Wert > 0 ist, ist die Marktposition länger. Wenn der Wert < 0 ist, ist die Marktposition kürzer.
Typ
series float
Siehe auch
strategy.position_avg_price
strategy.position_avg_price
Die Marktposition ist der durchschnittliche Einstiegspreis. Wenn die Marktposition schwächer ist, wird NaN zurückgelassen.
veranschaulichen
Der Durchschnittspreis in FMZ PINE Script ist der Preis, der die Prozessgebühren beinhaltet. Zum Beispiel: Der Bestellpreis beträgt 8000, die Verkaufsrichtung, die Anzahl von 1 Hand ((einfach), der Durchschnittspreis nach dem Abschluss ist nicht 8000, weniger als 8000 ((die Kosten beinhalten die Prozessgebühren)).
Typ
series float
Siehe auch
strategy.position_size
strategy.long
Mehrsprachig
Typ
strategy_direction
Siehe auch
strategy.entry strategy.exit
strategy.short
Die Luft nach oben.
Typ
strategy_direction
Siehe auch
strategy.entry strategy.exit
strategy.closedtrades
Anzahl der geschlossenen Geschäfte innerhalb des gesamten Handelsintervalls.
Typ
series int
Siehe auch
strategy.position_size strategy.opentrades
strategy.opentrades
Die Anzahl der Geschäfte, die nicht geschlossen wurden oder weiterhin gehalten werden. Wenn keine, wird 0 angezeigt.
Typ
series int
Siehe auch
strategy.position_size
strategy.netprofit
Der Gesamtwert aller getätigten Transaktionen.
Typ
series float
Siehe auch
strategy.openprofit strategy.position_size strategy.grossprofit
strategy.grossprofit
Der Gesamtwert aller erfolgreichen Transaktionen.
Typ
series float
Siehe auch
strategy.netprofit
strategy.openprofit
Unerreichtes Verlust bei aktuell nicht abgeschlossenen Positionen.
Typ
series float
Siehe auch
strategy.netprofit strategy.position_size
strategy.direction.long
Das ist eine Strategie, die mehr tun kann.
Typ
const string
Siehe auch
strategy.risk.allow_entry_in
strategy.direction.short
Strategie, die nichts bringt
Typ
const string
Siehe auch
strategy.risk.allow_entry_in
strategy.direction.all
Das ist eine Strategie, die sowohl mehr als auch weniger zu tun erlaubt.
Typ
const string
Siehe auch
strategy.risk.allow_entry_in
dayofweek
dayofweek
Die Woche der aktuellen k-Zeit der Umtausch-Zeitzone.
Typ
series int
Anmerkung
Bitte beachten Sie, dass diese Variable den Tag anhand der Öffnungszeit der K-Linie zurückgibt. Für die Übernacht-Handelszeit (z. B. EURUSD, deren Montag-Handelszeit am Sonntag um 17:00 Uhr beginnt) kann der Wert niedriger sein als der Tag des Handelstages.
Sie können die Variablen dayofweek.sunday, dayofweek.monday, dayofweek.tuesday, dayofweek.wednesday, dayofweek.thursday, dayofweek.friday und dayofweek.saturday verwenden, um zu vergleichen.
Siehe auch
time dayofmonth
dayofweek.sunday
ist die Nennkonstante für die Rückgabewerte der Dayofweek-Funktion und die Werte der Dayofweek-Variablen.
Typ
const int
Siehe auch
dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday
dayofweek.monday
ist die Nennkonstante für die Rückgabewerte der Dayofweek-Funktion und die Werte der Dayofweek-Variablen.
Typ
const int
Siehe auch
dayofweek.sunday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday
dayofweek.tuesday
ist die Nennkonstante für die Rückgabewerte der Dayofweek-Funktion und die Werte der Dayofweek-Variablen.
Typ
const int
Siehe auch
dayofweek.sunday dayofweek.monday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday
dayofweek.wednesday
ist die Nennkonstante für die Rückgabewerte der Dayofweek-Funktion und die Werte der Dayofweek-Variablen.
Typ
const int
Siehe auch
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.thursday dayofweek.friday dayofweek.saturday
dayofweek.thursday
ist die Nennkonstante für die Rückgabewerte der Dayofweek-Funktion und die Werte der Dayofweek-Variablen.
Typ
const int
Siehe auch
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.friday dayofweek.saturday
dayofweek.friday
ist die Nennkonstante für die Rückgabewerte der Dayofweek-Funktion und die Werte der Dayofweek-Variablen.
Typ
const int
Siehe auch
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.saturday
dayofweek.saturday
ist die Nennkonstante für die Rückgabewerte der Dayofweek-Funktion und die Werte der Dayofweek-Variablen.
Typ
const int
Siehe auch
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday
hline
hline.style_dashed
ist die Nennkonstante der Punktlinie der Hline-Funktion.
Typ
hline_style
Siehe auch
hline.style_solid hline.style_dotted
hline.style_dotted
hline.style_dotted
ist die Nennkonstante des Punkt-Linien-Forms der Hline-Funktion.
Typ
hline_style
Siehe auch
hline.style_solid hline.style_dashed
hline.style_solid
ist die Nennkonstante des realzentralen Lineartyps der Hline-Funktion.
Typ
hline_style
Siehe auch
hline.style_dotted hline.style_dashed
barmerge
barmerge.gaps_on
Geben Sie die gewünschte Datenzusammenschlussstrategie. Die Daten werden mit den möglichen Abständen zusammengefasst.
Typ
barmerge_gaps
Siehe auch
request.security barmerge.gaps_off
barmerge.gaps_off
Die Daten werden kontinuierlich zusammengeführt, wobei alle Lücken mit den vorherigen aktuellen Werten gefüllt werden.
Typ
barmerge_gaps
Siehe auch
request.security barmerge.gaps_on
barmerge.lookahead_on
Die Strategie, die die Datenposition der Fusion angefordert. Die angeforderte Strichkarte wird mit der aktuellen Strichkarte nach der Öffnungszeit der K-Linie kombiniert. Diese Kombinierungsstrategie kann zu negativen Auswirkungen auf die Berechnung der Datenverlaufgeschichte aus den zukünftigen Zeilen führen.
Typ
barmerge_lookahead
Siehe auch
request.security barmerge.lookahead_off
barmerge.lookahead_off
Die Strategie, die den Ort der gewünschten Daten kombiniert. Die gewünschten Strippen werden mit den aktuellen Strippen kombiniert, entsprechend der K-Linien-Schließzeit. Diese Kombinationsstrategie verbietet die Auswirkungen der Berechnungsgeschichte von Daten, die von den zukünftigen Zeilen abgerufen werden.
Typ
barmerge_lookahead
Siehe auch
request.security barmerge.lookahead_on
others
hl2
ist die Schnelltaste für ((höchster Preis + niedriger Preis) / 2
Typ
series float
Siehe auch
open high low close volume time hlc3 hlcc4 ohlc4
hlc3
ist die Schnelltaste für den (höchsten Preis + niedrigsten Preis + Abschlusspreis) / 3
Typ
series float
Siehe auch
open high low close volume time hl2 hlcc4 ohlc4
hlcc4
ist die Tastenkombination (Hoch + Niedrig + Ende + Ende) /4
Typ
series float
Siehe auch
open high low close volume time hl2 hlc3 ohlc4
ohlc4
ist die Taste für: (Eröffnungspreis + Höchstpreis + Niedrigstpreis + Schließpreis) / 4
Typ
series float
Siehe auch
open high low close volume time hl2 hlc3 hlcc4
na
Double.NaN-Werte (nicht numerisch) <unk>
Typ
simple na
Beispiel
pine
// na
plot(bar_index < 10 ? na : close) // CORRECT
plot(close == na ? close[1] : close) // INCORRECT!
plot(na(close) ? close[1] : close) // CORRECT
Anmerkung
Wenn Sie überprüfen möchten, ob ein bestimmter Wert NaN ist, verwenden Sie bitte die eingebaute Funktion na.
Siehe auch
na
bar_index
Der aktuelle Preisstab-Index beginnt mit der Null und der erste Satz ist mit 0 angegeben.
Typ
series int
Beispiel
pine
// bar_index
plot(bar_index)
plot(bar_index > 5000 ? close : 0)
Anmerkung
Bitte beachten Sie, dass bar_index die n-Variablen in Version 4 ersetzt hat.
Bitte beachten Sie, dass der K-Index ab der ersten historischen K-Linie als 0 ≠ berechnet wird.
Bitte beachten Sie, dass die Verwendung dieser Variable/Funktion dazu führen kann, dass der Indikator neu abgebildet wird.
Siehe auch
barstate.isfirst barstate.islast barstate.isrealtime
last_bar_index
Der Index der letzten K-Linie des Diagramms. Die K-Index beginnt mit der ersten K-Linie als Null.
Typ
series int
Beispiel
strategy("Mark Last X Bars For Backtesting", overlay = true, calc_on_every_tick = true)
lastBarsFilterInput = input.int(100, "Bars Count:")
// Here, we store the 'last_bar_index' value that is known from the beginning of the script's calculation.
// The 'last_bar_index' will change when new real-time bars appear, so we declare 'lastbar' with the 'var' keyword.
var lastbar = last_bar_index
// Check if the current bar_index is 'lastBarsFilterInput' removed from the last bar on the chart, or the chart is traded in real-time.
allowedToTrade = (lastbar - bar_index <= lastBarsFilterInput) or barstate.isrealtime
bgcolor(allowedToTrade ? color.new(color.green, 80) : na)
Rückgabewert
Der letzte historische K-Index des Schließens oder der Echtzeit-K-Index des Öffnens.
Anmerkung
Bitte beachten Sie, dass die Verwendung dieser Variablen zu einer Neubilderung des Indikators führen kann.
Siehe auch
bar_index last_bar_time barstate.ishistory barstate.isrealtime
time
Die aktuelle K-Zeit im UNIX-Format. Das sind die Millisekunden seit dem 1. Januar 1970 um 00:00:00 UTC.
timenow
Die aktuelle UNIX-Zeit. Das sind die Millisekunden seit dem 1. Januar 1970 00: 00:00 UTC.
Typ
series int
Anmerkung
Bitte beachten Sie, dass die Verwendung dieser Variable/Funktion dazu führen kann, dass der Indikator neu abgebildet wird.
Siehe auch
timestamp time dayofmonth dayofweek
Typ
series int
Anmerkung
Bitte beachten Sie, dass diese Variable die Zeitmenge zurückgibt, je nachdem, wann die K-Linie geöffnet ist. Für die Übernacht-Trading-Zeit (z. B. EURUSD, dessen Montagszeit am Sonntag um 17:00 Uhr beginnt) kann diese Variable also die Zeit vor dem angegebenen Datum des Handelstages zurückgeben. So kann die Dayofmonth (Time) -Variable auf EURUSD 1 unter dem Datum des Handelstages liegen, da die K-Linie des aktuellen Datums tatsächlich am Vortag geöffnet war.
Siehe auch
time dayofmonth dayofweek
year
Die aktuelle Jahresk-Linie in der Zeitzone des Umtauschs.
Typ
series int
Anmerkung
Bitte beachten Sie, dass diese Variable das Jahr anhand der Öffnungszeiten der K-Linie zurückgibt. Für die Übernacht-Handelszeit (z. B. EURUSD, deren Montag-Handelszeit am Sonntag um 17:00 Uhr beginnt) kann der Wert 1 niedriger sein als das Jahr des Handelstages.
Siehe auch
year time month weekofyear dayofmonth dayofweek hour minute second
month
Die aktuelle Mondlinie k in der Zeitzone der Börse.
Typ
series int
Anmerkung
Bitte beachten Sie, dass diese Variable den Monat anhand der Öffnungszeit der K-Linie zurückgibt. Für die Übernacht-Handelszeit (z. B. EURUSD, deren Montag-Handelszeit am Sonntag um 17:00 Uhr beginnt) kann dieser Wert 1 niedriger sein als der Monat des Handelstages.
Siehe auch
month time year weekofyear dayofmonth dayofweek hour minute second
hour
Die aktuelle Stunde in der Zeitzone der Börse k Line <unk>
Typ
series int
Siehe auch
hour time year month weekofyear dayofmonth dayofweek minute second
minute
Die aktuelle Minute in der Zeitzone der Börse k Line.
Typ
series int
Siehe auch
minute time year month weekofyear dayofmonth dayofweek hour second
second
Die aktuelle Sekundenlinie k in der Zeitzone der Börse.
Typ
series int
Siehe auch
second time year month weekofyear dayofmonth dayofweek hour minute
open
Aktuelle Börsenpreise:
Typ
series float
Anmerkung
Die Quadrat-Operatoren sind verfügbar.[] auf den vorherigen Wert zuzugreifen, z.B. <unk> open[1],open[2]。
Siehe auch
high low close volume time hl2 hlc3 hlcc4 ohlc4
high
Derzeit höchste Preis.
Typ
series float
Anmerkung
Die Quadrat-Operatoren sind verfügbar.[] auf den vorherigen Wert, z. B. ◦ high[1],high[2]。
Siehe auch
open low close volume time hl2 hlc3 hlcc4 ohlc4
low
Derzeitige Mindestpreise.
Typ
series float
Anmerkung
Die Quadrat-Operatoren sind verfügbar.[] auf einen früheren Wert zuzugreifen, z. B. <unk> low[1],low[2]。
Siehe auch
open high close volume time hl2 hlc3 hlcc4 ohlc4
close
Der Schlusskurs der aktuellen K-Linie oder der letzte Kurs der noch nicht abgeschlossenen K-Linie.
Typ
series float
Anmerkung
Die Quadrat-Operatoren sind verfügbar.[] auf den vorherigen Wert zuzugreifen, z.B. <unk> close[1],close[2]。
Siehe auch
open high low volume time hl2 hlc3 hlcc4 ohlc4
volume
Derzeitige Verkehrsvolumen der K-Linie.
Typ
series float
Anmerkung
Die Quadrat-Operatoren sind verfügbar.[] auf einen früheren Wert, z. B. ◦ volume[1],volume[2]。
Siehe auch
open high low close time hl2 hlc3 hlcc4 ohlc4
weekofyear
Die Anzahl der Wochen in der aktuellen k-Zeitlinie der Umtauschzeitzone.
Typ
series int
Anmerkung
Bitte beachten Sie, dass diese Variable die Woche anhand der Öffnungszeit der K-Linie zurückgibt. Für die Übernacht-Handelszeit (z. B. EURUSD, deren Montag-Handelszeit am Sonntag um 17:00 Uhr beginnt) kann dieser Wert niedriger sein als der der Woche am Handelstag.
Siehe auch
weekofyear time year month dayofmonth dayofweek hour minute second
dayofmonth
Datum der aktuellen k-Zeit in der Umtausch-Zeitzone.
Typ
series int
Anmerkung
Bitte beachten Sie, dass diese Variable den Tag anhand der Öffnungszeit der K-Linie zurückgibt. Für die Übernacht-Handelszeit (z. B. EURUSD, deren Montag-Handelszeit am Sonntag um 17:00 Uhr beginnt) kann der Wert niedriger sein als der Tag des Handelstages.
- 1





