Les ressources ont été chargées... Je charge...

FMZ PINE Script est un fichier

Auteur:L'inventeur de la quantification - un petit rêve, Créé: 2022-05-06 14:27:06, mis à jour: 2024-10-12 15:27:04

CeArray =array.newLes données sont fournies par les autorités compétentes de l'UE. méthode maintainQueue(array srcArray, valeur de flottation, bool takeSample = vrai) => si prendre échantillon srcArray.push (valeur) srcArray.shift ()) Résultats de recherche

méthode calcBB(array srcArray, float mult, bool calculer = vrai) => la moyenne de flottabilité de var = na Var float dev = na si le calcul signifie:= srcArray.avg() dév: = srcArray.stdev() * mult [moyenne, moyenne + dev, moyenne - dev]

bool newSample = bar_index % n == 0

[échantillonMean, highBand, lowBand] = sourceArray.maintainQueue ((sourceInput, newSample).calcBB ((multiplicateur, newSample)

graphique ((échantillonMean, Base, color.orange) graphique ((haute bande, supérieure, couleur.chaux) Plot ((lowBand, Lower,color.red)


可以看到使用关键字method声明的用户自定义方法:maintainQueue、calcBB的参数列表中第一个参数都是```array<float>```类型。表示该method是```array<float>```类型变量的方法,所以可以看到调用以下代码来计算布林指标。

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

Méthodes à recharger

Les méthodes définies par l'utilisateur peuvent superposer et recharger des méthodes et des méthodes définies par l'utilisateur existantes qui ont les mêmes identifiants. Cette fonctionnalité permet à l'utilisateur de définir plusieurs instances associées à des signatures de paramètres différents sous le même nom de méthode.

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

Le type de base de chaque variable est déterminégetType()Quel type de rechargement utiliser. Dans la plate-forme FMZ, les types de valeurs sont jugés comme des données flottantes (float) car le sous-ligne du script PINE est en Javascript.

Fonction intégrée

Les paramètres peuvent être passés lors de l'appel d'une fonction, une attribution de nom de paramètre peut être spécifiée, des variables peuvent être passées directement à la position du paramètre correspondant, et une utilisation mixte est également prise en charge. Par exemple:

plot(close, title="test plot")     // 直接传参数 close ;指定参数 title ,赋值字符串"test plot"

Une fois l'attribution du nom de paramètre spécifiée, les variables ne peuvent plus être transmises directement en tant que paramètres. Les paramètres transmis par la suite doivent être écrits sous la forme de l'attribution du nom de paramètre.

// plot(close, title="test", color.red)    // 虽然plot第三个参数是颜色值,但是这样写就会报错
plot(close, title="test", color=color.red) // 正确写法
plot(close, "test", color.red)             // 正确写法

le délai

Temps.en_secondes

Il sera transmis àtimeframeLa période de temps des paramètres est convertie en secondes.

timeframe.in_seconds(timeframe)

Exemples

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

Retourne la valeur timeframeLe nombre de secondes d'une ligne K est indiqué sous la forme int.

Paramètres

  • timeframe(simple string) Période de temps↑ optionnelle↑ valeur par défaut timeframe.period↑

Nom de l'auteurPourtimeframe>= 1 M fonction calculée en fonction du nombre de secondes sur 30.4167 (365/12) jours d'un mois.

À bientôt input.timeframe timeframe.period

le ticker

ticker.heikinashi

Créer un identifiant de code pour demander une valeur de ligne moyenne K.

ticker.heikinashi(symbol)

Exemples

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)

Retourne la valeur 股票代码的字符串值,可以提供给request.security函数。

Paramètres

  • symbol(simple string) Identifiant du code de la marchandise.

À bientôt syminfo.tickerid syminfo.ticker request.security

une demande

request.data

Nous avons besoin de données externes.

request.data(url, attribute)

Exemples

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

Retourne la valeurParamètresattributeLa série de données spécifiée.

Paramètres

  • url(simple string) L'url de la source de données demandée, le format de données répondant à la source de données doit satisfaire aux exigences (incluant au moins l'attribut time、data):{"data": [], "schema": ["time", "data"]}◦ Les formats de données suivants sont utilisés:

    {
        "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) Donne le nom de l'attribut et renvoie les données requises."$.spot_close_price", utilisation$.En tant que préfixe, le nom de l'attribut correspond à l'attribut dans le champ de données dans les données qui ont répondu à la source de données demandée.

Si une erreur est signalée, vérifiezrequest.dataSi la plage de temps de la requête est cohérente avec la plage de temps de réglage de la répétition, les données ne seront pas retournées si elles ne sont pas interrogées sur la séquence de temps de répétition.

Dans cet exemple, la requête de données-données est une requête SQL:

WITH latest_data AS (
    SELECT 
        klines.spot_1d.Time AS time,
        CONCAT('{\"spot_close_price\" : ', klines.spot_1d.Close, ', \"future_close_price\" : ', klines.future_1d.Close, '}') AS data
    FROM 
        klines.spot_1d
    JOIN 
        klines.future_1d
    ON 
        klines.spot_1d.Time = klines.future_1d.Time
    WHERE
        klines.spot_1d.Symbol = 'btc_usdt'
    AND 
        klines.future_1d.Symbol = 'btc_usdt.swap'
    AND 
        klines.spot_1d.Exchange = 'Binance'
    AND 
        klines.future_1d.Exchange = 'Binance'
    ORDER BY 
        klines.spot_1d.Time DESC
    LIMIT 100
)
SELECT * FROM latest_data
ORDER BY time ASC;

Vous pouvez le voir sur la plateforme FMZ.L'exploration des donnéesLes requêtes de page, créer des liens de données, comme dans les exempleshttps://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data

request.security

Une autre variété/résolution est requise.

request.security(symbol, timeframe, expression, gaps, lookahead, ignore_invalid_symbol, currency) 

Exemples

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)

Retourne la valeurSéries requises

Paramètres

  • symbol(Simple string) Le code de la marchandise.
  • timeframe(simple string) Période de temps. La chaîne vide sera interprétée comme la période de temps actuelle du graphique.
  • expression(series int/float/bool/color) peut être appelé à partir de la requête.security et retourner une expression.
  • gaps(barmerge_gaps) Politique de fusion des données demandées (exige que les données soient automatiquement fusionnées avec les données de la série principale OHLC). Values possibles: barmerge.gaps_on, barmerge.gaps_off,.. barmerge.gaps_on - les données demandées sont fusionnées avec des écarts possibles (exige une valeur na),.. barmerge.gaps_off - les données demandées sont continuellement fusionnées sans interruption, toutes les écarts étant remplies par la valeur existante la plus récente précédente.
  • lookahead(barmerge_lookahead) Politique de fusion des données demandées. Values possibles: barmerge.lookahead_on, barmerge.lookahead_off. À partir de la version 3, la valeur par défaut est barmerge.lookahead_off.
  • ignore_invalid_symbol(const bool) Un paramètre optionnel. Si le produit spécifié n'est pas trouvé, il détermine l'action de la fonction: si false, le script s'arrête et retourne à l'erreur lors de son exécution. Si true, la fonction retourne na et continue à exécuter.
  • currency(simple string) Convertir la valeur de la devise (par exemple OHLC) du produit en devise; puis calculer le taux d'expression de la devise en fonction de la valeur convertie; le taux de conversion utilisé est basé sur le taux de change quotidien de la journée précédente de la paire FX_IDC (par rapport à la ligne K à calculer); optionnel. La valeur par défaut est syminfo.currency. Values possibles: une chaîne de trois lettres avec un code de devise au format ISO 4217 (par exemple, la devise USD) ou currency.* Une constante dans l'espace de nommage, par exemple, currency.USD.

Nom de l'auteurLe code PineScript utilise cette fonctionnalité pour effectuer des calculs différents sur les historiques et les données en temps réel.Si vous souhaitez spécifier des paramètres supplémentaires pour les produits demandés, tels que les délais de transaction ou le type d'ajustement, vous pouvez utiliser les paramètres suivants:您可以使用ticker.newLa fonction () est la suivante: Impossible de transmettre l'erreur de point à cette fonction avec la variable ticker. Vous pouvez utiliser ticker.ticker.newUne forme d'expression en chaîne pour une variable ou un code de stock, par exemple: AAPL + MSFT * TSLA chaîne.Actuellement, un scénario peut contenir jusqu'à 40 appels request.security. Veuillez noter que l'utilisation de cette variable/fonction peut entraîner une redéfinition de l'indicateur. Les paramètres de résolution permettent de: 1S, 5S, 15S, 30S - intervalle de secondes (le cycle du graphique doit être inférieur ou égal au cycle de la requête) De 1 à 1440 minutes De 1D à 365D De 1 W à 52 W en quelques semaines De 1M à 12M en quelques mois

À bientôt syminfo.ticker syminfo.tickerid timeframe.period ta.correlation barmerge.lookahead_off barmerge.lookahead_on

str

str.contains

SisourceLes chaînes contiennentstrUne sous-stringue renvoie true, sinon false.

str.contains(source, str)

Exemples

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

Retourne la valeurSi c'est danssourceTrouver dans une chaînestrSi le message est vrai, il est faux.

Paramètres

  • source(série de chaînes)
  • str(series string) La sous-stringue à rechercher.

À bientôt str.pos str.match

str.endswith

SisourceLa chaîne de caractères eststrLa fin d'une sous-stringue spécifiée dans la base de données renvoie true, sinon false.

str.endswith(source, str)

Retourne la valeurSisourceLa chaîne de caractères eststrLa fin d'une sous-stringue spécifiée est true, sinon false.

Paramètres

  • source(série de chaînes)
  • str(series string) La sous-stringue à rechercher.

À bientôt str.startswith

str.startswith

SisourceLa chaîne de caractères eststrLe début d'une sous-stringue spécifiée dans la base de données retourne true, sinon false.

str.startswith(source, str)

Retourne la valeurSisourceLa chaîne de caractères eststrLe début d'une sous-stringue spécifiée est true, sinon false.

Paramètres

  • source(série de chaînes)
  • str(series string) La sous-stringue à rechercher.

À bientôt str.endswith

str.substring

Il y a une autre chose que je veux faire, c'est retourner une nouvelle chaîne.sourceUne sous-stringue d'une chaîne.begin_posLes caractères de l'index indiqué commencent et s'étendent jusqu'àsourceLe point de départ de la chaîne est end_pos - 1 .

str.substring(source, begin_pos)
str.substring(source, begin_pos, end_pos)

Exemples

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)

Retourne la valeurUne sous-stringue extraite de la chaîne source.

Paramètres

  • source(series string) Extraire la chaîne source de la sous-chaîne.
  • begin_pos(series int) est le point de départ d'une sous-chaîne extraite.
  • end_pos(series int) termination position. Elle est exclusive. (la chaîne extraite n'inclut pas les caractères de cette position). Optionnelle.sourceLa longueur de la chaîne.

Nom de l'auteurL'index de la chaîne commence à zéro.begin_posest égal àend_posLa fonction retourne une chaîne vide.

À bientôt str.contains str.pos str.match

str.tonumber

str.tonumber(string)

Retourne la valeurSi elle contient des chiffres valides, elle est le type de float de la chaîne, sinon elle est na.

Paramètres

  • string(series string) forme d'expression de la chaîne int ou float.

str.format

Convertissez les chaînes de format et les valeurs en chaînes de formatage. Les chaînes de formatage peuvent contenir un en-tête dans le texte et un en-tête dans les parenthèses {} pour chaque valeur à formater. Chaque en-tête comprend un indice qui remplacera ses paramètres nécessaires (à partir de 0), ainsi qu'un indicateur de formatage optionnel. L'index indique la position du paramètre dans la liste des paramètres str.format.

str.format(formatString, arg0, arg1, ...)

Exemples

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

Retourne la valeurUne chaîne de caractères formatée.

Paramètres

  • formatString(series string) Une chaîne de format.
  • arg0, arg1, ...(series int/float/bool/string/na/int[]/float[]/bool[]/string[]) est une valeur à formater.

Nom de l'auteurToutes les parenthèses dans le style non cité doivent être équilibrées. Par exemple, "ab {0} de" et "ab } de" sont des styles valides, mais "ab {0} de, ab } de" et "{" ne sont pas des styles valides.

str.length

Retourne l'entier correspondant au nombre de caractères dans la chaîne.

str.length(string)

Retourne la valeurLe nombre de caractères dans la chaîne source.

Paramètres

  • string(série de chaînes)

str.lower

Retourne une nouvelle chaîne où toutes les lettres sont converties en minuscules.

str.lower(source)

Retourne la valeurToutes les lettres ont été converties en nouvelles chaînes en minuscules.

Paramètres

  • source(series string) La chaîne à convertir.

À bientôt str.upper

str.upper

Retourne une nouvelle chaîne où toutes les lettres sont converties en majuscules.

str.upper(source)

Retourne la valeurToutes les lettres sont converties en nouvelles chaînes en majuscules.

Paramètres

  • source(series string) La chaîne à convertir.

À bientôt str.lower

str.match

Si elle correspondregexL'expression régulière renvoiesourceLa nouvelle sous-string de la chaîne, sinon elle retourne na.

str.match(source, regex) 

Exemples

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"

Retourne la valeur sourceLa nouvelle sous-string de la chaîne, si elle correspond à uneregexL'expression normale, sinon elle est na.

Paramètres

  • source(série de chaînes)
  • regex(series string) l'expression régulière correspondant à cette chaîne.

Nom de l'auteurRetour de la fonctionsourceL'expression régulière qui apparaît pour la première fois dans une chaîne.regexLe symbole contre-diagonale \\ dans une chaîne nécessite une inversion avec une contre-diagonale supplémentaire, par exemple, pour représenter l'expression régulière \\\\\\\\\.

À bientôt str.contains str.substring

str.pos

RetoursourceIl apparaît pour la première fois dans la chaînestrLa position de la chaîne, sinon elle retourne na na na.

str.pos(source, str)

Retourne la valeur strLa chaîne estsourceLa position dans la chaîne.

Paramètres

  • source(série de chaînes)
  • str(series string) La sous-stringue à rechercher.

Nom de l'auteurL'index de la chaîne commence à 0.

À bientôt str.contains str.match str.substring

str.replace

Retourne une nouvelle chaîne dans laquelle N + 1 est apparutargetLes chaînes et les précédentestargetLa chaîne est remplacée parreplacementUne chaîne où N estoccurrenceN est l'index de correspondance de la chaîne cible à remplacer dans la chaîne source.

str.replace(source, target, replacement, occurrence)

Exemples

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)

Retourne la valeurLa chaîne est traitée.

Paramètres

  • source(série de chaînes)
  • target(series string) est remplacé
  • replacement(series string) la chaîne à insérer au lieu de la chaîne cible.
  • occurrence(series int) L'index de correspondance de la chaîne cible à remplacer apparaît dans la chaîne source. Le premier index de correspondance commence à 0. Optionnel. La valeur par défaut est 0.

À bientôt str.replace_all str.match

Remplacer tout

En remplacement de la chaîne, vous remplacez la chaîne cible à chaque fois qu'elle apparaît dans la chaîne source.

str.replace_all(source, target, replacement)

Retourne la valeurLa chaîne est traitée.

Paramètres

  • source(série de chaînes)
  • target(series string) est remplacé
  • replacement(series string) Chaque fois que la chaîne cible apparaît, elle remplace la chaîne

str.split

Divisez une chaîne en une série de sous-chaînes et retournez son ID d'array.

str.split(string, separator)

Retourne la valeurL'ID de l'array de chaînes.

Paramètres

  • string(série de chaînes)
  • separator(series string) la chaîne qui sépare chaque sous-chaîne.

str.tostring

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

Retourne la valeur valueLes paramètres sont représentés par des chaînes de caractères. SivalueLes paramètres sont des chaînes et sont retournés comme ils étaient précédemment. QuandvaluePour na, la fonction renvoie la chaîne NaN.

Paramètres

  • value(series int/float/bool/string/int[]/float[]/bool[]/string[]) dont l'élément est converti en valeur de la chaîne ou en ID d'arithmétique.
  • format(chaîne de série) Chaîne de format. Accepte ces constantes de format.* format.mintick, format.percent, format.volume. Facultatif. La valeur par défaut est #.##########.

Nom de l'auteurLe format des valeurs à virgule flottante les place également dans ces valeurs si nécessaire, par exemple str.tostring ((3.99, #) renvoie 4. Pour afficher un zéro après le zéro, utilisez le zéro de zéro au lieu du zéro de zéro. Par exemple, zéro de zéro. Lorsque format.mintick est utilisé, cette valeur est chiffrée jusqu'au chiffre le plus proche qui peut être divisé en syminfo.mintick sans résidu. Si l'argument x est une chaîne, il renvoie la même valeur de chaîne. Les paramètres de type Bool renvoient une variable true ou false. Lorsque x est na, la fonction renvoie NaN.

couleur

color.new

La couleur de fonctionnalité spécifie la transparence appliquée à une couleur donnée.

color.new(color, transp)

Exemples

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

Retourne la valeurLes couleurs ont une certaine transparence.

Paramètres

  • color(couleur de série)
  • transp(series int/float) Les valeurs disponibles vont de 0 (invisible) à 100 (invisible)

Nom de l'auteurL'utilisation d'un très grand nombre de paramètres (par exemple, une barre simple, une barre d'entrée ou une barre de séries) affecte la couleur affichée dans les paramètres de la barre de scripts / pages de balises de style.

color.rgb

Les modèles de couleurs RGB sont utilisés pour créer de nouvelles couleurs transparentes.

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

Exemples

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

Retourne la valeurLes couleurs ont une certaine transparence.

Paramètres

  • red(series int/float) Tone rouge. Les valeurs possibles sont de 0 à 255
  • green(series int/float) Vert. Les valeurs possibles sont de 0 à 255.
  • blue(series int/float) Nuance bleue. Les valeurs possibles sont de 0 à 255
  • transp(series int/float) Optionnel. La couleur est transparente. Les valeurs possibles vont de 0 à 100. La valeur par défaut est 0.

Nom de l'auteurL'utilisation d'un très grand nombre de paramètres (par exemple, une barre simple, une barre d'entrée ou une barre de séries) affecte la couleur affichée dans les paramètres de la barre de scripts / pages de balises de style.

