// 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() + "`");
}
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 llamarCCI
Indicador:
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) |
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.
Utilizaciónexchange.GetData(Source)
La función para obtener los datos fundamentales.
Los datos fundamentales de la criptomoneda no se han recopilado temporalmente.
Los datos fundamentales de la criptomoneda no se han recopilado temporalmente.
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:
Permite la nueva adiciónAPI KEY
Para 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 KEY
el permiso paraObtener la interfaz del bot información detalladayborrar la interfaz del bot.
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 |
(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 |
Utilizaciónmd5
mé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)
}
Apoya la verificación sintoken
(pasado)secret_key
Por ejemplo, la URL que da directamente instrucciones interactivas al bot, que se puede utilizar paraTradingView
o elWebHook
en otros casos.
ParaCommandRobot(RobotId, Cmd)
función, el parámetrononce
no 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óloCommandRobot
Interfaz es compatible para obtener elBody
Por ejemplo, las configuraciones en elWebHook URL
de 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?ID
de la plataforma de comercio de FMZ Quant.
Configuración en el cuadro de mensaje (los datos
El formato JSON:
{"close": {{close}}, "name": "aaa"}
El robot conID
de las186515
puede recibir la instrucción interactiva:{"close": 39773.75, "name": "aaa"}
.
Formato de texto:
BTCUSDTPERP Crossing 39700.00 close: {{close}}
El robot conID
de las186515
puede recibir la instrucción interactiva:BTCUSDTPERP Crossing 39700.00 close: 39739.4
.
Ejemplos dePython
& Golang
Llamadas 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
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 enPython
Lenguaje:
{
'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=GetNodeList
por 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_key
entre los parámetros de solicitud.
Método de firma
En los parámetros de solicitud, el parámetrosign
es 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 referenciaPython
Có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()
devuelve la lista de docker de la cuenta de la plataforma de negociación FMZ Quant correspondiente a laAPI KEY
en 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()
devuelve la lista de agrupación de bots de la cuenta de la plataforma de comercio de FMZ Quant correspondiente a laAPI KEY
en 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
}
}
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 KEY
en 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(offset, length, robotStatus, label)
devuelve la lista de robots de la cuenta de la plataforma de negociación FMZ Quant correspondiente a laAPI KEY
en la solicitud.
Parámetrooffset
, length
yrobotStatus
son de tipo entero, ylabel
es de tipo de cadena.
offset
length
robotStatus
(pasar label
(etiqueta personalizada; todos los bots con la etiqueta pueden ser coqueteados)ParaPython
Ejemplo de código, consulte lo anteriorMétodo de verificación - Verificación de fichas, y el siguiente es elPython
Ejemplo 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
}
}
CommandRobot(RobotId, Cmd)
La interfaz envía el comando interactivo al robot correspondiente (robotID
: RobotId
) de laAPI KEY
en la solicitud de la cuenta FMZ Quant (el comando interactivo es capturado por elGetCommand()
API llamado en la estrategia y los retornos).
ParámetroRobotId
es de tipo entero, es decir, el botID
; Cmd
es de tipo cadena, que envía comandos interactivos a los bots.
RobotId
, el botID
, puede obtenerse mediante elGetRobotList(...)
interface.Cmd
es 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)
deja de ejecutar el bot con el ID especificado (robotID
: RobotId
), correspondiente a laAPI KEY
en la solicitud de la cuenta FMZ Quant.
ParámetroRobotId
es 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
}
}
RestartRobot(RobotId, Settings)
Reinicia el robot con el ID especificado (robotID
: RobotId
), correspondiente a laAPI KEY
en 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 elSettings
El 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.Settings
Parámetro, o simplemente pasar el elRobotId
Parámetro. Si sólo pasa elRobotId
Pará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
:
RobotId
es de tipo entero; el robotID
puede obtenerse medianteGetRobotList(...)
.
Con la configuración del bot, el parámetro de estrategiaSettings
:
RobotId
es de tipo entero; el botID
puede obtenerse medianteGetRobotList(...)
.
Settings
es deJSON
tipo de objeto.
Settings
el 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 elSettings
Parámetro, debe hacer las siguientes configuraciones para elexchanges
el atributo:
{"eid": "Exchange", "label" : "testXXX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "1234", "Front" : "http://127.0.0.1:6666/XXX"}}
label
atributo 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)
Obtiene la información detallada sobre el robot con el ID especificado (robotID
: RobotId
), correspondiente a laAPI KEY
en la solicitud de la cuenta de la plataforma de negociación FMZ Quant.
ParámetroRobotId
es de tipo entero; el robotID
puede 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
}
}
Elsummary
si necesita más datos de información de la barra de estado, puede utilizar elGetRobotLogs
Interfaz para obtener (cuandoGetRobotLogs
Obtiene la información de la barra de estado, el camposummary
es 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 datos60
representa 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 intercambioeid
configurado 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
).
GetAccount()
devuelve la información de la cuenta correspondiente a laAPI KEY
en 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
}
}