ceArray =array.new
Methode calcBB(array
bool newSample = bar_index % n == 0
[sampleMean, highBand, lowBand] = sourceArray.maintainQueue ((sourceInput, newSample).calcBB(Multiplikator, newSample)
Grafik ((ProbeMean,
可以看到使用关键字method声明的用户自定义方法:maintainQueue、calcBB的参数列表中第一个参数都是```array<float>```类型。表示该method是```array<float>```类型变量的方法,所以可以看到调用以下代码来计算布林指标。
```pine
[sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample)
Methoden neu laden
Benutzerdefinierte Methoden können vorhandene eingebaute Methoden und Benutzerdefinierte Methoden mit den gleichen Kennzeichen überladen und überladen. Diese Funktion ermöglicht es Benutzern, mehrere Instanzen zu definieren, die mit verschiedenen Parametersignaturen in derselben Methodenbezeichnung assoziiert sind. Als einfaches Beispiel nehmen wir an, dass wir eine Methode definieren wollen, um den Typ einer Variable zu identifizieren. Da wir den Objekttyp, der der Benutzerdefinierten Methode assoziiert ist, explizit angeben müssen, müssen wir die Definition für jeden Typ, den wir erkennen wollen, überladen.
//@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")
Grundtyp für jede Variable bestimmtgetType()
Welche Überladung wird verwendet. Auf der FMZ-Plattform werden die Zahlenarten als Float-Daten beurteilt, da die PINE-Skriptunterlage als Javascript-Sprache implementiert ist.
Bei Aufrufen von Funktionen können Parameter übertragen werden, Parameternamen zugewiesen werden, Variablen direkt an den entsprechenden Parameterpositionen übertragen werden und eine Mischnutzung unterstützt wird.
plot(close, title="test plot") // 直接传参数 close ;指定参数 title ,赋值字符串"test plot"
Nach der Angabe des Parameternamens ist es nicht mehr möglich, die Variablen direkt als Parameter zu übertragen. Die folgenden Parameter müssen in Form von Parameternamenausgaben geschrieben werden.
// plot(close, title="test", color.red) // 虽然plot第三个参数是颜色值,但是这样写就会报错
plot(close, title="test", color=color.red) // 正确写法
plot(close, "test", color.red) // 正确写法
Wir werden es weitergebentimeframe
Die Zeiträume der Parameter werden in Sekunden umgerechnet.
timeframe.in_seconds(timeframe)
Beispiele
// 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ückgabe von Werten
timeframe
Die Zahl der Sekunden in einer K-Zeile in der Form \ (\\displaystyle \mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathbf {\\mathb {\\mathb {\\mathb {\\mathb {\\mathb {\\mathb {\\mathb {\\mathb {\\mathb {\\mathbf {\\mathb }) \) \) \)
Parameter
timeframe
(simple string) Zeitrahmen♦ Optional♦ Default ist timeframe.period♦AnmerkungenFürtimeframe
>=
Bis dann
input.timeframe
timeframe.period
Erstellen Sie eine Code-Identifikatoranfrage, um den durchschnittlichen K-Linienwert zu glätten.
ticker.heikinashi(symbol)
Beispiele
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ückgabe von Werten 股票代码的字符串值,可以提供给request.security函数。
Parameter
symbol
(simple string) Warencode-Identifikator.Bis dann
syminfo.tickerid
syminfo.ticker
request.security
Bitte um externe Daten.
request.data(url, attribute)
Beispiele
/*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ückgabe von WertenParameterattribute
Die angegebene Datenserie.
Parameter
url
(simple string) Die URL der angeforderten Datenquelle, die Datenformat der Antwort auf die angeforderte Datenquelle (zumindest die time、data Attribute):{"data": [], "schema": ["time", "data"]}
Die Datenformate in den Beispielen:
{
"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 einen Eigenschaftsnamen an, der die gewünschten Daten zurückgibt."$.spot_close_price"
, benutzt$.
Als Präfix stimmen die Attribute-Namen mit den Eigenschaften in den Data-Feldern in den Daten, die bei der Anfrage an die Datenquelle geantwortet wurden, überein
Wenn ein Fehler angezeigt wird, müssen Sie ihn überprüfen.request.data
Ob der Zeitbereich der Anfrage mit dem Zeitbereich der Wiederholungs-Einstellungen übereinstimmt, wenn keine Daten in der Wiederholungs-Zeitfolge abgerufen werden, wird ein Fehler zurückgegeben.
In diesem Fall ist die Daten-Daten-Datenanfrage SQL-Satz:
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 kann auf der FMZ Plattform geschehen.DatenforschungSie können die Daten auf der Seite abfragen, Datenverknüpfungen erstellen, wie in diesem Beispiel.https://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data
。
Sie benötigen eine andere Sorte/Auflösung.
request.security(symbol, timeframe, expression, gaps, lookahead, ignore_invalid_symbol, currency)
Beispiele
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ückgabe von WertenAnforderung der Serie
Parameter
symbol
(simple string) Code für die Ware.timeframe
(simple string) Zeiträume. Die leere String wird als aktuelle Zeiträume des Diagramms interpretiert.expression
(series int/float/bool/color) kann von request.security aufgerufen werden und einen Ausdruck zurückgeben.gaps
(barmerge_gaps) Anforderung für die Datenverbindung der angeforderten Daten (Erforderung, dass die Daten automatisch mit den Daten der Hauptserie OHLC verknüpft werden). Mögliche Werte: barmerge.gaps_on, barmerge.gaps_off,.. barmerge.gaps_on - angeforderte Daten werden mit den möglichen Abständen verknüpft,.. barmerge.gaps_off - angeforderte Daten werden kontinuierlich ununterbrochen zusammengeführt, wobei alle Abständen mit den vorangegangenen letzten vorhandenen Werten gefüllt werden,..lookahead
(barmerge_lookahead) gibt dem angeforderten Datenverbund eine Kombinationspolitik. Mögliche Werte: barmerge.lookahead_on, barmerge.lookahead_off. Ab Version 3 wird der Standardwert barmerge.lookahead_off.ignore_invalid_symbol
(const bool) Ein Optionsparameter. Befindet das angegebene Produkt nicht gefunden, wird die Funktion festgelegt: wenn false, wird das Skript gestoppt und zum Ausführen zurückgegeben; wenn true, kehrt die Funktion na zurück und setzt die Ausführung fort.currency
(simple string) Konvertiert den Währungsbezogenen Wert (z. B. OHLC) der Ware in die Währung; berechnet dann den Konvertierungswert anhand des Konvertierungswerts durch den Ausdruck AnmerkungenPineScript-Code mit dieser Funktion kann unterschiedliche Berechnungen für historische Aufzeichnungen und Echtzeitdaten durchführen.Wenn Sie zusätzliche Parameter für die angeforderte Ware angeben möchten, wie z. B. Transaktionszeiten oder Anpassungsarten, können Sie die Anmeldung auch mit einer Anmeldung an die Anmelder weiterleiten.您可以使用ticker.newDie () Funktion.
Es ist nicht möglich, die Fehlerdifferenz an diese Funktion zu übermitteln, indem Sie die Variable Derzeit können bis zu 40 Request.security-Aufrufe in einem Skript erfolgen.
Bitte beachten Sie, dass die Verwendung dieser Variable/Funktion zu einer Neugestaltung der Indikatoren führen kann.
Die Auflösungsparameter erlauben folgende Werte:
1S, 5S, 15S, 30S - Sekundenintervall (die Periode des Diagramms sollte kleiner oder gleich der Periode der Anfrage sein)
Von 1 bis 1440 Minuten
Von 1D bis 365D.
Von 1 W auf 52 W in wenigen Wochen.
Von 1M auf 12M in wenigen Monaten.
Bis dann
syminfo.ticker
syminfo.tickerid
timeframe.period
ta.correlation
barmerge.lookahead_off
barmerge.lookahead_on
Wennsource
String enthältstr
Eine Substring gibt die Wertung true zurück, andernfalls false.
str.contains(source, str)
Beispiele
// 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ückgabe von WertenWennsource
Sie finden sie in Strings.str
Wenn Sie nicht bereit sind, zu schreiben, dann schreiben Sie.true oder false.
Parameter
source
(series string) Quelle der Stringstr
(series string) Unterstring, nach dem gesucht wird.Bis dann
str.pos
str.match
Wennsource
Die String wird mitstr
Das Ende der angegebenen Unterstring gibt True zurück, andernfalls False zurück.
str.endswith(source, str)
Rückgabe von WertenWennsource
Die String wird mitstr
Das Ende der angegebenen Unterzeichen ist true, andernfalls false.
Parameter
source
(series string) Quelle der Stringstr
(series string) Unterstring, nach dem gesucht wird.Bis dann
str.startswith
Wennsource
Die String wird mitstr
Der Beginn der angegebenen Unterstring in der Tabelle wird mit "true" oder "false" ersetzt.
str.startswith(source, str)
Rückgabe von WertenWennsource
Die String wird mitstr
Der Beginn der angegebenen Unterstring ist true, ansonsten false.
Parameter
source
(series string) Quelle der Stringstr
(series string) Unterstring, nach dem gesucht wird.Bis dann
str.endswith
Das ist eine neue String.source
Eine Unterstring einer String. Eine Unterstring wird mitbegin_pos
Sie beginnen mit den Zeichen des angegebenen Index und erstrecken sich bis zu:source
End_pos - 1 für die String.
str.substring(source, begin_pos)
str.substring(source, begin_pos, end_pos)
Beispiele
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ückgabe von WertenEine Substring, die aus der Quellstring extrahiert wurde.
Parameter
source
(series string) Entnehmen Sie die Quellstring einer Unterstring.begin_pos
(series int) ist der Anfangsplatz des extrahierten Unterstrangs. Es ist exklusiv (die extrahierte Unterstring enthält die Zeichen für diesen Standort).end_pos
(series int) Endposition. Es ist exklusiv. Die extrahierte String enthält keine Zeichen für diese Position.source
Die Stringlänge.AnmerkungenDie String-Index beginnt bei 0; wennbegin_pos
Das ist gleichend_pos
Die Funktion gibt eine leere String zurück.
Bis dann
str.contains
str.pos
str.match
str.tonumber(string)
Rückgabe von WertenWenn sie gültige Zahlen enthält, ist sie der Floating-Point-Typ der String, andernfalls ist sie na.
Parameter
string
(series string) eine Zeichenfolge für int oder float.Konvertiert Formatstränge und -werte in Formatstränge. Eine Formatstring kann einen Positionierer in einem großen Klammer {} für Texttext und jeden zu formatierenden Wert enthalten. Jeder Positionierer enthält einen Index, der seine notwendigen Parameter (beginnend mit 0) ersetzt, sowie einen optionalen Formatbezeichner. Der Index zeigt den Platz des Parameters in der Liste der Str.format-Parameter an.
str.format(formatString, arg0, arg1, ...)
Beispiele
// 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ückgabe von WertenDie Formattung der Strings.
Parameter
formatString
(series string) Format-Streifen.arg0, arg1, ...
(series int/float/bool/string/na/int[]/float[]/bool[]/string[]) ist ein Wert, der formatiert werden soll.AnmerkungenAlle Klammern, die nicht zitiert werden, müssen ausgeglichen sein. Zum Beispiel sind
Gibt die Anzahl der Buchstaben in der String zurück.
str.length(string)
Rückgabe von WertenDie Anzahl der Zeichen in der Quellzeile.
Parameter
string
(series string) Quelle der StringDas Ergebnis ist eine neue String, in der alle Buchstaben klein geschrieben sind.
str.lower(source)
Rückgabe von WertenAlle Buchstaben wurden in kleine Buchstaben verwandelt.
Parameter
source
(series string) Die zu konvertierende String.Bis dann
str.upper
Die neue String, in der alle Buchstaben groß geschrieben sind, wird zurückgegeben.
str.upper(source)
Rückgabe von WertenAlle Buchstaben wurden in die neue, groß geschriebene Zeichenkette umgewandelt.
Parameter
source
(series string) Die zu konvertierende String.Bis dann
str.lower
Wenn es passtregex
Wird ein normaler Ausdruck zurückgegeben,source
Die neue Unterstring der String, die ansonsten zurückkehrt
str.match(source, regex)
Beispiele
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ückgabe von Werten
source
Die neue Unterstring der String, wenn sie mit einerregex
Es ist eine normale Form, ansonsten ist es
Parameter
source
(series string) Quelle der Stringregex
(series string) Regelmäßige Ausdrücke, die mit dieser String übereinstimmen.AnmerkungenDie Funktion kehrt zurücksource
Die erste regelmäßige Ausdrucksformel, die in einer String erscheint.regex
Die Umwandlung der Umschlägen \\ in einem String erfordert die Verwendung von zusätzlichen Umschlägen, z. B. umschlägt \\d \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
Bis dann
str.contains
str.substring
Zurücksource
Erstmals in einer Stringstr
Die Position der String, sonst wird sie zurückgegeben
str.pos(source, str)
Rückgabe von Werten
str
String ist insource
Die Position in der String.
Parameter
source
(series string) Quelle der Stringstr
(series string) Unterstring, nach dem gesucht wird.AnmerkungenDie Stringindex beginnt bei 0.
Bis dann
str.contains
str.match
str.substring
Das ist eine neue String, in der die n + 1 erschienen sind.target
Die Strings und die vorherigentarget
Die Zeichenfolge wird durchreplacement
Die String, in der N inoccurrence
N ist der Matchindex, der in der Quellstring erscheint.
str.replace(source, target, replacement, occurrence)
Beispiele
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ückgabe von WertenString verarbeitet
Parameter
source
(series string) Quelle der Stringtarget
(series string) Ersetzt Stringreplacement
(series string) die String, die statt der Zielstring eingefügt werden soll.occurrence
(series int) Das zu ersetzende Zielstrang ist der zu ersetzende Matching-Index, der in der Quellstring erscheint. Der erste Matching-Index beginnt bei 0. Optional.Bis dann
str.replace_all
str.match
Sie ersetzen die Zielstring, die in der Quellstring jedes Mal erscheint.
str.replace_all(source, target, replacement)
Rückgabe von WertenString verarbeitet
Parameter
source
(series string) Quelle der Stringtarget
(series string) Ersetzt Stringreplacement
(Series string) Jedes Mal, wenn ein Zielstrang erscheint, wird er ersetzt.Die String wird in eine Reihe von Untersträngen aufgeteilt und ihre Array-ID zurückgegeben.
str.split(string, separator)
Rückgabe von WertenDie ID der String-Array.
Parameter
string
(series string) Quelle der Stringseparator
(series string) Die String, die jede Unterstring trennt.str.tostring(value)
str.tostring(value, format)
str.tostring(value[])
str.tostring(value[], format)
Rückgabe von Werten
value
Die Stringform der Parameter wird dargestellt.
Wennvalue
Die Parameter werden als String zurückgegeben.
Wennvalue
Für na gibt die Funktion die Stringzell NaN zurück.
Parameter
value
(series int/float/bool/string/int[]/float[]/bool[]/string[]) deren Element in einen Stringwert oder eine Array-ID umgewandelt wird.format
(Serie-String) Format-String. Akzeptiert diese Format-Konstanten.*: format.mintick, format.percent, format.volume. Optional. Der Standardwert ist AnmerkungenDas Format von Schwellpunktwerten wird diese Werte auch in Vier- und Fünf-Zahlen umschalten, wenn nötig, z. B. str.tostring ((3.99,
Funktionsfarben geben die Transparenz an, die auf eine bestimmte Farbe angewendet wird.
color.new(color, transp)
Beispiele
plot(close, color=color.new(color.red, 50))
Rückgabe von WertenDie Farben haben eine bestimmte Transparenz.
Parameter
color
(Serienfarbe)transp
(series int/float) Die verfügbaren Werte reichen von 0 (unsichtbar) bis 100 (unsichtbar)AnmerkungenDie Verwendung einer Vielzahl von Parametern (z. B.
Erstellen Sie neue Farben mit Transparenz mithilfe des RGB-Farbmodells.
color.rgb(red, green, blue, transp)
Beispiele
plot(close, color=color.rgb(255, 0, 0, 50))
Rückgabe von WertenDie Farben haben eine bestimmte Transparenz.
Parameter
red
(series int/float) Rotgefärbt. Die möglichen Werte liegen zwischen 0 und 255.green
(series int/float) Grün geschaltet. Die möglichen Werte liegen zwischen 0 und 255blue
(series int/float) Blautöne. Die möglichen Werte liegen zwischen 0 und 255.transp
(series int/float) Optional. == Farbtransparenz == Die möglichen Werte reichen von 0 (nicht transparent) bis 100 (transparent) == Der Standardwert ist 0 ==AnmerkungenDie Verwendung einer Vielzahl von Parametern (z. B.
Drucken Sie Variableninformationen auf dem Controller.
FMZ PINE hat eine spezielle Funktion.runtime.debug(value)
, nur eine Parameter.
Der Inhalt wird im Log-Export ausgeführt.
FMZ PINE hat eine spezielle Funktion.runtime.log(1, 2, 3, close, high, ...)
, kann mehrere Parameter übertragen werden.
Bei Aufrufen kann dies zu Auslauffehlern führen und kann mit Folgen verbunden sein.message
Die Fehlermeldung wird in den Parametern angegeben.
runtime.error(message)
ParameterMessage (series string) Fehlermeldung.
Das Hinzufügen von Input auf die Input-Label-Seite der Skript-Einstellungen, die es Ihnen erlaubt, den Skript-Benutzern Konfigurationsoptionen zur Verfügung zu stellen. Diese Funktion erkennt automatisch die Parameter-Typen für den Default-Plugin und verwendet das entsprechende Input-Plugin.
input(defval, title, tooltip, inline, group)
input(defval, title, inline, group, tooltip)
Beispiele
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ückgabe von WertenEingabe von Variablenwerten
Parameter
defval
(const int/float/bool/string/color or source-type built-ins) Bestimmt den Standardwert der in den Stecker-Einstellungen/Eingabe-Stecker-Labelseiten des Skripts vorgeschlagenen Input-Variablen, von der der Skriptbenutzer sie ändern können.close
、hlc3
Und so weiter.title
(const string) Eingabetitel. Wenn nicht angegeben, wird der Variablenname als Eingabetitel verwendet. Wenn der Titel angegeben ist, aber der Titel ist leer, wird der Name als leere String verwendet.tooltip
(const string) Diese String wird dem Benutzer angezeigt, wenn er den Hinterhalt des Mouses auf dem Tooltip-Symbol hält.inline
(const string) kombiniert alle Input-Aufrufe mit den gleichen Parametern in einer Zeile. Die als Parameter verwendeten Strings werden nicht angezeigt.group
(const string) Erstellen Sie die Überschrift über alle Eingaben mit der gleichen Satzparameterzeichenzeichenzeichenzeichenzeichen.AnmerkungenDie Rückgabewerte der Input-Funktion sollten immer den Variablen zugewiesen werden.
Bis dann
input.bool
input.color
input.int
input.float
input.string
input.timeframe
input.source
Das Hinzufügen von Input auf die Input-Label-Seite mit den Scriptsetungen ermöglicht es Ihnen, den Benutzer des Skripts mit Konfigurationsoptionen zu versorgen. Diese Funktion erlaubt es dem Benutzer, die Berechnungsquelle, z. B. close, hl2 usw. auszuwählen. Wenn das Skript nur einen Input.source-Call enthält, kann der Benutzer die Ausgabe eines anderen Indikators auf dem Diagramm als Quelle auswählen.
input.source(defval, title, tooltip, inline, group)
Beispiele
i_src = input.source(close, "Source")
plot(i_src)
Rückgabe von WertenEingabe von Variablenwerten
Parameter
defval
(series int/float) definiert den Standardwert der empfohlenen Eingabevariablen auf dem Scriptschabloneinstellungen/Eingabe-Schablone-Label-Seite, von dem der Benutzer sie ändern kann.title
(const string) Eingabetitel. Wenn nicht angegeben, wird der Variablenname als Eingabetitel verwendet. Wenn der Titel angegeben ist, aber der Titel ist leer, wird der Name als leere String verwendet.tooltip
(const string) Diese String wird dem Benutzer angezeigt, wenn er den Hinterhalt des Mouses auf dem Tooltip-Symbol hält.inline
(const string) kombiniert alle Input-Aufrufe mit den gleichen Parametern in einer Zeile. Die als Parameter verwendeten Strings werden nicht angezeigt.group
(const string) Erstellen Sie die Überschrift über alle Eingaben mit der gleichen Satzparameterzeichenzeichenzeichenzeichenzeichen.Anmerkungen input.source函数的结果总是应该分配给一个变量,见上面的例子。
Bis dann
input.bool
input.int
input.float
input.string
input.timeframe
input.color
input
Fügt Input zu den Input-Options-Tabs der Skript-Einstellungen hinzu, die es Ihnen ermöglichen, den Skript-Benutzern die Konfigurationsoptionen zur Verfügung zu stellen. Diese Funktion fügt die String-Input-Felder zu den Inputs des Skripts hinzu.
input.string(defval, title, options, tooltip, inline, group, confirm)
Beispiele
i_text = input.string("Hello!", "Message")
runtime.log(i_text)
Rückgabe von WertenEingabe von Variablenwerten
Parameter
defval
(const string) Bestimmt den Standardwert der empfohlenen Eingabevariablen auf dem Konst-Einstellungen-/Eingabe-Streicher-Label-Seite des Skripts, von dem der Benutzer sie ändern kann.options
Wenn die Parameter zusammen verwendet werden, muss dieser Wert einer von ihnen sein.title
(const string) Eingabetitel. Wenn nicht angegeben, wird der Variablenname als Eingabetitel verwendet. Wenn der Titel angegeben ist, aber der Titel ist leer, wird der Name als leere String verwendet.options
(Liste von Konstanten: [tooltip
(const string) Diese String wird dem Benutzer angezeigt, wenn er den Hinterhalt des Mouses auf dem Tooltip-Symbol hält.inline
(const string) kombiniert alle Input-Aufrufe mit den gleichen Parametern in einer Zeile. Die als Parameter verwendeten Strings werden nicht angezeigt.group
(const string) Erstellen Sie die Überschrift über alle Eingaben mit der gleichen Satzparameterzeichenzeichenzeichenzeichenzeichen.confirm
(const bool) Wenn true, wird der Benutzer aufgefordert, den Eingabewert zu bestätigen, bevor der Indikator in das Diagramm hinzugefügt wird.Anmerkungen input.string函数的结果总是应该分配给一个变量,见上面的例子。
Bis dann
input.bool
input.int
input.float
input.timeframe
input.source
input.color
input
Fügt die Eingabe zu der Eingabe-Label-Seite der Skript-Einstellungen hinzu, die es Ihnen erlaubt, den Skript-Benutzern die Konfigurationsoptionen anzubieten.
input.bool(defval, title, tooltip, inline, group, confirm)
Beispiele
i_switch = input.bool(true, "On/Off")
plot(i_switch ? open : na)
Rückgabe von WertenEingabe von Variablenwerten
Parameter
defval
(const bool) Bestimmt den Standardwert der empfohlenen Eingabevariablen auf dem Konst-Einstellungen/Eingabe-Konst-Label-Seite des Skripts, von dem der Benutzer sie ändern kann.title
(const string) Eingabetitel. Wenn nicht angegeben, wird der Variablenname als Eingabetitel verwendet. Wenn der Titel angegeben ist, aber der Titel ist leer, wird der Name als leere String verwendet.tooltip
(const string) Diese String wird dem Benutzer angezeigt, wenn er den Hinterhalt des Mouses auf dem Tooltip-Symbol hält.inline
(const string) kombiniert alle Input-Aufrufe mit den gleichen Parametern in einer Zeile. Die als Parameter verwendeten Strings werden nicht angezeigt.group
(const string) Erstellen Sie die Überschrift über alle Eingaben mit der gleichen Satzparameterzeichenzeichenzeichenzeichenzeichen.confirm
(const bool) Wenn true, wird der Benutzer aufgefordert, den Eingabewert zu bestätigen, bevor der Indikator in das Diagramm hinzugefügt wird.Anmerkungen input.bool函数的结果总是应该分配给一个变量,见上面的例子。
Bis dann
input.int
input.float
input.string
input.timeframe
input.source
input.color
input
Fügt Input zu der Input-Label-Seite der Skript-Einstellungen hinzu, die es Ihnen erlaubt, den Skript-Benutzern Konfigurationsoptionen zur Verfügung zu stellen. Diese Funktion fügt integre Eingabefelder zu den Eingaben des Skripts hinzu.
input.int(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.int(defval, title, options, tooltip, inline, group, confirm)
Beispiele
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ückgabe von WertenEingabe von Variablenwerten
Parameter
defval
(const int) definiert den Standardwert der empfohlenen Eingabevariablen auf dem Konst-Settings/Input-Konst-Label-Seite des Skripts, von dem der Benutzer des Skripts diese ändern kann.options
Wenn die Parameter zusammen verwendet werden, muss dieser Wert einer von ihnen sein.title
(const string) Eingabetitel. Wenn nicht angegeben, wird der Variablenname als Eingabetitel verwendet. Wenn der Titel angegeben ist, aber der Titel ist leer, wird der Name als leere String verwendet.minval
(const int) Mindestmöglicher Wert der eingegebenen Variablen. Optional.maxval
(const int) Der höchstmögliche Wert der eingegebenen Variablen. Optional.step
(const int) wird verwendet, um den Schrittlängenwert der Eingabe zu erhöhen/zu verringern.options
(tuple of const int values: [val1, val2,...]) Liste der aus dem Dropdown-Menü ausgewählten Optionen, die durch Komma getrennt und mit einem Quadratklammer gekennzeichnet sind: [val1, val2,...].minval
、maxval
undstep
Parameter.tooltip
(const string) Diese String wird dem Benutzer angezeigt, wenn er den Hinterhalt des Mouses auf dem Tooltip-Symbol hält.inline
(const string) kombiniert alle Input-Aufrufe mit den gleichen Parametern in einer Zeile. Die als Parameter verwendeten Strings werden nicht angezeigt.group
(const string) Erstellen Sie die Überschrift über alle Eingaben mit der gleichen Satzparameterzeichenzeichenzeichenzeichenzeichen.confirm
(const bool) Wenn true, wird der Benutzer aufgefordert, den Eingabewert zu bestätigen, bevor der Indikator in das Diagramm hinzugefügt wird.Anmerkungen input.int函数的结果总是应该分配给一个变量,见上面的例子。
Bis dann
input.bool
input.float
input.string
input.timeframe
input.source
input.color
input
Fügt die Eingabe zu der Eingabe-Label-Seite der Skript-Einstellungen hinzu, die es Ihnen erlaubt, den Skript-Benutzern Konfigurationsoptionen zur Verfügung zu stellen. Diese Funktion fügt die Flop-Eingabe-Felder zu den Eingaben des Skripts hinzu.
input.float(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.float(defval, title, options, tooltip, inline, group, confirm)
Beispiele
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ückgabe von WertenEingabe von Variablenwerten
Parameter
defval
(const int/float) definiert den Standardwert der empfohlenen Eingabevariablen auf dem Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Input-Inoptions
Wenn die Parameter zusammen verwendet werden, muss dieser Wert einer von ihnen sein.title
(const string) Eingabetitel. Wenn nicht angegeben, wird der Variablenname als Eingabetitel verwendet. Wenn der Titel angegeben ist, aber der Titel ist leer, wird der Name als leere String verwendet.minval
(const int/float) Mindestmöglicher Wert der Eingabevariable.maxval
(const int/float) Höchstmöglicher Wert der Eingabevariablen.step
(const int/float) wird verwendet, um die Schrittlänge der Eingabe zu erhöhen/zu verringern.options
(tuple of const int/float values: [val1, val2,...]) Auswahl der aus dem Dropdown-Menü gewählten Optionen, die durch Komma getrennt und mit Quadratklammern zusammengefasst sind: [val1, val2,...].minval
、maxval
undstep
Parameter.tooltip
(const string) Diese String wird dem Benutzer angezeigt, wenn er den Hinterhalt des Mouses auf dem Tooltip-Symbol hält.inline
(const string) kombiniert alle Input-Aufrufe mit den gleichen Parametern in einer Zeile. Die als Parameter verwendeten Strings werden nicht angezeigt.group
(const string) Erstellen Sie die Überschrift über alle Eingaben mit der gleichen Satzparameterzeichenzeichenzeichenzeichenzeichen.confirm
(const bool) Wenn true, wird der Benutzer aufgefordert, den Eingabewert zu bestätigen, bevor der Indikator in das Diagramm hinzugefügt wird.Anmerkungen input.float函数的结果总是应该分配给一个变量,见上面的例子。
Bis dann
input.bool
input.int
input.string
input.timeframe
input.source
input.color
input
Das Hinzufügen von Input auf die Input-Label-Seite der Skript-Einstellungen erlaubt es Ihnen, den Skript-Benutzern die Konfigurationsoptionen anzubieten. Diese Funktion fügt einen Farbselektor hinzu, der es dem Benutzer erlaubt, Farben und Transparenz aus der Farbpalette oder einem sechzehnstelligen Schaltwert auszuwählen.
input.color(defval, title, tooltip, inline, group, confirm)
Beispiele
i_col = input.color(color.red, "Plot Color")
plot(close, color=i_col)
Rückgabe von WertenEingabe von Variablenwerten
Parameter
defval
(const color) definiert den Standardwert der empfohlenen Eingabevariablen auf dem Konst-Einstellungen-/Eingabe-Konst-Label-Seite des Skripts, von dem der Benutzer sie ändern kann.title
(const string) Eingabetitel. Wenn nicht angegeben, wird der Variablenname als Eingabetitel verwendet. Wenn der Titel angegeben ist, aber der Titel ist leer, wird der Name als leere String verwendet.tooltip
(const string) Diese String wird dem Benutzer angezeigt, wenn er den Hinterhalt des Mouses auf dem Tooltip-Symbol hält.inline
(const string) kombiniert alle Input-Aufrufe mit den gleichen Parametern in einer Zeile. Die als Parameter verwendeten Strings werden nicht angezeigt.group
(const string) Erstellen Sie die Überschrift über alle Eingaben mit der gleichen Satzparameterzeichenzeichenzeichenzeichenzeichen.confirm
(const bool) Wenn true, wird der Benutzer aufgefordert, den Eingabewert zu bestätigen, bevor der Indikator in das Diagramm hinzugefügt wird.Anmerkungen input.color函数的结果总是应该分配给一个变量,见上面的例子。
Bis dann
input.bool
input.int
input.float
input.string
input.timeframe
input.source
input
Setzungen/Eingabe von Etiketten für Preise, die in das Skript hinzugefügt werden.confirm = true
Aktivieren Sie den interaktiven Eingabe-Modus und wählen Sie Preise aus, indem Sie auf das Diagramm klicken.
input.price(defval, title, tooltip, inline, group, confirm)
Beispiele
price1 = input.price(title="Date", defval=42)
plot(price1)
price2 = input.price(54, title="Date")
plot(price2)
Rückgabe von WertenEingabe von Variablenwerten
Parameter
defval
(const int/float) definiert den Standardwert der empfohlenen Eingabevariablen auf dem Input-Input-Input-Label-Seite, von der der Benutzer sie ändern kann.title
(const string) Eingabetitel. Wenn nicht angegeben, wird der Variablenname als Eingabetitel verwendet. Wenn der Titel angegeben ist, aber der Titel ist leer, wird der Name als leere String verwendet.tooltip
(const string) Diese String wird dem Benutzer angezeigt, wenn er den Hinterhalt des Mouses auf dem Tooltip-Symbol hält.inline
(const string) kombiniert alle Input-Aufrufe mit den gleichen Parametern in einer Zeile. Die als Parameter verwendeten Strings werden nicht angezeigt.group
(const string) Erstellen Sie die Überschrift über alle Eingaben mit der gleichen Satzparameterzeichenzeichenzeichenzeichenzeichen.confirm
(const bool) Wenn wahr, aktivieren Sie den interaktiven Eingabe-Modus und führen die Auswahl durch Klicken auf den Chart ab, wenn der Indikator dem Chart hinzugefügt wird, oder durch Auswahl des Indikators und dann das Bewegen der Auswahl ab. Optional.AnmerkungenWenn man den Interaktionsmodus benutzt, kann man zwei Funktionen anrufen, wenn sie sich gegenseitig anrufen.inline
Die gleichen Parameter können mit der Zeit-Eingabe und der Preis-Eingabe kombiniert werden.
Bis dann
input.bool
input.int
input.float
input.string
input.resolution
input.source
input.color
input
Fügt die Eingabe zu der Eingabe-Label-Seite der Skript-Einstellungen hinzu, die es Ihnen erlaubt, den Skript-Benutzer mit Konfigurationsoptionen zu versorgen. Diese Funktion fügt eine Dropdown-Liste hinzu, die es dem Benutzer erlaubt, einen bestimmten Zeitrahmen mit dem Zeitzeitraum-Selektor auszuwählen und als String zurückzugeben. Der Selektor enthält eine benutzerdefinierte Zeitperiode, die der Benutzer mit dem Zeitzeitraum eines Diagramms verwenden kann.
input.timeframe(defval, title, options, tooltip, inline, group, confirm)
Beispiele
i_res = input.timeframe('D', "Resolution", options=['D', 'W', 'M'])
s = request.security(syminfo.tickerid, i_res, close)
plot(s)
Rückgabe von WertenEingabe von Variablenwerten
Parameter
defval
(const string) Bestimmt den Standardwert der empfohlenen Eingabevariablen auf dem Konst-Einstellungen-/Eingabe-Streicher-Label-Seite des Skripts, von dem der Benutzer sie ändern kann.options
Wenn die Parameter zusammen verwendet werden, muss dieser Wert einer von ihnen sein.title
(const string) Eingabetitel. Wenn nicht angegeben, wird der Variablenname als Eingabetitel verwendet. Wenn der Titel angegeben ist, aber der Titel ist leer, wird der Name als leere String verwendet.options
(tuple of const string values: [val1, val2,...]) Liste der Optionen, die Sie wählen können.tooltip
(const string) Diese String wird dem Benutzer angezeigt, wenn er den Hinterhalt des Mouses auf dem Tooltip-Symbol hält.inline
(const string) kombiniert alle Input-Aufrufe mit den gleichen Parametern in einer Zeile. Die als Parameter verwendeten Strings werden nicht angezeigt.group
(const string) Erstellen Sie die Überschrift über alle Eingaben mit der gleichen Satzparameterzeichenzeichenzeichenzeichenzeichen.confirm
(const bool) Wenn true, wird der Benutzer aufgefordert, den Eingabewert zu bestätigen, bevor der Indikator in das Diagramm hinzugefügt wird.Anmerkungen input.timeframe函数的结果总是应该分配给一个变量,见上面的例子。
Bis dann
input.bool
input.int
input.float
input.string
input.source
input.color
input
Nicht mehr.
Nicht mehr.
Arnaud Legoux bewegliche Durchschnittswerte. Sie verwenden die Gaussian-Verteilung als Gewicht für die beweglichen Durchschnittswerte.
ta.alma(series, length, offset, sigma)
ta.alma(series, length, offset, sigma, floor)
Beispiele
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ückgabe von WertenArnaud Legoux bewegende Durchschnittswerte
Parameter
series
(series int/float) Die zu ausführenden Serienwerte.length
(series int) K-Linien (Längen).offset
(simple int/float) Steuert den Kompromiss zwischen Geschwindigkeit (näher 1) und Reaktionsfähigkeit (näher 0).sigma
(simple int/float) ändert ALMA-Glattheit. Je größer Sigma, desto glatter ALMA.floor
(simple bool) Optionale Parameter. Bevor ALMA berechnet wird, wird angegeben, ob die Abweichungsgröße als unterste Grenze berechnet wird. Der Standardwert ist false.Bis dann
ta.sma
ta.ema
ta.rma
ta.wma
ta.vwma
ta.swma
Die Funktion sma gibt den gleitenden Mittelwert, also den letzten y-Wert von x, zurück, der durch y getrennt wird.
ta.sma(source, length)
Beispiele
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ückgabe von Werten
length
Die K-Linie kehrt zurück.source
Die einfache gleitende Durchschnittslänge der
Parameter
source
(series int/float) Die zu ausführenden Serienwerte.length
(series int) K-Linien (Längen).Bis dann
ta.ema
ta.rma
ta.wma
ta.vwma
ta.swma
ta.alma
Die Schwerpunkte sind auf der Grundlage der Statistik und des Fibonacci-Goldenen Verhältnisses.
ta.cog(source, length)
Beispiele
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ückgabe von WertenAufmerksamkeit
Parameter
source
(series int/float) Die zu ausführenden Serienwerte.length
(series int) K-Linien (Längen).Bis dann
ta.stoch
衡量系列与其ta.sma之间的差异
ta.dev(source, length)
Beispiele
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ückgabe von Werten
length
Die K-Linie kehrt zurück.source
Ich bin nicht derjenige, der das sagt.
Parameter
source
(series int/float) Die zu ausführenden Serienwerte.length
(series int) K-Linien (Längen).Bis dann
ta.variance
ta.stdev
ta.stdev(source, length, biased)
Beispiele
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ückgabe von WertenStandardverschuldung
Parameter
source
(series int/float) Die zu ausführenden Serienwerte.length
(series int) K-Linien (Längen).biased
(series bool) bestimmt, welche Schätzung verwendet werden soll.AnmerkungenWennbiased
Für true wird die Funktion mit einer verzerrten Schätzung der Gesamtheit berechnet, für false mit einer unvoreingenommenen Schätzung der Stichprobe.
Bis dann
ta.dev
ta.variance
Die Funktion ema gibt einen Index-gewichteten gleitenden Mittelwert zurück. In ema wird der Gewichtungsfaktor durch einen Indexrückgang berechnet. Sie wird mit der folgenden Formel berechnet: EMA = alpha * source + (1 - alpha) * EMA[1], wobei alpha = 2 / (length + 1) ;
ta.ema(source, length)
Beispiele
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ückgabe von Werten
source
Der Index des gleitenden Mittelwertes, alpha = 2 / (Länge + 1) ⋅
Parameter
source
(series int/float) Die zu ausführenden Serienwerte.length
(simple int) Anzahl der K-Streifen (Längen).AnmerkungenBitte beachten Sie, dass die Verwendung dieser Variable/Funktion zu einer Neugestaltung der Indikatoren führen kann.
Bis dann
ta.sma
ta.rma
ta.wma
ta.vwma
ta.swma
ta.alma
Die Funktion wma wird zurückgegebenlength
Die K-Liniensource
Die gewogenen beweglichen Mittelwerte der WMA werden in WMA mit einem arithmetischen Gradsatz reduziert.
ta.wma(source, length)
Beispiele
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ückgabe von Werten
length
Die K-Linie kehrt zurück.source
Die Gewichtungsbewegung ist ein gewogenes gleitendes Mittel.
Parameter
source
(series int/float) Die zu ausführenden Serienwerte.length
(series int) K-Linien (Längen).Bis dann
ta.sma
ta.ema
ta.rma
ta.vwma
ta.swma
ta.alma
Eine symmetrisch-gewichtete bewegliche Mittellinie mit einer festen Länge: 4. Gewicht: [1/6,2 / 6,2 / 6,1 / 6].
ta.swma(source)
Beispiele
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ückgabe von WertenDie symmetrischen gewichteten gleitenden Mittelwerte.
Parameter
source
(series int/float) Quelle der Serie.Bis dann
ta.sma
ta.ema
ta.rma
ta.wma
ta.vwma
ta.alma
Die hma-Funktion gibt die HMA zurück.
ta.hma(source, length)
Beispiele
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ückgabe von WertenRückkehr zur Hull-Länge der Hull-Säule zur Hull-Source-Hull der Hull-Säule zur Hull-Moving Average.
Parameter
source
(series int/float) Die zu ausführenden Serienwerte.length
(simple int) Anzahl der K-StreifenBis dann
ta.ema
ta.rma
ta.wma
ta.vwma
ta.sma
Das bewegliche Durchschnitt, das im RSI verwendet wird. Es ist ein index-gewichteter beweglicher Durchschnitt, wobei Alpha + Gewicht = 1 / Länge.
ta.rma(source, length)
Beispiele
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ückgabe von Werten
source
Das ist der Index des gleitenden Mittelwertes, alpha = 1 /length
。
Parameter
source
(series int/float) Die zu ausführenden Serienwerte.length
(simple int) Anzahl der K-Streifen (Längen).Bis dann
ta.sma
ta.ema
ta.wma
ta.vwma
ta.swma
ta.alma
ta.rsi
Der Relative Intensity Index.length
K-Liniesource
Die Veränderung von oben nach untenta.rma()
Ich bin nicht derjenige, der das sagt.
ta.rsi(source, length)
Beispiele
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ückgabe von WertenRelativ starke und schwache Indikatoren (RSI)
Parameter
source
(series int/float) Die zu ausführenden Serienwerte.length
(simple int) Anzahl der K-Streifen (Längen).Bis dann
ta.rma
Der Index der echten Stärke und Schwäche verwendet ein gleitendes Durchschnitt der potentiellen Mobilität von Finanzinstrumenten.
ta.tsi(source, short_length, long_length)
Rückgabe von WertenDer wirkliche Index der Stärke und Schwäche.
Parameter
source
(series int/float) Quelle der Serie.short_length
(simple int) Kurze Länge.long_length
(simple int) Die Länge der langen Schnur.Die Funktion roc (Rate of Change) zeigtsource
Der aktuelle Wert undsource
Vor ein paar Tagenlength
Unterschiede zwischen den Werten.
Die Berechnung erfolgt nach der folgenden Formel: 100 * change (src, length) / src (length).
ta.roc(source, length)
Rückgabe von Werten
length
Die K-Linie kehrt zurück.source
Die Zahl der Menschen, die in den USA leben, ist sehr hoch.
Parameter
source
(series int/float) Die zu ausführenden Serienwerte.length
(series int) K-Linien (Längen).Die Differenz zwischen dem Minimum und dem Maximum in der Reihe wird zurückgegeben.
ta.range(source, length)
Rückgabe von WertenDie Differenz zwischen dem kleinsten und dem größten Wert in der Reihe.
Parameter
source
(series int/float) Die zu ausführenden Serienwerte.length
(series int) K-Linien (Längen).Der MACD soll die Veränderungen in der Stärke, Richtung, Dynamik und Dauer der Kursentwicklung aufzeigen.
ta.macd(source, fastlen, slowlen, siglen)
Beispiele
[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 Positionszeichen wie:
Beispiele
[_, signalLine, _] = ta.macd(close, 12, 26, 9)
plot(signalLine, color=color.orange)
Rückgabe von WertenDie drei Komponenten der MACD-Serie: MACD-Leitung, Signalleitung und Geradlinie.
Parameter
source
(series int/float) Die zu ausführenden Serienwerte.fastlen
(simple int) Schnellleitungsparameterslowlen
(simple int) Langsamer Längenparameter.siglen
(simple int) Signallänge Parameter.Bis dann
ta.sma
ta.ema
Rückkehr des Modells der Reihenfolge. Wenn mehrere Werte mit der gleichen Frequenz vorhanden sind, wird der Mindestwert zurückgegeben.
ta.mode(source, length)
Rückgabe von WertenDas Modell der Sequenz.
Parameter
source
(series int/float) Die zu ausführenden Serienwerte.length
(series int) K-Linien (Längen).Die Mittelzahl der Reihenfolge wird zurückgegeben.
ta.median(source, length)
Rückgabe von WertenDie mittlere Zahl der Reihen.
Parameter
source
(series int/float) Die zu ausführenden Serienwerte.length
(series int) K-Linien (Längen).Eine lineare Regressionskurve. Eine Linie, die am ehesten dem angegebenen Preis innerhalb eines benutzerdefinierten Zeitraums entspricht. Sie wird mit minimalem Zweimal berechnet. Das Ergebnis dieser Funktion wird mit der folgenden Formel berechnet: linreg = intercept + slope * (length - 1 - offset), wobei intercept und slope verwendet werden.source
Der Wert, den man mit dem kleinsten Zweimal der Reihe berechnet.
ta.linreg(source, length, offset)
Rückgabe von WertenDie lineare Regressionskurve
Parameter
source
(series int/float) Quelle der Serie.length
(Serie int)offset
(simple int) VerschiebungEin Blinkband. Ein Blinkband ist ein technisches Analyse-Tool, das durch eine Reihe von Linien definiert wird, die zwei Standardabweichungen (positiv und negativ) zwischen den einfachen gleitenden Durchschnitten (SMA) des Wertpapierpreises haben, die jedoch anhand der Vorlieben der Benutzer angepasst werden können.
ta.bb(series, length, mult)
Beispiele
[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ückgabe von WertenIch bin ein junger Mann, und ich bin ein junger Mann.
Parameter
series
(series int/float) Reihe, die ausgeführt werden sollWeiweiweiWie geht es, wenn man mehrere Transaktionen gleichzeitig durchführen will?
Leichte WolkenKann Pine mehr als eine Transaktion durchführen, wie JS?
Lisa20231Danke für die detaillierte Dokumentation.
Künstlerische ArbeitWie kommt es, dass dieses Pine-Skript die Simulation von okex auf der Plattform verwendet?
Künstlerische ArbeitDas bedeutet, dass die Strategien der TradingView Plattform direkt auf die Plattform der Erfinder kopiert werden können.
Die Erfinder quantifizieren - Kleine TräumeDie PINE-Sprache kann nur einzigartige Strategien durchführen, wobei die Multi-Variate-Strategie am besten in Python, JavaScript oder C++ geschrieben wird.
Die Erfinder quantifizieren - Kleine TräumeOh, ja, OKX ist etwas Besonderes, ihre Analog-Umgebung und ihre Festplattenumgebung haben die gleiche Adresse, nur dass sie anderswo unterschieden werden.
Leichte WolkenEs ist nicht möglich, die okx-Analogplatte zu verwenden.
Die Erfinder quantifizieren - Kleine TräumeDiese vielfältige Architektur kann nicht gelöst werden, da jede Börse unterschiedliche Schnittstellen hat und die Frequenz der Schnittstellen nicht gleich ist.
Die Erfinder quantifizieren - Kleine TräumeDas ist eine gute Idee, danke für die Vorschläge, schreiben Sie hier weiter.
Leichte WolkenEs fühlt sich besser an, wenn man mit JS kombiniert wird, und JS kann sich besser an verschiedene Handelsmethoden anpassen.
Trends in der JagdWird es in Zukunft mehrere Sorten geben?
Die Erfinder quantifizieren - Kleine TräumeDas ist unhöflich.
Leichte WolkenDas ist gut, danke.
Die Erfinder quantifizieren - Kleine TräumeHallo, die PINE-Sprachstrategie ist vorübergehend nur für eine Sorte geeignet.
Die Erfinder quantifizieren - Kleine TräumeIch möchte Ihnen danken für Ihre Unterstützung. Die Dokumentation wird weiter verbessert.
Die Erfinder quantifizieren - Kleine TräumeJa, das stimmt.
Die Erfinder quantifizieren - Kleine TräumePINE-Template-Klassebücher, auf deren Parameter die Basisadresse der Umtauschbörse festgelegt werden kann.