temps d'exécution

runtime.debug

Imprimez les informations sur les variables sur la console.

Le langage FMZ PINE est doté d'une fonction spéciale.runtime.debug(value)Il n'y a qu'un seul paramètre.

runtime.log

Le contenu est exporté dans le journal.

Le langage FMZ PINE est doté d'une fonction spéciale.runtime.log(1, 2, 3, close, high, ...)Les paramètres peuvent être transférés.

runtime.error

Cela peut entraîner des erreurs d'exécution et entraîner des problèmes de sécurité.messageLe message d'erreur indiqué dans les paramètres.

runtime.error(message)

Paramètresmessage (series string) message d'erreur.

l'entrée

l'entrée

Ajouter des entrées à la page des balises d'entrée des paramètres du script, ce qui vous permet de donner des options de configuration aux utilisateurs du script. Cette fonction détecte automatiquement le type de paramètres utilisés pour le plugin de défval et utilise le plug-in d'entrée correspondant.

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

Exemples

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)

Retourne la valeurValues de variables à entrer

Paramètres

  • defval(const int/float/bool/string/color or source-type built-ins) Définit la valeur par défaut de la variable d'entrée suggérée dans la page de paramètres de la barre de saisie / balise de saisie du script, à partir de laquelle les utilisateurs du script peuvent la modifier.closehlc3Je ne sais pas.
  • title(const string) Titre d'entrée. Si ce n'est pas le cas, le nom de la variable est utilisé comme titre d'entrée. Si le titre est spécifié, mais le titre est vide, le nom est une chaîne vide.
  • tooltip(const string) Cette chaîne est affichée à l'utilisateur pendant que la souris est suspendue sur l'icône de l'indicateur d'outils.
  • inline(const string) Combine tous les appels d'entrée utilisant le même paramètre dans une ligne.
  • group(const string) Utilisez la même chaîne de paramètres pour créer un en-tête au-dessus de toutes les entrées. Cette chaîne est également utilisée comme texte du en-tête.

