Especificações do Alert Message do Bot de Signal Trading 2.0

Publicado em 30 de ago. de 2023Atualizado em 4 de abr. de 2024Leitura de 19 minuto

Índice

Introdução

Com o lançamento dos Signal Bots, agora os usuários do TradingView podem publicar seus sinais e criar um Signal Bot na OKX. Neste guia, vamos percorrer as várias especificações de mensagens de alerta que a OKX suporta para os usuários.

Para os experientes com o PineScript e que confiam exclusivamente nos scripts de estratégia para enviar sinais, desenvolvemos um formato de especificações exclusivo de forma meticulosa. Esse formato integra de maneira simplificada a estratégia de espaço reservado do PineScript, permitindo que você transmita sinais de trading com mais facilidade. Se você é um usuário de estratégia do PineScript, esse é o formato ideal para você, fornecendo uma abordagem simplificada para mesclar seus scripts de estratégia com os espaços reservados da estratégia do TradingView. Se você é um desenvolvedor de estratégia e utiliza as funções strategy.() para criar seus sinais de trading, confira a Seção A - para usuários de estratégia do PineScript abaixo.

Por outro lado, entendemos que nem todo mundo confia totalmente nos scripts de estratégia do PineScript. Na Seção B - Compatibilidade universal desse guia, fornecemos um conjunto versátil de especificações que vão além dos métodos de script. Essas especificações funcionam para todas as abordagens de geração de sinal. Quer você use indicadores personalizados, diversas técnicas de gráficos ou até mesmo prefira alertas manuais, esta estrutura de especificação "de abordagem única" tem a solução que você precisa.

Uma visão geral do Pine Script: “Estratégia” vs. “Indicador”

As estratégias do Pine Script têm o propósito de realizar backtesting em dados históricos, bem como testes futuros em mercados em tempo real. Além de realizar cálculos de indicadores, as estratégias incluem chamadas para funções strategy.*() que transmitem ordens de trading para o emulador da corretora do Pine Script. Esse emulador pode simular a execução dessas ordens. Os resultados dos backtests podem ser visualizados na guia “Strategy Tester” localizada na parte inferior do gráfico ao lado da guia “Pine Script Editor”.

Seção A - visão geral 1

Apesar dos indicadores do Pine Script também envolverem cálculos, eles não são destinados para os cenários de backtesting. Devido a sua independência do emulador da corretora, os indicadores consomem menos recursos e executam com mais rapidez.

Seção A - visão geral 2

É importante observar que você tem a flexibilidade de utilizar tanto o formato da Seção A quanto o da Seção B, ambos são totalmente compatíveis. Com base nas mensagens que você transmite, o sistema irá distinguir o formato usado e, consequentemente, analisará suas mensagens. Esse processo inteligente garante uma experiência simplificada independentemente do método escolhido.

Seção A (usuários de estratégia do PineScript)

As próximas especificações são personalizadas especificamente para os usuários que constroem seu algoritimo utilizando as estratégias do PineScript, principalmente a função strategy.*. Esse formato é dedicado para acomodar a estratégia de valores de espaço reservado, garantindo a adaptação sem complicação. Para um entendimento mais aprofundado sobre os scripts de estratégia e o processo de enviar alertas utilizando as variáveis de espaço reservado da estratégia, você pode encontrar informações adicionais aqui link.

Se esse conceito não for familiar para você, a Seção B fornece um método alternativo para a criação dos seus alertas, que são aplicáveis em uma gama de cenários mais abrangentes.

Visão geral das especificações do AlertMsg

Parâmetro
Obrigatório
Valores
id
Obrigatório
  • {{strategy.order.id}} do TradingView

action
Obrigatório
  • {{strategy.order.action}} do TradingView

marketPosition
Obrigatório
  • {{strategy.market_position}} do TradingView

prevMarketPosition
Obrigatório
  • {{strategy.prev_market_position}} do TradingView

instrument
Obrigatório
  • {{ticker}} do TradingView

  • Formato Instld da OKX

