Блог им. boton

Роботы без программирования

    • 01 ноября 2021, 13:22
    • |
    • Q Bot
  • Еще

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

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

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

Роботы без программирования

На самом деле программирование — это не сложно. Это просто долго. Это требует примерно столько же усилий, как обучение игре на фортепьяно или изучение английского языка. При этом нужно понимать, что пользоваться новыми навыками вы сможете много раньше, чем достигнете какого-то «приемлемого» уровня. Для обыденного общения на английском туристу достаточно 2-3 тыс. слов. Носителю языка достаточно 15-35 тыс. слов для общения на любые темы. А всего в английском 150-200 тыс. слов по разным оценкам, т. е. большинство слов английского языка самим англичанам нафиг не нужны, хотя какая-то часть из них и лежит в пассиве. Вы за последние 10 лет хоть раз использовали в своей речи слово «обыденное»? Вот и я сегодня впервые :-) Вывод: понимать код роботов вы сможете много раньше, чем научитесь программировать сами. А пока попробуем использовать роботов даже без понимания их кода.

Итак, мы скачали платформу OsEngine и смогли запустить ее. Ткнув на шестеренке внизу черного окна мы смогли переключить ее на русский язык. Что там где, что нам нужно, а что не очень?

Роботы без программирования
 
Вы видите три раздела:

  1. Работа с данными
  2. Тестирование
  3. Торговля

Я использую не все 7 подразделов. Только эти:

Дата — позволяет скачивать исторические данные из прошлого. Такие данные нужны для тестирования роботов. Роботов не запускают сразу на рынок, чтоб они там сделки совершали. Роботов после создания сначала тестируют и оптимизируют на исторических данных по-быстрому скармливая им историю за предыдущие дни, недели или годы. Обманутый робот якобы совершает там какие-то сделки (понарошку), а разработчик потом смотрит, заработал бы что-нибудь робот, если бы вся эта торговля происходила на самом деле. Далеко не все роботы зарабатывают. И проверяют это как раз тестированием, не рискуя своими деньгами.

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

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

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

Вернуться обратно в общее окошко со всеми модулями из выбранного модуля (Дата или Тестер) вы не сможете. Нужно выйти из программы и запустить ее заново. Это несколько неудобно, но так уж исторически сложилось.

Сейчас вам нужно найти папочку doc в директории OsEngine-master и изучить ее содержимое. Там есть дополнительная информация по упомянутым мной и другим модулям.

Роботы без программирования

Роботы без программирования

До новых встреч!

 

★11
15 комментариев
Качественно программировать — это все таки не так просто. 
avatar
Андрей К, определенно. Но нам бы хоть как-то. Посмотреть на чужое и попытаться использовать готовое.
avatar
Андрей К, не сложнее, чем грамотно писать на обычном языке, соблюдая правила грамматики и орфографии))
avatar
$100, расскажу вам небольшой пример.
Я мощности продаю в MT5 для того, чтобы тестеры стратегии за денюжку использовали мой процессор для расчета бек теста.  И вот сидишь, работаешь, а тут компьютер просто наглухо виснет и в конце дня денежка падает, чуть больше, чем обычно.

Так вот запрограммировать можно качественно и такого не будет и тесты будут быстро бегать. А можно не качественно, чтобы вот так вот с тяжестью проходило.

Это простой банальный пример, где может наказываться рублем некачественный подход в программировании.
avatar
Андрей К, 
тесты иногда много ресурсов отнимают, когда большое облако параметров обсчитываешь. При чем тут «качество» программирования? Можно наверное и заплатить за аренду мощностей. Я на своем сервере все считаю, потому что у меня файловые операции, которые не расшарить на других пользователей (точнее наверное расшарить, но мне этого не нужно). Так вот тест в среднем идет всю ночь. 
Дмитрий Овчинников, делать заранее предрасчеты, кэшировать результаты и тд… методов не один… чтобы каждая итерация теста не тянула лишние расчеты. Это что на поверхности лежит, чтобы ускорить и упростить бек тест.
avatar
Андрей К, это тебе надо, чтобы алгоритм в реальной жизни быстро соображал. Мне, например, не надо, если алгоритм отрабатывает раз в хх секунд. Какая разница как именно коряво я написал свой код, если ему надо всего-лишь посчитать за это время матрицу из нескольких сотен параметров?
А то, что он бектестит это один раз на оптимизации всю ночь, так я сплю в это время.
Дмитрий Овчинников, сейчас я себе на бумажке помечу, завтра постараюсь ответить. А то уже носом клюю… меня к этому еще TsLab приучил, что подходы к бек тесту надо сильно оптимайзить, не знаю как сейчас, а лет 8 назад, там это играло большую очень роль: можно было минут за 30 прогнать, а можно тоже самое и за 4 часа… я потом это все перенес в другие платформы
avatar
Андрей К, 
давай, интересно. Может быть я чего-то не знаю? А я точно много чего не знаю :)
Дмитрий Овчинников, 
доброе утро. Я сегодня проснулся и решил, что статейку накидаю. Так что сегодня я тебе не отвечу. Более тщательно подготовлю материал )
avatar
Андрей К, 
спасибо, будет интересно почитать. Статья лучше, чем ответ :)
Можно сочинять роботов и в др прогах типа Ами Брокер 4.3 или Метасток 7.2.Их язык похож на Бейсик и вполне понятный.Вот робот на Амиброкер 4.3 .

Стратегия: Если Low>MA – покупаем, если MA>High – продаем» с стоп-лоссом и тейк-профитом.

Программа:
Comission=0.035;
SetOption( «CommissionAmount», Comission); /* commissions величина */
FixedDollarAmount = 100000;
PositionSize=FixedDollarAmount;
SetOption( «CommissionMode», 1); /* set commissions в процентах от трейда */
SetOption( «initialequity», FixedDollarAmount); /* starting capital */
SetOption( «MaxOpenPositions», 1);
SetOption( «AccountMargin», 100);
//~~~~~~~~~~~~~~~~~
y1=MA(C,500);
Buy=IIf(L>y1,1,0);
Sell=IIf(y1>H,1,0);
Buy = ExRem( Buy, Sell ); Sell = ExRem( Sell, Buy );
Cover=Buy; Short=Sell;
ApplyStop(stopTypeLoss, stopModePercent,0.75, 1) ;
ApplyStop(stopTypeProfit, stopModePercent,6,1) ;
Plot(y1,»y1?,colorRed,styleBar|styleNoLine);

avatar
у вас реклама на скрине и справа и слева, вы даже не знаете как удалять эту энтропию… я таких «прогеров» метлой сразу на крыльцо)))

теги блога Q Bot

....все тэги



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