Nom de l'auteurLa valeur de retour d'une fonction d'entrée doit toujours être attribuée à une variable. Voir l'exemple ci-dessus.

À bientôt input.bool input.color input.int input.float input.string input.timeframe input.source

input.source

Ajouter des entrées à la page des étiquettes d'entrée des paramètres du script, ce qui vous permet de donner des options de configuration aux utilisateurs du script. Cette fonctionnalité ajoute un menu déroulant qui permet aux utilisateurs de choisir la source de calcul, par exemple close, hl2, etc. Si le script ne contient qu'un seul appel d'input.source (), les utilisateurs peuvent également choisir l'exécution d'un autre indicateur du graphique comme source.

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

Exemples

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

Retourne la valeurValues de variables à entrer

Paramètres

  • defval(series int/float) Définit la valeur par défaut de la variable d'entrée suggérée dans la page des paramètres de la série / entrées float, à partir de laquelle les utilisateurs peuvent la modifier.
  • title(const string) Titre d'entrée. Si ce n'est pas le cas, le nom de la variable est utilisé comme titre d'entrée. Si le titre est spécifié, mais le titre est vide, le nom est une chaîne vide.
  • tooltip(const string) Cette chaîne est affichée à l'utilisateur pendant que la souris est suspendue sur l'icône de l'indicateur d'outils.
  • inline(const string) Combine tous les appels d'entrée utilisant le même paramètre dans une ligne.
  • group(const string) Utilisez la même chaîne de paramètres pour créer un en-tête au-dessus de toutes les entrées. Cette chaîne est également utilisée comme texte du en-tête.

