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

Instructions de l'API FMZ

Auteur:Nul, Créé: 2020-04-20 10:19:00, Mis à jour: 2023-04-12 14:44:56

// true    

}


[http://underscorejs.org/](http://underscorejs.org/)
```js
function main() {
    var sum = _.reduce([1, 2, 3], function(memo, num){return memo + num}, 0)
    Log(sum)
}
  • C++bibliothèquehttps://nlohmann.github.io/json/
    void main() {
        json table = R"({"type": "table", "title": "Position Information", "cols": ["Column1", "Column2"], "rows": [["abc", "def"], ["ABC", "support color #ff0000"]]})"_json;
        LogStatus("`" + table.dump() + "`");
        LogStatus("Fist line message\n`" + table.dump() + "`\nThird line message");
        json arr = R"([])"_json;
        arr.push_back(table);
        arr.push_back(table);
        LogStatus("`" + arr.dump() + "`");
        
        table = R"({
            "type" : "table", 
            "title" : "Position Operation", 
            "cols" : ["Column1", "Column2", "Action"], 
            "rows" : [
                ["abc", "def", {"type": "button", "cmd": "coverAll", "name": "close position"}]
            ] 
        })"_json;
        LogStatus("`" + table.dump() + "`", "\n`" + R"({"type": "button", "cmd": "coverAll", "name": "close position"})"_json.dump() + "`");
    }
    

Indicateurs de fonction dans la bibliothèque Talib

Parmi les paramètres des fonctions suivantes,Records[Close]représente le prix de clôture dans les données de ligne k entrantes,Array()représente un tableau, etArray(outInteger)représente le retour d'un tableau de données entières.

Exemple de code d'appelCCIindicateur:

function main() {
    var records = exchange.GetRecords()
    var cci = talib.CCI(records, 14)
    Log(cci)
}
import talib
def main():
    records = exchange.GetRecords()
    # the parameter "14" can be default 
    cci = talib.CCI(records.High, records.Low, records.Close, 14)   
    Log(cci)
void main() {
    auto records = exchange.GetRecords();
    auto cci = talib.CCI(records, 14);
    Log(cci);
}
  • Pattern Recognition:

    Indicateur Définition
    Le CDL2CROWS Deux corbeaux
    CDL2CROWS ((Records[Open,High,Low,Close]) = Array ((outInteger) est un nombre entier
    CDL3BLACKCROWS (en anglais seulement) Trois corbeaux noirs
    CDL3BLACKCROWS ((Records[Open,High,Low,Close]) = Array ((outInteger) est un nombre entier
    CDL3 à l'intérieur Trois à l'intérieur vers le haut/vers le bas
    CDL3INSIDE ((Records[Open,High,Low,Close]) = Array ((outInteger)
    CDL3LINESTRIKE Une grève de trois lignes
    CDL3LINESTRIKE ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    CDL3À L'extérieur Trois à l'extérieur vers le haut/vers le bas
    CDL3OUTSIDE ((Records[Open,High,Low,Close]) = Array ((outInteger) est un nombre entier
    CDL3 étoile du sud Trois étoiles dans le sud
    CDL3STARSINSOUTH ((Records [Open,High,Low,Close]) = Array ((outInteger) est un nombre entier
    CDL3SOLDIERS blancs Trois soldats blancs qui avancent
    CDL3WHITESOLDIERS ((Records[Open,High,Low,Close]) = Array ((outInteger) est un nombre entier
    C'est une chanson. Un bébé abandonné
    CDLABANDONEDBABY ((Enregistrements [ouvrir, haute, basse, proche],Pénétration = 0,3) = Matrice ((extraintégrale)
    Je ne peux pas faire ça. Bloc préalable
    CDLADVANCEBLOCK ((Records[Open,High,Low,Close]) = Array ((outInteger) est un ensemble de nombres
    Le CDLBELTHOLD Maintien de la ceinture
    CDLBELTHOLD ((Records[Open,High,Low,Close]) = Array ((outInteger) est un nombre entier
    Le CDLBRAKAWAY est terminé. Séparation
    CDLBREAKAWAY ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    C' est le CDLCLOOSING MARUBOZU La fermeture de Marubozu
    CDLCLOSINGMARUBOZU ((Enregistrements [ouvrir, haute, basse, proche]) = Matrice ((extraintégrale)
    C' est le CDLCONCEALBABYSWALL Comment cacher une baby-swallow
    CDLCONCEALBABYSWALL ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    CDL contre-attaque Contre-attaque
    CDLCOUNTERATTACK ((Enregistrements [Ouvert, haut, bas, fermé]) = Matrice ((extraintégrale)
    C' est le CDDARKCLOUDCOVER Couverture nuageuse
    CDLDARKCLOUDCOVER ((Records[Open,High,Low,Close],Pénétration = 0.5) = Array ((outInteger)
    Le CDLDOJI Le Doji
    CDLDOJI ((Records[Open,High,Low,Close]) = Array ((outInteger) est un nombre entier
    Le CDLDOJISTAR Étoile de Doji
    CDLDOJISTAR ((Records[Open,High,Low,Close]) = Array ((outInteger) est un ensemble de nombres entiers.
    Le CDDRAGONFLYDOJI est un jeu vidéo. La libellule Doji
    CDLDRAGONFLYDOJI ((Enregistrements [ouvrir, haute, basse, proche]) = Array ((outInteger)
    Le dépistage Le schéma engloutissant
    CDLENGULFING ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    Je vais vous dire ce qu'il faut faire. Étoile du Doji
    CDLEVENINGDOJISTAR ((Records[Open,High,Low,Close],Pénétration = 0.3) = Array ((outInteger)
    Cdleveningstar est une star Étoile du soir
    CDLEVENINGSTAR ((Records[Open,High,Low,Close],Pénétration = 0.3) = Array ((outInteger)
    CDLGAPSIDESIDEBlanc Lignes blanches côte à côte en hauteur/en bas
    CDLGAPSIDESIDESWHITE ((Enregistrements [ouvrir, haute, basse, fermé]) = Matrice ((extraintégrale)
    Le CDLGravestonedoji Le Doji de la pierre tombale
    CDLGRAVESTONEDOJI ((Enregistrements [ouvrir, haute, basse, proche]) = Matrice ((extraintégrale)
    Le CDLHAMMER Le marteau
    CDLHAMMER ((Records[Open,High,Low,Close]) = Array ((outInteger) est un nombre entier
    C' est le CDLHANGINGMAN. Le pendu
    CDLHANGINGMAN ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    Le CDLHARAMI Modèle Harami
    CDLHARAMI ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    Les microbes sont des micro-organismes Modèle Harami croisé
    CDLHARAMICROSS ((Enregistrements [ouvrir, hauteur, basseur, fermeture]) = Array ((extérieurInteger)
    CDLHIGHWAVE Une bougie à ondes élevées
    CDLHIGHWAVE ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    Je ne sais pas. Le modèle Hikkake
    CDLHIKKAKE ((Records[Open,High,Low,Close]) = Array ((outInteger) est un nombre entier
    Je vous en prie. Modèle de Hikkake modifié
    CDLHIKKAKEMOD ((Records[Open,High,Low,Close]) = Array ((outInteger) est un nombre entier
    Le CDLHOMINGPIGEON Pigeon volant
    CDLHOMINGPIGEON ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    C' est le CDLIDENTICAL3CROWS. Trois corbeaux identiques
    CDLIDENTICAL3CROWS ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    Le CDLINNECK Modèle dans le cou
    CDLINNECK ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    CDLINVERTEDHAMMER est une marque américaine. Marteau renversé
    CDLINVERTEDHAMMER ((Records[Open,High,Low,Close]) = Array ((outInteger) est le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois est indiqué est égal à
    Le CDLKICK Je frappe.
    CDLKICKING ((Records[Open,High,Low,Close]) = Array ((outInteger) est le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois est indiqué est égal au nombre de fois où le nombre de fois où le nombre est indiqué est égal au nombre de fois où le nombre de fois où le nombre est indiqué est égal au nombre de fois où le nombre est indiqué est égal au nombre de fois où il est indiqué
    Législation concernant le dépôt de la demande Coup de pied - taureau/ours déterminé par le marubozu plus long
    CDLKICKINGBYLENGTH ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    Je vous en prie. Bas de l'échelle
    CDLLADDERBOTTOM ((Records[Open,High,Low,Close]) = Array ((outInteger) est un nombre entier
    Je ne sais pas. Le Dojz aux pattes longues
    CDLLONGLEGGEDDOJI ((Enregistrements [ouvrir, haute, basse, proche]) = Matrice ((extraintégrale)
    CDLLONGLINE Bougie de ligne longue
    CDLLONGLINE ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    CdLMARUBOZU Le Marubozu
    CDLMARUBOZU ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    Le CDLMATCHINGLOW Faible correspondance
    CDLMATCHINGLOW ((Records[Open,High,Low,Close]) = Array ((outInteger) est un nombre entier qui correspond à un nombre entier.
    Le code de dépôt Maintien du tapis
    CDLMATHOLD ((Records[Open,High,Low,Close],Pénétration = 0.5) = Array ((outInteger)
    Le CD du matin. Étoile du matin.
    CDLMORNINGDOJISTAR ((Enregistrements [ouvrir, haute, basse, proche],Pénétration = 0.3) = Matrice ((extraintégrale)
    Le CDLMORNINGSTAR Étoile du matin
    CDLMORNINGSTAR ((Enregistrements [ouvrir, hauteur, basseur, fermeture],Pénétration = 0,3) = Array ((outInteger)
    Je ne sais pas. Modèle sur le cou
    CDLONNECK ((Records[Open,High,Low,Close]) = Array ((outInteger) est un nombre entier
    Le dépistage Le modèle de perçage
    CDLPIERCING ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    Je ne sais pas. L' homme de la rickshaw
    CDLRICKSHAWMAN ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    MÉTHODES de dépistage de l'infection Trois méthodes de hausse/baisse
    CDLRISEFALL3METHODS ((Enregistrements [ouvrir, hauteur, basseur, fermeture]) = Array ((extérieurInteger)
    Ligne de séparation Les lignes de séparation
    CDLSEPARATINGLINES ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de lignes séparées
    Je vous en prie. Étoile filante
    CDLSHOOTINGSTAR ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    CDLShorte ligne Bougie de ligne courte
    CDLSHORTLINE ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers
    Le CDL SPINNINGTOP Le tourbillon
    CDLSPINNINGTOP ((Records[Open,High,Low,Close]) = Array ((outInteger) est un nombre entier
    Modèle défini Modèle bloqué
    CDLSTALLEDPATTERN ((Records[Open,High,Low,Close]) = Array ((outInteger) est le nombre d'enregistrements dans le tableau
    Le CDLSTICKSANDWICH Un sandwich au bâton
    CDLSTICKSANDWICH ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    Le CDLTAKURI Takuri (Dragonfly Doji avec une très longue ombre inférieure)
    CDLTAKURI ((Records[Open,High,Low,Close]) = Array ((outInteger) est un nombre entier
    Le CDLTASUKIGAP La faille de Tasuki
    CDLTASUKIGAP ((Enregistrements [Ouvrir, Haute, Basse, Fermer]) = Array ((extérieurInteger)
    Le CDL est en train d'échouer Le modèle de poussée
    CDLTHRUSTING ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers.
    Le CDLTRISTAR Modèle Tristar
    CDLTRISTAR ((Records[Open,High,Low,Close]) = Array ((outInteger) est un nombre entier composé d'une série de nombres
    Je ne peux pas. La rivière Unique 3
    CDLUNIQUE3RIVER ((Records[Open,High,Low,Close]) = Array ((outInteger) est un nombre entier
    Je ne sais pas si c'est le cas. Le trou à l'envers Deux corbeaux
    CDLUPSIDEGAP2CROWS ((Enregistrements [ouvrir, hauteur, basseur, fermeture]) = Array ((extérieurInteger)
    MÉTHODES de dépistage du CDLXSIDE La différence entre la hausse et la baisse Trois méthodes
    CDLXSIDEGAP3METHODS ((Records[Open,High,Low,Close]) = Array ((outInteger) est une série de nombres entiers
  • Volume Indicators:

    Indicateur Définition
    AD Chaikin ligne A/D
    AD ((Records[High,Low,Close,Volume]) = Array ((outReal)
    Le groupe ADOSC L'oscillateur A/D Chaikin
    ADOSC ((Records[High,Low,Close,Volume],Période rapide = 3,Période lente = 10) = Array ((outReal)
    VAB Sur le volume du bilan
    OBV ((Records[Close],Records[Volume]) = Array ((outReal) est le nombre d'enregistrements dans le tableau.
  • Math Transform:

    Indicateur Définition
    Le code de l'ACOS ACos vectoriel trigonométrique
    ACOS ((Records[Close]) = Array ((outReal) est un ensemble de données
    ASIN ASin trigonométrique vectoriel
    Le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois
    ATAN Trigonométrie vectorielle ATan
    ATAN ((Records[Close]) = Array ((outReal)
    Le CEIL Plafond vectoriel
    CEIL ((Records[Close]) = Array ((outReal)
    Coût de l'activité Cos vectoriel trigonométrique
    COS ((Records[Close]) = Array ((outReal)
    Le COSH Cosh en trigonométrie vectorielle
    Le nombre de fois où les données sont enregistrées est le nombre de fois où les données sont enregistrées.
    Expiration Expérimentation arithmétique vectorielle
    EXP ((Records[Close]) = Array ((outReal) est un ensemble de données
    Plancher Plancher vectoriel
    L'expérience de l'expérience de l'expérience de l'expérience de l'expérience de l'expérience de l'expérience est la suivante:
    LN Vecteur log naturel
    LN ((Records[Close]) = Array ((outReal)
    Logiciel de mesure 10 Le vecteur log10
    Logiciel de calcul de l'échantillon
    Nom de l'entreprise Sin vectoriel trigonométrique
    SIN ((Records[Close]) = Array ((outReal)
    Le SINH Synchronisation trigonométrique vectorielle
    SINH ((Records[Close]) = Array ((outReal)
    SQRT Racine carrée du vecteur
    SQRT ((Records[Close]) = Array ((outReal)
    Nombre d'emplois Tan vectoriel trigonométrique
    TAN ((Records[Close]) = Array ((outReal)
    TANH Trigonométrie vectorielle Tanh
    TANH ((Records[Close]) = Array ((outReal)
  • Math Operators:

    Indicateur Définition
    Maximum Valeur la plus élevée sur une période déterminée
    MAX ((Records[Close],Période de temps = 30) = Array ((outReal)
    Maxindex Indice de valeur la plus élevée sur une période déterminée
    MAXINDEX ((Records[Close],Période de temps = 30) = Array ((outInteger)
    Résultats Valeur la plus basse sur une période déterminée
    Le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois le nombre de fois où le nombre de fois le nombre de fois le nombre de fois le nombre de fois le nombre de fois le nombre de fois le nombre de fois.
    L'indice de référence Indice de la valeur la plus basse sur une période déterminée
    L'indicateur de la valeur de l'indice est le nombre d'indices de la valeur de l'indice de la valeur de l'indice.
    Le type de produit Values minimales et maximales sur une période déterminée
    Le nombre de fois où les données sont enregistrées est le nombre de fois où les données sont enregistrées.
    Les résultats de l'analyse Indices des valeurs les plus basses et les plus élevées au cours d'une période déterminée
    Le nombre de fois où les données sont classées dans le tableau de bord est le nombre de fois où les données sont classées dans le tableau de bord.
    Résultats Résumé
    SUM ((Records[Close],Période de temps = 30) = Array ((outReal)
  • Cycle Indicators:

    Indicateur Définition
    Le nombre de jours de travail Transformation de Hilbert - période de cycle dominante
    Le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois est indiqué est le nombre de fois où le nombre de fois où le nombre de fois est indiqué est le nombre de fois.
    Les données de référence Transformation de Hilbert - phase dominante du cycle
    Le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois est indiqué est égal à
    Les données de base sont fournies à l'autorité compétente. La transformation de Hilbert - composants phasoriques
    Les données de base sont les données de base de la base de données de la base de données.
    Résultats de l'analyse La transformation de Hilbert - onde sinusoïdale
    Le nombre de fois où les données sont supprimées est le nombre de fois où les données sont supprimées.
    Le mode de fonctionnement de l'application Transformation de Hilbert - Mode tendance contre cycle
    Le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois est indiqué est le nombre de fois que le nombre de fois où le nombre de fois est indiqué est le nombre de fois.
  • Volatility Indicators:

    Indicateur Définition
    ATR Plage réelle moyenne
    ATR ((Records[High,Low,Close],Période de temps = 14) = Array ((outReal)
    NATR Plage réelle moyenne normalisée
    NATR ((Records[High,Low,Close],Période de temps = 14) = Array ((outReal)
    Les produits Dimension réelle
    TRANGE ((Records[High,Low,Close]) = Array ((outReal) est une série de nombres
  • Overlap Studies:

    Indicateur Définition
    Les banques centrales Les bandes de Bollinger
    BBANDS ((Récords[Close],Période de temps = 5,Déviations vers le haut = 2,Déviations vers le bas = 2,MA Type = 0) = [Array ((outRealUpperBand),Array ((outRealMiddleBand),Array ((outRealLowerBand) ]
    Le DEMA Moyenne mobile exponentielle double
    DEMA ((Records[Close],Période de temps = 30) = Array ((outReal)
    Le taux d'intérêt Moyenne mobile exponentielle
    EMA ((Records[Close],Période de temps = 30) = Array ((outReal)
    Ligne de tendance La transformation de Hilbert - ligne de tendance instantanée
    Le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois est indiqué est le nombre de fois où le nombre de fois où le nombre de fois est indiqué est le nombre de fois.
    Le KAMA Moyenne mobile adaptative de Kaufman
    KAMA ((Records[Close],Période de temps = 30) = Array ((outReal)
    - Je vous en prie. Moyenne mobile
    MA ((Records[Close],Période de temps = 30,MA Type = 0) = Array ((outReal)
    Je ne sais pas. Moyenne mobile adaptative MESA
    MAMA ((Records[Close], Limite rapide = 0,5, Limite lente = 0,05) = [Array ((outMAMA),Array ((outFAMA) ]
    Le point médian Période moyenne
    MIDPOINT ((Records[Close],Période de temps = 14) = Array ((outReal)
    Prix moyen Prix moyen au cours de la période
    MIDPRICE ((Records[High,Low],Période de temps = 14) = Array ((outReal)
    SAR SAR parabolique
    SAR ((Records[High,Low],Facteur d'accélération = 0,02,AF Maximum = 0,2) = Array ((outReal)
    SAREXT SAR parabolique - étendu
    SAREXT ((Records[High,Low],Valeur de départ = 0,Offset à l'envers = 0,AF Init Long = 0.02,AF Long = 0.02,AF Max Long = 0.2,AF Init Short = 0.02,AF Short = 0.02,AF Max Short = 0.2) = Array ((outReal)
    SMA Moyenne mobile simple
    SMA ((Records[Close],Période de temps = 30) = Array ((outReal)
    T3 Moyenne mobile exponentielle triple (T3)
    T3 ((Records[Close],Période de temps = 5,Facteur de volume = 0,7) = Array ((outReal)
    TEMA Moyenne mobile exponentielle triple
    TEMA ((Records[Close],Période de temps = 30) = Array ((outReal) est le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois est indiqué est égal à 100)
    Le groupe TRIMA Moyenne mobile triangulaire
    TRIMA ((Records[Close],Période de temps = 30) = Array ((outReal)
    La WMA Moyenne mobile pondérée
    WMA ((Records[Close],Période de temps = 30) = Array ((outReal)
  • Statistic Functions:

    Indicateur Définition
    Réglage linéaire Régression linéaire
    LINEARREG ((Records[Close],Période de temps = 14) = Array ((outReal)
    LINEARREG_ANGLE est le point de départ de l'angle Angle de régression linéaire
    LINEARREG_ANGLE ((Enregistrements[Close],Période de temps = 14) = Array ((outReal)
    LINEARREG_INTERCEPT est le nombre de fois où la ligne est interrompue. Interception de régression linéaire
    LINEARREG_INTERCEPT ((Records[Close],Période de temps = 14) = Array ((outReal)
    LINEARREG_SLOPE Pente de régression linéaire
    LINEARREG_SLOPE ((Enregistrements[Close],Période de temps = 14) = Array ((outReal)
    Le dépistage de l'infection Déviation type
    STDDEV ((Records[Close],Période de temps = 5,Déviations = 1) = Array ((outReal)
    TSF Prévisions de séries chronologiques
    TSF ((Records[Close],Période de temps = 14) = Array ((outReal)
    VAR Variance
    VAR ((Records[Close],Période de temps = 5,Déviations = 1) = Array ((outReal)
  • Momentum Indicators:

    Indicateur Définition
    ADX Indice de mouvement directionnel moyen
    ADX ((Records[High,Low,Close],Période de temps = 14) = Array ((outReal)
    ADXR Indice de mouvement directionnel moyen
    ADXR ((Records[High,Low,Close],Période de temps = 14) = Array ((outReal)
    APO L'oscillateur de prix absolu
    APO ((Records[Close],Période rapide = 12,Période lente = 26,MA Type = 0) = Array ((outReal)
    AROON Je vous en prie.
    AROON ((Records[High,Low],Période de temps = 14) = [Array ((outAroonDown),Array ((outAroonUp) ]
    AROONOSC Ossillateur d'Aroon
    AROONOSC ((Records[High,Low],Période de temps = 14) = Array ((outReal)
    BOP L'équilibre du pouvoir
    BOP ((Records[Open,High,Low,Close]) = Array ((outReal) est le nombre d'emplacements dans un tableau.
    CCI Indice des canaux de produits de base
    CCI ((Records[High,Low,Close],Période de temps = 14) = Array ((outReal)
    OCM L'oscillateur de dynamique de Chande
    CMO ((Records[Close],Période de temps = 14) = Array ((outReal)
    DX Indice de mouvement directionnel
    DX ((Records[High,Low,Close],Période de temps = 14) = Array ((outReal)
    Le MACD Moyenne mobile de convergence/divergence
    Le nombre de fois où les données sont enregistrées est le nombre de fois où les données sont enregistrées. Le nombre de fois où les données sont enregistrées est le nombre de fois où elles sont enregistrées.
    Le code MACDEXT MACD avec type MA contrôlable
    MACDEXT ((Records[Close],Période rapide = 12,MA rapide = 0,Période lente = 26,MA lente = 0,Période du signal = 9,MA du signal = 0) = [Array ((outMACD),Array ((outMACDSignal),Array ((outMACDHist) ]
    Le code MACDFIX La convergence/divergence des moyennes mobiles est fixée 12/26
    MACDFIX ((Récords[Close],Période du signal = 9) = [Array ((outMACD),Array ((outMACDSignal),Array ((outMACDHist) ]
    Finances monétaires Indice des flux de trésorerie
    MFI ((Records[High,Low,Close,Volume],Période de temps = 14) = Array ((outReal)
    Résultats de l'analyse Indicateur de direction moins
    Le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois le nombre de fois où le nombre de fois le nombre de fois où le nombre de fois le nombre de fois le nombre de fois le nombre de fois le nombre de fois le nombre de fois le nombre de fois le nombre de fois.
    Résultats de l'analyse Motion moins directionnelle
    Le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois où le nombre de fois le nombre de fois le nombre de fois le nombre de fois le nombre de fois le nombre de fois le nombre de fois le nombre de fois.
    Je ne sais pas. L' élan
    MOM ((Records[Close],Période de temps = 10) = Array ((outReal)
    Le nombre d'heures Indicateur de direction
    PLUS_DI ((Records[High,Low,Close],Période de temps = 14) = Array ((outReal)
    Le nombre de points de contrôle Plus le mouvement directionnel
    PLUS_DM ((Records[High,Low],Période de temps = 14) = Array ((outReal)
    PPO Ossillateur de prix en pourcentage
    PPO ((Records[Close],Période rapide = 12,Période lente = 26,MA Type = 0) = Array ((outReal)
    ROC Taux de variation : ((prix/prevPrice) -1) * 100
    ROC ((Records[Close],Période de temps = 10) = Array ((outReal)
    Réglage de la charge Taux de variation Pourcentage: (prix-prevPrice) /prevPrice
    ROCP ((Records[Close],Période de temps = 10) = Array ((outReal)
    Réglementation de l'épargne Taux de variation ratio: (prix/prix précédent)
    ROCR ((Records[Close],Période de temps = 10) = Array ((outReal)
    Règlement sur les produits de base Taux de variation du ratio 100 échelle: (prix/prevPrice) *100
    ROCR100 ((Records[Close],Période de temps = 10) = Array ((outReal)
    Indice de résistance Indice de force relative
    RSI ((Records[Close],Période de temps = 14) = Array ((outReal)
    STOCH Stochastique
    STOCH ((Records[High,Low,Close],Période K rapide = 5,Période K lente = 3,Période K lente MA = 0,Période D lente = 3,Période D lente MA = 0) = [Array ((outSlowK),Array ((outSlowD) ]
    STOCHF Rapide stochastique
    STOCHF ((Records[High,Low,Close],Période rapide K = 5,Période rapide D = 3,Période rapide D MA = 0) = [Array ((outFastK),Array ((outFastD) ]
    STOCHRSI Indice de force relative stochastique
    STOCHRSI ((Records[Close],Période de temps = 14,Période rapide-K = 5,Période rapide-D = 3,Période rapide-D MA = 0) = [Array(outFastK),Array(outFastD]
    Le TRIX Rate-of-change (ROC) d'un jour pour une EMA triple lisse
    TRIX ((Records[Close],Période de temps = 30) = Array ((outReal)
    Les résultats de l'analyse L'oscillateur ultime
    ULTOSC ((Records[High,Low,Close],Première période = 7,Seconde période = 14,Troisième période = 28) = Array ((outReal)
    Je ne sais pas. Williams % R
    WILLR ((Records[High,Low,Close],Période de temps = 14) = Array ((outReal)
  • Price Transform:

    Indicateur Définition
    Le prix moyen Prix moyen
    AVGPRICE ((Records[Open,High,Low,Close]) = Array ((outReal) est le nombre d'enregistrements dans le tableau.
    Le prix moyen Prix médian
    MEDPRICE ((Records[High,Low]) = Array ((outReal) est le nombre de fois où le nombre d'enregistrements est inférieur à
    TYPE de prix Prix typique
    TYPPRICE ((Records[High,Low,Close]) = Array ((outReal) est le nombre d'enregistrements dans le tableau.
    Le prix du produit Prix de clôture pondéré
    WCLPRICE ((Records[High,Low,Close]) = Array ((outReal) est un nombre de nombres réels dans un tableau.

Données fondamentales

La plateforme de trading FMZ Quant prend en charge le backtesting et la requête de diverses données fondamentales dans le bot.

Invocation des données

Utilisationexchange.GetData(Source)La fonction d'obtention des données fondamentales. Les données fondamentales de la crypto-monnaie n'ont pas été collectées temporairement.

Format des données

Les données fondamentales de la crypto-monnaie n'ont pas été collectées temporairement.

Étendue de l'API de la plateforme FMZ

La plateforme FMZ Quant Trading prend en charge l'invocation programmatique de diverses fonctions de la plateforme et a ouvert l'API étendue.

Il prend en charge l'extension de gestion de l'autorité API, comme indiqué sur la figure:

img

Il permet deAPI KEYVous pouvez entrer.*dans la zone d'entrée d'autorisation API pour ouvrir toutes les autorisations d'interface. Spécifiez des autorisations d'interface spécifiques et entrez les noms de fonction API étendus correspondants, séparés par des virgules, tels queGetRobotDetail, DeleteRobot, c'est à dire, donnez ceciAPI KEYl'autorisation deObtenez l'interface du bot des informations détailléesetsupprimer l'interface du bot.

Créez ApiKey

img

Code de retour de l'API

Définition Le code
Exécution réussie 0
Faute de clé d'API 1
Fausse signature 2
Erreur de nonce 3
Méthode incorrecte 4
Paramètre incorrect 5
Erreur interne inconnue 6

Statut du robot

(Démarrage normal)

Le statut Le code
À l'arrêt 0
En fonctionnement 1
Arrêt 2
Déposé 3
Arrêté 4
La stratégie comporte des erreurs. 5

Je ne sais pas.

Le statut Le code
La stratégie a expiré, et s'il vous plaît contacter l'auteur pour l'acheter à nouveau -1
Aucun docker trouvé -2
Erreur de compilation de stratégie -3
Le robot est déjà en marche. -4
Solde insuffisant -5
Le nombre de stratégies concomitantes dépasse la limite -6

Méthodes de vérification

Vérification des jetons

Utilisationmd5méthode de chiffrement à vérifier.

Python, exemples d'appels en langue Golang:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import time
import json
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

try:
    import md5
    import urllib2
    from urllib import urlencode
except:
    import hashlib as md5
    import urllib.request as urllib2
    from urllib.parse import urlencode

accessKey = 'f27bfcXXXXXXXX013c62e98XXXXX817a'
secretKey = 'ffeXXXXXXXX085ff7269XXXXXXXX6f82'

def api(method, *args):
    d = {
        'version': '1.0',
        'access_key': accessKey,
        'method': method,
        'args': json.dumps(list(args)),
        'nonce': int(time.time() * 1000),
        }

    d['sign'] = md5.md5(('%s|%s|%s|%d|%s' % (d['version'], d['method'], d['args'], d['nonce'], secretKey)).encode('utf-8')).hexdigest()
    # Note: for the timeout problem of "urllib2.urlopen" function, you can set the timeout time; for example, urllib2.urlopen ('https://www.fmz.com/api/v1', urlencode(d).encode('utf-8'), timeout = 10), that is, set timeout for 10 seconds
    return json.loads(urllib2.urlopen('https://www.fmz.com/api/v1', urlencode(d).encode('utf-8')).read().decode('utf-8'))

# Return the docker list
print(api('GetNodeList'))
# Return the exchange list
print(api('GetPlatformList'))
# GetRobotList (offset, length, robotStatus, label); passing "-1" means obtaining all
print(api('GetRobotList', 0, 5, -1, 'member2'))
# CommandRobot(robotId, cmd) sends commands to the bot
print(api('CommandRobot', 123, 'ok'))
# StopRobot(robotId) returns the bot status code
print(api('StopRobot', 123))  
# RestartRobot(robotId) returns the bot status code
print(api('RestartRobot', 123))
# GetRobotDetail(robotId) returns detailed bot information
print(api('GetRobotDetail', 123))
package main

import (
    "fmt"
    "time"
    "encoding/json"
    "crypto/md5"
    "encoding/hex"
    "net/http"
    "io/ioutil"
    "strconv"
    "net/url"
)

// Fill in your own FMZ platform api key
var apiKey string = ""                                  
// Fill in your own FMZ platform secret key
var secretKey string = ""                               
var baseApi string = "https://www.fmz.com/api/v1"

func api(method string, args ... interface{}) (ret interface{}) {
    // Process args
    jsonStr, err := json.Marshal(args)
    if err != nil {
        panic(err)
    }

    params := map[string]string{
        "version" : "1.0", 
        "access_key" : apiKey,
        "method" : method,
        "args" : string(jsonStr),
        "nonce" : strconv.FormatInt(time.Now().UnixNano() / 1e6, 10),
    }    

    data := fmt.Sprintf("%s|%s|%s|%v|%s", params["version"], params["method"], params["args"], params["nonce"], secretKey)
    h := md5.New()
    h.Write([]byte(data))
    sign := h.Sum(nil)

    params["sign"] = hex.EncodeToString(sign)

    // http request 
    client := &http.Client{}

    // request 
    urlValue := url.Values{}
    for k, v := range params {
        urlValue.Add(k, v)
    }
    urlStr := urlValue.Encode()
    request, err := http.NewRequest("GET", baseApi + "?" + urlStr, nil)
    if err != nil {
        panic(err)
    }    

    resp, err := client.Do(request)
    if err != nil {
        panic(err)
    }

    defer resp.Body.Close()

    b, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }

    ret = string(b)
    return 
}

func main() {
    settings := map[string]interface{}{
        "name": "hedge test",
        "strategy": 104150,                      
        // K-line period parameter "60" means 60 seconds
        "period": 60,                           
        "node" : 73938,                         
        "appid": "member2",                
        "exchanges": []interface{}{
            map[string]interface{}{
                "eid": "Exchange", 
                "label" : "test_bjex", 
                "pair": "BTC_USDT", 
                "meta" : map[string]interface{}{
                    // Fill in the access key
                    "AccessKey": "",                                
                    // Fill in the secret key
                    "SecretKey": "",                                
                    "Front" : "http://127.0.0.1:6666/exchange",
                },
            },
        },
    }

    method := "RestartRobot"
    fmt.Println("Call interface:", method)
    ret := api(method, 124577, settings)
    fmt.Println("main ret:", ret)
}

Vérification directe

Il prend en charge la vérificationtoken(passer)secret_keyPar exemple, l'URL qui donne directement des instructions interactives au bot, qui peut être utilisée pourTradingViewou leWebHookdans d'autres cas. PourCommandRobot(RobotId, Cmd)fonction, le paramètrenoncene nécessite pas de vérification et la fréquence d'accès et les temps de visite de l'interface ne sont pas limités.

https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]

Dans la mesure où la vérification directe est soutenue,CommandRobotl'interface est prise en charge pour obtenir leBodyPar exemple, les paramètres dans leWebHook URLdeTradingView:

https://www.fmz.com/api/v1?access_key=fd3be82e9e6e6ed4439f2793a5e9ca&secret_key=520b9f10f3768e6ad1af59ff25184&method=CommandRobot&args=[130350,+""]

Veuillez faire attention au réglage selon le format suivant:args=[130350,+""], dans lequel130350C' est le robot?IDde la plateforme de négociation quantitative FMZ.

Paramètres dans la zone de message (les données Body requises à envoyer):

  • Format JSON:

    {"close": {{close}}, "name": "aaa"}
    

    Le robot avecIDde186515peut recevoir l'instruction interactive:{"close": 39773.75, "name": "aaa"}.

  • Format du texte:

    BTCUSDTPERP Crossing 39700.00 close: {{close}}
    

    Le robot avecIDde186515peut recevoir l'instruction interactive:BTCUSDTPERP Crossing 39700.00 close: 39739.4.

Exemples dePython & Golangappels linguistiques:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import json
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

try:
    import urllib2
except:
    import urllib.request as urllib2

accessKey = 'your accessKey'
secretKey = 'your secretKey'

def api(method, *args):
    return json.loads(urllib2.urlopen(('https://www.fmz.com/api/v1?access_key=%s&secret_key=%s&method=%s&args=%s' % (accessKey, secretKey, method, json.dumps(list(args)))).replace(' ', '')).read().decode('utf-8'))

# If APIKEY does not have the interface permission, the call to print(api('RestartRobot', 130350)) will fail, and the returned data is: {'code': 4, 'data': None}
# print(api('RestartRobot', 130350))

# Print bot details with ID 130350
print(api('GetRobotDetail', 130350))  
package main

import (
    "fmt"
    "encoding/json"
    "net/http"
    "io/ioutil"
    "net/url"
)

// Fill in your own FMZ platform api key
var apiKey string = "your access_key"                                  
// Fill in your own FMZ platform secret key
var secretKey string = "your secret_key"                               
var baseApi string = "https://www.fmz.com/api/v1"

func api(method string, args ... interface{}) (ret interface{}) {
    jsonStr, err := json.Marshal(args)
    if err != nil {
        panic(err)
    }
    
    params := map[string]string{
        "access_key" : apiKey,
        "secret_key" : secretKey,
        "method" : method,
        "args" : string(jsonStr),
    }    

    // http request 
    client := &http.Client{}

    // request 
    urlValue := url.Values{}
    for k, v := range params {
        urlValue.Add(k, v)
    }
    urlStr := urlValue.Encode()
    request, err := http.NewRequest("GET", baseApi + "?" + urlStr, nil)
    if err != nil {
        panic(err)
    }    

    resp, err := client.Do(request)
    if err != nil {
        panic(err)
    }

    defer resp.Body.Close()

    b, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }

    ret = string(b)
    return 
}

func main() {
    method := "GetRobotDetail"
    fmt.Println("Call interface:", method)
    ret := api(method, 130350)
    fmt.Println("main ret:", ret)
}

Utilisez l'API étendue sur FMZ Quant pour réaliser le trading de signaux d'alerte TradingView

Explication de l'API étendue

  • L'API étendue de la plateforme de trading FMZ Quant

    https://www.fmz.com/api/v1?

    Le symbole ci-dessus?est suivie des paramètres de demande.

    Les paramètres de demande décrits dansPythonlangue:

    {
        'version'   : '1.0',
        # Access key, applied on the account management page
        'access_key': '8a1f6c3785fd78a1848320e0b19js99f',   
        # The specific method called
        'method'    : 'GetNodeList',                        
        # The parameter list of specific method algorithm
        'args'      : [],                                   
        # Timestamp, in the unit of millisecond, is allowed to have 1 hour of time error both before and after the standard timestamp;the nonce must be greater than the nonce value of the last access 
        'nonce'     : 1516292399361,                        
        # Signature
        'sign'      : '085b63456c93hfb243a757366600f9c2'    
    }
    

    Chaque nom de paramètre est séparé par le caractère&, et les noms et valeurs des paramètres sont reliés au symbole=. L'URL complète de la demande (en prenantmethod=GetNodeListà titre d'exemple):

    https://www.fmz.com/api/v1?
    access_key=8a1f6c3785fd78a1848320e0b19js99f&
    nonce=1516292399361&
    args=%5B%5D&
    sign=085b63456c93hfb243a757366600f9c2&
    version=1.0&
    method=GetNodeList
    

    Faites attention qu'il n'y ait passecret_keyentre les paramètres de demande.

  • Méthode de signature Dans les paramètres de demande, le paramètresignest une chaîne de caractères chiffrée, et la méthode de chiffrement est la suivante.

    Selon le format:

    version + "|" + method + "|" + args + "|" + nonce + "|" + secretKey
    

    Après avoir concaténé des chaînes, utilisezMD5algorithme de chiffrement pour chiffrer la chaîne et la convertir en une valeur de chaîne de données hexadécimale, désignée par la valeur du paramètresign.

    Le renvoiPythoncode de la partie de la signature:

    # parameter
    d = {
        'version': '1.0',
        'access_key': accessKey,
        'method': method,
        'args': json.dumps(list(args)),
        'nonce': int(time.time() * 1000),
    }
    
    # Calculate "sign" signature (encrypted)
    d['sign'] = md5.md5(('%s|%s|%s|%d|%s' % (d['version'], d['method'], d['args'], d['nonce'], secretKey)).encode('utf-8')).hexdigest()
    

GetNodeList (en anglais)

GetNodeList()renvoie la liste des dockers du compte de la plateforme de trading FMZ Quant correspondant à laAPI KEYdans la demande.

  • Paramètre Aucune

  • Valeur de retour

    {
        "code": 0,
        "data": {
            "result": {
                "nodes": [{
                    // Version number
                    "build": "3.3",                 
                    "date": "2018-01-19 10:35:24",
                    "id": 34500,
                    "ip": "126.28.21.120",
                    // Number of the bots running on this docker
                    "loaded": 1,                    
                    "name": "iZ9116xhkgtZ",
                    // Whether online
                    "online": true,                 
                    // Operation system
                    "os": "linux",                  
                    // Whether to enable offline alert
                    "wd": 0                         
                },
                ...
                ]
            },
            "error": null
        }
    }
    

GetRobotGroupList (en anglais seulement)

GetRobotGroupList()renvoie la liste de regroupement des robots du compte de la plateforme de trading FMZ Quant correspondant à laAPI KEYdans la demande.

  • Paramètre Aucune

  • Valeur de retour

    {
        "code":0,
        "data":{
            "result":{
                // All bot grouping information: group ID, group name 
                "items":[{"id":1122,"name":"test"}]
            },
            "error":null
        }
    }
    

Vous avez une liste de plateformes?

GetPlatformList()renvoie la liste des bourses qui ont été ajoutées par le compte de la plateforme de trading FMZ Quant correspondant à laAPI KEYdans la demande.

  • Paramètre Aucune

  • Valeur de retour

    {
        "code": 0,
        "data": {
            "result": {
                "platforms": [{
                    "eid": "Huobi",
                    "id": 12483,
                    // The label when adding a platform
                    "label": "huobi - test ETH/ETC",                            
                    "logo": "huobi.png",
                    "name": "huobi",
                    "stocks": ["LTC_BTC", "ETH_BTC", "ETC_BTC", "BCH_BTC"],
                    "website": "https://www.huobi.pro/"
                }, {
                    "eid": "AEX",
                    "id": 16345,
                    "label": "AEX",
                    "logo": "",
                    "name": "AEX",
                    "stocks": ["LTC_BTC", "ETH_BTC", "ETC_BTC", "BCC_BTC"],
                    "website": "https://www.aex.com/"
                },
                ...
                ]
            },
            "error": null
        }
    }
    

Vous avez une liste de robots?

GetRobotList(offset, length, robotStatus, label)renvoie la liste des robots du compte de la plateforme de trading FMZ Quant correspondant à laAPI KEYdans la demande.

  • Paramètreoffset, lengthetrobotStatussont de type entier, etlabelest de type chaîne.

    • offset
    • length
    • robotStatus(passer -1 signifie obtenir tout)
    • label(étiquette personnalisée; tous les robots avec l'étiquette peuvent être flirtés)

    PourPythonexemple de code, voir ci-dessusméthode de vérification - Vérification des jetons, et ce qui suit:PythonExemple d'invocation:print api('GetRobotList', 'member2')imprimer les informations de tous les robots avec l'étiquette personnaliséemember2. print api('GetRobotList', 0, 5, -1, 'member2')pages de 0 à 5 et liste jusqu'à 5 robotsmember2.

  • Valeur de retour

    {
        "code": 0,
        "data": {
            "result": {
                "all": 53,
                "bots": [{
                    "date": "2017-12-25 09:29:27",
                    "end_time": "2017-12-28 17:44:21",
                    "id": 66054,
                    // If the value is 1, the bot is a virtual platform bot
                    "is_sandbox": 1,                                      
                    "name": "C++ test strategy",
                    "node_guid": "705d9aaaaaaaa93b49baaaaa787581cb087",
                    "profit": 0,
                    "public": 0,
                    "refresh": 151345645647000,
                    "start_time": "2017-12-28 17:44:15",
                    "status": 3,
                    "strategy_id": 65365,
                    "strategy_isowner": true,
                    "strategy_name": "C++  Version  Docker  API  Test Strategy(cryptocurrency futures and spot markets)",
                    "wd": 0
                }, ...
                ]
            },
            "error": null
        }
    }
    

CommandRobot (en anglais)

CommandRobot(RobotId, Cmd)l'interface envoie la commande interactive au robot correspondant (robotID: RobotId) de laAPI KEYdans la demande du compte FMZ Quant (la commande interactive est capturée par leGetCommand()API appelé dans la stratégie et les retours).

  • ParamètreRobotIdest de type entier, à savoir le botID; Cmdest de type chaîne, qui envoie des commandes interactives aux robots.

    • RobotIdLe robot.ID, peut être obtenue par leGetRobotList(...) interface.
    • Cmdest la commande interactive envoyée au bot; la commande sera capturée par la fonctionGetCommand(), qui déclenche la logique interactive dans la stratégie (pour réaliser la logique interactive dans la stratégie, veuillez vous référer àGetCommand()fonction dans le fichier).
  • Valeur de retour

    {
        // The API request was successfully executed
        "code": 0,                 
        "data": {
            // However, sending a command to a bot that is not running returns failure
            "result": false,       
            "error": null
        }
    }
    

ArrêtezRobot ((RobotId)

StopRobot(RobotId)Arrête d'exécuter le bot avec l'ID spécifié (robotID: RobotId), correspondant à laAPI KEYdans la demande du compte FMZ Quant.

  • ParamètreRobotIdest de type entier, à savoir le botID, qui peut être obtenue parGetRobotList(...)une interface;StopRobot(RobotId)l'interface renvoie le code d'état du robot arrêté.

  • Valeur de retour

    {
        "code": 0,
        "data": {
            // 2 means stopping
            "result": 2,           
            "error": null
        }
    }
    

Refaire le démarrage du robot

RestartRobot(RobotId, Settings)redémarre le robot avec l'ID spécifié (robotID: RobotId), correspondant à laAPI KEYdans la demande du compte FMZ Quant.

Si le robot est créé par l'API étendue, l'API étendueRestartRobot (RobotId, Settings)doit être utilisé pour redémarrer, et leSettingsLe paramètre doit être passé. Le robot créé sur la page de la plateforme peut être redémarré via l'API étendue ou en cliquant sur le bouton sur la page.Settingsparamètre, ou simplement passer le leRobotIdParamètre. Si vous passez seulement leRobotIdParamètre, démarrez le bot selon les paramètres actuels du bot.

  • Paramètre

    • Sans configurer le bot, le paramètre de stratégieSettings: RobotIdest de type entier; le robotIDpeut être obtenue parGetRobotList(...).

    • Avec la configuration du bot, le paramètre de stratégieSettings: RobotIdest de type entier; le botIDpeut être obtenue parGetRobotList(...). Settingsest deJSONtype d'objet.

      SettingsLe format du paramètre est le suivant:

      Settings = {
          "name": "hedge test",
          // Strategy parameter
          "args": [["Interval", 500]],            
          // Strategy ID, which can be obtained with "GetStrategyList" method
          "strategy": 25189,                      
          // K-line period parameter "60" means 60 seconds
          "period": 60,                           
          // Specify on which docker to run; if the attribute is not written, it will be automatically assigned to run
          "node" : 51924,                         
          // Custom field
          "appid": "member2",                     
          "exchanges": [
              // ZB; "pid" can be obtained by "GetPlatformList" method
              {"pid": 15445, "pair": "ETH_BTC"},     
              // OKEX; 2 exchange objects are configured
              {"pid": 13802, "pair": "BCH_BTC"},     
              
              // In addition to the platforms ("pid" identification) configured by the FMZ dashboard, you can also set exchange configuration information that has not been configured to operate the bot
              {"eid": "OKEX", "pair": "ETH_BTC", "meta" :{"AccessKey": "xxx", "SecretKey": "yyy"}},
              {"eid": "Huobi", "pair": "BCH_BTC", "meta" :{"AccessKey": "xxx", "SecretKey": "yyy"}}
          ]
      }
      

      Note: le numéro de série Lorsque vous utilisez des informations sensibles, telles que la plateformeAPI KEY, y compris"meta":{"AccessKey":"xxx","SecretKey":"yyy"}dans la configuration deeid, vous devez savoir que FMZ ne stocke pas les données. Les données seront envoyées directement au programme docker, donc ces informations doivent être configurées à chaque fois que le bot est créé ou redémarré.

      Pour redémarrer le bot qui utilise le plugin pour supporter l'échange, lors de la configuration duSettingsparamètre, vous devez effectuer les réglages suivants pour leexchangesattribut:

      {"eid": "Exchange", "label" : "testXXX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "1234", "Front" : "http://127.0.0.1:6666/XXX"}}
      

      labelL'attribut est de définir une étiquette pour l'objet d'échange accessible par le système actuel.Protocole général, qui peut être obtenue par leexchange.GetLabel()Le rôle de l'entreprise dans la stratégie.

  • Valeur de retour

    {
        "code": 0,
        "data": {
            // 1 means running
            "result": 1,          
            "error": null
        }
    }
    

Vous avez un problème?

GetRobotDetail(RobotId)Obtient les informations détaillées sur le robot avec l'ID spécifié (robotID: RobotId), correspondant à laAPI KEYà la demande du compte de la plateforme de négociation FMZ Quant.

  • ParamètreRobotIdest de type entier; le robotIDpeut être obtenue parGetRobotList(...).

  • Valeur de retour

    {
        "code": 0,
        "data": {
            "result": {
                "robot": {
                    // Next payment time, namely the effective cut-off time after the current payment
                    "charge_time": 1561992608,                                                  
                    // Elapsed Time
                    "charged": 3600,                                                            
                    // Amount consumed (0.125 CNY = 12500000 / 1e8)
                    "consumed": 12500000,                                                       
                    "date": "2019-07-01 21:50:08",
                    "debug": "{\"Nano\":1561989722431145193,\"Stderr\":\"\",\"Stdout\":\"\"}",  
                    // Stop time
                    "end_time": "2019-07-01 22:02:02",                                          
                    // The docker ID assigned when the robot is running; if it is automatic, the value is -1
                    "fixed_id": 85960,                                                          
                    "id": 150288,
                    "is_deleted": 0,
                    // Whether it has the permission to manage the bot
                    "is_manager": true,                                                         
                    // Whether it is virtual exchange 
                    "is_sandbox": 0,                                                            
                    // Robot name
                    "name": "Spread monitoring2",                                                         
                    // Docker ID
                    "node_id": 85960,                                                           
                    // The exchange objects configured by the robot
                    "pexchanges": {                                                             
                        // 14703 is eid, and "GateIO" is exchange name
                        "14703": "GateIO",                                                      
                        "15445": "ZB",
                        "42960": "OKEX",
                        "44314": "Huobi"
                    },
                    // label information of the exchange object configured by the robot
                    "plabels": {                                                                
                        "14703": "Gate.IO (old name: BTER)",
                        "15445": "ZB",
                        "42960": "OKEX spot V3 test",
                        "44314": "Huobi - newest test"
                    },
                    "profit": 0,
                    // Whether to show public
                    "public": 0,                                                                
                    // Recent active time
                    "refresh": 1561989724000,                                                   
                    "robot_args": "[[\"TickInterval\",500],[\"StrOnePair\",\"spot:Huobi:spot;spot:OKEX:spot;false;60;5;0;0\"],[\"StrTwoPair\",\"spot:ZB:spot;spot:GateIO:spot;false;60;5;0;0\"],[\"StrThreePair\",\"null\"],[\"StrFourPair\",\"null\"],[\"StrSixPair\",\"null\"],[\"StrFivePair\",\"null\"],[\"ResetChart\",false]]",
                    "start_time": "2019-07-01 22:00:54",
                    // Robot status
                    "status": 4,                                                                
                    "strategy_args": "[[\"TickInterval\",\"Detection frequency (ms)\",\"This is millisecond. Don't set it too small.\",500],[\"StrOnePair\",\"Combination1\",\"Spread Combination\",\"spot:Huobi:spot;spot:OKCoin:spot;false;60;5;0;0\"],[\"StrTwoPair\",\"Combination2\",\"Spread Combination\",\"future:Futures_OKCoin:this_week;spot:OKCoin:spot;false;60;5;0;0\"],[\"StrThreePair\",\"Combination3\",\"Spread Combination\",\"future:Futures_OKCoin:this_week;future:Futures_OKCoin:quarter;true;60;5;0;0\"],[\"StrFourPair\",\"Combination4\",\"Spread Combination\",\"null\"],[\"StrSixPair\",\"Combination6\",\"Combination\",\"null\"],[\"StrFivePair\",\"Combination5\",\"Combination\",\"null\"],[\"ResetChart\",\"whether to clear the previous chart\",\"clear the previous chart\",false]]",
                    // Configured exchange objects, set trading pair information
                    "strategy_exchange_pairs": "[60,[44314,42960,15445,14703],[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]]",
                    // Strategy ID
                    "strategy_id": 21337,                                                       
                    // Strategy's last modification time
                    "strategy_last_modified": "2018-11-29 12:07:58",                            
                    // Strategy name
                    "strategy_name": "Digital currency spread monitoring and analysis",                                       
                    "summary": "Polling time consuming: 500ms\n`[{\"type\":\"table\",\"title\":\"pair basic data\",\"cols\":[\"ID\",\"NameA - NameB\",\"SymbolA - SymbolB\",\"UpdCycle\",\"isUSD\",\"Collect\"],\"rows\":[[\"0 \",\"Huobi/OKEX\",\"spot/spot\",60,false,\"612ms\"],[\"1 \",\"ZB/GateIO\",\"spot/spot\",60,false,\"501ms\"]]},{\"type\":\"table\",\"title\":\"pair market data\",\"cols\":[\"ID\",\"NameA - NameB\",\"SymbolA - SymbolB\",\"A_Bids1\",\"B_Asks1\",\"Plus\",\"A_Asks1\",\"B_Bids1\",\"Minus\"],\"rows\":[[\"0 \",\"Huobi/OKEX\",\"spot/spot\",10518.02,10525.1,-7.08,10520,10523,-3],[\"1 \",\"ZB/GateIO\",\"spot/spot\",285.68,286,-0.32,285.8,285.85,-0.05]]},{\"type\":\"table\",\"title\":\"pair statistical data\",\"cols\":[\"ID\",\"NameA - NameB\",\"SymbolA - SymbolB\",\"Maximum spread\",\"Minimum spread\",\"Mean positive premium\",\"Mean negative premium\"],\"rows\":[[\"0 \",\"Huobi/OKEX\",\"spot/spot\",0,-3,0,-1.47],[\"1 \",\"ZB/GateIO\",\"spot/spot\",0.03,-0.05,0.03,-0.05]]}]`\n",
                    // Whether to enable offline alert
                    "wd": 0                                                                      
                }
            },
            "error": null
        }
    }
    

    Lesummaryl'attribut dans les données renvoyées (informations sur la barre d'état du bot; mises en cache pendant 10 secondes; pas les données les plus récentes) a actuellement une limite de quantité de données (données mises en cache); la limite de quantité de données est de 200 KB, et les données excédentaires seront tronquées.GetRobotLogsl'interface à obtenir (lorsqueGetRobotLogsobtient les informations de la barre d'état, le champsummarysont les données les plus récentes).

    La description de l'attribut destrategy_exchange_pairsPrenons par exemple les données suivantes:

    [60,[44314,42960,15445,14703],[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]]
    

    Les premières données60représente la période de ligne K par défaut définie par le bot est de 1 minute, soit 60 secondes.

    [44314,42960,15445,14703]est l'objet d'échangeeidconfiguré pour le bot (selon l'ordre d'ajout).[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]est la paire de négociation définie pour l'objet d'échange configuré par le bot (dans l'ordre d'addition et en correspondance un-à-un aveceid).

Vous avez un compte?

GetAccount()renvoie les informations de compte correspondant à laAPI KEYà la demande du compte de la plateforme de négociation FMZ Quant.

  • Paramètre Aucune

  • Valeur de retour

    {
        "code": 0, 
        "data": {
            "result": {
                "username": "littlelittledream",
                "level": 0,
                "consumed": 3235500000,
                "invitation_code": "1545967",
                "points": 25,
                // The value here, due to precision control, is expressed in integer. To convert it to actual value, you need to divide it by 1e8 (i.e. 10 to the 8th power), and the actual result here is: 65.421
                "balance": 6542100000               
            },
            "error": None
        }
    }
    

Je vais te trouver.


Plus de