Quadro de estratégia e funções de API
As estratégias escritas emJavaScript
, Python
ecpp
, oSleep()
A função precisa ser chamada no loop principal dessas estratégias. Ela será usada para controlar a velocidade de retrocesso. Na negociação ao vivo, ela é usada para controlar os intervalos de votação da estratégia e também controlar a frequência de solicitação de acesso à interface API da troca.
function onTick(){
//Write strategy logic here, and it will be called constantly, such as printing ticker information
Log(exchange.GetTicker())
}
function main(){
while(true){
onTick()
// The function "Sleep" is mainly used to control the polling frequency of cryptocurrency strategies to prevent accessing the exchange API interafce too frequently
Sleep(60000)
}
}
def onTick():
Log(exchange.GetTicker())
def main():
while True:
onTick()
Sleep(60000)
void onTick() {
Log(exchange.GetTicker());
}
void main() {
while(true) {
onTick();
Sleep(60000);
}
}
Exemplos de estruturas básicas de estratégias de criptomoedas:
function onTick(){
// It is just an example; for all the assets will be used to place orders fast during backtest or in live trading, do not implement the example in live trading
exchange.Buy(100, 1)
}
function main(){
while(true){
onTick()
// The pause period can be customized in millisecond (1 second = 1000 milliseconds)
Sleep(1000)
}
}
def onTick():
exchange.Buy(100, 1)
def main():
while True:
onTick()
Sleep(1000)
void onTick() {
exchange.Buy(100, 1);
}
void main() {
while(true) {
onTick();
Sleep(1000);
}
}
Tomemos o exemplo mais simples, se eu quiser colocar uma ordem de compra com um preço de 100 e uma quantidade de 1 na bolsa a cada segundo, eu posso escrever assim:
A seguir estão apresentadas as funções de API comumente utilizadas no desenvolvimento e design de estratégias.Manual da API da plataforma de negociação quântica FMZ.
Função global
Nome da função |
Breve Introdução |
Versão |
Retorna o |
Número da versão actual do sistema |
|
Dormir |
Função do sono, |
Parâmetro é o valor de milissegundos para pausa |
|
IsVirtual |
Determinação da |
ambiente de execução, devolver um valor verdadeiro para indicar um backtest
ambiente.
- Sim, sim.CorreioEnvie um e-mail.
- Sim, sim.Mail_GoAsíncrono.
versão doMail
função.
- Sim, sim.SetErrorFilterErro de filtro
logs, o parâmetro é uma cadeia de expressões regulares, os logs de erro
correspondido por esta expressão regular não será carregado para o registro
sistema.
- Sim, sim.GetPidApanha o robô.
Processo ID.
- Sim, sim.GetLastErrorApanha o último.
Mensagem de erro.
- Sim, sim.GetCommandGanha uma estratégia.
comandos de interação, configurações de controle de interação estratégia pode ser
Perguntado: [controle de interação]
- Sim, sim.GetMetaConsiga o valor de
Meta escrito ao gerar o código de registo da estratégia.
- Sim, sim.Marque♫ Usado para o cru ♫
acesso ao soquete.
- Sim, sim.HttpQueryEnvie um pedido HTTP.
- Sim, sim.HttpQuery_GoAsíncrono.
versão doHttpQuery
função.
- Sim, sim.CodificaçãoEncriptação de dados
função.
- Sim, sim.UnixNanoTens um nanossegundo.
Marcas de tempo.
- Sim, sim.UnixVamos para o segundo nível.
Marcas de tempo.
- Sim, sim.GetOSA começar o sistema.
Informações.
- Sim, sim.MD5Calcule o MD5.
- Sim, sim.DBExecBase de dados.
funções que podem ser usadas para executar instruções SQL e executar
Operações de banco de dados.
- Sim, sim.UUIDGerencie o UUID.
- Sim, sim.EventLoopOlha para os eventos.
e retornar depois de qualquer websocket é legível ou tarefas simultâneas, tais comoexchange.Go
, HttpQuery_Go
, etc. são concluídas, esta função
Só está disponível para negociações ao vivo.
- Sim, sim._G♫ Salvando dados persistentemente ♫
Esta função implementa uma função de dicionário global salvável.
estrutura é uma tabela KV, que é armazenada no banco de dados local do docker
arquivo permanentemente.
- Sim, sim._DO manipulador de carimbos de tempo, converte
um selo de tempo de milissegundos ou objeto Data para uma cadeia de tempo.
- Sim, sim._NFormatar um ponto flutuante
número, por exemplo:_N(3.1415, 2)
Removerá o valor de 3.1415 após
duas casas decimais, e a função retorna 3,14.
- Sim, sim._CTentem novamente a função para
Observe que, por exemplo, a tolerância de falha para
Oexchange.GetTicker
função é_C(exchange.GetTicker)
e não_C(exchange.GetTicker())
|
| _CruzadaA função de julgamento cruzado,_Cross()
Funçãos retorna valor é um número positivo indica
O período da penetração ascendente, um número negativo indica o
O preço de mercado é o preço de mercado de uma moeda.
O mesmo.
- Sim, sim.JSONParseParsing JSON, que pode
corretamente analisar cadeias de caracteres JSON contendo valores maiores, irá analisar maiores
valores para um tipo de string.JSONParse()
função não é suportada
no sistema de backtesting.
Funções de log
Nome da função |
Breve Introdução |
Registo |
Logs de saída, suporte para definir a cor do texto de log, suporte para definir push, suporte para impressão de imagens após codificação base64 |
LogProfit |
Dados de lucro e lucro de saída, valores de lucro e lucro impressos e curvas de rendimento de gráficos baseadas em valores de lucro e lucro |
LogProfitReset |
Esvaziar oLogProfit Função de saída todos os registos de lucros, gráficos de lucros |
LogStatus |
Informações de saída na barra de estado, suporte para a concepção de comandos de botão na barra de estado, suporte para a saída de formulários |
EnableLog |
Ativar ou desativar o registo de informações de encomendas |
Gráfico |
Funções de gráficos, baseadas na biblioteca de gráficos Highcharts/Highstocks |
KLineChart |
Função de desenho de estilo de linguagem de pinheiro, que é usada para desenho personalizado no tempo de execução da estratégia usando um estilo de desenho de linguagem parecido com o Pinheiro |
LogReset |
Limpar registos, suporte para reter um certo número de registos recentes através das configurações do parâmetro |
LogVacuum |
Recuperar recursos do SQLite para recuperar o espaço de armazenamento ocupado pelo SQLite ao excluir dados depois de limpar o log chamando oLogReset() função |
console.log |
Informações de depuração de saída na coluna Informações de depuração na página de negociação em tempo real |
console.error |
A informação de erro é emitida na coluna Informações de depuração da página de negociação em tempo real |
Funções do Ticker
Funções de transacção
Nome da função |
Breve Introdução |
exchange.Buy |
Submeter uma ordem de compra, os contratos futuros devem prestar atenção à direção da transação é definida corretamente, se a direção da transação e a função da transação não coincidir, o erro será relatado! |
exchange.Sell |
Enviar ordens de venda, contratos futuros quando a colocação de ordens deve prestar atenção para a direção da transação é definida corretamente, se a direção da transação e a função da transação não coincidir, ele irá relatar um erro |
exchange.CreateOrder |
Enviar uma ordem e especificar o tipo de transação, direção da transação, preço e quantidade através de parâmetros |
exchange.CancelOrder |
Cancelar a ordem |
exchange.GetOrder |
Obter informações de ordem, estrutura de dados éOrdemEstrutura |
exchange.GetOrders |
Obter pedidos não preenchidos com estrutura de dadosOrdemmatriz estrutural (lista) |
exchange.GetHistoryOrders |
Obter as ordens históricas do par de negociação atual e contrato; suporte especificando produtos comerciais específicos |
exchange.SetPrecision |
Configure a precisão do preço e da quantidade de ordem do objeto de troca, após a configuração, o sistema ignorará automaticamente a redundância de dados. |
exchange.SetRate |
Estabelecer a taxa de câmbio |
exchange.IO |
Para outras chamadas de interface relacionadas com objetos de troca |
exchange.Log |
Output, registar registos de transacções e não realizar ordens |
exchange.Encode |
Cálculo da criptografia da assinatura |
exchange.Go |
Funções de suporte assíncrono de múltiplos fios |
exchange.GetAccount |
Obter informações da conta |
exchange.GetAssets |
Solicitar informações sobre os activos da conta de câmbio |
exchange.GetName |
Obter o nome do objeto de troca |
exchange.GetLabel |
Obter o rótulo do objeto de troca |
exchange.GetCurrency |
Obtenha o par de negociação atual |
exchange.SetCurrency |
Troca de pares de negociação |
exchange.GetQuoteCurrency |
Obter o nome da moeda do par de negociação atual |
Funções futuras
Nome da função |
Breve Introdução |
[exchange.GetPositions(/guia de sintaxe#fun_exchange.getpositions) |
Obter posições de futuros com estrutura de dadosPosiçãomatriz estrutural (lista) |
exchange.SetMarginLevel |
Configure a alavancagem |
exchange.SetDirection |
Função utilizada para definir oexchange.Buyfunção,exchange.SellFunção para executar a direção da ordem de ordem do contrato de futuros |
exchange.SetContractType |
Definir o código do contrato, por exemplo:exchange.SetContractType("swap") função define o código do contrato paraswap , que define o contrato para a operação em curso como um contrato perpétuo |
exchange.GetContractType |
Obtenha o código do contrato atual |
exchange.GetFundings |
Obtenha os dados atuais de taxa de financiamento de contratos perpétuos de câmbio de futuros |
Funções da rede
JavaScript Multi-Threading
A plataforma de negociação de quantidade FMZ realmente suporta a função multi-threaded doJavaScript
A estratégia linguística é desenvolvida a partir da base do sistema e tem por objectivo:
Objetos |
Orientações |
Observações |
Filamentos |
Objeto global multithreaded |
Funções dos membros:Thread , getThread , mainThread , etc. |
Fios |
Objeto de linha |
Funções dos membros:peekMessage , postMessage , join , etc. |
ThreadLock |
Objeto de bloqueio de fio |
Funções dos membros:acquire , release . Eles podem ser passados para o ambiente do thread como parâmetros da função de execução do thread. |
ThreadEvent |
Objeto evento |
Funções dos membros:set , clear , wait , isSet . Eles podem ser passados para o ambiente do thread como um parâmetro da função de execução do thread. |
ThreadCondição |
Objeto de condição |
Funções dos membros:notify , notifyAll , wait , acquire , release . Eles podem ser passados para o ambiente do thread como um parâmetro da função de execução do thread. |
ThreadDict |
Objeto do dicionário |
Funções dos membros:get , set . Eles podem ser passados para o ambiente do thread como parâmetros da função de execução do thread. |
Manual de sintaxe da plataforma de negociação quântica FMZ:JavaScript Multi-Threading
Web3
Biblioteca de indicadores de TA
Nome da função |
Breve Introdução |
TA.MACD |
Calcular o indicador médio de divergência suavizada exponencial |
TA.KDJ |
Cálculo dos indicadores estocásticos |
TA.RSI |
Calcular o indicador de resistência |
TA.ATR |
Calcular o indicador médio de volatilidade real |
TA.OBV |
Cálculo dos indicadores de maré energética |
TA.MA |
Cálculo dos indicadores da média móvel |
TA.EMA |
Cálculo dos indicadores das médias exponenciais |
TA.BOLL |
Calcular o indicador da banda de Bollinger |
TA.Alligator |
Calcule o indicador da linha do jacaré |
TA.CMF |
Cálculo do indicador de fluxo de caixa Chaikin |
TA.Highest |
Calcular o preço máximo do período |
TA.Lowest |
Calcular o preço mínimo do período |
TA.SMA |
Calcular os indicadores da média móvel simples |
Talib Indicador Biblioteca
A biblioteca de indicadores talib tem inúmeros indicadores de negociação, como:talib.CDL2CROWSPode ir ao manual de sintaxe para mais detalhes.
Funções de entrada de estratégia
Bibliotecas de modelos