En la carga de los recursos... Cargando...

Las instrucciones de la API FMZ

El autor:No hay nada, Creado: 2020-04-20 10:19:00, Actualizado: 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++bibliotecahttps://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() + "`");
    }
    

Indicadores de función en la biblioteca Talib

Entre los parámetros de las siguientes funciones:Records[Close]representa el precio de cierre en los datos de línea k entrantes,Array()representa una matriz, yArray(outInteger)representa el retorno de una matriz de datos enteros.

Ejemplo de código para llamarCCIIndicador:

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:

    Indicador Descripción
    CDL2CROWS: las personas que se encuentran en el centro de la ciudad Dos cuervos
    CDL2CROWS ((Registros [Abrir, Alto, Bajo, Cerrar]) = Array ((outInteger)
    CDL3BLACKCROWS (Cervas negras) Los tres cuervos negros
    CDL3BLACKCROWS ((Records[Open,High,Low,Close]) = Array ((outInteger)
    CDL3Dentro Tres dentro arriba/abajo
    CDL3INSIDE ((Records[Open,High,Low,Close]) = Array ((outInteger)
    CDL3LINESTRIKE también se utiliza para el tratamiento de la enfermedad. Huelga de tres líneas
    CDL3LINESTRIKE ((Records[Open,High,Low,Close]) = Array ((outInteger)
    CDL3 Fuera Tres fuera arriba/abajo
    CDL3OUTSIDE ((Records[Open,High,Low,Close]) = Array ((outInteger)
    CDL3Estrellas del Sur Tres estrellas en el sur
    CDL3STARSINSOUTH ((Records [Open,High,Low,Close]) = Array ((outInteger)
    CDL3SOLDADOS BLANCOS Tres soldados blancos avanzando
    CDL3 WHITESOLDIERS ((Registros [Abrir, Alto, Bajo, Cerrar]) = Matriz ((fuera de entero)
    CDLABANDONEDBABY El niño abandonado Un bebé abandonado
    CDLABANDONEDBABY ((Registros [Abrir,Alto,Bajo,Cerrar],Penetración = 0.3) = Matriz ((fueraInteger)
    El CDLADVANCEBLOCK Bloqueo anticipado
    CDLADVANCEBLOCK ((Records[Open,High,Low,Close]) = Array ((outInteger)
    El CDLBELTHOLD Sostener el cinturón
    CDLBELTHOLD ((Records[Open,High,Low,Close]) = Array ((outInteger)
    El CDLBRAKAWAY Desintegración
    CDLBREAKAWAY ((Records[Open,High,Low,Close]) = Array ((outInteger)
    El CDLClozingMarubozu Cerrando el Marubozu
    CDLCLOSINGMARUBOZU ((Records[Open,High,Low,Close]) = Array ((outInteger))
    CDLCONCEALBABYSWALL (en inglés) Escondiendo a la golondrina bebé
    CDLCONCEALBABYSWALL ((Records[Open,High,Low,Close]) = Array ((outInteger)
    CDLContraataque Contraataque.
    CDLCONTRAATTACK ((Registros [Abrir,Alto,Bajo,Cerrar]) = Array ((fueraInteger)
    CDLDARKCLOUDCOVER ¿ Qué quieres decir con eso? Cubierta de nubes oscuras
    CDLDARKCLOUDCOVER ((Records[Open,High,Low,Close],Penetración = 0.5) = Array ((outInteger)
    El CDLDOJI El Doji.
    CDLDOJI ((Records[Open,High,Low,Close]) = Array ((outInteger)
    El CDLDOJISTAR Estrella Doji
    CDLDOJISTAR ((Registros [Abrir, Alto, Bajo, Cerrar]) = Array ((outInteger)
    El CDDRAGONFLYDOJI Doji de la libélula
    CDLDRAGONFLYDOJI ((Records[Open,High,Low,Close]) = Array ((outInteger)
    El tratamiento de la fibra de vidrio El patrón de absorción
    CDLENGULFING ((Records[Open,High,Low,Close]) = Array ((outInteger)
    El CDVENINGDOJISTAR fue lanzado en el año 2000. Estrella de la Noche Doji
    CDLEVENINGDOJISTAR ((Records[Open,High,Low,Close],Penetración = 0.3) = Array ((outInteger)
    El CDLEVENINGSTAR Estrella de la tarde
    CDLEVENINGSTAR ((Records[Open,High,Low,Close],Penetración = 0.3) = Array ((outInteger)
    CDLGAPSIDESIDEBlanco Líneas blancas recónditas con espacio superior/inferior
    CDLGAPSIDESIDEWHITE ((Registros [Abrir,Alto,Bajo,Cerrar]) = Array ((fuera de entero)
    El CDLGravestonedoji Doji de la lápida
    CDLGRAVESTONEDOJI ((Records[Open,High,Low,Close]) = Array ((outInteger)
    El CDLHAMMER El martillo
    CDLHAMMER ((Records[Open,High,Low,Close]) = Array ((outInteger)
    El hombre que se mueve Hombre colgado
    CDLHANGINGMAN ((Records[Open,High,Low,Close]) = Array ((outInteger)
    El CDLHARAMI Patrón Harami
    CDLHARAMI ((Records[Open,High,Low,Close]) = Array ((outInteger)
    CDLHARAMICROS Patrón Harami cruzado
    CDLHARAMICROSS ((Records[Open,High,Low,Close]) = Array ((outInteger)
    CDHIGHWAVE Velas de alta onda
    CDLHIGHWAVE ((Records[Open,High,Low,Close]) = Array ((outInteger)
    ¿ Qué es esto? Patrón de Hikkake
    CDLHIKKAKE ((Records[Open,High,Low,Close]) = Array ((outInteger)
    ¿ Qué es esto? Modelo de Hikkake modificado
    CDLHIKKAKEMOD ((Records[Open,High,Low,Close]) = Array ((outInteger)
    El CDLHOMINGPIGEON Pombas de viaje
    CDLHOMINGPIGEON ((Records[Open,High,Low,Close]) = Array ((outInteger)
    ¿ Qué es esto? Tres cuervos idénticos
    CDLIDENTICAL3CROWS ((Records[Open,High,Low,Close]) = Array ((outInteger)
    CDLINNECK Patrón en el cuello
    CDLINNECK ((Records[Open,High,Low,Close]) = Array ((outInteger)
    CDLINVERTEDHAMMER y otros Martillo invertido
    CDLINVERTEDHAMMER ((Records[Open,High,Low,Close]) = Array ((outInteger)
    El CDLKICK Me estoy pateando.
    CDLKICKING ((Registros [Abrir, Alto, Bajo, Cerrar]) = Array ((outInteger)
    El número de puntos de referencia es el número de puntos de referencia. Pulsando - toro/oso determinado por el marubozu más largo
    CDLKICKINGBYLENGTH ((Records[Open,High,Low,Close]) = Array ((outInteger)
    ¿Qué quiere decir? Bajo de la escalera
    CDLLADDERBOTTOM ((Records[Open,High,Low,Close]) = Array ((outInteger)
    ¿Qué es esto? Dojz de Piernas Largas
    CDLLONGLEGGEDDOJI ((Registros [Abrir, Alto, Bajo, Cerrar]) = Matriz ((fuera de entero)
    CDLLONGLINE Candela de línea larga
    CDLLONGLINE ((Records[Open,High,Low,Close]) = Array ((outInteger)
    CDLMARUBOZU El Marubozu
    CDLMARUBOZU ((Records[Open,High,Low,Close]) = Array ((outInteger))
    El CDLMATCHINGLOW La coincidencia es baja
    CDLMATCHINGLOW ((Records[Open,High,Low,Close]) = Array ((outInteger)
    CDLMATHOLD Mantener el tapón
    CDLMATHOLD ((Records[Open,High,Low,Close],Penetración = 0.5) = Array ((outInteger)
    CDMORNINGDOJISTAR. ¿ Qué quieres decir? Estrella del Doji de la mañana
    CDLMORNINGDOJISTAR ((Records[Open,High,Low,Close],Penetración = 0.3) = Array ((outInteger)
    CDLMORNINGSTAR. ¿ Qué es esto? Estrella de la mañana
    CDLMORNINGSTAR ((Records[Open,High,Low,Close],Penetración = 0.3) = Array ((outInteger))
    ¿ Qué es esto? Patrón en el cuello
    CDLONNECK ((Records[Open,High,Low,Close]) = Array ((outInteger)
    El Consejo de Seguridad El patrón perforante
    CDLPIERCING ((Records[Open,High,Low,Close]) = Array ((outInteger)
    ¿ Qué es esto? El hombre del rickshaw
    CDLRICKSHAWMAN ((Registros [Abrir, Alto, Bajo, Cerrar]) = Array ((fueraInteger)
    Métodos para el CDLRISEFALL3 Tres métodos para subir/bajar
    CDLRISEFALL3METHODS ((Records[Open,High,Low,Close]) = Array ((outInteger)
    Líneas de separación Líneas de separación
    CDLSEPARATINGLINES ((Records[Open,High,Low,Close]) = Array ((outInteger)
    CDLSHOOTINGSTAR. ¿ Qué quieres decir? Estrella fugaz
    CDLSHOOTINGSTAR ((Registros [Abrir, Alto, Bajo, Cerrar]) = Matriz ((fuera de entero)
    CDLScortocircuito Candela de línea corta
    CDLSHORTLINE ((Records[Open,High,Low,Close]) = Array ((outInteger)
    CDLSPINNINGTOP. ¿ Qué es eso? La parte superior giratoria
    CDLSPINNINGTOP ((Records[Open,High,Low,Close]) = Array ((outInteger)
    Modelo de instalación Patrón estancado
    CDLSTALLEDPATTERN ((Records[Open,High,Low,Close]) = Array ((outInteger)
    El CDLSTICKSANDWICH El sándwich de palo
    CDLSTICKSANDWICH ((Records[Open,High,Low,Close]) = Array ((outInteger) ]) El número de bits de la matriz es el número de bits de la matriz.
    El CDLTAKURI Takuri (Doji de la mosca dragón con una sombra inferior muy larga)
    CDLTAKURI ((Records[Open,High,Low,Close]) = Array ((outInteger)
    El CDLTASUKIGAP La brecha de Tasuki
    CDLTASUKIGAP ((Records[Open,High,Low,Close]) = Array ((outInteger)
    El CDL es un sistema de control. El patrón de empuje
    CDLTHRUSTING ((Records[Open,High,Low,Close]) = Array ((outInteger)
    El CDLTRISTAR Patrón de tristar
    CDLTRISTAR ((Records[Open,High,Low,Close]) = Array ((outInteger)
    ¿Qué quieres decir con eso? El río Unique 3
    CDLUNIQUE3RIVER ((Records[Open,High,Low,Close]) = Array ((outInteger))
    CDLUPSIDEGAP2CROWS y el resto de los equipos La brecha hacia arriba Dos cuervos
    CDLUPSIDEGAP2CROWS ((Registros [Abrir, Alto, Bajo, Cerrar]) = Array ((fuera de Integer)
    Métodos para el análisis de la calidad de los productos Diferencia de alza/baja Tres métodos
    CDLXSIDEGAP3METHODS ((Records[Open,High,Low,Close]) = Array ((outInteger)
  • Volume Indicators:

    Indicador Descripción
    A.D. Línea A/D de Chaikin
    AD ((Registros[Alto, Bajo, Cerrado, Volumen]) = Array ((extraReal)
    Adosc Ocilador A/D de Chaikin
    ADOSC ((Records[High,Low,Close,Volume],Periodo rápido = 3,Periodo lento = 10) = Array ((outReal)
    Vehículo de transporte Sobre el volumen del saldo
    OBV ((Records[Close],Records[Volume]) = Array ((outReal))
  • Math Transform:

    Indicador Descripción
    Acceso a la información ACos trigonométrico vectorial
    ACOS ((Records[Close]) = Array ((outReal)
    El ASIN ASin trigonométrico vectorial
    ASIN ((Records[Close]) = Array ((outReal)
    ATAN El vector trigonométrico ATan
    ATAN ((Registros[Cerrar]) = Array ((outReal)
    El CEIL Techo vectorial
    CEIL ((Records[Close]) = Array ((outReal)
    Costo de las operaciones Cos trigonométricos vectoriales
    COS ((Records[Close]) = Array ((outReal)
    COSH Cosh trigonométrico vectorial
    COSH ((Records[Close]) = Array ((outReal)
    Exclusivo Aritmética vectorial Exp
    EXP ((Records[Close]) = Array ((outReal)
    Piso Bajo el vector
    FLOOR ((Records[Close]) = Array ((outReal)
    LN Vector log natural
    LN ((Records[Close]) = Array ((outReal)
    Localización de la empresa Vector log10
    LOG10 ((Records[Close]) = Array ((outReal)
    No Sin vectorial trigonométrico
    SIN ((Records[Close]) = Array ((outReal)
    El SINH Sincronización trigonométrica vectorial
    SINH ((Records[Close]) = Array ((outReal)
    SQRT Raíz cuadrada del vector
    SQRT ((Records[Close]) = Array ((outReal)
    TAN Tan trigonométrico vectorial
    TAN ((Records[Close]) = Array ((outReal)
    TANH Trigonometría vectorial
    TANH ((Records[Close]) = Array ((outReal)
  • Math Operators:

    Indicador Descripción
    Se trata de: Valor más alto durante un período determinado
    MAX ((Records[Close],Periodo de tiempo = 30) = Array ((outReal)
    Maxindex Indice de valor más alto durante un período determinado
    MAXINDEX ((Records[Close],Período de tiempo = 30) = Array ((outInteger)
    En el caso de los productos Valor más bajo durante un período determinado
    MIN ((Records[Close],Período de tiempo = 30) = Array ((outReal)
    Minindex Indice del valor más bajo durante un período determinado
    MININDEX ((Records[Close],Período de tiempo = 30) = Matriz ((outInteger)
    Se trata de un Valores más bajos y más altos durante un período determinado
    En este caso, el valor de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores de los valores
    Se trata de un Índices de valores más bajos y más altos durante un período determinado
    En el caso de los registros, el número de datos que se registran en el archivo es el número de datos que se registran.
    SUMO Resumen
    SUM ((Records[Close],Período de tiempo = 30) = Matriz ((outReal)
  • Cycle Indicators:

    Indicador Descripción
    Se aplicará el método de cálculo de las emisiones de CO2 en el caso de las emisiones de gases de efecto invernadero Transformación de Hilbert - Período de ciclo dominante
    HT_DCPERIOD ((Records[Close]) = Array ((outReal)
    Se trata de una serie de datos. Transformación de Hilbert - Fase del ciclo dominante
    En este caso, el valor de los datos de la matriz es el valor de los datos de la matriz de la matriz.
    Se aplicará la siguiente regla: Transformación de Hilbert - Componentes del fasor
    HT_PHASOR ((Records[Close]) = [Array ((outInPhase),Array ((outQuadrature) ]
    Se trata de un sistema de información. Transformación de Hilbert - Onda sinusoidal
    En este caso, el valor de la función de la función de la función de la función de la función de la función de la función de la función de la función de la función de la función de la función de la función de la función de la función de la función de la función de la función de la función de la función.
    El número de puntos de referencia es el siguiente: Transformación de Hilbert - Tendencia frente al modo de ciclo
    HT_TRENDMODE ((Records[Close]) = Array ((outInteger)
  • Volatility Indicators:

    Indicador Descripción
    El ATR Rango verdadero medio
    ATR ((Records[High,Low,Close],Período de tiempo = 14) = Array ((outReal)
    NATR Rango verdadero promedio normalizado
    NATR ((Records[High,Low,Close],Período de tiempo = 14) = Matriz ((outReal)
    El nombre de la Rango verdadero
    TRANGE ((Records[High,Low,Close]) = Array ((outReal)
  • Overlap Studies:

    Indicador Descripción
    Las entidades de crédito y de crédito Las bandas de Bollinger
    BBANDS ((Records[Close],Time Period = 5,Desviaciones hacia arriba = 2,Desviaciones hacia abajo = 2,MA Tipo = 0) = [Array ((outRealUpperBand),Array ((outRealMiddleBand),Array ((outRealLowerBand) ]
    El DEMA Promedio móvil exponencial doble
    DEMA ((Records[Close],Período de tiempo = 30) = Array ((outReal)
    El EMA Promedio móvil exponencial
    EMA ((Records[Close],Período de tiempo = 30) = Array ((outReal)
    Se trata de una línea de tendencia. Transformación de Hilbert - Tendencia instantánea
    En este caso, el valor de la línea de referencia es el valor de la línea de referencia.
    El KAMA Promedio móvil adaptativo de Kaufman
    KAMA ((Records[Close],Período de tiempo = 30) = Array ((outReal)
    - ¿Qué es? Promedio móvil
    MA ((Records[Close],Período de tiempo = 30,MA Tipo = 0) = Matriz ((outReal)
    - ¿ Por qué? Mediana móvil adaptativa de MESA
    MAMA ((Records[Close],Límite rápido = 0.5,Límite lento = 0.05) = [Array ((outMAMA),Array ((outFAMA) ]
    Punto medio Punto medio del período
    MIDPOINT ((Records[Close],Período de tiempo = 14) = Array ((outReal)
    Precio medio Precio del punto medio durante el período
    MIDPRICE ((Records[High,Low],Time Period = 14) = Array ((outReal)
    Las medidas de seguridad SAR parabólico
    SAR ((Records[High,Low],Factor de aceleración = 0,02,AF máximo = 0,2) = Array ((outReal)
    El SAREXT SAR parabólica - extendida
    SAREXT ((Registros[Alto, Bajo],Valor de inicio = 0,Offset en el sentido inverso = 0,AF Init Largo = 0.02,AF Largo = 0.02,AF Máximo Largo = 0.2,AF Init Corto = 0.02,AF Corto = 0.02,AF Máximo Corto = 0.2) = Array ((outReal)
    La SMA Promedio móvil simple
    SMA ((Records[Close],Período de tiempo = 30) = Array ((outReal)
    T3 La media móvil exponencial triple (T3)
    T3 ((Records[Close],Período de tiempo = 5,Factor de volumen = 0.7) = Array ((outReal)
    TEMA (en inglés) Promedio móvil exponencial triple
    TEMA ((Records[Close],Período de tiempo = 30) = Matriz ((outReal)
    Trima Promedio móvil triangular
    TRIMA ((Records[Close],Período de tiempo = 30) = Array ((outReal)
    La WMA Promedio móvil ponderado
    WMA ((Records[Close],Período de tiempo = 30) = Array ((outReal)
  • Statistic Functions:

    Indicador Descripción
    Se trata de una serie de datos. Regresión lineal
    LINEARREG ((Records[Close],Período de tiempo = 14) = Array ((outReal)
    El valor de las emisiones de CO2 Ángulo de regresión lineal
    LINEARREG_ANGLE ((Records[Close],Período de tiempo = 14) = Array ((outReal)
    Se puede utilizar el código de código de la aplicación. Intercepción de regresión lineal
    LINEARREG_INTERCEPT ((Records[Close],Periodo de tiempo = 14) = Array ((outReal)
    El valor de las partidas de los valores de las partidas Pendiente de regresión lineal
    LINEARREG_SLOPE ((Records[Close],Periodo de tiempo = 14) = Array ((outReal)
    Se trata de una Desviación estándar
    STDDEV ((Records[Close],Periodo de tiempo = 5,Desviaciones = 1) = Matriz ((outReal)
    El TSF Pronóstico de serie temporal
    TSF ((Records[Close],Período de tiempo = 14) = Matriz ((outReal)
    El VAR Variación
    VAR ((Records[Close],Período de tiempo = 5,Desviaciones = 1) = Array ((outReal)
  • Momentum Indicators:

    Indicador Descripción
    ADX Indice de movimiento direccional medio
    ADX ((Registros[Alto, Bajo, Cerrar],Período de tiempo = 14) = Array ((outReal)
    ADXR Clasificación media del índice de movimiento direccional
    ADXR ((Records[High,Low,Close],Período de tiempo = 14) = Array ((outReal)
    Aplicación de las normas Oscilador de precios absoluto
    APO ((Records[Close],Periodo rápido = 12,Periodo lento = 26,MA Tipo = 0) = Array ((outReal)
    ¿Qué quieres decir? Aroon, ¿qué quieres decir?
    AROON ((Records[High,Low],Período de tiempo = 14) = [Array ((outAroonDown),Array ((outAroonUp) ]
    AROONOSC Oscilador de Aroon
    AROONOSC ((Records[Alto, Bajo],Período de tiempo = 14) = Array ((outReal)
    El BOP El equilibrio del poder
    BOP ((Records[Open,High,Low,Close]) = Array ((outReal))
    CCI Indice de canales de productos básicos
    CCI ((Records[High,Low,Close],Período de tiempo = 14) = Array ((outReal)
    OCM Oscilador de impulso de Chande
    CMO ((Registros[Cerrar],Período de tiempo = 14) = Matriz ((outReal)
    DX Indice de movimiento direccional
    DX ((Records[High,Low,Close],Período de tiempo = 14) = Array ((outReal)
    El MACD Promedio móvil de convergencia/divergencia
    MACD ((Récords[Close],Periodo rápido = 12,Periodo lento = 26,Periodo de señal = 9) = [Array ((outMACD),Array ((outMACDSignal),Array ((outMACDHist) ]
    El código MACDEXT MACD con tipo de MA controlable
    MACDEXT ((Records[Close],Periodo rápido = 12,MA rápido = 0,Periodo lento = 26,MA lento = 0,Periodo de señal = 9,MA señal = 0) = [Array(outMACD),Array ((outMACDSignal),Array(outMACDHist]
    El MACDFIX Medios móviles de convergencia/divergencia fijación 12/26
    MACDFIX ((Records[Close],Periodo de señal = 9) = [Array ((outMACD),Array ((outMACDSignal),Array ((outMACDHist) ]
    Financiamiento por cuenta ajena Índice de flujo de dinero
    MFI ((Registros[Alto, Bajo, Cerrado, Volumen],Período de tiempo = 14) = Matriz ((extraReal)
    Se trata de una serie de Indicador de dirección menos
    MINUS_DI ((Registros[Alto, Bajo, Cerrar],Período de tiempo = 14) = Array ((outReal)
    Se trata de un sistema de gestión de datos. Movimiento en dirección negativa
    MINUS_DM ((Registros[Alto, Bajo],Periodo de tiempo = 14) = Array ((outReal)
    - ¿ Por qué? Impulso
    MOM ((Records[Close],Período de tiempo = 10) = Array ((outReal)
    Se trata de un sistema de gestión de datos. Indicador de dirección más
    PLUS_DI ((Registros[Alto, Bajo, Cerrar],Período de tiempo = 14) = Array ((outReal)
    Se trata de un documento de identificación. Más el movimiento direccional
    PLUS_DM ((Registros[Alto, Bajo],Período de tiempo = 14) = Array ((outReal)
    PPO Oscilador de precios por porcentaje
    PPO ((Records[Close],Periodo rápido = 12,Periodo lento = 26,MA Tipo = 0) = Array ((outReal)
    La ROC Tasa de cambio: (precio/previo precio) -1) * 100
    ROC ((Records[Close],Período de tiempo = 10) = Matriz ((outReal)
    El ROCP Tasa de cambio Porcentaje: (precio-previo al precio) /previo al precio
    ROCP ((Records[Close],Período de tiempo = 10) = Array ((outReal)
    RECR Ratio de tasa de cambio: (precio/prevPrice)
    ROCR ((Records[Close],Período de tiempo = 10) = Array ((outReal)
    RECR100 Escala de variación del índice 100: (precio/previo precio) *100
    ROCR100 ((Records[Close],Time Period = 10) = Array ((outReal))
    Indicador de riesgo Indice de fuerza relativa
    RSI ((Records[Close],Período de tiempo = 14) = Matriz ((outReal)
    STOCH Estocástico
    STOCH ((Registros [Alto, Bajo, Cerrado],Periodo rápido-K = 5,Periodo lento-K = 3,Periodo lento-K MA = 0,Periodo lento-D = 3,Periodo lento-D MA = 0) = [Array(outSlowK),Array(outSlowD]
    STOCHF Rápido estocástico
    STOCHF ((Registros [Alto, Bajo, Cerrado],Periodo rápido-K = 5,Periodo rápido-D = 3,Periodo rápido-D MA = 0) = [Array ((outFastK),Array ((outFastD) ]
    STOCHRSI Indice de fuerza relativa estocástico
    STOCHRSI ((Registros[Cerrar],Período de tiempo = 14,Período rápido-K = 5,Período rápido-D = 3,Período rápido-D MA = 0) = [Array(outFastK),Array(outFastD]
    TRIX La tasa de cambio de un día (ROC) de una EMA triple lisa
    TRIX ((Records[Close],Período de tiempo = 30) = Array ((outReal)
    Las condiciones de los productos: Oscilador definitivo
    ULTOSC ((Records[High,Low,Close],Primero período = 7,Segundo período = 14,Tercer período = 28) = Array ((outReal)
    ¿Qué es esto? Williams % R
    WILLR ((Registros [Alto, Bajo, Cerrar], Período de tiempo = 14) = Array ((outReal)
  • Price Transform:

    Indicador Descripción
    Precio medio Precio medio
    AVGPRICE ((Records[Open,High,Low,Close]) = Array ((outReal))
    Medición de los costes Precio medio
    MEDPRICE ((Records[High,Low]) = Array ((outReal)
    Tipo de precio Precio típico
    TYPPRICE ((Records[High,Low,Close]) = Array ((outReal)
    Precio del producto Precio de cierre ponderado
    WCLPRICE ((Records[High,Low,Close]) = Array ((outReal)

Datos fundamentales

La plataforma de comercio de FMZ Quant admite backtesting y consulta de varios datos fundamentales en el bot. Los datos fundamentales son proporcionados en tiempo real por el centro de datos de la plataforma de comercio de FMZ Quant, y el centro de datos continuará recopilando y resumiendo varios datos fundamentales.

Invocación de datos

Utilizaciónexchange.GetData(Source)La función para obtener los datos fundamentales. Los datos fundamentales de la criptomoneda no se han recopilado temporalmente.

Formato de datos

Los datos fundamentales de la criptomoneda no se han recopilado temporalmente.

Extensión de la API de la plataforma FMZ

La plataforma Quant Trading de FMZ admite la invocación programática de varias funciones de la plataforma, y ha abierto la API extendida.

Apoya la extensión de administración de autoridad de API, como se muestra en la figura:

img

Permite la nueva adiciónAPI KEYPara tener todos los permisos.*En el cuadro de entrada de permisos de API para abrir todos los permisos de interfaz. Especifique permisos de interfaz específicos e introduzca los nombres de funciones API extendidos correspondientes, separados por comas, comoGetRobotDetail, DeleteRobot, es decir, dar estoAPI KEYel permiso paraObtener la interfaz del bot información detalladayborrar la interfaz del bot.

Crear ApiKey

img

Código de devolución de API

Descripción Código
Ejecución exitosa 0
Clave de API equivocada 1
Firma equivocada. 2
Error de no uso 3
Método incorrecto 4
Parámetro incorrecto 5
Error interno desconocido 6

Estatus del bot

(Inicio normal)

Estatus de las personas Código
En inactividad 0
En funcionamiento 1
Paración 2
Se ha firmado. 3
Se detiene. 4
La estrategia tiene errores. 5

- ¿ Qué es eso?

Estatus de las personas Código
La estrategia ha expirado, y por favor póngase en contacto con el escritor para comprarlo de nuevo -1
No se ha encontrado ningún docker -2
Error de compilación de la estrategia -3
El bot ya está funcionando. -4
Saldo insuficiente -5
El número de estrategias concurrentes excede el límite -6

Métodos de verificación

Verificación de fichas

Utilizaciónmd5método de cifrado para verificar.

Python, ejemplos de llamadas de lenguaje 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)
}

Verificación directa

Apoya la verificación sintoken(pasado)secret_keyPor ejemplo, la URL que da directamente instrucciones interactivas al bot, que se puede utilizar paraTradingViewo elWebHooken otros casos. ParaCommandRobot(RobotId, Cmd)función, el parámetrononceno requiere verificación, y la frecuencia de acceso y los tiempos de visita de la interfaz no están limitados.

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

En la circunstancia de que se apoye la verificación directa, sóloCommandRobotInterfaz es compatible para obtener elBodyPor ejemplo, las configuraciones en elWebHook URLde lasTradingView:

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

Preste atención a la configuración de acuerdo con el siguiente formato:args=[130350,+""], en el que130350¿Es el robot?IDde la plataforma de comercio de FMZ Quant.

Configuración en el cuadro de mensaje (los datos Body solicitados a enviar):

  • El formato JSON:

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

    El robot conIDde las186515puede recibir la instrucción interactiva:{"close": 39773.75, "name": "aaa"}.

  • Formato de texto:

    BTCUSDTPERP Crossing 39700.00 close: {{close}}
    

    El robot conIDde las186515puede recibir la instrucción interactiva:BTCUSDTPERP Crossing 39700.00 close: 39739.4.

Ejemplos dePython & GolangLlamadas por idioma:

#!/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)
}

Utilice la API extendida en FMZ Quant para realizar el comercio de señales de alerta TradingView

Explicación de la API extendida

  • La API ampliada de la plataforma de comercio de FMZ Quant

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

    El símbolo anterior?está seguido por los parámetros de solicitud.

    Los parámetros de solicitud descritos enPythonLenguaje:

    {
        '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'    
    }
    

    Cada nombre de parámetro está separado por el carácter&, y los nombres y valores de los parámetros están relacionados con el símbolo=. La URL completa de la solicitud (tomandomethod=GetNodeListpor ejemplo):

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

    Presta atención a que no haysecret_keyentre los parámetros de solicitud.

  • Método de firma En los parámetros de solicitud, el parámetrosignes una cadena cifrada, y el método de cifrado es el siguiente.

    Según el formato:

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

    Después de concatenar las cadenas, useEl MD5algoritmo de cifrado para cifrar la cadena y convertirla en un valor de cadena de datos hexadecimal, referido como el valor del parámetrosign.

    La referenciaPythonCódigo de la parte de firma:

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

GetNodeList()devuelve la lista de docker de la cuenta de la plataforma de negociación FMZ Quant correspondiente a laAPI KEYen la solicitud.

  • Parámetro No hay

  • Valor de retorno

    {
        "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 (()

GetRobotGroupList()devuelve la lista de agrupación de bots de la cuenta de la plataforma de comercio de FMZ Quant correspondiente a laAPI KEYen la solicitud.

  • Parámetro No hay

  • Valor de retorno

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

Obtenga la lista de plataformas ((()

GetPlatformList()devuelve la lista de los intercambios que se han añadido por la cuenta de la plataforma de negociación FMZ Quant correspondiente a laAPI KEYen la solicitud.

  • Parámetro No hay

  • Valor de retorno

    {
        "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
        }
    }
    

GetRobotList (¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

GetRobotList(offset, length, robotStatus, label)devuelve la lista de robots de la cuenta de la plataforma de negociación FMZ Quant correspondiente a laAPI KEYen la solicitud.

  • Parámetrooffset, lengthyrobotStatusson de tipo entero, ylabeles de tipo de cadena.

    • offset
    • length
    • robotStatus(pasar -1 significa obtener todo)
    • label(etiqueta personalizada; todos los bots con la etiqueta pueden ser coqueteados)

    ParaPythonEjemplo de código, consulte lo anteriorMétodo de verificación - Verificación de fichas, y el siguiente es elPythonEjemplo de invocación:print api('GetRobotList', 'member2')Imprimir la información de todos los robots con la etiqueta personalizadamember2. print api('GetRobotList', 0, 5, -1, 'member2')páginas de 0 a 5 y una lista de hasta 5 robotsmember2.

  • Valor de retorno

    {
        "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
        }
    }
    

ComandoRobot(...)

CommandRobot(RobotId, Cmd)La interfaz envía el comando interactivo al robot correspondiente (robotID: RobotId) de laAPI KEYen la solicitud de la cuenta FMZ Quant (el comando interactivo es capturado por elGetCommand()API llamado en la estrategia y los retornos).

  • ParámetroRobotIdes de tipo entero, es decir, el botID; Cmdes de tipo cadena, que envía comandos interactivos a los bots.

    • RobotId, el botID, puede obtenerse mediante elGetRobotList(...) interface.
    • Cmdes el comando interactivo enviado al bot; el comando será capturado por la funciónGetCommand(), que activa la lógica interactiva en la estrategia (para realizar la lógica interactiva en la estrategia, consulte elGetCommand()función en el fichero).
  • Valor de retorno

    {
        // 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
        }
    }
    

StopRobot ((RobotId))

StopRobot(RobotId)deja de ejecutar el bot con el ID especificado (robotID: RobotId), correspondiente a laAPI KEYen la solicitud de la cuenta FMZ Quant.

  • ParámetroRobotIdes de tipo entero, es decir, el botID, que se puede obtener medianteGetRobotList(...)interfaz;StopRobot(RobotId)La interfaz devuelve el código de estado del robot detenido.

  • Valor de retorno

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

Reinicie el robot

RestartRobot(RobotId, Settings)Reinicia el robot con el ID especificado (robotID: RobotId), correspondiente a laAPI KEYen la solicitud de la cuenta FMZ Quant.

Si el robot es creado por la API ampliada, la API ampliadaRestartRobot (RobotId, Settings)Se debe utilizar para reiniciar, y elSettingsEl parámetro debe ser pasado. El robot creado en la página de la plataforma se puede reiniciar a través de la API extendida o haciendo clic en el botón de la página.SettingsParámetro, o simplemente pasar el elRobotIdParámetro. Si sólo pasa elRobotIdParámetro, arranque el bot de acuerdo con la configuración actual del bot.

  • Parámetro

    • Sin configurar el bot, el parámetro de la estrategiaSettings: RobotIdes de tipo entero; el robotIDpuede obtenerse medianteGetRobotList(...).

    • Con la configuración del bot, el parámetro de estrategiaSettings: RobotIdes de tipo entero; el botIDpuede obtenerse medianteGetRobotList(...). Settingses deJSONtipo de objeto.

      Settingsel formato del parámetro como sigue:

      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"}}
          ]
      }
      

      Nota: Cuando utiliza la información confidencial, como la plataformaAPI KEY, incluidos"meta":{"AccessKey":"xxx","SecretKey":"yyy"}en la configuración deeid, usted debe saber que FMZ no almacena los datos. Los datos serán enviados directamente al programa docker, por lo que esta información debe ser configurada cada vez que el bot se crea o se reinicia.

      Para reiniciar el bot que utiliza el complemento para apoyar el intercambio, al configurar elSettingsParámetro, debe hacer las siguientes configuraciones para elexchangesel atributo:

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

      labelatributo es establecer una etiqueta para el objeto de intercambio accesado por el actualProtocolo general, que puede obtenerse mediante elexchange.GetLabel()El objetivo de la estrategia es:

  • Valor de retorno

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

GetRobotDetail ((RobotId))

GetRobotDetail(RobotId)Obtiene la información detallada sobre el robot con el ID especificado (robotID: RobotId), correspondiente a laAPI KEYen la solicitud de la cuenta de la plataforma de negociación FMZ Quant.

  • ParámetroRobotIdes de tipo entero; el robotIDpuede obtenerse medianteGetRobotList(...).

  • Valor de retorno

    {
        "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
        }
    }
    

    Elsummarysi necesita más datos de información de la barra de estado, puede utilizar elGetRobotLogsInterfaz para obtener (cuandoGetRobotLogsObtiene la información de la barra de estado, el camposummaryes el último dato).

    La descripción del atributo destrategy_exchange_pairs, por ejemplo, los siguientes datos:

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

    Los primeros datos60representa el período predeterminado de la línea K establecido por el bot es de 1 minuto, es decir, 60 segundos.

    [44314,42960,15445,14703]es el objeto de intercambioeidconfigurado para el bot (según el orden de adición).[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]es el par de operaciones establecido para el objeto de intercambio configurado por el bot (en orden de suma y en correspondencia uno a uno coneid).

Obtener Cuenta

GetAccount()devuelve la información de la cuenta correspondiente a laAPI KEYen la solicitud de la cuenta de la plataforma de negociación FMZ Quant.

  • Parámetro No hay

  • Valor de retorno

    {
        "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
        }
    }
    

¿Qué quieres?


Más.