Блог им. robot-scalper

Нельзя просто так взять и создать прибыльного торгового робота!


Палю грааль!


робот, скальер, скальпинг, трейдинг, алгортейдинг, акции, фьючерсы
 
Вводная часть

Разрешите представиться, Денис. Я программист с высшим образованием и огромным опытом практической разработки ПО. Изучал кибернетику. Специальность: Автоматизация систем обработки информации и управления в научно-исследовательской деятельности. Продолжительное время увлекаюсь трейдингом. А точнее, алгоритмическим трейдингом. Понимая принципы торговли на рынке и умея программировать почему бы не написать прибыльного робота? Правда, почему нет? — Легко! Сейчас, только чай допью. )) 

Постановка задачи: робот должен зарабатывать, для этого ему нужно покупать актив по наименьшим ценам, а продавать по максимальным. 
Разницу будем оставлять себе, не забывая поделиться комиссией с биржей и брокером. Итак, задача поставлена, осталось ее выполнить. Интересно, что из этого получится?!


Для начала нужно определиться на каком рынке мы будем торговать и какими активами. После рассмотрения различных вариантов я остановился на Московской бирже. На ней сделки и расчеты проходят с высокой гарантией. Московская биржа работает по российскому законодательству, что немало важно. Риски по исполнению сделок и расчетов биржа перекладывает на брокеров, тем самым повышая надежность своего бизнеса. Мне это подходит.  

Торговать буду фьючерсами, так как биржевая комиссия по ним очень низкая. Она зависит от выбранного финансового инструмента. Колеблется в пределах 0,5 — 2 рублей за скальперскую сделку.  Это на порядок ниже, чем при торговле акциями. Условия приемлемые, торговать можно.  

Теперь нужно определиться с торговой стратегией. Большинство стратегий описанных в книгах не детализированы и дают лишь общее представление о том как нужно торговать. Разработав по ним торговых роботов и протестировав этих роботов на исторических данных можно заметить, что малую часть времени эти стратегии приносят прибыль, а в другое время они приносят убытки. Такое положение дел меня не может устраивать. Нужно найти, или самостоятельно разработать, действительно прибыльную скальперскую стратегию, которая подавляющую часть времени приносит прибыль. Не наживы ради, а науки для! )) 

Так как задача изначально была поставлена чтобы робот покупал по наименьшим ценам, а продавал по максимальным, то из этого и будем исходить.  

Возьмем, например, интервал времени 30 минут. Таймфрейм 1М. То есть, получается 30 расчетных свечей. И с помощью условия записанного на языке LUA (QLUA) будем определять минимальное (min) и максимальное (max) значение цены в данном диапазоне времени. У меня уже были некоторые наработки программного кода, поэтому я довольно быстро запрограммировал основу нового робота.

Нужно придумать название роботу. Так как он скальперский, то для простоты, пусть будет "Скальпер". Я не стал тут сильно фантазировать. Гораздо важнее — алгоритм!
Теперь нужно поработать над логикой торгового алгоритма.

Добавим условие: если текущая цена стала равна или меньше min, то робот выставляет заявку на покупку. Или если цена стала больше или равной max, то робот выставляет заявку на продажу.
После этого регулярно делаем проверку: исполнилась ли наша заявка? Если исполнилась, то выставляем еще одну заявку для фиксации прибыли (тейк-профит) от противоположной границы ценового канала.
Ждем. Если тейк-профит отработал, то повторяем все сначала.
В статичном горизонтальном (боковом) ценовом канале данная стратегия отлично отрабатывает! Ура! Маленькая победа! 
 

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

На тестах обнаружилась еще одна проблемка. Если выставлять заявки после получения сигнала на открытие позиции, то получается такая штука: цена сходила на экстремум (min или max), робот выставил заявку, но цена уже вернулась в ценовой канал и заявка осталась висеть неисполненная.
Мне стало ясно, что необходимо оптимизировать данные моменты торговой стратегии. И я снова засел за программирование.   

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

