// 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 os parâmetros das seguintes funções:Records[Close]
representa o preço de fechamento nos dados de linha k recebidos,Array()
representa uma matriz, eArray(outInteger)
representa a devolução de uma matriz de dados inteiros.
Exemplo de código de chamadaCCI
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 | Descrição |
---|---|
CDL2CROWS | Dois Corvos |
CDL2CROWS ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDL3BLACKCROWS | Três Corvos Negros |
CDL3BLACKCROWS ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDL3 DENTRO | Três dentro para cima/abaixo |
CDL3INSIDE ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDL3LINESTRIKE | Greve de três linhas |
CDL3LINESTRIKE ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDL3FOLHO | Três fora para cima/para baixo |
CDL3OUTSIDE ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDL3 Estrela do Sul | Três estrelas no sul |
CDL3STARSINSOUTH ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDL3SOLDADOS Brancos | Três soldados brancos avançando |
CDL3WHITESOLDIERS ((Registros [Open,High,Low,Close]) = Matriz ((outInteger) | |
CDLABANDONEDBABY | Bebê abandonado |
CDLABANDONEDBABY ((Registros [Open,High,Low,Close],Penetração = 0.3) = Array ((outInteger) | |
CDLADVANCEBLOCK | Bloqueio antecipado |
CDLADVANCEBLOCK ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLBELTHOLD | Segurança do cinto |
CDLBELTHOLD ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLBRAKAWAY | Separação |
CDLBREAKAWAY ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLCLOSING MARUBOZU | Fechando o Marubozu |
CDLCLOSINGMARUBOZU ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLCONCEALBABYSWALL (em inglês) | Escondendo a Baby Swallow |
CDLCONCEALBABYSWALL ((Registros [Open,High,Low,Close]) = Matriz ((outInteger) | |
CDLContra-ataque | Contra-ataque. |
CDLCOUNTERATTACK ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLDARKCLOUDCOVER | Cobertura de nuvens escuras |
CDLDARKCLOUDCOVER ((Records[Open,High,Low,Close],Penetração = 0.5) = Array ((outInteger) | |
CDLDOJI | Doji |
CDLDOJI ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLDOJISTAR | Estrela Doji |
CDLDOJISTAR ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
O CDDRAGONFLYDOJI | Doji da libélula |
CDLDRAGONFLYDOJI ((Registros [Open,High,Low,Close]) = Matriz ((outInteger) | |
CDLENGULFING | Padrão de engolimento |
CDLENGULFING ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
O CDVENINGDOJISTAR | Estrela do Doji |
CDLEVENINGDOJISTAR ((Records[Open,High,Low,Close],Penetração = 0.3) = Array ((outInteger) | |
CDLEVENINGSTAR | Estrela da Noite |
CDLEVENINGSTAR ((Records[Open,High,Low,Close],Penetração = 0.3) = Array ((outInteger) | |
CDLGAPSIDEESIDEBLANCO | Linhas brancas laterais de abertura para cima/para baixo |
CDLGAPSIDESIDESWHITE ((Registros [Open,High,Low,Close]) = Array ((outInteger) | |
CDLGRAVESTONEDOJI | Doji da lápide |
CDLGRAVESTONEDOJI ((Records[Open,High,Low,Close]) = Matriz ((outInteger) | |
CDLHAMMER | Martelado |
CDLHAMMER ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLHANGINGMAN | Um enforcador |
CDLHANGINGMAN ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLHARAMI | Padrão Harami |
CDLHARAMI ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLHARAMICROSS | Padrão Harami |
CDLHARAMICROSS ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDHIGHWAVE | Velas de ondas altas |
CDLHIGHWAVE ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLHIKKAKE | Padrão Hikkake |
CDLHIKKAKE ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLHIKKAKEMOD | Padrão Hikkake modificado |
CDLHIKKAKEMOD ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLHOMINGPIGEON | Pombo-caminhador |
CDLHOMINGPIGEON ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLIDENTICAL3CROWS (em inglês) | Três corvos idênticos |
CDLIDENTICAL3CROWS ((Records[Open,High,Low,Close]) = Matriz ((outInteger) | |
CDLINNEC | Padrão no pescoço |
CDLINNECK ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLINVERTEDHAMMER | Martelo invertido |
CDLINVERTEDHAMMER ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLKICK | A dar pontapés. |
CDLKICKING ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLKICKINGBYLENGTH | Chutar - touro/urso determinado pelo marubozu mais longo |
CDLKICKINGBYLENGTH ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLLADDERBOTTOM | Base da escada |
CDLLADDERBOTTOM ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLLONGLEGGEDDOJI (em inglês) | Dojz de Pernas Longas |
CDLLONGLEGGEDDOJI ((Registros [Open,High,Low,Close]) = Matriz ((outInteger) | |
CDLLONGLINE | Lâmpada de linha longa |
CDLLONGLINE ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLMARUBOZU | Marubozu |
CDLMARUBOZU ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLMATCHINGLOW | Coincidência baixa |
CDLMATCHINGLOW ((Registros [Open,High,Low,Close]) = Matriz ((outInteger) | |
CDLMATHOLD | Segurança do tapete |
CDLMATHOLD ((Registros [Open,High,Low,Close],Penetração = 0.5) = Matriz ((outInteger) | |
CDMORNINGDOJISTAR | Estrela do Doji da manhã |
CDLMORNINGDOJISTAR ((Registros [Open,High,Low,Close],Penetração = 0.3) = Array ((outInteger) | |
CDLMORNINGSTAR | Estrela da Manhã |
CDLMORNINGSTAR ((Records[Open,High,Low,Close],Penetração = 0.3) = Array ((outInteger) | |
CDLONNECK | Padrão no pescoço |
CDLONNECK ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CIDLPIERCE | Padrão de perfuração |
CDLPIERCING ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLRICKSHAWMAN | O homem do riquixá |
CDLRICKSHAWMAN ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
MÉTODOS CDLRISEFALL3 | Três métodos de subida/baixa |
CDLRISEFALL3METHODS ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
LÍNIA DE SEPARATÇÃO | Linhas de separação |
CDLSEPARATINGLINES ((Registros [Open,High,Low,Close]) = Matriz ((outInteger) | |
CDLSHOOTINGSTAR | Estrela cadente |
CDLSHOOTINGSTAR ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLSORTLINE | Lâmpada de linha curta |
CDLSHORTLINE ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDL SPINNINGTOP | - O Spinning Top. |
CDLSPINNINGTOP ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
Padrão CDLSTALLED | Padrão parado |
CDLSTALLEDPATTERN ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLSTICKSANDWICH (em inglês) | Sandwich de pau |
CDLSTICKSANDWICH ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLTAKURI | Takuri (Dragonfly Doji com sombra inferior muito longa) |
CDLTAKURI ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLTASUKIGAP | Falta de Tasuki |
CDLTASUKIGAP ((Registros [Open,High,Low,Close]) = Array ((outInteger) | |
CDLTHRUSTING | Padrão de empurrão |
CDLTHRUSTING ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLTRISTAR | Padrão Tristar |
CDLTRISTAR ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLUNIQUE3RIVER | Rio Unique 3 |
CDLUNIQUE3RIVER ((Records[Open,High,Low,Close]) = Array ((outInteger) | |
CDLUPSIDEGAP2CROWS (em inglês) | O espaço de dois corvos |
CDLUPSIDEGAP2CROWS ((Registros [Open,High,Low,Close]) = Matriz ((outInteger) | |
CDLXSIDEGAP3 MÉTODOS | Diferença de alta/baixa três métodos |
CDLXSIDEGAP3METHODS ((Records[Open,High,Low,Close]) = Array ((outInteger) |
Volume Indicators
:
Indicador | Descrição |
---|---|
AD | Chaikin A/D Line |
AD ((Records[High,Low,Close,Volume]) = Array ((outReal) | |
ADOSC | Oscilador Chaikin A/D |
ADOSC ((Records[High,Low,Close,Volume],Fast Period = 3,Slow Period = 10) = Array ((outReal) | |
OBV | Sobre o volume do balanço |
OBV ((Records[Close],Records[Volume]) = Array ((outReal) |
Math Transform
:
Indicador | Descrição |
---|---|
ACOS | ACos trigonométrico vetorial |
ACOS ((Records[Close]) = Array ((outReal) | |
ASIN | ASin vectorial trigonométrico |
ASIN ((Records[Close]) = Array ((outReal) | |
ATAN | ATan trigonométrico vetorial |
ATAN ((Records[Close]) = Array ((outReal) | |
CEIL | Tecto vetorial |
CEIL ((Records[Close]) = Matriz ((outReal) | |
COS | Cos trigonométricos vetoriais |
COS ((Records[Close]) = Array ((outReal) | |
COSH | Cosh trigonométrico vetorial |
COSH ((Records[Close]) = Array ((outReal) | |
EXP | Aritmética vetorial Exp |
EXP ((Records[Close]) = Matriz ((outReal) | |
Piso | Piso vetorial |
FLOOR ((Records[Close]) = Array ((outReal) | |
LN | Vector Log Natural |
LN ((Records[Close]) = Array ((outReal) | |
LOG10 | Vector Log10 |
LOG10 ((Records[Close]) = Array ((outReal) | |
SIN | Vector Trigonometric Sin |
SIN ((Records[Close]) = Array ((outReal) | |
SINH | Vector Trigonometric Sinh |
SINH ((Records[Close]) = Array ((outReal) | |
SQRT | Raiz quadrada do vetor |
SQRT ((Records[Close]) = Array ((outReal) | |
TAN | Tan trigonométrico vetorial |
TAN ((Records[Close]) = Array ((outReal) | |
TANH | Vector Trigonometric Tanh |
TANH ((Records[Close]) = Array ((outReal) |
Math Operators
:
Indicador | Descrição |
---|---|
Max. | Valor máximo durante um período especificado |
MAX ((Records[Close],Time Period = 30) = Array ((outReal) | |
MAXINDEX | Índice de valor mais elevado durante um período especificado |
MAXINDEX ((Records[Close],Time Period = 30) = Array ((outInteger) | |
MIN | Valor mais baixo durante um período especificado |
MIN ((Records[Close],Time Period = 30) = Array ((outReal) | |
MININDEX | Índice do valor mais baixo durante um período especificado |
MININDEX ((Records[Close],Time Period = 30) = Array ((outInteger) | |
MINMAX | Valores mais baixos e mais elevados durante um período especificado |
MINMAX ((Registros[Fechar],Período de tempo = 30) = [Array ((outMin),Array ((outMax) ] | |
MINMAXINDEX | Índices dos valores mais baixos e mais elevados durante um determinado período |
MinMAXINDEX ((Registros[Fechar],Período de tempo = 30) = [Array ((outMinIdx),Array ((outMaxIdx) ] | |
Total | Resumo |
SUM ((Records[Close],Time Period = 30) = Array ((outReal) |
Cycle Indicators
:
Indicador | Descrição |
---|---|
MT_DCPERIOD | Transformação de Hilbert - Período do ciclo dominante |
HT_DCPERIOD ((Records[Close]) = Matriz ((outReal) | |
MT_DCPHASE | Transformação de Hilbert - Fase do ciclo dominante |
HT_DCPHASE ((Records[Close]) = Matriz ((outReal) | |
HT_PHASOR | Transformação de Hilbert - Componentes de Fasor |
HT_PHASOR ((Records[Close]) = [Array ((outInPhase),Array ((outQuadrature) ] | |
MT_SINE | Transformação de Hilbert - SineWave |
HT_SINE ((Records[Close]) = [Array ((outSine),Array ((outLeadSine) ] | |
MT_TRENDMODE | Transformação de Hilbert - Modo de tendência versus ciclo |
HT_TRENDMODE ((Records[Close]) = Array ((outInteger) |
Volatility Indicators
:
Indicador | Descrição |
---|---|
ATR | Intervalo verdadeiro médio |
ATR ((Records[High,Low,Close],Time Period = 14) = Array ((outReal) | |
NATR | Intervalo verdadeiro médio normalizado |
NATR ((Records[High,Low,Close],Time Period = 14) = Array ((outReal) | |
Trange | Distância real |
TRANGE ((Records[High,Low,Close]) = Array ((outReal) |
Overlap Studies
:
Indicador | Descrição |
---|---|
BANCO DE BANCO | Bandeiras de Bollinger |
BBANDS ((Records[Close],Time Period = 5,Deviations up = 2,Deviations down = 2,MA Type = 0) = [Array ((outRealUpperBand),Array ((outRealMiddleBand),Array ((outRealLowerBand) ] | |
DEMA | Média móvel exponencial dupla |
DEMA ((Records[Close],Time Period = 30) = Array ((outReal) | |
EMA | Média móvel exponencial |
EMA ((Records[Close],Time Period = 30) = Array ((outReal) | |
MT_TRENDLINE | Transformação de Hilbert - Linha de tendência instantânea |
HT_TRENDLINE ((Records[Close]) = Matriz ((outReal) | |
KAMA | Média Móvel Adaptativa de Kaufman |
KAMA ((Records[Close],Time Period = 30) = Array ((outReal) | |
MA | Média móvel |
MA ((Records[Close],Time Period = 30,MA Type = 0) = Array ((outReal) | |
Mãe | Média móvel adaptativa MESA |
MAMA ((Records[Close],Fast Limit = 0.5,Slow Limit = 0.05) = [Array ((outMAMA),Array ((outFAMA) ] | |
Ponto médio | Ponto médio do período |
MIDPOINT ((Records[Close],Time Period = 14) = Array ((outReal) | |
Preço médio | Preço do ponto médio ao longo do período |
MIDPRICE ((Records[High,Low],Time Period = 14) = Array ((outReal) | |
SAR | SAR parabólico |
SAR ((Records[High,Low],Fator de aceleração = 0,02,AF máximo = 0,2) = Array ((outReal) | |
SAREXT | SAR parabólica - alargada |
SAREXT ((Registros[Alto, Baixo],Valor inicial = 0,Offset no reverso = 0,AF Init Long = 0.02,AF Long = 0.02,AF Max Long = 0.2,AF Init Short = 0.02,AF Short = 0.02,AF Max Short = 0.2) = Array ((outReal) | |
SMA | Média móvel simples |
SMA ((Records[Close],Time Period = 30) = Array ((outReal) | |
T3 | Média móvel exponencial tripla (T3) |
T3 ((Records[Close],Time Period = 5,Volume Factor = 0.7) = Array ((outReal) | |
TEMA | Média móvel exponencial tripla |
TEMA ((Records[Close],Time Period = 30) = Array ((outReal) | |
TRIMA | Média móvel triangular |
TRIMA ((Records[Close],Time Period = 30) = Array ((outReal) | |
WMA | Média móvel ponderada |
WMA ((Records[Close],Time Period = 30) = Array ((outReal) |
Statistic Functions
:
Indicador | Descrição |
---|---|
LINEARREG | Regressão linear |
LINEARREG ((Records[Close],Time Period = 14) = Array ((outReal) | |
LINEARREG_ANGLE | Ângulo de regressão linear |
LINEARREG_ANGLE ((Records[Close],Time Period = 14) = Array ((outReal) | |
LINEARREG_INTERCEPT | Interceptação de regressão linear |
LINEARREG_INTERCEPT ((Records[Close],Time Period = 14) = Array ((outReal) | |
LINEARREG_SLOPE | Inclinação de regressão linear |
LINEARREG_SLOPE ((Records[Close],Time Period = 14) = Array ((outReal) | |
STDDEV | Desvio padrão |
STDDEV ((Records[Close],Time Period = 5,Deviations = 1) = Array ((outReal) | |
TSF | Previsão de séries temporais |
TSF ((Records[Close],Time Period = 14) = Array ((outReal) | |
VAR | Variância |
VAR ((Records[Close],Time Period = 5,Deviations = 1) = Array ((outReal) |
Momentum Indicators
:
Indicador | Descrição |
---|---|
ADX | Índice médio de movimento direcional |
ADX ((Records[High,Low,Close],Time Period = 14) = Array ((outReal) | |
ADXR | Classificação média do índice de movimento direcional |
ADXR ((Records[High,Low,Close],Time Period = 14) = Array ((outReal) | |
APO | Oscilador de preços absoluto |
APO ((Records[Close],Periodo rápido = 12,Periodo lento = 26,MA Tipo = 0) = Array ((outReal) | |
AROON | Aroon |
AROON ((Records[High,Low],Time Period = 14) = [Array ((outAroonDown),Array ((outAroonUp) ] | |
AROONOSC | Oscilador Aroon |
AROONOSC ((Records[High,Low],Time Period = 14) = Array ((outReal) | |
BOP | Equilíbrio de Poder |
BOP ((Records[Open,High,Low,Close]) = Array ((outReal) | |
CCI | Índice do canal de mercadorias |
CCI ((Records[High,Low,Close],Time Period = 14) = Array ((outReal) | |
Organização comum de mercado | Oscilador de Momento de Chande |
CMO ((Records[Close],Time Period = 14) = Array ((outReal) | |
DX | Índice de movimento direcional |
DX ((Records[High,Low,Close],Time Period = 14) = Array ((outReal) | |
MACD | Média móvel de convergência/divergência |
MACD ((Records[Close],Periodo rápido = 12,Periodo lento = 26,Periodo de sinal = 9) = [Array ((outMACD),Array ((outMACDSignal),Array ((outMACDHist) ] | |
MACDEXT | MACD com tipo de MA controlável |
MACDEXT ((Records[Close],Periodo rápido = 12,MA rápido = 0,Periodo lento = 26,MA lento = 0,Periodo de sinal = 9,MA sinal = 0) = [Array(outMACD),Array(outMACDSignal),Array(outMACDHist] | |
MACDFIX | Média móvel de convergência/divergência 12/26 |
MACDFIX ((Registros[Fechar],Período de sinal = 9) = [Array ((outMACD),Array ((outMACDSignal),Array ((outMACDHist) ] | |
Finanças estrangeiras | Índice de fluxo de caixa |
MFI ((Records[High,Low,Close,Volume],Time Period = 14) = Array ((outReal) | |
Minus_DI | Indicador de direcção negativo |
MINUS_DI ((Records[High,Low,Close],Time Period = 14) = Array ((outReal) | |
MINUS_DM | - Movimento direcional |
MINUS_DM ((Registros[Alto, Baixo],Período de tempo = 14) = Matriz ((outReal) | |
Mãe | Impulso |
MOM ((Records[Close],Time Period = 10) = Array ((outReal) | |
PLUS_DI | Indicador de direcção |
PLUS_DI ((Records[High,Low,Close],Time Period = 14) = Array ((outReal) | |
PLUS_DM | Mais movimento direcional |
PLUS_DM ((Records[High,Low],Time Period = 14) = Array ((outReal) | |
PPO | Oscilador de preços percentual |
PPO ((Records[Close],Periodo rápido = 12,Periodo lento = 26,MA Tipo = 0) = Array ((outReal) | |
ROC | Taxa de variação: ((preço/preço anterior) -1) *100 |
ROC ((Records[Close],Time Period = 10) = Array ((outReal) | |
ROCP | Taxa de variação Percentagem: (preço-prevPrice)/prevPrice |
ROCP ((Records[Close],Time Period = 10) = Array ((outReal) | |
ROCR | Taxa de variação: (preço/prevPrice) |
ROCR ((Records[Close],Time Period = 10) = Array ((outReal) | |
ROCR100 | Taxa de variação do rácio 100 escala: (preço/prevPrice) * 100 |
ROCR100 ((Records[Close],Time Period = 10) = Array ((outReal) | |
RSI | Índice de força relativa |
RSI ((Records[Close],Time Period = 14) = Array ((outReal) | |
STOCH | Estocástico |
STOCH ((Registros [Alto, Baixo, Próximo],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, Baixo, Próximo],Periodo rápido-K = 5,Periodo rápido-D = 3,Periodo rápido-D MA = 0) = [Array(outFastK),Array(outFastD] | |
STOCHRSI | Índice de Força Relativa Estocástico |
STOCHRSI ((Records[Close],Período de tempo = 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 | Rate-of-Change (ROC) de 1 dia de uma EMA tripla suave |
TRIX ((Records[Close],Time Period = 30) = Array ((outReal) | |
ULTOSC | Oscilador Último |
ULTOSC ((Records[High,Low,Close],Primeiro Período = 7,Segundo Período = 14,Terceiro Período = 28) = Array ((outReal) | |
WILLR | Williams |
WILLR ((Records[High,Low,Close],Time Period = 14) = Array ((outReal) |
Price Transform
:
Indicador | Descrição |
---|---|
AVGPRICE | Preço médio |
AVGPRICE ((Records[Open,High,Low,Close]) = Array ((outReal) | |
MEDPRICE | Preço médio |
MEDPRICE ((Records[High,Low]) = Matriz ((outReal) | |
Tipo de preço | Preço típico |
TYPPRICE ((Records[High,Low,Close]) = Array ((outReal) | |
WCLPRICE | Preço de fechamento ponderado |
WCLPRICE ((Records[High,Low,Close]) = Array ((outReal) |
A plataforma FMZ Quant Trading suporta backtesting e consulta de vários dados fundamentais no bot. Os dados fundamentais são fornecidos em tempo real pelo centro de dados da plataforma FMZ Quant Trading, e o centro de dados continuará a coletar e resumir vários dados fundamentais.
Utilizaçãoexchange.GetData(Source)
Função para obter os dados fundamentais.
Os dados fundamentais da criptomoeda não foram coletados temporariamente.
Os dados fundamentais da criptomoeda não foram coletados temporariamente.
A plataforma FMZ Quant Trading suporta a invocação programática de várias funções da plataforma e abriu a API estendida.
Suporta a extensão de gerenciamento de autoridade de API, conforme mostrado na figura:
Permite que os novosAPI KEY
Pode entrar.*
na caixa de entrada de permissão da API para abrir todas as permissões da interface. Especifique permissões de interface específicas e insira os correspondentes nomes de função estendida da API, separados por vírgulas, comoGetRobotDetail, DeleteRobot
, isto é, dá-me istoAPI KEY
a autorização paraobter a interface do bot informações detalhadaseexcluir interface do bot.
Descrição | Código |
---|---|
Execução bem sucedida | 0 |
Chave de API errada | 1 |
Assinatura errada. | 2 |
Erro de não | 3 |
Método incorreto | 4 |
Parâmetro incorreto | 5 |
Erro interno desconhecido | 6 |
(Início normal)
Situação | Código |
---|---|
Inatividade | 0 |
Em funcionamento | 1 |
Parar | 2 |
Desligado. | 3 |
Parado. | 4 |
A estratégia tem erros. | 5 |
(abnormal)
Situação | Código |
---|---|
A estratégia expirou, e por favor entre em contato com o escritor para comprá-lo novamente | -1 |
Nenhuma doca encontrada | -2 |
Erro de compilação da estratégia | -3 |
O bot já está a funcionar. | -4 |
Balanço insuficiente | -5 |
O número de estratégias simultâneas excede o limite | -6 |
Utilizaçãomd5
método de encriptação a verificar.
Python, Golang linguagem de chamadas exemplos:
#!/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)
}
Suporta a verificação semtoken
(passagem)secret_key
Por exemplo, a URL que dá diretamente instruções interativas para o bot, que pode ser usado paraTradingView
ou oWebHook
recall em outros casos.
ParaCommandRobot(RobotId, Cmd)
função, o parâmetrononce
Não necessita de verificação e a frequência de acesso e os tempos de visita da interface não são limitados.
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]
Na circunstância de a verificação directa ser apoiada, apenasCommandRobot
Interface é suportada para obter oBody
Os dados na solicitação.WebHook URL
deTradingView
:
https://www.fmz.com/api/v1?access_key=fd3be82e9e6e6ed4439f2793a5e9ca&secret_key=520b9f10f3768e6ad1af59ff25184&method=CommandRobot&args=[130350,+""]
Preste atenção ao ajuste de acordo com o seguinte formato:args=[130350,+""]
, em que130350
É o robô?ID
da plataforma FMZ Quant Trading.
Configurações na caixa de mensagens (os dados
Formato JSON:
{"close": {{close}}, "name": "aaa"}
O robô comID
de186515
podem receber a instrução interactiva:{"close": 39773.75, "name": "aaa"}
.
Formato de texto:
BTCUSDTPERP Crossing 39700.00 close: {{close}}
O robô comID
de186515
podem receber a instrução interactiva:BTCUSDTPERP Crossing 39700.00 close: 39739.4
.
Exemplos dePython
& Golang
chamadas de idiomas:
#!/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)
}
Use a API estendida no FMZ Quant para realizar o trading de sinais de alerta
A API estendida da plataforma de negociação FMZ Quant
https://www.fmz.com/api/v1?
O símbolo acima?
é seguido pelos parâmetros de pedido.
Os parâmetros de pedido descritos noPython
Língua:
{
'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 nome de parâmetro é separado pelo carácter&
, e os nomes e valores dos parâmetros estão ligados ao símbolo=
. O URL de solicitação completo (tomandomethod=GetNodeList
Por exemplo:
https://www.fmz.com/api/v1?
access_key=8a1f6c3785fd78a1848320e0b19js99f&
nonce=1516292399361&
args=%5B%5D&
sign=085b63456c93hfb243a757366600f9c2&
version=1.0&
method=GetNodeList
Cuidado para que não hajasecret_key
entre os parâmetros de solicitação.
Método de assinatura
Nos parâmetros de pedido, o parâmetrosign
é uma cadeia de caracteres criptografada, e o método de criptografia é o seguinte.
Segundo o formato:
version + "|" + method + "|" + args + "|" + nonce + "|" + secretKey
Depois de concatenar cordas, useMD5Algoritmo de criptografia para criptografar a cadeia e convertê-la em um valor de cadeia de dados hexadecimal, referido como o valor do parâmetrosign
.
ReferênciaPython
Código da parte de assinatura:
# 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()
Retorna a lista do docker da conta da plataforma de negociação FMZ Quant correspondente aoAPI KEY
no pedido.
Parâmetro Nenhum
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()
Retorna a lista de agrupamento de bots da conta da plataforma de negociação FMZ Quant correspondente aoAPI KEY
no pedido.
Parâmetro Nenhum
Valor de retorno
{
"code":0,
"data":{
"result":{
// All bot grouping information: group ID, group name
"items":[{"id":1122,"name":"test"}]
},
"error":null
}
}
GetPlatformList()
Retorna a lista de bolsas que foram adicionadas pela conta da plataforma de negociação FMZ Quant correspondente aoAPI KEY
no pedido.
Parâmetro Nenhum
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)
Retorna a lista de robôs da conta da plataforma de negociação FMZ Quant correspondente aoAPI KEY
no pedido.
Parâmetrooffset
, length
erobotStatus
são de tipo inteiro, elabel
é de tipo corda.
offset
length
robotStatus
(passar label
(etiqueta personalizada; todos os bots com a etiqueta podem ser coqueteados)ParaPython
Exemplo de código, consulte o anteriorMétodo de verificação - Verificação de tokens, e o seguinte:Python
Exemplo de invocação:print api('GetRobotList', 'member2')
imprimir as informações de todos os robôs com o rótulo personalizadomember2
.
print api('GetRobotList', 0, 5, -1, 'member2')
Páginas de 0 a 5 e lista até 5 robôs rotulados commember2
.
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)
A interface envia o comando interativo para o robô correspondente (robôID
: RobotId
) doAPI KEY
na solicitação da conta FMZ Quant (o comando interativo é capturado peloGetCommand()
API chamado na estratégia e retorna).
ParâmetroRobotId
é de tipo inteiro, nomeadamente o botID
; Cmd
é de tipo string, que envia comandos interativos para bots.
RobotId
O robô.ID
, pode ser obtida através doGetRobotList(...)
interface.Cmd
é o comando interativo enviado para o bot; o comando será capturado pela funçãoGetCommand()
, que desencadeia a lógica interactiva na estratégia (para realizar a lógica interactiva na estratégia, consulte oGetCommand()
função no ficheiro).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)
para de executar o bot com o ID especificado (robot)ID
: RobotId
), correspondente aoAPI KEY
No pedido da conta FMZ Quant.
ParâmetroRobotId
é de tipo inteiro, nomeadamente o botID
, que pode ser obtido porGetRobotList(...)
interface;StopRobot(RobotId)
A interface retorna o código de estado do robô parado.
Valor de retorno
{
"code": 0,
"data": {
// 2 means stopping
"result": 2,
"error": null
}
}
RestartRobot(RobotId, Settings)
reinicia o robô com o ID especificado (robôID
: RobotId
), correspondente aoAPI KEY
No pedido da conta FMZ Quant.
Se o robô é criado pela API estendida, a API estendidaRestartRobot (RobotId, Settings)
deve ser utilizado para reiniciar, e oSettings
Parâmetro deve ser passado.
O robô criado na página da plataforma pode ser reiniciado através da API estendida ou clicando no botão na página.Settings
Parâmetro, ou apenas passar o oRobotId
Parâmetro. Se você só passar oRobotId
Parâmetro, inicie o bot de acordo com as configurações atuais do bot.
Parâmetro
Sem configurar o bot, o parâmetro estratégiaSettings
:
RobotId
é de tipo inteiro; o robôID
podem ser obtidos porGetRobotList(...)
.
Com a configuração do bot, o parâmetro estratégiaSettings
:
RobotId
é de tipo inteiro; o botID
podem ser obtidos porGetRobotList(...)
.
Settings
é deJSON
Tipo de objeto.
Settings
formato do parâmetro:
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:
Quando você usa as informações confidenciais, tais como plataformaAPI KEY
, incluindo"meta":{"AccessKey":"xxx","SecretKey":"yyy"}
na configuração deeid
, você deve saber que o FMZ não armazena os dados. Os dados serão enviados diretamente para o programa docker, então essa informação deve ser configurada toda vez que o bot é criado ou reiniciado.
Para reiniciar o bot que usa o plugin para suportar o intercâmbio, ao configurar oSettings
Parâmetro, você deve fazer as seguintes configurações para oexchanges
Atributo:
{"eid": "Exchange", "label" : "testXXX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "1234", "Front" : "http://127.0.0.1:6666/XXX"}}
label
atributo é definir um rótulo para o objeto de troca acessado pelo atualProtocolo Geral, que podem ser obtidos através doexchange.GetLabel()
A política de emprego
Valor de retorno
{
"code": 0,
"data": {
// 1 means running
"result": 1,
"error": null
}
}
GetRobotDetail(RobotId)
Obtém as informações pormenorizadas sobre o robô com o ID especificado (robotID
: RobotId
), correspondente aoAPI KEY
No pedido da conta da plataforma de negociação FMZ Quant.
ParâmetroRobotId
é de tipo inteiro; o robôID
podem ser obtidos porGetRobotList(...)
.
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
}
}
Osummary
Atributo nos dados devolvidos (informação na barra de status do bot; armazenado em cache por 10 segundos; não os dados mais recentes) atualmente tem um limite de quantidade de dados (dados armazenados em cache); o limite de quantidade de dados é de 200KB, e o excesso de dados será truncado.GetRobotLogs
interface para obter (quandoGetRobotLogs
obtém as informações da barra de estado, o camposummary
são os dados mais recentes).
A descrição do atributo destrategy_exchange_pairs
, por exemplo, os seguintes dados:
[60,[44314,42960,15445,14703],[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]]
Os primeiros dados60
representa o período de linha K por defeito definido pelo bot é 1 minuto, ou seja, 60 segundos.
[44314,42960,15445,14703]
é o objeto de trocaeid
configurado para o bot (de acordo com a ordem de adição).[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]
é o par de negociação definido para o objeto de troca configurado pelo bot (na ordem de adição e em correspondência um a um comeid
).
GetAccount()
Retorna a informação da conta correspondente aoAPI KEY
No pedido da conta da plataforma de negociação FMZ Quant.
Parâmetro Nenhum
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
}
}