signalToken
Obrigatório
Fornecido pela OKX na criação do sinal
timestamp
Obrigatório
{{timenow}} do TradingView
maxLag
Opcional
Valor inteiro positivo entre [1 e 3600]. Padrão para 60.
investmentType
Opcional*


  • base (PARA SINAIS DE ENTRADA E SAÍDA) valor na moeda-base

  • margin (SOMENTE PARA SINAIS DE ENTRADA) margem investida na moeda de cotação

  • contract (SOMENTE PARA SINAIS DE ENTRADA) número fixo de contratos

  • percentage_balance (SOMENTE PARA SINAIS DE ENTRADA) com base na % do Saldo disponível (por exemplo, a margem disponível para abrir novas ordens)

  • percentage_investment (SOMENTE PARA SINAIS DE ENTRADA) Com base na % de Investimento Ativo no seu robô. O Investimento Ativo geralmente corresponderá à sua margem investida inicial no momento da criação do robô e permanecerá fixo até que você adicione mais margem e opte por aumentar esse valor.

  • percentage_position (SOMENTE PARA SINAIS DE SAÍDA) com base na % das posições abertas

amount
Obrigatório
  • base (número flutuante positivo)

  • margin (número flutuante positivo)

  • contract (inteiro positivo)

  • percentage_balance (valor flutuante entre [0,01 e 100] em %)

  • percentage_investment (valor flutuante entre [0,01 e 100] em %)

  • percentage_position (valor flutuante entre [0,01 e 100] em %)

* investmentType terá como padrão "percentage_investment" se o sinal for considerado como um sinal de entrada e "percentage_position" se o sinal for considerado como um sinal de saída. No entanto, é recomendado que esse valor seja definido para "base" e o “amount” para "{{strategy.order.contracts}}" para uma compatibilidade maior com sua estratégia do TradingView.

1. Especificação do AlertMsg - id

Seção A - id

id - A identificação da ordem

{{strategy.order.id}} - retorna a ID da ordem executada (a string usada como o primeiro parâmetro em uma das chamadas para função gerando as ordens: strategy.entry, strategy.exit or strategy.order).

2. Especificação do AlertMsg - action

Seção A - action

action - Comprar ou vender?

{{strategy.order.action}} - retorna a string “comprar” ou “vender” para a ordem executada.

3. Especificação do AlertMsg - marketPosition

Seção A - marketPosition

marketPosition - Estado pretendido da posição (no momento da execução da ordem)

{{strategy.market_position}}- retorna a posição atual da estratégia no formato da string: "long", "flat", ou "short".

4. Especificação do AlertMsg - prevMarketPosition

Seção A - prevMarketPosition

prevMarketPosition - Estado anterior da posição (antes da execução da ordem)

{{strategy.prev_market_position}}- retorna a posição anterior da estratégia no formato da string: "long", "flat", ou "short".

5. Especificação do AlertMsg - instrument

Seção A - instrumento

Formato 1: ticker - valores de espeço reservado do TradingView

Um 'standard placeholder'* é literalmente um texto entre chaves duplas incluído em uma mensagem de alerta.

"{{ticker}}" retornará o Ticker do instrument no qual o alerta foi gerado.

Por exemplo: "BTCUSDT.P", "ETHUSDT.P".

* Espaço reservado padrão para acessar as variáveis no PineScript. Saiba mais aqui.

Formato 2: Formato de instrumento da OKX

ID do instrumento, ou instId na API da OKX. Você pode encontrar mais detalhes neste link

Por exemplo: "BTC-USDT-SWAP", "ETH-USDT-SWAP"

6. Especificação do AlertMsg - signalToken

Seção A - signalToken

** signalToken -- Autenticação para o sinal**

O token é uma medida de segurança para garantir que as solicitações recebidas são legítimas e autorizadas. Esse signalToken será gerado automaticamente quando o usuário criar um novo sinal na nossa plataforma e ele precisará ser copiado para o Alert Message do TradingView.

Como localizar o seu signalToken para um sinal que já está ativo?

  1. Confira a seção Detalhes do seu sinal

Seção A - localizar signalToken 1

  1. Localize o seu signalToken na seção recomendada de mensagens de alerta

Seção A - localizar signalToken 2

7. Especificação do AlertMsg - timestamp

Seção A - timestamp

** timenow - valores de espaço reservado do TradingView**

Um 'standard placeholder'* é literalmente um texto entre chaves duplas incluído em uma mensagem de alerta.

"{{timenow}}" retornará a hora atual e exata em que o alerta foi gerado, em UTC no formato aaaa-MM-ddTHH: mm: ssZ.

Por exemplo: "2023-06-01T17:38:10Z"

* Espaço reservado padrão para acessar as variáveis no PineScript. Saiba mais aqui.