Nom de l'auteur input.source函数的结果总是应该分配给一个变量,见上面的例子。

À bientôt input.bool input.int input.float input.string input.timeframe input.color input

input.string

Ajouter des entrées à la tablette d'options d'entrée des paramètres du script, qui vous permet de fournir des options de configuration aux utilisateurs du script. Cette fonction ajoute des champs d'entrée de chaîne à l'entrée du script.

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

Exemples

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

Retourne la valeurValues de variables à entrer

Paramètres

  • defval(const string) Définit la valeur par défaut de la variable d'entrée suggérée dans les paramètres / entrées de la chaîne de caractères du script, à partir de laquelle les utilisateurs peuvent la modifier.optionsLorsque les paramètres sont utilisés ensemble, cette valeur doit être l'une d'entre eux.
  • title(const string) Titre d'entrée. Si ce n'est pas le cas, le nom de la variable est utilisé comme titre d'entrée. Si le titre est spécifié, mais le titre est vide, le nom est une chaîne vide.
  • options(Liste de constantes: [...]) Liste des options à choisir.
  • tooltip(const string) Cette chaîne est affichée à l'utilisateur pendant que la souris est suspendue sur l'icône de l'indicateur d'outils.
  • inline(const string) Combine tous les appels d'entrée utilisant le même paramètre dans une ligne.
  • group(const string) Utilisez la même chaîne de paramètres pour créer un en-tête au-dessus de toutes les entrées. Cette chaîne est également utilisée comme texte du en-tête.
  • confirm(const bool) Si true, il est demandé à l'utilisateur de confirmer la valeur d'entrée avant d'ajouter le paramètre au graphique.

