Ir para o conteúdo

Criar uma lista de alertas de preço

Uma lista de alertas de preço reúne os níveis de preço que pretende acompanhar sem ter de estar constantemente a observar o gráfico. Este guia mostra como selecionar os símbolos, verificar as respetivas cotações e horários de negociação e ativar um alerta para cada nível. No final, irá criar um script que recria toda a lista numa única execução.

Dica

Defina as suas credenciais uma única vez em variáveis de shell. Todos os comandos interativos seguintes reutilizam estas variáveis, tornando os passos mais simples e permitindo utilizar o script em diferentes ambientes.

export CTID=letstrade
export ACC=7654321
export PWD_FILE=$HOME/.ctrader/pwd

1. Selecionar os símbolos que pretende acompanhar

symbols apresenta todos os instrumentos disponíveis na conta. Guarde a saída para identificar os nomes exatos a utilizar nos passos seguintes.

ctrader-cli symbols --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC > symbols.txt

Utilize os nomes exatamente como aparecem aqui. Se o nome não corresponder, o comando devolve Unknown symbol name.

2. Consultar os preços atuais dos símbolos selecionados

prices devolve os preços de venda (bid) e de compra (ask) atuais de vários símbolos numa única chamada. Assim, pode definir os níveis com base no mercado em tempo real, em vez de confiar na memória.

ctrader-cli prices --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q \
    --symbols=EURUSD,GBPUSD,XAUUSD

Para um único instrumento, utilize price com --symbol.

ctrader-cli price --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q --symbol=EURUSD

3. Confirmar a precisão da cotação do símbolo

symbol apresenta os detalhes de um instrumento, incluindo o número de casas decimais da respetiva cotação. Ajuste o preço do alerta ao número de casas decimais indicado, para definir exatamente o nível pretendido.

ctrader-cli symbol --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q --symbol=XAUUSD

4. Verificar quando o mercado está aberto

sessions apresenta as sessões de negociação de um símbolo, com as respetivas horas de abertura e fecho. Um nível definido enquanto o mercado está fechado só será verificado quando este reabrir. Isto é especialmente importante para metais, índices e instrumentos cuja negociação é interrompida durante o fim de semana.

ctrader-cli sessions --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q --symbol=XAUUSD

5. Ativar um alerta para cada nível

alert create recebe o símbolo, o preço e a condição que desencadeia o alerta. Adicione --message para identificar a finalidade do alerta quando este for acionado e --yes para ignorar o pedido de confirmação num script.

A condição pode ser above ou below. Os alertas comparam o preço de venda (bid) do símbolo com o nível definido.

ctrader-cli alert create --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q \
    --symbol=EURUSD --price=1.1050 --condition=above \
    --message="EURUSD breaks range high" --yes

Repita o procedimento para cada nível de cada símbolo. Cada alerta corresponde a um único nível de preço de um único símbolo.

Nota

Valores aceites: above, below.

6. Rever a lista de alertas e eliminar os que estão desatualizados

alerts apresenta todos os alertas atualmente ativos na conta. Execute o comando após cada alteração para confirmar que a lista corresponde ao pretendido.

ctrader-cli alerts --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q

Elimine um alerta pelo respetivo identificador quando o nível for atingido ou a ideia que o motivou deixar de ser relevante.

ctrader-cli alert delete --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q \
    --alert=44556677 --yes

Para começar com uma lista vazia, all elimina todos os alertas da conta.

ctrader-cli alert delete all yes --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q

Na shell interativa, o mesmo comando escreve-se > alert delete all yes.

7. Recriar toda a lista de alertas a partir de um script

Guarde a sequência como price-alert-list.sh. O script elimina os alertas anteriores, ativa todos os níveis definidos no array PRICE_ALERT_LIST e apresenta o resultado. Assim, uma única execução cria a lista especificada no início do script, independentemente do estado anterior.

Cada entrada contém um símbolo, um preço, uma condição e uma mensagem, separados por |.

#!/usr/bin/env bash
set -euo pipefail

CTID=letstrade
ACC=7654321
PWD_FILE=$HOME/.ctrader/pwd

PRICE_ALERT_LIST=(
    "EURUSD|1.1050|above|EURUSD breaks range high"
    "EURUSD|1.0900|below|EURUSD loses range low"
    "XAUUSD|2400.00|above|Gold at round number"
)

cli() {
    ctrader-cli "$@" --ctid="$CTID" --pwd-file="$PWD_FILE" --account="$ACC" -q
}

# Start from a clean list so the array below is the single source of truth.
cli alert delete all yes

# Arm every level in the price-alert list.
for ENTRY in "${PRICE_ALERT_LIST[@]}"; do
    IFS='|' read -r SYMBOL PRICE CONDITION MESSAGE <<< "$ENTRY"
    echo "Arming $SYMBOL at $PRICE ($CONDITION)"
    cli alert create --symbol="$SYMBOL" --price="$PRICE" \
        --condition="$CONDITION" --message="$MESSAGE" --yes
done

# Confirm what is armed.
cli alerts

Execute bash price-alert-list.sh sempre que alterar os níveis. Como o script elimina todos os alertas antes de recriar a lista, altere o array em vez de adicionar alertas manualmente. Caso contrário, serão eliminados na próxima execução.

A documentação de referência do cTrader CLI apresenta todas as opções disponíveis para os comandos utilizados neste procedimento.

Aviso

O cTrader CLI é uma ferramenta de negociação e automatização. Não fornece aconselhamento financeiro, de investimento, jurídico ou fiscal. Os comandos que colocam ou alteram ordens podem desencadear negociações reais e causar perdas. Verifique cada comando antes de o executar, teste-o primeiro numa conta demo e proteja as suas credenciais.