Die Ressourcen sind geladen. Beförderung...

FMZ PINE Script Dokumentation

Schriftsteller:Die Erfinder quantifizieren - Kleine Träume, Erstellt: 2022-05-06 14:27:06, aktualisiert: 2024-10-12 15:27:04

ceArray =array.new(SamplesInput) Methode maintainQueue(array srcArray, Flotwert, bool takeSample = true) => Wenn nehmenSample srcArray.push (Wert) srcArray.shift() srcArray

Methode calcBB(array srcArray, float mult, bool berechnen = wahr) => VAR = NA VAR-Float dev = na wenn berechnet Mittelwert: = srcArray.avg() Die Datenbank ist nicht verfügbar. [Mittel, Mittel + Dev, Mittel - Dev]

bool newSample = bar_index % n == 0

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

Grafik ((ProbeMean, Basis, Farbe.Orange) Grafik ((Hochband, Ober, Farbe. Kalk) Plot ((lowBand, Lower,color.red)


可以看到使用关键字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.

Eingebaute Funktionen

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)             // 正确写法

Zeitrahmen

Zeitrahmen.in_Sekunden

Wir werden es weitergebentimeframeDie 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 timeframeDie 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>= 1M Funktion Berechnet anhand von 30.4167 (365/12) Tagen im Monat;

Bis dann input.timeframe timeframe.period

Zähne

ticker.heikinashi

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

Anforderung

request.data

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 WertenParameterattributeDie 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.dataOb 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

request.security

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 ; verwendet wird der Umrechnungssatz basierend auf dem täglichen Wechselkurs des vorherigen Tages des FX_IDC-Paares (z. B. gegenüber der berechneten K-Linie); optional. Der Standardwert ist syminfo.currency. Möglicher Wert: Drei-Streifen-String mit einem ISO 4217-Format-Währungscode (z. B. USD) oder currency.* Eine Konstante im Namensraum, z. B. currency.USD.

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 ticker verwenden.ticker.newDie Formen der Zeichenfolge für die Variablen oder den Aktiencode, z. B. AAPL+MSFT*TSLA.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

Str

str.contains

WennsourceString enthältstrEine 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 WertenWennsourceSie finden sie in Strings.strWenn Sie nicht bereit sind, zu schreiben, dann schreiben Sie.true oder false.

Parameter

  • source(series string) Quelle der String
  • str(series string) Unterstring, nach dem gesucht wird.

Bis dann str.pos str.match

str.endswith

WennsourceDie String wird mitstrDas Ende der angegebenen Unterstring gibt True zurück, andernfalls False zurück.

str.endswith(source, str)

Rückgabe von WertenWennsourceDie String wird mitstrDas Ende der angegebenen Unterzeichen ist true, andernfalls false.

Parameter

  • source(series string) Quelle der String
  • str(series string) Unterstring, nach dem gesucht wird.

Bis dann str.startswith

str.startswith

WennsourceDie String wird mitstrDer Beginn der angegebenen Unterstring in der Tabelle wird mit "true" oder "false" ersetzt.

str.startswith(source, str)

Rückgabe von WertenWennsourceDie String wird mitstrDer Beginn der angegebenen Unterstring ist true, ansonsten false.

Parameter

  • source(series string) Quelle der String
  • str(series string) Unterstring, nach dem gesucht wird.

Bis dann str.endswith

str.substring

Das ist eine neue String.sourceEine Unterstring einer String. Eine Unterstring wird mitbegin_posSie beginnen mit den Zeichen des angegebenen Index und erstrecken sich bis zu:sourceEnd_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.sourceDie Stringlänge.

AnmerkungenDie String-Index beginnt bei 0; wennbegin_posDas ist gleichend_posDie Funktion gibt eine leere String zurück.

Bis dann str.contains str.pos str.match

str.tonumber

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.

str.format

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 ab {0} de" und "ab } de" gültig, aber "ab {0} de, ab } de" und {" sind nicht gültig.

str.length

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 String

str.lower

Das 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

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

str.match

Wenn es passtregexWird ein normaler Ausdruck zurückgegeben,sourceDie neue Unterstring der String, die ansonsten zurückkehrt na.

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 sourceDie neue Unterstring der String, wenn sie mit einerregexEs ist eine normale Form, ansonsten ist es na.

Parameter

  • source(series string) Quelle der String
  • regex(series string) Regelmäßige Ausdrücke, die mit dieser String übereinstimmen.

AnmerkungenDie Funktion kehrt zurücksourceDie erste regelmäßige Ausdrucksformel, die in einer String erscheint.regexDie 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

str.pos

ZurücksourceErstmals in einer StringstrDie Position der String, sonst wird sie zurückgegeben na.

str.pos(source, str)

Rückgabe von Werten strString ist insourceDie Position in der String.