Nom de l'auteur input.string函数的结果总是应该分配给一个变量,见上面的例子。

À bientôt input.bool input.int input.float input.timeframe input.source input.color input

input.bool

Ajouter des entrées à la page des balises d'entrée des paramètres du script, ce qui vous permet de fournir des options de configuration aux utilisateurs du script. Cette fonction ajoute une balise de retouche à l'entrée du script.

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

Exemples

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

Retourne la valeurValues de variables à entrer

Paramètres

  • defval(const bool) Détermine la valeur par défaut de la variable d'entrée suggérée dans les paramètres / entrées de la barre d'outils du script sur la page des balises de la barre d'outils, à partir de laquelle les utilisateurs peuvent la modifier.
  • title(const string) Titre d'entrée. Si ce n'est pas le cas, le nom de la variable est utilisé comme titre d'entrée. Si le titre est spécifié, mais le titre est vide, le nom est une chaîne vide.
  • tooltip(const string) Cette chaîne est affichée à l'utilisateur pendant que la souris est suspendue sur l'icône de l'indicateur d'outils.
  • inline(const string) Combine tous les appels d'entrée utilisant le même paramètre dans une ligne.
  • group(const string) Utilisez la même chaîne de paramètres pour créer un en-tête au-dessus de toutes les entrées. Cette chaîne est également utilisée comme texte du en-tête.
  • confirm(const bool) Si true, il est demandé à l'utilisateur de confirmer la valeur d'entrée avant d'ajouter le paramètre au graphique.

Nom de l'auteur input.bool函数的结果总是应该分配给一个变量,见上面的例子。

À bientôt input.int input.float input.string input.timeframe input.source input.color input

input.int

Ajouter des entrées à la page des étiquettes d'entrée des paramètres du script, ce qui vous permet de donner des options de configuration aux utilisateurs du script. Cette fonction ajoute des champs d'entrée entiers aux entrées du script.

input.int(defval, title, minval, maxval, step, tooltip, inline, group, confirm) 
input.int(defval, title, options, tooltip, inline, group, confirm)

Exemples

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

Retourne la valeurValues de variables à entrer

Paramètres

  • defval(const int) Définit la valeur par défaut d'une variable d'entrée suggérée sur la page de paramètres/tags de const du script, à partir de laquelle les utilisateurs du script peuvent la modifier.optionsLorsque les paramètres sont utilisés ensemble, cette valeur doit être l'une d'entre eux.
  • title(const string) Titre d'entrée. Si ce n'est pas le cas, le nom de la variable est utilisé comme titre d'entrée. Si le titre est spécifié, mais le titre est vide, le nom est une chaîne vide.
  • minval(const int) est la valeur minimale possible de la variable d'entrée.
  • maxval(const int) La valeur la plus élevée possible de la variable d'entrée.
  • step(const int) est utilisé pour augmenter/réduire la longueur de pas de l'entrée. Optionnelle. La valeur par défaut est 1.
  • options(tuple of const int values: [val1, val2,...]) Une liste d'options sélectionnées dans le menu déroulant, séparées par des virgules et regroupées entre parenthèses: [val1, val2,...].minvalmaxvaletstepParamètres.
  • tooltip(const string) Cette chaîne est affichée à l'utilisateur pendant que la souris est suspendue sur l'icône de l'indicateur d'outils.
  • inline(const string) Combine tous les appels d'entrée utilisant le même paramètre dans une ligne.
  • group(const string) Utilisez la même chaîne de paramètres pour créer un en-tête au-dessus de toutes les entrées. Cette chaîne est également utilisée comme texte du en-tête.
  • confirm(const bool) Si true, il est demandé à l'utilisateur de confirmer la valeur d'entrée avant d'ajouter le paramètre au graphique.

Nom de l'auteur input.int函数的结果总是应该分配给一个变量,见上面的例子。

À bientôt input.bool input.float input.string input.timeframe input.source input.color input

input.float

Ajouter des entrées à la page des étiquettes d'entrée des paramètres du script, qui vous permet de donner des options de configuration aux utilisateurs du script. Cette fonction ajoute des champs d'entrée flottants aux entrées du script.

input.float(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.float(defval, title, options, tooltip, inline, group, confirm)

Exemples

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)

Retourne la valeurValues de variables à entrer

Paramètres

  • defval(const int/float) Définit la valeur par défaut de la variable d'entrée suggérée dans la page de paramètres de la barre d'outils / entrées de la barre d'outils, à partir de laquelle les utilisateurs du script peuvent la modifier.optionsLorsque les paramètres sont utilisés ensemble, cette valeur doit être l'une d'entre eux.
  • title(const string) Titre d'entrée. Si ce n'est pas le cas, le nom de la variable est utilisé comme titre d'entrée. Si le titre est spécifié, mais le titre est vide, le nom est une chaîne vide.
  • minval(const int/float) La valeur la plus faible possible de la variable d'entrée. Optionnel.
  • maxval(const int/float) La valeur la plus élevée possible de la variable d'entrée. Optionnel.
  • step(const int/float) est utilisé pour augmenter/réduire la longueur de pas de l'entrée. Optionnelle. La valeur par défaut est 1..
  • options(tuple of const int/float values: [val1, val2,...]) Liste d'options sélectionnées dans le menu déroulant, séparées par des virgules et regroupées entre parenthèses: [val1, val2,...];; ne peut pas être utilisée avec ce paramètreminvalmaxvaletstepParamètres.
  • tooltip(const string) Cette chaîne est affichée à l'utilisateur pendant que la souris est suspendue sur l'icône de l'indicateur d'outils.
  • inline(const string) Combine tous les appels d'entrée utilisant le même paramètre dans une ligne.
  • group(const string) Utilisez la même chaîne de paramètres pour créer un en-tête au-dessus de toutes les entrées. Cette chaîne est également utilisée comme texte du en-tête.
  • confirm(const bool) Si true, il est demandé à l'utilisateur de confirmer la valeur d'entrée avant d'ajouter le paramètre au graphique.