8. Especificação do AlertMsg - maxLag

Seção A - maxLag

** maxLag - Atraso máximo aceitável**

O termo “maxLag” refere-se ao atraso ou latência máximo permitido, medido em segundos, antes de um sinal de trading ser considerado nulo. O cálculo de maxLag envolve determinar a diferença de tempo entre o momento em que o sinal foi enviado do TradingView (utilizando o campo de “timestamp” na mensagem de alerta) e o momento em que foi recebido na OKX para executar uma ordem.

Por padrão, ele é definido em 60 segundos. A definição de um valor de maxLag ajuda a garantir que o Signal Bot opere em tempo hábil, evitando agir com base em sinais desatualizados ou potencialmente imprecisos que podem não refletir as condições atuais do mercado.

9. Especificação do AlertMsg - investmentType e amount

Sect A - investmentType e amount

Observação importante: Para garantir uma compatibilidade ideal com a sua estratégia do TradingView, recomendamos a configuração do investmentType como “base” e a definição de amount para “{{strategy.order.contracts}}". Ao seguir essa abordagem, a quantidade de ordens na OKX será alinhada com a quantidade de ordens especificadas na sua estratégia do TradingView.

investmentType e Amount

(SOMENTE PARA SINAIS DE ENTRADA)
  • base: valor na moeda-base (escolha recomendada)

  • margin: margem investida na moeda de cotação

  • contract: um número fixo de contratos

  • percentage_balance: com base na % do Saldo disponível (por exemplo, a margem disponível para abrir novas ordens)
  • percentage_investment: Com base na % de Investimento Ativo no seu robô. O Investimento Ativo geralmente corresponderá à sua margem investida inicial no momento da criação do robô e permanecerá fixo até que você adicione mais margem e escolha aumentar esse valor. Por exemplo, se você criar um robô com uma margem inicial investida de 1000 USDT, seu Investimento Ativo será definido como 1000 USDT. Para quaisquer sinais recebidos, este é o valor que será utilizado para o cálculo do tamanho do seu pedido. Digamos que, após alguns dias de execução do seu robô, você decida que ele está se saindo bem e reinveste mais 1000 USDT de margem, adicionando-o ao seu Investimento Ativo. Posteriormente, seu Investimento Ativo aumentará para 2000 USDT e este será o novo valor utilizado para o cálculo do tamanho do seu pedido. Se você não souber qual é o valor atual do Investimento Ativo do seu robô, você sempre pode verificar isso na seção Detalhes do seu Robô.

(SOMENTE PARA SINAIS DE SAÍDA)
  • base: valor na moeda-base (escolha recomendada)

  • percentage_position: com base na % de posições abertas

Seção B (Compatibilidade universal)

As especificações fornecidas abaixo são versáteis e podem ser personalizadas para atender a qualquer cenário. Esteja você utilizando o PineScript para criar scripts de estratégia ou indicadores (study) ou inserindo alertas manualmente na interface de usuário do Alert do TradingView, essas especificações permanecem adaptáveis e personalizáveis.

Visão geral das especificações do AlertMsg

Parâmetro Obrigatório Valores
action Obrigatório
  • ENTER_LONG

  • ENTER_SHORT

  • EXIT_LONG

  • EXIT_SHORT

instrument Obrigatório
  • {{ticker}} do TradingView

  • Formato Instld da OKX

signalToken Obrigatório Fornecido pela OKX na criação do sinal
timestamp Obrigatório {{timenow}} do TradingView
maxLag Opcional Valor inteiro positivo entre [1 e 3600]. Padrão para 60.
orderType Opcional. O parâmetro é necessário se o orderType = Limit
  • market

  • limit

orderPriceOffset Opcional. O parâmetro é necessário se nenhuma configuração for feita na criação do Signal Bot da OKX Valor flutuante entre [0 e 100] em %
investmentType Opcional. O parâmetro é necessário se o orderType = Limit
  • margin (SOMENTE PARA SINAIS DE ENTRADA) margem investida na moeda de cotação

  • contract (SOMENTE PARA SINAIS DE ENTRADA) número fixo de contratos

  • percentage_balance (SOMENTE PARA SINAIS DE ENTRADA) com base na % do Saldo disponível (por exemplo, a margem disponível para abrir novas ordens)

  • percentage_investment (SOMENTE PARA SINAIS DE ENTRADA) Com base na % de Investimento Ativo no seu robô. O Investimento Ativo geralmente corresponderá à sua margem investida inicial no momento da criação do robô e permanecerá fixo até que você adicione mais margem e opte por aumentar esse valor.

  • percentage_position (SOMENTE PARA SINAIS DE SAÍDA) com base na % das posições abertas