Parameter

  • source(series string) Quelle der String
  • str(series string) Unterstring, nach dem gesucht wird.

AnmerkungenDie Stringindex beginnt bei 0.

Bis dann str.contains str.match str.substring

str.replace

Das ist eine neue String, in der die n + 1 erschienen sind.targetDie Strings und die vorherigentargetDie Zeichenfolge wird durchreplacementDie String, in der N inoccurrenceN 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 String
  • target(series string) Ersetzt String
  • replacement(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

Str.replace_all

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 String
  • target(series string) Ersetzt String
  • replacement(Series string) Jedes Mal, wenn ein Zielstrang erscheint, wird er ersetzt.

str.split

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 String
  • separator(series string) Die String, die jede Unterstring trennt.

str.tostring

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

Rückgabe von Werten valueDie Stringform der Parameter wird dargestellt. WennvalueDie Parameter werden als String zurückgegeben. WennvalueFü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, #) wird 4 zurückgeben. Wenn Sie eine Null hinter der 0 anzeigen möchten, verwenden Sie 0 statt #. Zum Beispiel #. Bei format.mintick wird der Wert bis zu der nächstgelegenen Zahl, die ohne Restzahl mit syminfo.mintick getrennt werden kann; die zurückgegebene String ist mit einem Nullnachfolger versehen. Wenn der x-Argument eine String ist, wird der gleiche Stringwert zurückgegeben. Die Bool-Argumentart gibt eine "true" oder "false" Angabe zurück. Wenn x na ist, gibt die Funktion NaN zurück.

Farbe

color.new

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. simple, input oder series) beeinflusst die Farben, die in den Einstellungen der Skript-/Style--Labelseiten angezeigt werden. 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)

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 255
  • blue(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. simple, input oder series) beeinflusst die Farben, die in den Einstellungen der Skript-/Style--Labelseiten angezeigt werden. Weitere Informationen finden Sie in der Benutzerhandbuch.

Ausführungszeit

runtime.debug

Drucken Sie Variableninformationen auf dem Controller.

FMZ PINE hat eine spezielle Funktion.runtime.debug(value), nur eine Parameter.

runtime.log

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.

runtime.error

Bei Aufrufen kann dies zu Auslauffehlern führen und kann mit Folgen verbunden sein.messageDie Fehlermeldung wird in den Parametern angegeben.

runtime.error(message)

ParameterMessage (series string) Fehlermeldung.

Eingabe

Eingabe

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.closehlc3Und 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

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

input.string

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.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 der Titel angegeben ist, aber der Titel ist leer, wird der Name als leere String verwendet.
  • options(Liste von Konstanten: [...]) Liste der Optionen, aus denen 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.string函数的结果总是应该分配给一个变量,见上面的例子。

Bis dann input.bool input.int input.float input.timeframe input.source input.color input

input.bool

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

input.int

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.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 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,...].minvalmaxvalundstepParameter.
  • 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

input.float

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-InoptionsWenn 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,...].minvalmaxvalundstepParameter.
  • 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

input.color

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

input.price

Setzungen/Eingabe von Etiketten für Preise, die in das Skript hinzugefügt werden.confirm = trueAktivieren 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.inlineDie 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

input.timeframe

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.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 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

input.integer

Nicht mehr.

input.resolution

Nicht mehr.

Schnellen

ta.alma

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

ta.sma

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 lengthDie K-Linie kehrt zurück.sourceDie 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

ta.cog

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.dev

衡量系列与其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 lengthDie K-Linie kehrt zurück.sourceIch 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

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.

AnmerkungenWennbiasedFü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

ta.ema

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 sourceDer 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

ta.wma

Die Funktion wma wird zurückgegebenlengthDie K-LiniensourceDie 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 lengthDie K-Linie kehrt zurück.sourceDie 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

ta.swma

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

ta.hma

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-Streifen

Bis dann ta.ema ta.rma ta.wma ta.vwma ta.sma

ta.rma

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 sourceDas 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

ta.rsi

Der Relative Intensity Index.lengthK-LiniesourceDie 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

ta.tsi

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.

ta.roc

Die Funktion roc (Rate of Change) zeigtsourceDer aktuelle Wert undsourceVor ein paar TagenlengthUnterschiede zwischen den Werten. Die Berechnung erfolgt nach der folgenden Formel: 100 * change (src, length) / src (length).

ta.roc(source, length)

Rückgabe von Werten lengthDie K-Linie kehrt zurück.sourceDie 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).

ta.range

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

ta.macd

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) Schnellleitungsparameter
  • slowlen(simple int) Langsamer Längenparameter.
  • siglen(simple int) Signallänge Parameter.

Bis dann ta.sma ta.ema

ta.mode

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

ta.median

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

ta.linreg

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.sourceDer 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) Verschiebung

ta.bb

Ein 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 soll

Mehr

WeiweiweiWie 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.