Nom de l'auteur input.float函数的结果总是应该分配给一个变量,见上面的例子。

À bientôt input.bool input.int input.string input.timeframe input.source input.color input

input.color

Ajouter des entrées à la page des étiquettes d'entrée des paramètres du script, ce qui vous permet de fournir des options de configuration aux utilisateurs du script. Cette fonction ajoute un sélecteur de couleurs qui permet aux utilisateurs de choisir la couleur et la transparence à partir d'une palette de couleurs ou d'une valeur de 16 chiffres.

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

Exemples

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

Retourne la valeurValues de variables à entrer

Paramètres

  • defval(const color) Définit la valeur par défaut de la variable d'entrée suggérée dans les paramètres de la barre d'outils du script / page de balises d'entrée, à partir de laquelle les utilisateurs peuvent la modifier.
  • title(const string) Titre d'entrée. Si ce n'est pas le cas, le nom de la variable est utilisé comme titre d'entrée. Si le titre est spécifié, mais le titre est vide, le nom est une chaîne vide.
  • tooltip(const string) Cette chaîne est affichée à l'utilisateur pendant que la souris est suspendue sur l'icône de l'indicateur d'outils.
  • inline(const string) Combine tous les appels d'entrée utilisant le même paramètre dans une ligne.
  • group(const string) Utilisez la même chaîne de paramètres pour créer un en-tête au-dessus de toutes les entrées. Cette chaîne est également utilisée comme texte du en-tête.
  • confirm(const bool) Si true, il est demandé à l'utilisateur de confirmer la valeur d'entrée avant d'ajouter le paramètre au graphique.

Nom de l'auteur input.color函数的结果总是应该分配给一个变量,见上面的例子。

À bientôt input.bool input.int input.float input.string input.timeframe input.source input

input.price

Utilisez les paramètres de la barre d'outils/pages de balises de saisie pour ajouter des entrées de prix aux scripts.confirm = truePour activer le mode d'entrée interactive, cliquez sur le graphique pour sélectionner le prix.

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

Exemples

price1 = input.price(title="Date", defval=42)
plot(price1)

price2 = input.price(54, title="Date")
plot(price2)

Retourne la valeurValues de variables à entrer

Paramètres

  • defval(const int/float) Détermine la valeur par défaut de la variable d'entrée suggérée dans la page des paramètres / balises de float du script, à partir de laquelle l'utilisateur peut la modifier.
  • title(const string) Titre d'entrée. Si ce n'est pas le cas, le nom de la variable est utilisé comme titre d'entrée. Si le titre est spécifié, mais le titre est vide, le nom est une chaîne vide.
  • tooltip(const string) Cette chaîne est affichée à l'utilisateur pendant que la souris est suspendue sur l'icône de l'indicateur d'outils.
  • inline(const string) Combine tous les appels d'entrée utilisant le même paramètre dans une ligne.
  • group(const string) Utilisez la même chaîne de paramètres pour créer un en-tête au-dessus de toutes les entrées. Cette chaîne est également utilisée comme texte du en-tête.
  • confirm(const bool) Si c'est vrai, activez le mode d'entrée interactive et faites la sélection en cliquant sur le graphique lorsque vous ajoutez un indicateur au graphique, ou faites la sélection en sélectionnant un indicateur puis en déplaçant le choix. Optionnel. La valeur par défaut est false.

Nom de l'auteurEn mode interactif, si deux fonctions sont appelées sur le mêmeinlineLes paramètres utilisant les mêmes paramètres peuvent être utilisés en combinaison avec l'entrée de temps et d'entrée de prix.

À bientôt input.bool input.int input.float input.string input.resolution input.source input.color input

input.timeframe

Ajouter une entrée à la page d'étiquette d'entrée des paramètres du script, ce qui vous permet d'offrir des options de configuration aux utilisateurs du script. Cette fonction ajoute une liste déroulante qui permet aux utilisateurs de sélectionner des périodes spécifiques via le sélecteur de périodes de temps et de les retourner en tant que chaîne.

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

Exemples

i_res = input.timeframe('D', "Resolution", options=['D', 'W', 'M'])
s = request.security(syminfo.tickerid, i_res, close)
plot(s)

Retourne la valeurValues de variables à entrer

Paramètres

  • defval(const string) Définit la valeur par défaut de la variable d'entrée suggérée dans les paramètres / entrées de la chaîne de caractères du script, à partir de laquelle les utilisateurs peuvent la modifier.optionsLorsque les paramètres sont utilisés ensemble, cette valeur doit être l'une d'entre eux.
  • title(const string) Titre d'entrée. Si ce n'est pas le cas, le nom de la variable est utilisé comme titre d'entrée. Si le titre est spécifié, mais le titre est vide, le nom est une chaîne vide.
  • options(tuple of const string values: [val1, val2,...]) Liste des options qui peuvent être sélectionnées.
  • tooltip(const string) Cette chaîne est affichée à l'utilisateur pendant que la souris est suspendue sur l'icône de l'indicateur d'outils.
  • inline(const string) Combine tous les appels d'entrée utilisant le même paramètre dans une ligne.
  • group(const string) Utilisez la même chaîne de paramètres pour créer un en-tête au-dessus de toutes les entrées. Cette chaîne est également utilisée comme texte du en-tête.
  • confirm(const bool) Si true, il est demandé à l'utilisateur de confirmer la valeur d'entrée avant d'ajouter le paramètre au graphique.

Nom de l'auteur input.timeframe函数的结果总是应该分配给一个变量,见上面的例子。

À bientôt input.bool input.int input.float input.string input.source input.color input

input.integer

Pour le moment