amount Opcional. O parâmetro é necessário se o orderType = Limit
  • margin (número flutuante positivo)

  • contract (inteiro positivo)

  • percentage_balance (valor flutuante entre [0,01 e 100] em %)

  • percentage_investment (valor flutuante entre [0,01 e 100] em %)

  • percentage_position (valor flutuante entre [0,01 e 100] em %)

1. Especificação do AlertMsg - action

Modo da posição:

O Signal Bot opera no modo unidirecional (ou seja, compra/venda), o que significa que o bot só manterá posições em uma direção para um determinado instrumento.

Abrir ordens
  • ENTER_LONG: abre uma posição comprada com a expectativa de que seu preço suba.
  • ENTER_SHORT: abre uma posição vendida com a expectativa de que seu preço cairá.
Fechar ordens
  • EXIT_LONG: fecha uma posição comprada parcialmente ou totalmente por meio da venda das posições em holding.
  • EXIT_SHORT: fecha uma posição vendida parcialmente ou totalmente por meio da recompra dos contratos.

2. Especificação do AlertMsg - instrument

Formato 1: ticker - valores de espeço reservado do TradingView

Um 'standard placeholder'* é literalmente um texto entre chaves duplas incluído em uma mensagem de alerta.

"{{ticker}}" retornará o Ticker do instrument no qual o alerta foi gerado.

Por exemplo: "BTCUSDT.P", "ETHUSDT.P".

* Espaço reservado padrão para acessar as variáveis no PineScript. Saiba mais aqui.

Formato 2: Formato de instrumento da OKX

ID do instrumento, ou instId na API da OKX. Você pode encontrar mais detalhes neste link

Por exemplo: "BTC-USDT-SWAP", "ETH-USDT-SWAP"

3. Especificação do AlertMsg - signalToken

** signalToken- Autenticação para o sinal**

O token é uma medida de segurança para garantir que as solicitações recebidas são legítimas e autorizadas. Esse signalToken será gerado automaticamente quando o usuário criar um novo sinal com sucesso na nossa plataforma e ele precisará ser copiado para o Alert Message do TradingView.

4. Especificação do AlertMsg - timestamp

** timenow - valores de espaço reservado do TradingView**

Um 'standard placeholder'* é literalmente um texto entre chaves duplas incluído em uma mensagem de alerta.

"{{timenow}}" retornará a hora atual e exata em que o alerta foi gerado, em UTC no formato aaaa-MM-ddTHH: mm: ssZ.

Formatações possíveis (horário UTC, formato ISO 8061)

  • Formato aaaa-MM-ddTHH:mm:ssZ, por exemplo: "2023-06-01T17:38:10Z"
  • Formato aaaa-MM-ddTHH:mm:ss.SSSZ , por exemplo: "2023-06-01T17:38:10.836Z"
  • Formato aaaa-MM-ddTHH:mm:ss+0000, por exemplo: "2023-06-01T17:38:10+0000"

Por exemplo: "2023-06-01T17:38:10Z"

* Espaço reservado padrão para acessar as variáveis no PineScript. Saiba mais aqui.

5. Especificação do AlertMsg - maxLag

** maxLag - Atraso máximo aceitável**

O termo “maxLag” refere-se ao atraso ou latência máximo permitido, medido em segundos, antes de um sinal de trading ser considerado nulo. O cálculo de maxLag envolve determinar a diferença de tempo entre o momento em que o sinal foi enviado do TradingView (utilizando o campo de “timestamp” na mensagem de alerta) e o momento em que foi recebido na OKX para executar uma ordem.

Por padrão, ele é definido em 60 segundos. A definição de um valor de maxLag ajuda a garantir que o Signal Bot opere em tempo hábil, evitando agir com base em sinais desatualizados ou potencialmente imprecisos que podem não refletir as condições atuais do mercado.

6. Especificação do AlertMsg - order

orderType

  • Market: cria uma ordem de mercado para Abrir (se o action =ENTER_XX) ou Fechar (se o action = EXIT_XX) uma posição. Não há necessidade de fornecer o orderPriceOffset
  • Limit: cria uma ordem de limitada para Abrir (se o action =ENTER_XX) ou Fechar (se o action = EXIT_XX) uma posição.

