Перейти к содержанию

Создание списка оповещений о цене

Список оповещений о цене содержит уровни, о достижении которых вы хотите узнавать без постоянного наблюдения за графиком. В этом руководстве показано, как выбрать инструменты, проверить их котировки и торговые часы, а затем настроить оповещение для каждого уровня. В конце вы создадите скрипт, который будет заново формировать весь список за один запуск.

Совет

Один раз задайте учетные данные в переменных оболочки. Все приведенные ниже интерактивные команды используют эти переменные. Это упрощает шаги и позволяет переносить скрипт между средами.

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

1. Выбор инструментов для наблюдения

symbols выводит все инструменты, доступные на счете. Сохраните результат, чтобы использовать точные названия инструментов в следующих шагах.

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

Используйте названия в точности так, как они показаны здесь. При несовпадении названия появится ошибка Unknown symbol name.

2. Получение текущих цен выбранных инструментов

prices за один вызов возвращает текущие цены Bid (продажи) и Ask (покупки) для нескольких инструментов. Это позволяет устанавливать уровни оповещений по актуальным рыночным данным, а не по памяти.

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

Для одного инструмента используйте price с параметром --symbol.

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

3. Проверка точности котировки инструмента

symbol показывает сведения об инструменте, включая число знаков после запятой в его котировках. Указывайте цену оповещения с учетом этой точности, чтобы задать нужный уровень.

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

4. Проверка торговых часов

sessions выводит торговые сессии инструмента с временем открытия и закрытия. Если уровень задан при закрытом рынке, проверить его можно будет только после возобновления торгов. Это особенно важно для металлов, индексов и инструментов с перерывами в торговле на выходных.

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

5. Настройка оповещений для каждого уровня

Для alert create необходимо указать инструмент, цену и условие срабатывания. Параметр --message позволяет добавить пояснение, чтобы при срабатывании было понятно назначение оповещения. Параметр --yes пропускает запрос подтверждения в скрипте.

В качестве условия можно указать above или below. Оповещения сравнивают цену Bid инструмента с заданным уровнем.

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

Повторите эти действия для каждого уровня каждого инструмента. Одно оповещение отслеживает один ценовой уровень одного инструмента.

Примечание

Допустимые значения: above, below.

6. Проверка списка оповещений и удаление устаревших

alerts показывает все активные оповещения на счете. Запускайте эту команду после каждого изменения, чтобы убедиться, что список соответствует вашим настройкам.

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

Удалите отдельное оповещение по его идентификатору, когда цена достигнет нужного уровня или связанная с ним торговая идея потеряет актуальность.

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

Чтобы начать с пустого списка, используйте аргумент all: он удаляет все оповещения на счете.

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

В интерактивной оболочке та же команда имеет вид > alert delete all yes.

7. Воссоздание всего списка оповещений с помощью скрипта

Сохраните последовательность как price-alert-list.sh. Скрипт удаляет предыдущие оповещения, создает все уровни из массива PRICE_ALERT_LIST и выводит результат. Поэтому один запуск формирует список, указанный в начале скрипта, независимо от его прежнего состояния.

Каждая запись содержит инструмент, цену, условие и сообщение, разделенные символом |.

#!/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

Запускайте bash price-alert-list.sh каждый раз, когда изменяете уровни. Поскольку перед воссозданием списка скрипт удаляет все оповещения, редактируйте массив, а не добавляйте их вручную. Иначе при следующем запуске они будут удалены.

В справочнике команд cTrader CLI перечислены все доступные параметры команд, используемых в этой процедуре.

Предупреждение

cTrader CLI — инструмент для торговли и автоматизации. Он не предоставляет финансовых, инвестиционных, юридических или налоговых консультаций. Команды размещения и изменения ордеров могут приводить к реальным сделкам и финансовым потерям. Проверяйте каждую команду перед выполнением, сначала тестируйте ее на демосчете и защищайте свои учетные данные.