input.resolution

Pour le moment

à

ta.alma

Arnaud Legoux moyenne mobile. Elle utilise la distribution de Gauss comme poids de la moyenne mobile.

ta.alma(series, length, offset, sigma) 
ta.alma(series, length, offset, sigma, floor) 

Exemples

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

Retourne la valeurArnaud Legoux, moyenne mobile

Paramètres

  • series(series int/float) valeur de la série à exécuter.
  • length(series int) Nombre de lignes K (longueur).
  • offset(simple int/float) contrôle le compromis entre la fluidité (approximativement 1) et la réactivité (approximativement 0).
  • sigma(simple int/float) modifie la fluidité d'ALMA.
  • floor(simple bool) Options possibles. Avant de calculer ALMA, spécifiez si le calcul de la déviation est inférieur à la limite. La valeur par défaut est false.

À bientôt ta.sma ta.ema ta.rma ta.wma ta.vwma ta.swma

ta.sma

La fonction sma renvoie la moyenne mobile, c'est-à-dire la dernière valeur y de x, divisée par y.

ta.sma(source, length) 

Exemples

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

Retourne la valeur lengthLa ligne K est retournéesourceLa moyenne mobile simple est la moyenne mobile simple de la moyenne mobile simple.

Paramètres

  • source(series int/float) valeur de la série à exécuter.
  • length(series int) Nombre de lignes K (longueur).

À bientôt ta.ema ta.rma ta.wma ta.vwma ta.swma ta.alma

ta.cog

Le cog (points de gravité) est un indicateur basé sur la statistique et le ratio or de Fibonacci.

ta.cog(source, length) 

Exemples

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

Retourne la valeurAttention

Paramètres

  • source(series int/float) valeur de la série à exécuter.
  • length(series int) Nombre de lignes K (longueur).

À bientôt ta.stoch

ta.dev

衡量系列与其ta.sma之间的差异

ta.dev(source, length) 

Exemples

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

Retourne la valeur lengthLa ligne K est retournéesourceIl y a aussi des dérivés.

Paramètres

  • source(series int/float) valeur de la série à exécuter.
  • length(series int) Nombre de lignes K (longueur).

À bientôt ta.variance ta.stdev

ta.stdev

ta.stdev(source, length, biased) 

Exemples

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

Retourne la valeurLe décalage

Paramètres

  • source(series int/float) valeur de la série à exécuter.
  • length(series int) Nombre de lignes K (longueur).
  • biased(series bool) détermine quelle estimation doit être utilisée. Optionnelle. La valeur par défaut est true.

Nom de l'auteurSibiasedSi true, la fonction effectue le calcul en utilisant une estimation biaisée de l'ensemble, si false - une estimation non biaisée de l'échantillon.

À bientôt ta.dev ta.variance

ta.ema

La fonction ema renvoie une moyenne mobile pondérée par l'indice. Dans ema, le facteur de pondération diminue par l'indice. Elle est calculée par la formule suivante: EMA = alpha * source + (1 - alpha) * EMA[1], où alpha = 2 / (longueur + 1) ;

ta.ema(source, length) 

Exemples

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

Retourne la valeur sourceL'indice de la moyenne mobile, alpha = 2 / (longueur + 1) ≠ 1

Paramètres

  • source(series int/float) valeur de la série à exécuter.
  • length(simple int) Nombre de lignes K (longueur).

Nom de l'auteurVeuillez noter que l'utilisation de cette variable/fonction peut entraîner une redrawing des indicateurs.

À bientôt ta.sma ta.rma ta.wma ta.vwma ta.swma ta.alma

ta.wma

Retour de la fonction wmalengthLigne KsourceLe facteur de pondération est décroissant en degrés arithmétiques.

ta.wma(source, length) 

Exemples

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

Retourne la valeur lengthLa ligne K est retournéesourceLa moyenne mobile pondérée.

Paramètres

  • source(series int/float) valeur de la série à exécuter.
  • length(series int) Nombre de lignes K (longueur).

À bientôt ta.sma ta.ema ta.rma ta.vwma ta.swma ta.alma

ta.swma

L'équilibre de l'équation est calculé en fonction de la longueur de l'équation.

ta.swma(source)

Exemples

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

Retourne la valeurLes moyennes mobiles symétriques pondérées.

Paramètres

  • source(series int/float) La série de sources.

À bientôt ta.sma ta.ema ta.rma ta.wma ta.vwma ta.alma

ta.hma

La fonction hma renvoie la moyenne mobile HMA du corps du navire.

ta.hma(source, length)

Exemples

