Pages:
Actions
  • #1 by exanson on 04 Dec 2010
  • Здравствуйте Уважаемые!
    Не хотел открывать новую тему для моего вопроса -
    надеюсь модераторы простят.
    Вопросы - Как научится делать триггеры?
    Есть ли соответствующая литература?
    Сложно ли это занятие?
  • #2 by Tim (WellDoneSoft) on 04 Dec 2010
  • Добрый день.
    Думаю вопрос стоит того, чтобы его вынести в отдельную тему.

    Нам, как программистам, кажется, что научиться делать триггеры не сложно. Однако это зависит от склада ума и тяге к математике/программированию/логике.
    Мы постарались написать файл помощи как можно понятнее, дополнив примерами и объяснениями. К сожалению никакой другой литературы нет, триггеры - это наше изобретение.

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

    Так же здесь, на форуме, найдутся те, кто готов Вам помочь.
  • #3 by exanson on 05 Dec 2010
  • Прочитал файл помощи, честно сказать пока ничего не понял. Понимаю, что надо внимательно вникать в суть написанного, но было бы намного проще, если бы профессионалы разложили бы все по полочкам с использованием картинок на примере какого нибудь триггера.

    Поэтому предлагаю в этой ветке создать триггер по моему замыслу, наглядно демонстрируя и объясняя каждое действие при создании данного триггера.

    Итак, для примера возьму игру HI-LO

    1. Нач. депозит - 100$
    2. Начальная ставка минимальная - 4$
    3. Ставку делаем "ЗА", когда еще не открыто ни одной карты по коэффициенту      1.29 первой карты.

    4. Если выиграли (1.13$), ждем следующего розыгрыша, и снова по этому же коэффициенту 1.29 делаем ставку 4$

    5.Если проигрыш (-4.00$), в следующем розыгрыше удваиваем ставку до 8$.

    6.Если удвоенная ставка выиграла, ( +2.25$), в следующем розыгрыше ставку снижаем до первоначальной - 4$.

    7. Если удвоенная ставка проиграла (-8.00$), следующая ставка снова удваивается до 16.00$.

    8. Если ставка в 16.00$ выиграла, следующая ставка снижается до 8.00$, если и 8$-ая ставка выиграла, то следующая ставка снижается до первоначальной - 4$.

    9. Триггер работает до тех пор, пока не набрано предположим, 10% от депозита.
    В нашем случае это 10$ от 100$. Если депозит вырос до 110$, то при следующем вхождении в игру, предположим, через 1 час, то естественно боту надо набрать 11$ - т.е. 10% от 110$.

    При тесте я доходил до удвоения ставки до 64$. Другими словами, бот удваивает при проигрыше, пока позволяет депозит.

    Вот на этом примере и желательно показать, как делается триггер.


  • #4 by solomon on 05 Dec 2010
  • Привет. Предлагаю свой вариант твоей задачи, вот только через час нужно запускать триггер вручную. В верхней части три переменные можешь менять по своему выбору, вот только повторно запускать (повторяю) нужно вручную.
  • #5 by exanson on 05 Dec 2010
  • Привет. Предлагаю свой вариант твоей задачи, вот только через час нужно запускать триггер вручную. В верхней части три переменные можешь менять по своему выбору, вот только повторно запускать (повторяю) нужно вручную.
    что значит запускать вручную?
  • #6 by solomon on 05 Dec 2010
  • Второй раз запускать вручную. Это значит, что при достижении 10% прироста депозита канал останавливается. Чтобы запустить его автоматически через определенное время - я не знаю как сделать.
  • #7 by exanson on 05 Dec 2010
  • понятно. Попробовал Ваш триггер - немного не так сделан - green up не надо делать, ставка должна оставаться без пары. А в том варианте, что Вы сделали пропадает смысл той задумки, что я изложил.
  • #8 by solomon on 05 Dec 2010
  • Там нет ГРИН-АПа. Ставка только back.
  • #9 by exanson on 05 Dec 2010
  • почему тогда при выпадании меньшего коэффициента "Против" триггер делает ставку "Против", тем самым делая ол грин?
  • #10 by solomon on 05 Dec 2010
  • Там нет второй ставки. Может Вы перепутали триггеры?
  • #11 by solomon on 05 Dec 2010
  • Я понял. Это наверное у Вас в настройках программы стоит ГРИН-АП.
  • #12 by exanson on 05 Dec 2010
  • 1 карта, удвоение - вот этот триггер, что вы выложили.
  • #13 by exanson on 05 Dec 2010
  • нет, я просмотрел сейчас настройки - нет галочек на грин-ап
  • #14 by solomon on 05 Dec 2010
  • Тогда я ничего не понимаю. Посмотри повнимательней: настройки программы, в разделе автотрейдинг, подраздел автоуравнивание и автодатчинг не должно быть галочек. И в разделе торговля не распределять убыток. Проверь.
  • #15 by Tim (WellDoneSoft) on 05 Dec 2010
  • Предполагается, что здесь должно быть пошаговое объяснение процесса создания триггера, а не готовое решение, правильно?

    ОК, приступим. Для начала убеждаемся, что на тестовом счету у нас начальный депозит (на скриншотах счет в фунтах, разница только в минимальной ставке - допустим, что она равна £4):

    Переходим на канал HiLo Turbo и проверяем ставку по умолчанию, тестовый режим, включен ли автотрейдинг:

    Так же обязательно отключаем в настройках программы весь авто-трейдинг (авто-уравнивание, распределение убытков, лимиты и пр.). Если есть затруднения - кнопка Восстановить начальные сбросит все сделанные Вами настройки. Проверяем включены ли подтверждения опасных операций (раздел Торговля) и Включать значение прибыли-убытков в последовательность побед-поражений. Так же обязательно включить Дублировать сообщения всплывающими окнами и логгирование действий и триггеров.

    Нажимаем кнопку Триггеры, затем "Новый файл".

    Начнем с настроек - так проще будет потом корректировать параметры триггера:
    Создаем константы (кнопка Добавить в строке констант):
    Имя: Mult, значение: 2 - коэффициент увеличения/уменьшения размера ставки
    Имя: Perc, значение: 10 - процент банка, при котором приостановить торговлю
    Имя: Pause, значение: 60 - на сколько приостановить торговлю


    Самое время сохранить файл триггеров - кнопка Сохранить как, указываем расположение и имя.

    Все триггеры должны быть заключены в блоки. Создаем блок - кнопка Доб. блок. В появившейся строке блока кнопкой Доб. триггер создаем первый пустой триггер:


    Анализируем задание:
    Quote
    Ставку делаем "ЗА", когда еще не открыто ни одной карты по коэффициенту  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 game
    Exactly раунд 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 game
    Exactly раунд 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 game
    Exactly раунд 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 game
    Exactly раунд 1
    Условия:
    Channel's Previous PL is not equal to 0
    Запомнить время раунда, в котором была сделана последняя ставка.

    Теперь займемся порядком триггеров. По логике первым должен идти триггер, устанавливающий значение переменной LastBet, затем Bank, затем IsPaused, затем устанавливающий значение ставки по умолчанию и наконец триггер ставки:


    Сохраняем файл триггеров.

    Осталось применить результаты наших трудов для условий триггера ставки:
    Trigger Expression IsPaused is equal to 0
    Сохраняем файл триггеров и закрываем окно.

    Как оказалось основная трудность в паузе. Реализация процесса ставок заняла 2 триггера.

    Нужно ли объяснять как тестировать триггеры, анализировать ход выполнения и искать ошибки?
Pages:
Actions