Блог им. nosorog
Привет всем!
Как-то вдруг понял, что несколько одиноко от того, что на СЛ никто не пишет про свой опыт освоения системы Multicharts. Понятно, что ценность не в том, кто какую систему алго-торговли использует, а в самих торговых стратегиях. Которые обычно лучше не светить :). Тем не менее, тонкости и грабли есть при работе с любым софтом. Поэтому было бы интересно и полезно пообщаться с коллегами по цеху, выбравших Multicharts.
По мне:
— использую обычную версию (PL/EL, а не Net)
— использую не только для бэк-тестов, но и для торговли в реале
— РФ и Америка, но оба рынка — в плане алго в начале пути, поэтому опыт небольшой.
В целом продуктом доволен. Но квик-коннектор, конечно, несколько портит впечатление. Считаю, что дело тут не только в разработчиках «мультика» — свои грабли есть и в квике (в том числе в его серверном ПО). Кстати, относительно недавно наконец то исправлена одна топ-ошибка, при которой сервер квика тупо зависал.
В общем, надеюсь, что я не один во Вселенной :) Коллеги, отзовитесь!
ЗЫ. Кстати, по тому же ТС Лабу особой тусовки на СЛ тоже не наблюдаю. Нет надобности или все общаются где то еще?
К примеру: нельзя из индикатора торговать. Чтобы видеть индикатор на графике и одновременно торговать, нужно добавлять на график и индикатор и стратегию, ну или пилить торговлю с индикатора через аццки неудобный TradeManager.
По умолчанию все ордера это приказы, поддерживаемые системой, пока выполняется условие. То есть, нет такого чтобы взять и просто бросить лимитный ордер, а потом при необходимости его снять. Это приводит к целому ряду геморов. К примеру, если в условие сделки стоит нулевая позиция, то при частичном заполнении ордера, остаток будет снят автоматически (ну или можно остаток конвертировать в рыночный ордер, что при приличном объёме нах не надо).
Вообще, отправка ордеров там, как по мне, крайне заморочена, TradeManager вообще отдельная песня. Почему нет простейших команд типа «Снять все ордера» — непонятно. Изучение Trade Manager займет времени больше, чем всего MCharts.
Нет встроенного механизма глобальных переменных (тех, к которым имеют доступ все скрипты одновременно). Есть решения через сторонние библиотеки, но там или количество переменных ограничено, или работает через одно место.
Хотя в принципе, всё это было преодолено и MC работала с IB стабильно. В целом терминал неплохой. Основное удобство — большой выбор брокеров и поставщиков котировок.
PS. Пользуясь случаем, могу продать пожизненную лицензию MC64.NET за 500 долларов, поскольку более в сторонних платформах для алготорговли не нуждаюсь.
Если позволите, немного прокомментирую ваши замечания — ибо они действительно по делу. Понимаю, что вам это не нужно, но глядишь — наш диалог поможет кому-то другому с выбором или освоением алго-системы.
Итак. Насчет использования индикаторов. Согласен на все 100%. У меня этот бред даже в голове в первое время не укладывался. Пишешь сигнал (грубо — торговую стратегию в общепринятых терминах) — к примеру, пробой диапазона. Закладываешь в него некую логику определения этого самого ренджа. Но хочешь визуально его видеть на графике. Тебе повезло — пиши тот же самый алгоритм для индикатора. Потому что из сигнала нельзя рисовать на графике. Почему — хз. Если не ошибаюсь полуофициальная версия — потому что мультик основан на некогда купленных исходниках трейдстейшен, и переделывать архитектуру было себе дороже. У них даже каталоги и ветки в реестре зачастую TS называются :). Короче так когда то решил программист-разработчик. И бесило меня это страшно. Потому что ведь бывают и «черновые индикаторы» — это просто врЕменные линии на графике, помогающие при программировании стратегии быстрее обнаруживать ошибки. Но одно дело внутри кода сигнала добавить «вывести значение переменной х на график» и потом убрать данную строку после отладки этого участка кода (дело 5 секунд) и другое — ради этого создать по сути еще одну программу и полностью продублировать код сигнала (причем фиг там — кое какие операторы сигнала нельзя использовать в индикаторе — поэтому будь добр еще и причеши код — а это уже 555 секунд). Бред. Сейчас делаю проще — есть индикатор, который тупо рисует на графике значения внешних переменных. А в коде сигнала я присваиваю при необходимости этим переменным значения. Это одна строка — как я и хотел. Немного может быть не информативно — но комменты в коде рулят (кстати, в редакторе кода можно использовать только латиницу — это по-моему в нормальных программах побороли еще в конце 90х :( ).
ТрайдМагагера не щупал. Но запомнил — спасибо, что предупредили!
Насчет того что ранее выставленный ордер не снимается только если при очередном проходе кода сигнала он снова генерится — тоже сначала было не привычно. Зачем так делать? Потом потихоньку привык. Но пока, помимо описанной вами проблемы с частичным исполнением ордера — особых сложностей не вижу. Хотя знаю про эту проблему — она у меня записана в очереди «разобраться». Пока не теми объемами торгую и не на том этапе внедрения своих ТС нахожусь. ИМХО (навскидку, т.к. наверняка дъявол в деталях набросает кучу других преград) — в первом проходе (когда выполняется условие для размещения ордера) можно просто запомнить переменные НадоВыставитьОрдер = true и ТребуемоеКоличествоЛотов = 17 (ну и сами характеристики ордера). А потом генерить в очередном проходе выставление ордера до тех пор пока не наберешь позицию — если логика именно такая. Кстати, marketposition — это та еще функция. Я ею не пользуюсь — написал свою MyMarketPosition — ибо в разных условиях оригинальная функция может возвращать не всегда очевидные (во всяком случае для новичка) значения. И это я еще про режим потиковой торговли (IOG) молчу. А я как новичок сразу решил вляпаться в нетривиальную торговую систему (по сути не свечной анализ) — и поэтому полгода реализовывал дикую связку ежа с ужом. Зато закалился :)
Antishort, еще раз спасибо, что откликнулись и поделились опытом!
Удачной торговли и алго-прибыли! :)
Идеология и Мультика и TS — основные расчёты в процедуру/функцию. Для визуализации и для сигналов и т.д. только эту функцию и вызываешь.
Т.е. дублировать много строк кода между индикаторами и сигналами не надо.
Как лицензия выглядит/привязывается к компу?
Есть возможность установить лицензионный Мультик с коннектором на виртуалке Hyper-V?
Лицензия — с помощью usb-брелка.
Так как я не знаю официальной позиции мультичартовцев на найденное мной решение, то ответ на вторую часть вопроса кинул вам в личку — думаю так правильнее.
Хотелось бы может стыкануться в телеграмме, может какой-то чат по интересам там завести, еще кого-то туда позвать. Возможно были бы друг другу полезны.