Создание списка оповещений о цене¶
Список оповещений о цене содержит уровни, о достижении которых вы хотите узнавать без постоянного наблюдения за графиком. В этом руководстве показано, как выбрать инструменты, проверить их котировки и торговые часы, а затем настроить оповещение для каждого уровня. В конце вы создадите скрипт, который будет заново формировать весь список за один запуск.
Совет
Один раз задайте учетные данные в переменных оболочки. Все приведенные ниже интерактивные команды используют эти переменные. Это упрощает шаги и позволяет переносить скрипт между средами.
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 — инструмент для торговли и автоматизации. Он не предоставляет финансовых, инвестиционных, юридических или налоговых консультаций. Команды размещения и изменения ордеров могут приводить к реальным сделкам и финансовым потерям. Проверяйте каждую команду перед выполнением, сначала тестируйте ее на демосчете и защищайте свои учетные данные.