Торговля на финансовых рынках сопряжена с множеством рисков, в числе которых самый главный — это риск совершить ошибку при принятии торгового решения. Мечта каждого трейдера – поставить вместо себя торгового робота, автомат, который всегда в отличной форме, не знает усталости и не подвержен людским слабостям: страху, жадности и нетерпению.
Каждый новичок, приходя на рынок, надеется заполучить или создать четкую и строгую торговую систему, которую можно переложить на язык алгоритмов, и полностью избавиться от рутинной работы. Возможно ли это?
Наличие торговой системы является необходимым условием для торговли, и эта система, конечно, должна быть прибыльной. Когда новичок приходит на рынок, на него буквально обрушивается лавина информации, в которой не так-то просто разобраться. И на помощь здесь приходят книги и форумы трейдеров.
К сожалению, не все авторы книг являются успешными трейдерами, и не все успешные трейдеры являются авторами книг. Многие специализированные ресурсы создаются только для заработка их хозяевами, ведь торговать на свои деньги гораздо сложнее, чем выпускать прогнозы и обучать торговым системам.
Каждый трейдер должен самостоятельно пройти все стадии на пути создания собственной торговой системы. Не зря говорят, что не важно, по какой системе ты торгуешь, главное, чтобы ты действительно торговал по этой системе. Без этого торговля на рынке превращается в азартную игру, исход которой предрешен.
Встречается множество подходов к построению автоматической торговой системы. Выделим несколько основных из них.
Первый подход – математический, основан на попытке создания некой формулы, которая учитывает множество факторов. Такой подход базируется на твердой уверенности, что в основе поведения цен лежит некая модель, которую нужно только подобрать или угадать на основе имеющихся исторических данных.
Зачастую сторонники такого подхода знают слишком много математики и совсем не знают/не интересуются рынком. Рынок для них — чистая абстракция, одна из разновидностей интеллектуальной игры. Такой подход обычно ведет к многолетним изучениям и разработкам, результат в виде работающей автоматической торговой системы сам по себе не является важным. Хотя истории и известны фонды, состоявшие из нобелевских лауреатов по экономике, и имевшие в управление миллиарды.
Второй подход берет за основу изучение закономерностей рынка. При этом не делается никаких попыток понять, почему цена растет или падает при появлении тех или иных фигур технического анализа на графике цены. Преимущество этого подхода заключается в том, что он не требует особых знаний математики и не делает предположений о движущей силе рынка.
Такой подход наиболее понятен и удобен для обучения торговле на рынке. Чаще всего именно его проповедуют трейдеры, получившие всеобщее признание. Недостатком подхода является необходимость постоянно находиться у монитора и отслеживать все необходимые инструменты на экране монитора. Простота правил торговли в таких случаях обычно вызывает законное недоверие у новичков, увлекательная торговля превращается в рутииную бухгалтерию.
В конце концов трейдер начинает задумываться над автоматизацией торговых процессов, и тут выясняется самая большая проблема – сложность формализации торговых правил при попытке перенести торговые правила на язык алгоритмов. Трейдеры, которые пытаются заказать торговый робот профессионалам, не всегда могут сформулировать правила торговли и найти общий язык с программистами.
Третий подход основан на попытке создать «черный ящик» на основе нейронных сетей с помощью готовых инструментов, широко представленных на рынке в специализированном ПО и в математических пакетах. Строительство своей собственной автоматической торговой системы с применением элементов искусственного интеллекта является очень интересной и увлекательной задачей даже для новичков, так как не требует ни глубокой математической подготовки, ни опыта программирования – все делается с помощью визуальных средств.
От трейдера в этом случае требуются базовое знание индикаторов технического анализа, умение подготовить необходимые ценовые данные и навыки работы с конкретным пакетом по работе с нейронными сетями. Главным недостатком такого подхода является то, что полученный с помощью специализированных инструментов по работе с нейронными сетями торговый автомат на самом деле является «черным ящиком» — принципы его работы неизвестны самому трейдеру, и нельзя в общем случае предсказать, какая фаза рынка ему не понравится.
Программисты часто выбирают четвертый путь – они сразу начинают писать торгового робота и не хотят особенно тратить время на ручную торговлю. Зачем? Ведь можно сразу написать автомат, потратив на это несколько месяцев, и затем только пожинать плоды своего труда. Хотя это напоминает ситуацию телеги и лошади — не имея опыта ручной торговли и покрасневших от монитора глаз, бросаться на такую амбразуру не стоит.
Ведь «без труда не вынешь и рыбку из пруда», и программист зачастую вместо торгового робота начинает писать с нуля на известном любимом ему языке программирования всю нужную инфраструктуру – получение и обработка ценовых данных, визуальное представление графиков и индикаторов, собственные средства по тестированию стратегии на истории и так далее. А какое удовольствие приносит создание своих коннекторов и прочих прокладок, только чтобы реалтайм данные начали поступать из терминалов, которые они вынуждены использовать.
Бывает, они выходят на форумы трейдеров и начинают рассказывать о своих чудо тестерах, которые рвут по скорости все другие проприетарные решения. Но оказывается, что вместо тестера у них заточенная под конкретную простую стратегию числомолотика, и пользоваться ею никто кроме автора не сможет. Правда, некоторые из них даже причесывают свои программы под знакомые всем интерфейсы и пытаются продавать.
В процессе этой работы он получает много полезного опыта. Но при этом он, чаще всего, ни на йоту не приближается к конечной цели – созданию автоматической торговой системы. И если даже он пройдет весь путь до конца, то где гарантия, что написанный робот окажется прибыльным? А если он захочет написать другую торговую систему? Нужно все перестраивать и разбираться с новыми неизбежными ошибками программирования. Зачастую, этим трейдерам больше нравится программировать и отлаживать, чем торговать. Но не все из них понимают это.
Есть еще и пятый путь – попытаться купить готового торгового робота и торговать с его помощью, при этом трейдер выступает в качестве оператора или настройщика. Такой вариант существенно экономит время (не требуется изучать множество новых вещей) и позволяет сразу же окунуться в мир автоматической торговли.
Главный недостаток такого подхода проистекает из его достоинств – вы не знаете, как работает данный торговый робот и на каких принципах он построен. И если даже продавец предоставил вам подробное описание заложенной в нем торговой системы, вы никогда не будете в ней уверены до конца.
Впрочем, 100%-ную гарантию не дает ни один подход, кроме депозита в банке. Но это не совсем то, за чем идет человек, интересующийся биржей и возможностями спекулятивного (и чем быстрее, тем лучше) преумножения капитала.
Каждый из пяти описанных подходов имеет свои преимущества и соответствует своему типу трейдера. Вряд ли вы без хорошего математического багажа выберете первый путь – попытку аналитического описания рынка. И маловероятно, что вы сразу же пойдете путем строительства торгового робота на основе нейронных сетей. Хотя оба этих варианта очень привлекательны и интересны и предоставляют хорошую зарядку для ума.
Сейчас в век интернета трейдера со всех сторон завлекают курсы, школы, семинары и так далее. Начинать лучше всего, по нашему мнению, с изучения классиков жанра — со чтения известных книг признанных трейдеров. Далее мы поговорим только о втором подходе, который уже является классическим. Именно с него начинает свой путь в автотрейдинг подавляющее большинство трейдеров, так как знание технического анализа еще никто не отменял при освоении основ торговли на рынках.
Достоинство этого выбора заключается еще и в том, что после того, как вы самостоятельно поторгуете на рынке вручную и впитаете в себя то, что многие называют чувством рынка, вы уже будете хорошо понимать сами инструменты технического анализа. Помимо этого вы сможете заняться самостоятельно программированием торговых стратегий на более высоком уровне. Тут вам пригодятся и математика, и программирование. Но в таких дозах, что это не убъет вас.
Для написания автоматической торговой системы требуются навыки программирования и знание всех тонкостей обработки торговых запросов. Но вы можете на первом этапе начать знакомство с уже готовыми торговыми роботами.
Найдите и скачайте в интернете готовый код и проверьте его на участке истории с ярко выраженным трендом. Затем посмотрите, как он ведет себя когда цена находится в диапазоне/флете. Проведите оптимизацию входных параметров и посмотрите, как они отличаются на этих двух участках.
Запустите на трендовом участке эксперт с оптимальными параметрами для флета, и наоборот – на флетовом участке с параметрами для тренда. Посмотрите, насколько сильно меняются торговые результаты, как меняются распределения сделок и остальные статистические параметры. Таким образом, вы узнаете, как сильно может меняться поведение торговой системы при изменении ситуации на рынке.
Желательно таким путем исследовать несколько классических торговых стратегий на разных участках истории и на разных инструментах. Такая обкатка в тестере может оказаться хорошей прививкой на будущее от подгонки торговой системы под конкретную историю и поможет лучше понимать суть трендовых и контртрендовых систем.
Немало копий сломано в спорах о том, как отличить оптимизацию от подгонки, здесь нет готовых универсальных рецептов. Научитесь из всего набора входных параметров выявлять именно те, которые влияют на торговую систему. Не принимайте во внимание второстепенные параметры, которые отнимают время при оптимизации, но не влияют на саму логику системы. Помните, что хорошая торговая система всегда допускает небольшой люфт по второстепенным параметрам, но при этом не делает драматических провалов при небольшом изменении характера рынка.
Вы можете потратить времени на этом этапе столько, сколько вам требуется для того, чтобы быть уверенным, что вы хорошо можете понимать любую торговую стратегию по результатам тестирования и оптимизации. Знание слабых и сильных сторон традиционных систем позволит вам быть более подготовленным при создании своего собственного торгового робота.
При выборе языка программирования нужно принять во внимание несколько важных факторов:
Знание языка программирования на базовом уровне позволит вам впоследствии самому вносить мелкие исправления и изменения в полученный код уже после завершения работы. Ведь не будете же вы по каждому мелкому поводу обращаться к другому программисту, гораздо быстрее и проще сделать это самому.
Как найти собственную торговую систему или хотя бы знать, в каком направлении нужно сосредоточить поиски? Каждый трейдер дорожит своей системой, если она у него есть, и каждый новичок мечтает создать свою или получить уже готовую прибыльную стратегию. При этом любая найденная идея кажется слишком простой по сравнению с тем, какой должна быть настоящая работающая система в представлении новичка.
Военные во всех странах склонны к чрезмерному уровню секретности, и не зря на этот счет существует множество анекдотов, среди которых есть и такой: «Военная тайна заключается не в том, что вы это знаете» — говорит инструктор курсантам военного училища, — «а в том, что это знаете именно вы». С торговыми системами ситуация примерно такая же: большинство трейдеров используют простые известные торговые идеи, только с небольшими доработками, например, в виде использования трейлинг стопа (Trailing Stop) или подтверждения сигналов от трендовых индикаторов.
Существует множество закрытых трейдерских форумов, на которых идет совместная разработка или доработка секретных торговых систем и куда закрыт вход простым смертным. Самое интересное, что ничего секретного на них найти нельзя, всегда берется старая классическая идея, вроде «торгуй по тренду» и доводится до совершенства с помощью каких-то новых неизвестных широкой публике индикаторов.
Поэтому вы можете смело брать доступные в исходном виде коды торговых роботов и пытаться найти правильное их использование на тех или иных инструментах и таймфреймах. Как говорится — «Вы не любите кошек? Вы просто не умеете их готовить!» В это трудно поверить, но вероятность того, что вы придумаете что-то принципиально новое, очень мала. Тут главное всё правильно сделать самому из доступных ингредиентов и не думать, что кто-то сверхумный пользуется какими-то секретными разработками из лабораторий NASA. В этом и заключается секрет Грааля.
«Если торговые идеи лежат буквально под ногами, то почему ими никто не пользуется?» — возникает резонный вопрос. Ответ на него кроется, вероятно, в человеческой психологии. Многие банки и крупные инвестиционные фонды содержат в своем штате трейдеров, которые торгуют по расписанным правилам и в объемах, которые им позволены. Но почему-то редко когда институциональные трейдеры уходят на вольные хлеба и начинают торговать на свои деньги.
Получается, что нужна не только сама торговая стратегия, но и железная дисциплина, чтобы выполнять все её правила. Многие трейдеры с горечью убеждались, что они такие же смертные, как и все остальные, и им не чужды все те проблемы психологии, которые описаны в книгах. И осознав, что самый большой враг трейдера — это он сам, трейдер задумывается о создании торгового робота, который будет работать вместо него и снимет с него психологическую нагрузку.
Отклоняясь немного от темы, приведем в пример легендарную группу «Черепахи», которая успешно торговала на множестве рынков в конце 20-го века. Прочитав «Путь черепах», понимаешь, что главное в профессии трейдера именно железная внутренняя дисциплина, а не какая-то суперсекретная система. Взять хотя бы торговые системы А. Герчика — он дает их бесплатно, их можно скачать с торрентов бесплатно. Увы, большинство не сможет торговать по прибыльной стратегии, даже если получит её даром. И потому многие начинают подозревать, что их обманывают… )
Проблема заключается в том, что большинство торговых стратегий, которые успешно торгуются вручную, с трудом поддаются формализации и переложению на язык компьютеров. Те стратегии, которые легче всего запрограммировать, например, на пересечении двух скользящих средних, являются слишком простыми и требуют множество уточнений и доработок, чтобы ими можно было пользоваться на деле. Таким образом, простая идея обрастает множеством внешних параметров, которые позволяют роботу избежать ложных входов и ошибок, хорошо видимых человеку. Возникает проблема оптимизации торгового робота. В итоге она не должна превратиться в переоптимизацию и подгонку под конкретный участок истории.
Оптимизация торгового робота перед его запуском в онлайн-торговлю по сути напоминает раскручивание пращи — от того как тщательно мы раскрутили и швырнули снаряд из пращи, зависит насколько далеко и точно он улетит от точки броска. Хорошо построенный торговый робот продержится с положительным результатом более длительное время, чем его собрат, полученный в результате подгонки.
Можно сказать, что Грааль — это работающая идея и правильная корректировка параметров, проводимая время от времени при изменении рыночных условий.
Профессиональный трейдер, торгующий внутри дня, проводит за монитором много часов в ожидании удачного момента для совершения сделки, и он не всегда может быть в отличной форме.
Большинство трейдеров приходит к мысли, что зачастую их действия при торговле нарушают их же собственные торговые правила. Пусть не все торговые системы можно автоматизировать, но даже для них в большинстве случаев можно создать вспомогательные инструменты в виде индикаторов, аналитических систем и фильтров ложных сигналов.
Надеемся, что данная статья сэкономит новичкам время и укажет нужное направление в нелегком деле создания автоматической торговой системы.
запрограмировать
знаешь почему
потому что в ней всегда будет присутствовать ситуационность
Программисты часто выбирают четвертый путь – они сразу начинают писать торгового робота и не хотят особенно тратить время на ручную торговлю. Зачем? Ведь можно сразу написать автомат, потратив на это несколько месяцев, и затем только пожинать плоды своего труда. Хотя это напоминает ситуацию телеги и лошади — не имея опыта ручной торговли и покрасневших от монитора глаз, бросаться на такую амбразуру не стоит.
Ведь «без труда не вынешь и рыбку из пруда», и программист зачастую вместо торгового робота начинает писать с нуля на известном любимом ему языке программирования всю нужную инфраструктуру – получение и обработка ценовых данных, визуальное представление графиков и индикаторов, собственные средства по тестированию стратегии на истории и так далее. А какое удовольствие приносит создание своих коннекторов и прочих прокладок, только чтобы реалтайм данные начали поступать из терминалов, которые они вынуждены использовать.
Бывает, они выходят на форумы трейдеров и начинают рассказывать о своих чудо тестерах, которые рвут по скорости все другие проприетарные решения. Но оказывается, что вместо тестера у них заточенная под конкретную простую стратегию числомолотика, и пользоваться ею никто кроме автора не сможет. Правда, некоторые из них даже причесывают свои программы под знакомые всем интерфейсы и пытаются продавать.
В процессе этой работы он получает много полезного опыта. Но при этом он, чаще всего, ни на йоту не приближается к конечной цели – созданию автоматической торговой системы. И если даже он пройдет весь путь до конца, то где гарантия, что написанный робот окажется прибыльным? А если он захочет написать другую торговую систему? Нужно все перестраивать и разбираться с новыми неизбежными ошибками программирования. Зачастую, этим трейдерам больше нравится программировать и отлаживать, чем торговать. Но не все из них понимают это.
это какраз правильный подход, потому что в 21-м веке рулят только роботы и у ручного трейдера нет никаких шансов против них.
Я вообще то не торгую, но я всегда выбираю четвертый путь. А зачем, собственно, что-то делать руками, если это можно сделать программно? Если надо обработать кусок текста, не проще ли написать пару тройку регулярок, чем редактировать вручную через поиск и замену? Программист вообще ничего в ручную не должен делать. Даже программы вручную в идеале не надо писать, надо писать кодогенераторы.
Не считайте кусок вводной (чтобы сделать вывод, вводная ведь нужна?) сутью статьи. Там все детально описано и выведено.
В четвертом MT Это делается в одну строку. В пятом можно так же или обязательны эти танцы с бубном?
Чтобы понять разницу «в одну строку» и «не в одну строку», надо подумать о производительности.
Если вам нужно посчитать 1000 значений от iMA, то в четверке вы потратите уйму времени на 1000 дорогущих запросов вглубь индикатора.
А в пятерке вы однократно запросите все 1000 значений, положите их в локальный массив (особенно если он статический) и сможете максимально быстро (не забывайте, что программа в финале компилируется в нативный 32/64 битный код) с ними работать.
Отсюда вопрос — вы хотите тормозить как в четверке или летать на максимальной скорости в пятерке?
А если усложнить вопрос и добавить — на чарте 2 миллиона баров?
Производительность в 95% процентов роботов, которые лично сам делаю для своих клиентов не имеет никакого значения. Минимальных значений как правило хватает
Один раз при старте в OnInit создали хендл и потом нужном месте вызываете одну строку CopyBuffer и далее все данные в прямом доступе.
Совсем голову отключаете(боже мой, программист написал одну строку лишнюю) или просто нудеть решили, считая, что это уязвимое место?
Смешно же.
А вот производительность — это не смешно. И именно она важна, когда у тебя числодробило с гигабайтами данных в чартах и огромное количество трейдеров, запускающих индикаторы и роботы на десятке чартов с миллионным количеством баров.
Вы, не имеющий даже понятия о платформе, или авторы этой платформы?
Если написано «1000 инплейс вызовов индикатора — это очень дорого, а один вызов — это дешево и эффективно», то не надо даже пытаться спорить.
Ведь даже тему раскрыл в паре комментов — это очень дорогая функция. Даже просто по тому, что она должна пройти через менеджер индикаторов, найтись в списке, провериться на необходимость синхронизации/пересчета и выдать одно значение из буфера.
хахаха, ну вы клоуны))) еслиб у тебя были хотябы минимальные технические знания(а не полным делитантом), то зналбы что просто прочитать данные из памяти это очень быстрая операция. и в любом случаи на несколько порядков быстрее, чем сначало их скопировать предварительно в другой буффер и только потом читать))
Идите и читайте троекратные объяснения именно в этой ветке. Я так понимаю, что до написания индикаторов вы еще не доходили. То есть, до написания «собственной среды управления, где индикаторы создаются на лету, их может быть множество, с синхронизаторами доступа в полностью динамическом рыночном окружении».
Не позорьтесь. Технический дилетант тут вы.
Меньше кода только при использовании стандартной библиотеки, что логично.
Не проще ли при таком раскладе перейти на какую то платформу с динамическим языком? например, вроде в квике луа встроен
Ну вот банально один синхронный трейд делает за 20 мс, а другой за 220 мс. Представляете, где обычно в очереди оказывается ваш ордер с такими задержками?
Так что не наводите тень на плетень и переходите на современные быстродействующие платформы. Они реально дают вам преимущество, а не чувство самоуспокоения «QPILE хватает в 90% случаев».
Вроде как в Метасе нет поддержки нескольких счетов. Какие то проблемы в валютой и опционами.
Да и зачем, если куча софта уже написано под QUIK
Я так понимаю, у вас позиция — мне ничего не надо, развитие мне не нужно.
А мы бьемся за каждые 10 микросекунд, оптимизируя платформу.
Вы не торгуете в этом все и дело.Преимущество 200 мс нужно Секрету. Остальным пофигу
Я ведь использую ваши комментарии, чтобы писать для других. Тех, кто понимает, что такое иметь аппарат в десяток раз быстрее других.
вот, например, мне нужна скорость — и я торгую только через свой софт, у которого средний раундрип выставления заявки 200 микросекунд ;)
И не путайтесь с определениями. Никакой раундтрип(с ответом) в 200 микросекунд на MOEX невозможен в принципе даже если у тебя софт на компе с ядром биржи. Там биржа сама неслабо тормозит даже просто на приеме.
Мы асинхронные заявки тоже за 200 микросекунд выплевываем в трубу. И будем еще быстрее.
lol
Он же готов заявлять что угодно. Вот даже раундтрип(полный цикл) у себя придумал в 200 микросекунд, не стесняясь забыть, что это у него время отсылки в сетевой сокет пакета с асинхронной операцией.
у меня именно полный раундтрип выставления заявки 200мкс. а полный средний тик ту трейд(раздница между биржевым временем регистрации чужой заявки, на которую я среагировал, и биржевым временем моей заявки, которую послал мой алгоритм в качестве реакции на чужую заявку) 500микросек для спота, и 900микросек для фортса.
а время синхронной посылки пакета на сетевухи(при использовании опенанлоада), да будет вам известно, всего 0.5-1мкс, а никак не 200.
но я конечно понимаю, что для технически отсталого метаквотса озвученные числа выглядят фантастикой и недостежимы впринцыпе))
0.5-1 мкс на опенонлоаде тоже мерили, или это из презенташек цифра? :)
moex.com/s335
Ведь вы отлично знаете, что это кастомные индикаторы, написанные кое-как, тормозят ваш терминал. И в логах тоже пишется четко «вот этот индикатор очень сильно тормозит».
Как раз чтобы программисты могли писать мощные системы, мы и работаем над производительностью и эффективностью языка.
Но всегда есть те, кто пишет в лоб и тратит секунды на просчет индикатора.
Сегодня сравнивал мт5 с кивком, один счет, один брокер, один комп. Видно что мт5 быстрее квика. Никаких тормозов не вижу.
В пн еще сравню мт5 с тслабом на плазе.
Первые пару минут мт5 мог жутко тормозить, а именно график и все данные на вкладке торговля.
Но коллеги торгующие алго, говорили что это только визуальная проблема, на алго никак не сказывалась.
как-то пару месяцев назад сравнивал, тогда мт5 был быстрее чем тслаб на плазе по визуальному отображению.
Посмотрим как сейчас дела обстоят.
Вообще постыдились бы писать тут про скорость пока не исправите эти баги…
Я жаловался брокеру. Ответили, что ситуация известная, разработчики разбираются. Да больно долго что-то разбираются.
Чет не понял. Сразу говорю, что эту среду вообще не знаю, просто интересно. А там разве не JIT компиляция? Если это JIT компиляция, то вы так можете наоборот потерять в производительности, если вы в рантайме, где нибудь изнутри функции например, запрашиваете все эти данные, вы вынуждены запрашивать их все, вместо одного нужного? и че то не понятно, что по поводу актуальности данных. Разве эти ваши индикаторы не должны быть актуальны на момент использования в любой произвольный момент исполнения? Что толку то, что вы положили в массив данные, которые были актуальны энное время назад?
У нас не JIT по месту, а докомпиляция всего кода в натив на этапе первичной загрузки программы. Никаких потерь нет.
Вы не уловили суть объяснения, потому что не понимаете, что скрывается за фасадом функции типа iMA.
Просто задумайтесь, что внутри iMA(индикаторов) все дорого в четверке. Особенно с учетом того, что при первом вызове iMA произойдет его создание и предрасчет. Так вот это дорогое kbrobot предлагает вызвать 1000 раз, каждый раз извлекая по одному значению.
А в пятерке вызов CopyBuffer от ранее созданного хендла на этапе инициализации программы происходит и быстрее и экономнее. За один раз извлекаются 1000 значений.
Это у вас бизнес — продавать тестеры, а у нас — рубить бабло, не привлекая внимания санитаров...
И естественно, любой грамотный спец.инструмент на голову выше универсального.
Используйте МТ5 и все доступно автоматически с полным сервисом.
А писать инфраструктурные велосипеды уже поздно. И это уже не ценные кадры, так как скилл «написать коннектор» обесценился, а все остальную инфраструктурную обвязку уже не потянуть.
Ценность поднялась на пару технологических уровней выше. И эта ценность для заинтересованных лиц давно перешла в сферу «купить надежное поддерживаемое решение у серьезной компании».
Вот как раз свежая статья Тестирование торговых стратегий на реальных тиках
Пока все ваши нападки навеяны словами точно таких же участников форумов при полном отсутствии практических знаний МТ5.
Велосипедостроительство(о чем вы многократно упоминали) не является знанием других систем.
Особенно, вообще не имея практического опыта с платформой.
я то какраз имею опыт работы с этим г**ном ;) как-то попробовал его в течении нескольких недель, поплевался с этой кривой накаленной поделки, и снес нафиг.
К тому же, пример надо приводить с полной выкладкой деталей и типом тестирования. На реальных тиках тестировали или на смоделированных? Запустите тест на реальных тиках.
Сделайте не произвольную задержку, а настраиваемую задержку. Меня бы в тестере устроила задержка в 1-2 сек спокойно. В чем еще минус произвольной задержки? Выбрал я тестирование в этом режиме и всегда в нем тестирую для более адекватных результатов. Но результаты всегда разные (т.к. задержка плавающая). Изменил я алгоритм и не знаю точно, какова степень влияния данного изменения, а каков вклад рандомной задержки, т.к. она каждый раз разная.
А если я борюсь с «особенностями» mt5, то кем я становлюсь?
Если пришли учиться на программиста, то понятно. Как раз путь 4. Но он уже обесценился за счет массовых платформ с автоматизацией.
Такое уже случалось в начале 2000 годов, когда все плевались и говорили «Метаквотс ничего никогда не создаст, вот Метасток — это сила, а Трейдстейшен — это бог, так что мы под них фиды писать будем».
В результате все давно забыли как про ломанные Метасток с Трейдстейшеном, так и про костыли с датафидами для них. Все старые писатели датафидов обесценились(а ведь считали себя незаменимыми и ходили продавать свои решения брокерам), как и писатели программ под Метасток и Трейдстейшен.
С чего это вы вообще взяли? Вы предлагаете мне опровергать ваши собственные заявления?
Вряд ли вы найдете столько программ для трейдинга в R/etc.
www.metatrader5.com/ru/metaeditor/help/mql5_wizard
Большинству никакого навороченного конструктора не хватит. К сожалению, это так.
Доказательств масса и не хочется повторять банальности.
А ваш визард кстати фигня, он не избавляет от необходимости хорошо разбираться во всех загогулинах вашего софта. И у визуального конструктора масса преимуществ на самом деле, не только простота.
Даже имея опыт программирования некоторые нюансы всей этой фигни забываются, а без этого робота в метаке не слепить.
Ещё я помню фразу Герчика «изи лэнгвич чёто не фига не изи на самом деле»
Привёл дословно. Изилэнгвич в другом софте в разы легче чем в метаке, и даже он для многих сложен…
Не работает это даже в принципе. И одного вашего желания мало — не работает и все тут. И тот, кто делает конструкторы — каждый разочаровывается и понимает, что потратил ресурсы без отдачи.
Несколько таких разработчиков приходили к нам продавать свой продукт или сразу компанию. Потому что оказывалось, что это засада.
Есть много путей с граблями, по которым должен каждый разработчик пройти. Вера в возможность конструктора для непрограммистов — это одни из таких граблей.
Вы же так уверены в успехе и никто со знаниями вам не указ! Вложитесь и озолотитесь.
Но тогда и не требуйте от остальных сделать то, что уже было сделано многократно со 100% провалом.
Конструктором из кубиков даже продвинутый программист не в состоянии пользоваться, а люди со стороны почему-то уверены, что это сможет сделать не подготовленный человек.
Почему профессионал не в состоянии пользоваться? Да потому что он понимает, какой это бред с ограничениями и что легче самому написать вручную.
Обычный человек не может из кубиков ничего создать и его мотивации не хватает в этом разобраться.
Но разработчики конструкторов идут дальше в попытках побороть ограничения. Усложняют, чтобы «понравиться более продвинутым» и тут они достигают полного финиша.
Не подготовленные трейдеры полностью теряют возможность что-либо сделать из-за сложности и необходимости обучения. Но так как мотивация у части из них еще сильна, они идут читать про программирование.
Узнав чуть-чуть про программирование, увидев чужие примеры индикаторов и экспертов, уже эти неофиты смотрят на конструктор и говорят «нет, что это за бред такой! я лучше сам напишу, примеров вот сколько готовых».
Кто же вам запрещает это сделать?
А вот требовать с других — запрещают.
Где ваши логи и доказательства 'у меня раундтрип 200 микросекунд''? Ведь опозорились знатно.
Видимо, привыкли в форуме бездоказательно перед новичками выступать.
<2016.8.9 17:43:6.786.430776><Info><Sending order instrument = SRZ6, internal id = 1271860691, side = Bid, quantity = 50, price = 0000014294.00000>
<2016.8.9 17:43:6.786.653737><Info><OnExecutionReport: internal id = 1271860691, external id = 22387223290>
ПС. приэтом я еще не самый быстрый на нашей бирже ;) на некоторых инструментах есть игроки, которые часто меня обгоняют и в более половины случаев успевают влезть вперед.
Не работают конструкторы хоть ты тресни. Обьяснений масса и все это очень просто.
В данном случае или ты учишь людей или играешь роль соглашателя, поддерживая людей в их заблуждениях.
Или все таки это внутренний промежуточный идентификатор в своем движке, не имеющем отношения к бирже?
и что удивительного в 223 микросекунды? это еще не самое лучшее время, иногда даже немного меньше 200 получается.
Вы утверждаете, что получили ответ от биржи через 223 микросекунды?
Но в любом случае соврали. Это в принципе невозможно на MOEX, да и на дюбой другой бирже.
Но я понимаю, игра ва банк, терять нечего.
кстати, да, а ордер улетал ч/з p2 или все же нет?
в примере вполне адекватное время от futaddorder до колбэка, при «честной» криптографии p2mq
Nik, это вы в форумах наивным можете сообщать про 200 микросекунд, путая банальный icmp roundtrip, который как раз 200 микросекунд в вашем случае с реальным временем установки ордера в стакан и получением подтверждения об этом.
Именно поэтому вы так сьезжаете на финальном участке обсуждения.
Расскажите пожалуйста как с этой ошибкой бороться? Метатестер был добавлен в исключения антивируса и фаервола (у меня win 8.1, всё по умолчанию — антивирус родной). Разрешил даже порт 3000 на виндоус фаерволе в обе стороны. Приходится запускать тестирование по 3 раза. С первого раза очень редко начинает, выдает такую ошибку, раза с 3-го запускается.
Вот я задавал вопрос http://smart-lab.ru/blog/341200.php#comments
и вас позвал на обсуждение, но почему-то вы этот вопрос проигнорировали.