src = input(defval=close, title="Source")
length = input(defval=9, title="Length")
hmaBuildIn = ta.hma(src, length)
plot(hmaBuildIn, title="Hull MA", color=#674EA7)

Retourne la valeurRetourner la longueur de l'hélice du pilier de l'hélice de la source de l'hélice de la coque Hull Moving Average.

Paramètres

  • source(series int/float) valeur de la série à exécuter.
  • length(simple int) Nombre de lignes K

À bientôt ta.ema ta.rma ta.wma ta.vwma ta.sma

ta.rma

La moyenne mobile utilisée dans le RSI. C'est une moyenne mobile pondérée par indice, avec alpha plus pondération = 1/longueur.

ta.rma(source, length)

Exemples

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

Retourne la valeur sourceL'indice de la moyenne mobile, alpha = 1 /length

Paramètres

  • source(series int/float) valeur de la série à exécuter.
  • length(simple int) Nombre de lignes K (longueur).

À bientôt ta.sma ta.ema ta.wma ta.vwma ta.swma ta.alma ta.rsi

ta.rsi

L'indice d'intensité relative.lengthSur la ligne KsourceLes changements vers le haut et vers le basta.rma()Je suis un peu dégoûté.

ta.rsi(source, length)

Exemples

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

Retourne la valeurL'indicateur RSI est relativement fort et faible.

Paramètres

  • source(series int/float) valeur de la série à exécuter.
  • length(simple int) Nombre de lignes K (longueur).

À bientôt ta.rma

ta.tsi

L'indice de la vraie force et de la faiblesse. Il utilise des moyennes mobiles des mouvements potentiels des instruments financiers.

ta.tsi(source, short_length, long_length)

Retourne la valeurL'indice réel de force et de faiblesse. Les valeurs dans la plage [-1,1].

Paramètres

  • source(series int/float) La série de sources.
  • short_length(simple int) courte longueur.
  • long_length(simple int) Longueur de la ligne longue.

ta.roc

La fonction roc ((taux de variation) est indiquéesourcela valeur actuelle etsourceIl y a quelques jourslengthLa différence entre les valeurs. Elle est calculée par la formule suivante: 100 * change (src, length) / src (length) ⋅

ta.roc(source, length)

Retourne la valeur lengthLa ligne K est retournéesourceLe taux de variation de la population est très élevé.

Paramètres

  • source(series int/float) valeur de la série à exécuter.
  • length(series int) Nombre de lignes K (longueur).

ta.range

Retourne la différence entre la valeur minimale et la valeur maximale de la séquence.

ta.range(source, length)

Retourne la valeurDifférence entre la valeur minimale et la valeur maximale de la séquence.

Paramètres

  • source(series int/float) valeur de la série à exécuter.
  • length(series int) Nombre de lignes K (longueur).

ta.macd

Le MACD (la ligne moyenne asymétrique de fluctuation) doit révéler la force, la direction, la dynamique et la durée des changements de la tendance des prix des actions.

ta.macd(source, fastlen, slowlen, siglen) 

Exemples

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

Si vous n'avez besoin que d'une seule valeur, utilisez un symbole de substitution comme celui-ci:

Exemples

[_, signalLine, _] = ta.macd(close, 12, 26, 9)
plot(signalLine, color=color.orange)

Retourne la valeurLes trois composants de la série MACD sont les lignes MACD, les lignes de signal et les lignes de diagramme rectangulaires.

Paramètres

  • source(series int/float) valeur de la série à exécuter.
  • fastlen(simple int) Paramètres de ligne rapide
  • slowlen(simple int) Paramètres de longueur lente.
  • siglen(simple int) Paramètres de longueur du signal.

À bientôt ta.sma ta.ema

ta.mode

Retourne le modèle de la séquence. Retourne la valeur minimale si plusieurs valeurs ont la même fréquence.

ta.mode(source, length)

Retourne la valeurLe modèle de la séquence.

Paramètres

  • source(series int/float) valeur de la série à exécuter.
  • length(series int) Nombre de lignes K (longueur).

ta.median

Retourne le nombre moyen de la séquence.

ta.median(source, length) 

Retourne la valeurLe nombre moyen de la séquence.

Paramètres

  • source(series int/float) valeur de la série à exécuter.
  • length(series int) Nombre de lignes K (longueur).

ta.linreg

Une courbe de régression linéaire. Une ligne qui correspond le mieux à un prix spécifié dans un intervalle de temps défini par l'utilisateur. Elle est calculée en utilisant le plus petit double.sourceLa valeur de la plus petite multiplication de deux fois de la série.

ta.linreg(source, length, offset) 

Retourne la valeurLa courbe de retour linéaire

Paramètres

  • source(series int/float) La série de sources.
  • length(série int)
  • offset(simple int) décalage

ta.bb

Le Braille est un outil d'analyse technique défini par un ensemble de lignes séparées par deux écarts standards (positifs et négatifs) par rapport à la simple moyenne mobile (SMA) du prix d'un titre, mais qui peuvent être ajustées en fonction des préférences des utilisateurs.

ta.bb(series, length, mult) 

Exemples

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

Retourne la valeurJe ne suis pas d'accord avec toi.

Paramètres

  • series(series int/float) Série à exécuter

Plus de

- Je suis désolé.Comment faire fonctionner plusieurs transactions en même temps?

Des nuages légersPourriez-vous m'expliquer si pine peut effectuer plusieurs transactions, comme JS?

Je vous en prie.Merci pour les détails.

l'artisteBonjour! Comment ce script pine utilise-t-il le disque de simulation d'okex sur la plateforme?

l'artisteC'est comme si les stratégies de tradingview étaient directement copiées sur la plateforme de l'inventeur pour être utilisées!

L'inventeur de la quantification - un petit rêveLe langage PINE n'utilise que des stratégies mono-variées, les stratégies multivariées sont préférables ou sont conçues en python, javascript, c++.

L'inventeur de la quantification - un petit rêveOh, oui, OKX est un peu spécial, leur environnement d'analogie et leur environnement de disque réel ont la même adresse, mais ils font une différence ailleurs.

Des nuages légersJe ne peux pas utiliser l'analogue okx.

L'inventeur de la quantification - un petit rêveCe problème d'architecture multiforme n'est pas résolu, car chaque échange dispose d'une interface différente et de limites de fréquence différentes, ce qui pose de nombreux problèmes.

L'inventeur de la quantification - un petit rêveBien, merci à Cloud pour les suggestions, et partagez-les ici.

Des nuages légersIl est préférable d'utiliser le JS pour une meilleure adaptation aux différents modes de transactions.

Les chasseurs de tendanceLe prix d'achat est le même pour chaque variété.

L'inventeur de la quantification - un petit rêveJe suis désolée.

Des nuages légersBien, merci beaucoup.

L'inventeur de la quantification - un petit rêveBonjour, la stratégie linguistique PINE ne fonctionne que pour une seule variété pour l'instant.

L'inventeur de la quantification - un petit rêveMerci pour votre soutien. La documentation continuera d'être améliorée.

L'inventeur de la quantification - un petit rêveJe ne sais pas si c'est vrai.

L'inventeur de la quantification - un petit rêveLa bibliothèque de modèles PINE, dont les paramètres permettent de définir l'adresse de base de l'échange de commutation.