orderPriceOffset (aplicável SOMENTE com ordem LIMITADA)

  • ENTER_LONG: [1-(orderPriceOffset ÷ 100) × Preço de compra-1
  • ENTER_SHORT: [1+(orderPriceOffset ÷ 100) × Preço de venda-1
  • EXIT_LONG: [1+(orderPriceOffset ÷ 100) × Preço de venda-1
  • EXIT_SHORT: [1-(orderPriceOffset ÷ 100) × Preço de compra-1

7. Especificação do AlertMsg - investmentType e amount

investmentType e Amount

(SOMENTE PARA SINAIS DE ENTRADA)
  • Margin: margem investida na moeda de cotação

  • Contract: um número fixo de contratos

  • Percentage_balance: com base na % do Saldo disponível (por exemplo, a margem disponível para abrir novas ordens)

  • Percentage_investment: Com base na % de Investimento Ativo no seu robô. O Investimento Ativo geralmente corresponderá à sua margem investida inicial no momento da criação do robô e permanecerá fixo até que você adicione mais margem e escolha aumentar esse valor. Por exemplo, se você criar um robô com uma margem inicial investida de 1000 USDT, seu Investimento Ativo será definido como 1000 USDT. Para quaisquer sinais recebidos, este é o valor que será utilizado para o cálculo do tamanho do seu pedido. Digamos que, após alguns dias de execução do seu robô, você decida que ele está se saindo bem e reinveste mais 1000 USDT de margem, adicionando-o ao seu Investimento Ativo. Posteriormente, seu Investimento Ativo aumentará para 2000 USDT e este será o novo valor utilizado para o cálculo do tamanho do seu pedido. Se você não souber qual é o valor atual do Investimento Ativo do seu robô, você sempre pode verificar isso na seção Detalhes do seu Robô.

(SOMENTE PARA SINAIS DE SAÍDA)
  • Percentage_position: com base na % de posições abertas

Exemplos da Seção B

Exemplo 1: Long Entry -> Long Exit (Fechado totalmente) sem Multi-Entry

Exemplo 2: Long Entry -> Short Entry (Reversão em uma etapa) sem Multi-Entry

Exemplo 3: Long Entry -> Long Exit (Parcialmente) - Long Exit (Fechado totalmente)

Exemplo 4: Utilizando o Multi-Entry

O Multi-Entry é um recurso do Signal Bot que permite a execução de vários pontos de entrada para um determinado instrumento. Os traders podem otimizar sua abordagem de trading diversificando os pontos de entrada (por exemplo, Custo médio em dólares), aumentando potencialmente as chances de realizar tradings lucrativos em um ambiente de mercado dinâmico.

Exemplo 5: Utilizando apenas gatilhos de sinal (sem campos relacionados a ordem)

Para os provedores de sinais, determinados parâmetros opcionais podem ser excluídos, uma vez que o usuário já os configurou no bot. Isso é particularmente útil para os provedores que se concentram em oferecer APENAS gatilhos de sinal de Compra/Venda, cabendo a cada assinante decidir quanto investir.

Exemplo 6: Utilizando apenas gatilhos de sinal (sem campos relacionados a ordem)

Se na configuração do sinal e do bot não forem especificados os detalhes da ordem, serão usados os valores padrão.

  • Para os sinais de ENTER, por padrão, ele abrirá um investimento de X%* utilizando uma ordem a mercado.
  • Para os sinais de EXIT, por padrão, ele fechará 100% das posições abertas ao receber o sinal.

**** X = 100 para par único. X = 50 para pares múltiplos*

Exemplo 7: Precedência do campo da ordem

Os parâmetros do Bot têm prioridade sobre os parâmetros do Sinal. Existem duas regras que devem ser observadas:

  1. Regra 1: tanto o Bot quanto o Sinal definem o campo
Para Order Type
Ordem a Mercado (Bot)
Ordem Limitada (Sinal)
  1. Regra 2: o Bot/Sinal define o campo
Para Investment Type e Amount
N/A (Bot)
100% do Saldo disponível (Sinal)

Perguntas frequentes

Caso tenha alguma dúvida sobre o Signal Bot, você pode consultar algumas das perguntas mais frequentes dos nossos usuários nesse artigo.