Всем хорошего дня и прибыльной торговли!
★43
96 комментариев
ну и как решили эти две задачи?
avatar
vito2000, в следующей статье могу подробно рассказать.
avatar
«цена сходила на экстремум (min или max), робот выставил заявку, но цена уже вернулась в ценовой канал и заявка осталась висеть неисполненная. „
ОЧЕНЬ интересно как решилась эта задача?
Спасибо за ответ.
P.S. Еще такой вариант… заявка выставленна, висит 1-10 минут… цена касается уровня заявки, но не хватает контрагента, т.е. в 80% случаев, пока все заявки на уровне не будут съедены своя заявка не исполнится. Такое ощущение, что мои заявки все время отодвигают ближе к концу очереди на уровне.
Я на эту тему писал пост, но так и не получил ответа как решить эту проблему.
avatar
oktb, в следующей статье расскажу оба ответа, плюс будет решение вашего вопроса.
avatar
Robot-Scalper.ru, спасибо.
avatar
oktb, можно ограничить нахождение заявки в стакане по времени
ну и накрутить допусловий на ликвидность и волу.


avatar
SECRET,  согласен)
avatar
SECRET,  не согласен)  лохов не так много как кажется) а имея рабочий алгоритм, сам знаешь, раскрутиться можно очень быстро, лично самому)
avatar
Старайся, Денис — у тебя все впереди
avatar
я счас тебе грааль спалю… чур никаму тока...

можно продавать по высокой цене а откупать по низкой… и тоже профит 
avatar
ves2010,  тока чур никому)
avatar
А тем временем робот Скальпер ещё немного увеличил депозит.

робот, скальер, скальпинг, трейдинг, алгортейдинг, акции, фьючерсы


avatar
А скока стоит robot-scalper???)))
avatar
Anton Antonov, цены есть на сайте. Адрес сайта указан в никнейме. 
avatar
сколько времени ушло на написание или сколько уже пишете?

avatar
Игорь Семенов, разработка нового робота с учетом прежних наработок заняла 3 месяца. В следующей статье будет понятно почему. Программирую и автоматизирую уже порядка 15-и лет. 
avatar
Robot-Scalper.ru, я уже 3 года пишу — а конца и края не видать)))
недавно второй ежедневник начал, где записываю свои пунктики по доработке.Есть у революции начало — нет у революции конца  — это чисто программистская поговорка))).Удачи в начинаниях…
avatar
Игорь Семенов, вы меня не так поняли. Разработка данного робота заняла 3 месяца. А так, у меня есть и другие скрипты. И начинал я программировать роботов не три месяца назад. ))
avatar
Да, снова контр-тренд в прайс-канале) Но это уже лучше, чем фракталы)
avatar
Для завершённости первой части статьи надо бы приложить картинки для 'неприемлемых вариантов' поведения бумаги.
А потом общие итоги демотеста за месяцок.
avatar
Robot-Scalper.ru, тестить проще и нагляднее всего в МТ5, но этот тест будет верен только для минимального объёма позиции так как нет истории стакана. И тестить лучше маркетами, а не лимитками.
avatar
DedBoroded, благодарю за совет!
avatar
Robot-Scalper.ru, MQL не изучаете? В МТ5 добавили возможность теста по реальным тикам.
avatar
qlewer, не изучал. Планирую.
Сначала я программировал на QPILE. Одно мучение! )) Без костылей не обойтись. Хорошо что вовремя перешел на LUA.
LUA гораздо лучший инструмент, чем QPILE.
Много времени я посвятил разработкам на TSLab. Удобная вещь!

Изучал CoFiTe и RoboLab. Но они у меня не прижились. Очень сложно в них разрабатывать роботов. Ни чем не проще, чем просто писать код в notepad-е.

Сейчас уже сложно переходить на другие инструменты, так как на LUA у меня уже очень много наработок. Проверенных, протестированных, оптимизированных. Я уверен в том, что они отработают четко, без багов. А разрабатывать всё практический с нуля, это значит пройти через кучу новых багов. )) Именно этот момент меня и останавливает. А так, проблем нет в изучении нового языка. Я их более 30-и знаю. И довольно легко в новом разберусь. Синтаксис обычно Си-подобный, за исключением некоторых тонкостей.
avatar
Жду продолжения!
avatar

Ссылка на вторую часть.
avatar

теги блога Robot-Scalper.ru

....все тэги



UPDONW
Новый дизайн