Предполагается, что здесь должно быть пошаговое объяснение процесса создания триггера, а не готовое решение, правильно?
ОК, приступим. Для начала убеждаемся, что на тестовом счету у нас начальный депозит (на скриншотах счет в фунтах, разница только в минимальной ставке - допустим, что она равна £4):
Переходим на канал HiLo Turbo и проверяем ставку по умолчанию, тестовый режим, включен ли автотрейдинг:
Так же обязательно отключаем в настройках программы весь авто-трейдинг (авто-уравнивание, распределение убытков, лимиты и пр.). Если есть затруднения - кнопка
Восстановить начальные сбросит все сделанные Вами настройки. Проверяем
включены ли подтверждения опасных операций (раздел Торговля) и
Включать значение прибыли-убытков в последовательность побед-поражений. Так же обязательно включить
Дублировать сообщения всплывающими окнами и логгирование действий и триггеров.
Нажимаем кнопку
Триггеры, затем
"Новый файл".
Начнем с настроек - так проще будет потом корректировать параметры триггера:
Создаем константы (кнопка
Добавить в строке констант):
Имя:
Mult, значение:
2 - коэффициент увеличения/уменьшения размера ставки
Имя:
Perc, значение:
10 - процент банка, при котором приостановить торговлю
Имя:
Pause, значение:
60 - на сколько приостановить торговлю
Самое время сохранить файл триггеров - кнопка
Сохранить как, указываем расположение и имя.
Все триггеры должны быть заключены в блоки. Создаем блок - кнопка
Доб. блок. В появившейся строке блока кнопкой
Доб. триггер создаем первый пустой триггер:
Анализируем задание:
Ставку делаем "ЗА", когда еще не открыто ни одной карты по коэффициенту 1.29 первой карты.
Выбираем
Действие:
back (ставка ЗА)
Размер ставки:
default back (размер ставки по умолчанию, мы его будем менять другим триггером)
Коэф.:
current best (текущий коэффициент)
Канал:
All HiLo, Main BetsИсход:
Card 1 or further (первая карта)
Повторить:
once per game (один раз за игру)
Exactly раунд 1 (не открыто ни одной карты)
Условия добавлять пока не будем.
Далее требуется изменить размер ставки по умолчанию в зависимости от исхода предыдущей игры. Создаем новый триггер в этом блоке.
Действие:
set default back amountКанал:
All HiLo, Main BetsИсход:
Card 1 or further (не важно, главное - не должно содержать "matched")
Повторить:
once per gameExactly раунд 1Значение: Анализируем задачу: нужно увеличивать размер ставки в
Mult раз, если предыдущая игра закончилась убытком, уменьшать в
Mult раз, если закончилась прибылью и размер получившийся ставки больше допустимого минимума. Выражение такое:
IF(last_pl>0, IF(back_size/Mult >= min_stake, back_size/Mult, back_size), back_size*Mult )Что дословно означает: если предыдущий результат игры положительный, то (если размер новой ставки больше или равен минимальной, то разделить текущий размер на Mult, иначе размер не менять), иначе увеличить ставку в Mult раз).
Нам не нужно изменять ставку, если в предыдущей игре результат нулевой. Значит добавляем в триггер условие (
если условия выполняются - редактировать,
Добавить условие):
Channel's Previous P/L is not equal to 0Результат предыдущей игры не нулевой.
Важный момент: необходимо, чтобы этот триггер выполнялся до триггера ставки, чтобы размер ставки уже был изменен. Для этого перетащите второй триггер выше первого. Сохраните файл.
Добавим в триггер ставки условия для приостановки торговли на
Pause минут, если достигнута прибыль в
Perc % от банка. Т.к. размер банка в каждой такой сессии будет разным, нам нужно где-то сохранить его в начале каждой сессии. Для этого создадим еще одну константу (в данном случае переменную)
Bank и установим ее значение в ноль. Так же нам понадобится "переключатель" - переменная
IsPaused, которая будет принимать значение 1 или 0 и означать ждем мы в данный момент или торгуем. И переменная
LastBet, где мы будем хранить время последней ставки.
Затем добавим три триггера:
Действие:
set user variableИмя:
BankЗначение:
IF(test_mode=1,test_funds,funds) - выражение означает использовать значение реального банка, если тестовый режим выключен.
Канал:
All HiLo, Main BetsИсход:
Card 1 or further Повторить:
once per gameExactly раунд 1Условия:
Trigger Expression IsPaused is equal to 1
AND Trigger Expression now_time is greater than LastBet+Pause*0.000694Т.е. текущее состояние работы - ожидание и текущее время больше, чем время с последней ставки плюс время ожидания (0.000694 - количество суток в минуте)
Действие:
set user variableИмя:
IsPausedЗначение:
(IsPaused+1)%2 - сменить значение IsPaused с 1 на 0 и наоборот
Канал:
All HiLo, Main BetsИсход:
Card 1 or furtherПовторить:
once per gameExactly раунд 1Условия:
[НАЧАЛО БЛОКА]
Trigger Expression IsPaused is equal to 1
AND Trigger Expression now_time is greater than LastBet+Pause*0.000694[КОНЕЦ БЛОКА]
[OR][НАЧАЛО БЛОКА]
Trigger Expression IsPaused is equal to 0
AND Trigger Expression IF(test_mode=1,test_funds,funds) is greater than Bank*(1+Perc)[КОНЕЦ БЛОКА]
Пояснения. Выполнить если текущее состояние - ожидание и с момента последней ставки прошло больше, чем пауза; или текущее состояние - торговля и достигнут лимит прибыли.
И третий триггер:
Действие:
set user variableИмя:
LastBetЗначение:
now_time - текущее время
Канал:
All HiLo, Main BetsИсход:
Card 1 or furtherПовторить:
once per gameExactly раунд 1Условия:
Channel's Previous PL is not equal to 0Запомнить время раунда, в котором была сделана последняя ставка.
Теперь займемся порядком триггеров. По логике первым должен идти триггер, устанавливающий значение переменной
LastBet, затем
Bank, затем
IsPaused, затем устанавливающий значение ставки по умолчанию и наконец триггер ставки:
Сохраняем файл триггеров.
Осталось применить результаты наших трудов для условий триггера ставки:
Trigger Expression IsPaused is equal to 0Сохраняем файл триггеров и закрываем окно.
Как оказалось основная трудность в паузе. Реализация процесса ставок заняла 2 триггера.
Нужно ли объяснять как тестировать триггеры, анализировать ход выполнения и искать ошибки?