В прошлых 2-х темах мы затронули проблемы, связанные с нерыночными рисками… Например, — разрывы связи, вылеты сервера, перезагрузка операционки, а также внезапные остановки торгов по неизвестным причинам. Желающие могут ознакомится с выводами в соответствующих темах, которые легко найти по тэгу «торговые роботы». Причем некоторые коллеги были настолько любезны, что смогли обобщить обсуждения и сформулировать изящные резюме.
Ныне я предлагаю обсудить решение, связанное с приостановкой торгов по одному или нескольким инструментам.
Вечером 30 августа 2022 года Газпром объявил о новой рекордной выплате дивидендов. В результате, утром 31 августа, на торгах акциями Газпрома было минимум 10 приостановок торгов. Сначала был гэп на открытии, затем неоднократные приостановки торгов.
Что делать в таких случаях?
Если у нас случилась приостановка торгов на время, то как это понять на уровне алгоритма?
Вероятно, можно ввести простое условие об отсутствии тиков по каким-либо инструментам одновременно, которое будет означать приостановку торгов. И, наоборот, наличие тиков по каким-нибудь другим инструментам из этой же или из другой секции мосбиржи. Тогда, для этого, нужно задавать несколько дополнительных и несвязанных инструментов, по наличию тиков на которых мы будем делать вывод о том, что «это просто приостановка торгов по заданным инструментам». Тогда, если найдется хотя бы один такой проверочный инструмент, по которому продолжают поступать тики, то мы, таким образом, поймем, что у нас есть ситуация простой «приостановки торгов», а не чего-то худшего.
Вместо этого можно было бы сделать систему анализа сообщений, поступающих с биржи или от брокера, но это, вероятно, было бы намного сложнее в реализации.
Мнения? Критика? Предложения?
как мы выяснили ранее, для многих важно это понимать
Ещё в многоногой торговле, если нет отслеживать остановки торгов, то можно попасть в ситуацию, когда по одной ноге сделка прошла, а по другой сейчас остановка.
Все это лишние финансовые потери.
вариант на МТ есть, там все просто
Во-вторых биржа выдает сообщения «если цена не отвернет, то через минуту будет остановка». Транслируем оператору.
В-третьих в плазе (просмотровый логин 2000 в месяц) есть поле «статус», в котором при остановке меняется значение.
В-четвёртых при действиях с заявками во время остановие торгов терминал может выдавать особую ошибку. Например, Metatrader выдает «market closed», вместо «invalid request» или других. Значит, на это можно реагировать, например повторить операцию над заявкой через 5 секунд.
про плазу полезное замечание, спасибо!
чтобы знать положения планок надо или их задавать «ручками», что не очень удобно, либо учиться читать сообщения брокера/биржи
а отсюда вопрос? где лучше брать и как получать границы диапазона — планки
А вот interactive brokers tws их не транслирует. Ищу где можно автоматически брать.
ну вот и выходит, что даже на одной мосбирже надо применять сразу 2 алгоритма определения приостановки торгов на планке цен… на срочке можно получать из терминала, а на фонде — считать «тики», как описано выше
и на ИБКР в ТВС, выходит так, что надо считать «тики» по инструментам
получается, что «тики» — более универсальный способ
Вообще, фонду я не очень знаю.
а после приостановки лимиты автоматом изменяются? и если да, то в какой момент времени это происходит?
то, что написано, так часто может противоречить абзац абзацу, что караул
ну это если она совсем не шевелится )))
ведь в крайнем случае можно и ногой пнуть? т.е. ордер куда-нибудь далеко в стакан отправить?
Ho_Chu, защищаете свою идею? Ок, можно и пнуть, если вам почему-то показалось что что-то не так. А ещё можно было бы наконец выбрать платформу для разработки будущего грааля, потратить время на её изучение и использовать встроенные в неё средства, специально предназначенные для решения тех проблем, которые вы тут пытаетесь абстрактно обсуждать. Судя по тому, что и как вы спрашиваете у вас в этом нет абсолютно никакого опыта. Так вот, исходя из этого предположения, открою вам ещё одну тайну — все разработчики платформ знают все ваши проблемы и даже те проблемы, о которых вы ещё не знаете и так или иначе всё это давным-давно решили. Начните уже что-нибудь делать, тогда и вопросы будут другие и жалобы на то, что буржуйнет делится опытом, а мы нет пропадут, да и самих вопросов станет меньше. А пока что все ваши посты для меня выглядят как какая-то завуалированная попытка выбора самой платформы. И если я прав то:
а) выбор у вас не большой (если вы про рынок РФ, а если нет, то вам не на этом сайте надо общаться)
б) вам будут советовать то, на чём сами работают
в) всё это вам не поможет, потому что пока вы сами ничего не сделаете, а будете только рассуждать, ваш опыт в роботостроении останется ровно тем же, что и до начала обсуждения.
Вы и правы и неправы одновременно
исходя из тех задач, которые надо решать роботу, вопросы выбора платформы не стоит
пока это только Квик и только Луа
увы и ах,
и поэтому советы типа 1С или ТСлаб или ОСА-нет не принимаются и не могут быть приняты в будущем
и ещё, если Вы захотите съесть хлеба или выпить виски, Вы же не идете пахать землю и сеять пшеницу или ячмень
так и тут ))
И насчёт хлеба и виски — когда я захочу сам сделать хлеб или виски я не буду изучать химию, биологию, мелиорацию, озоновые дыры и метеосводки на 10 лет вперед. Я пойду и куплю хлеба и виски или куплю самогонный аппарат и хлебопечку. И пока вы прокачиваетесь в обсуждении сортов ячменя, который вероятнее вырастет, если Китай вдруг увеличит загрязнение окружающей среды, я уже сто раз набухаюсь!
без проблем, мне качественно и дешево )))
а насчет долго? я ведь могу и подождать ))
и Вы опять и правы и неправы одновременно )) как Вам это удается?
я получил здесь ряд очень полезных советов и не жалею, что для того, чтобы их получить, пришлось просеять кучу хейтеров и недалеких людей
PS Вы бы сразу сказали «Рынок РФ, Квик, Луа, куда копать», вместо «Создадим вместе идеального робота, правда я не знаю как» может и хейтеров было меньше, а «полезных советов» больше.
и Вы опять и правы и неправы одновременно -3 )) как Вам это удается?
обсуждаемые темы инвариантны к площадке и языку и что под квик, что под твс надо решать одни и те же проблемы
— Я хочу дешево и долго и могу подождать!
— У вас ещё вся жизнь впереди, есть ненулевой шанс дождаться )
и Вы опять и правы и неправы одновременно -4 )) Вы — мой герой!
в инете можно найти многое, даже как из букв ж@па составить слово сч@стье ))
сейчас пара специалистов, которые пользуются доверием, пристально изучают задачку… как только кто-нибудь или даже сразу оба, кивнут головой, так сразу же мои проблемы станут их проблемами
Но есть и чисто утилитарные вопросы, не решающиеся ГОДАМИ! Например нет возможности получить статус сессии.
www.mql5.com/en/docs/marketinformation/symbolinfosessiontrade
Например вот так:
?
это свойства инструмента. они статичные!
Например: стандартный инструмент Si-12.22 будет иметь свойство
SYMBOL_TRADE_MODE_FULL
а склейка Si Splice будет иметь свойство
SYMBOL_TRADE_MODE DISABLED
а, например, инструмент SMLT (на фондовой секции) будет иметь свойство
SYMBOL_TRADE_MODE_LONGONLY
да, это ведь общее свойство инструмента.
ЗЫ Возможно вы помните что я в MQL ни бум-бум, просто интересно стало, вот и порылся в доках.
есть прямой путь — разработчикам производителя научится транслировать информацию, предоставляемую биржей, в терминал для пользователей.
этот путь, к сожалению, не работает.
есть МНОГО кривых путей, но чем кривее путь, тем больше вопрос: а нафига тогда МТ5?
напомню с чего начали?
Если вы в своем исходном месседже подразумевали что разработчики давным-давно решили посылать нахер все требования и желания пользователей, тогда согласен :)
вот это я и подразумевал, создавая темы
есть проблема, которую как-то нужно решать и находить решения в дискуссиях
можно решить так, а можно вот эдак, кто предложит лучше?
вместо этого большинство занимается не пойми чем в попытках выглядеть лучше, чем они есть на самом деле ))
я очень уважаю ваш посыл к продуктивным дискуссиям! здесь их давно уже нет.
вы немного не с того начали, вам уже обратили на это внимание многие практики.
если хотите решать общие проблемы алго, попробуйте поизучать проблемы с данными и торговым окружением, а не с железом и интернетом :)
я немного с другой стороны
я пытаюсь понять наличие или отсутствие проблемы с точки зрения пользователя, а не кодера
мы же не обсуждаем точки входа и прибыльность ТС — это за рамками дискусии
а все почему?
ответ прост: майку к своим трусам ты подбираешь сам!
мне тоже кажется, что мр.Sprite излишне оптимистичен, особенно в свете жалоб на отсутствие развития квика
ну замахиваться на апи, не пройдя квик — это ещё большая самонадеянность
если кого-то подключать через квик, то придется терять время на этом костыле, а это нехорошо
Возможно данный напалм просвещения слегка разбавит толпу математиков, в соседней ветке набросившихся на охлц с непонятными словами. Ну или просто скучно. Тут вообще, если посмотреть, дичь какая-то творится, облака прикручивают, идеальных роботов делают, алготрейдинг умерщвляют и сразу же реинкарнируют. Так что уже можно всё и всем )
Смешно… чел решил и со мной теперь поспорить
Тогда продолжайте строчить… удачи
пляц, я всех спрашиваю: зачем Вам стационарность и никто, сцуко, никто, слышите, не может мне ответить на этот простой вопрос
так о чем с Вами дискутировать? о том, кто идет за клинским?
ЗЫ а все почему? да просто никому это не нужно
+стопицот, но я ему рад
благодаря таким как он я получил рейтинг и возможность для личных сообщений
если так будет продолжаться ещё 17 дней, то мой рейтинг превысит 400 )))
хотя вряд ли я захочу ещё 17 дней дарить таким как он довольно ценную на мой взгляд инфу, которой он сможет хвастаться на соседних форумах
Вы написали несколько каментов в этой и сходной темах, увеличив рейтинг, так что спасибо Вам за это )))
не бывает плохой рекламы )))
кстати, я тоже математик, а не кодер ))
ну тогда мне с Вами бесполезно обсуждать точки входа
и единственное, на что Вы годны, — это закодить то, что Вам дают по 10 рублей за строку
если хотите больше, чем по 10 рублей за строку — Вам дорога в кукол
но Вас туда могут не взять — кодеров и в индии полно, а вот математиков — раз два и обчелся
мне пофиг, как Вы закодите мои задачи, главное, чтобы Вы сделали это без ошибок, а раз так, то полтора ляма за стохастик — это розовые мечты не очень умного человека, который сам же, кстати, и слился из темы ровно по той же причине, что с ним бесполезно обсуждать некоторые профессиональные вопросы
не обижайтесь, я не хотел Вас обидеть,
но мне, правда, не о чем дискутировать с тем, кто не знает тест на единичный корень и зачем он нужен в жизни
Если при этом Вы знаете, чем иф, отличается от ту, то я Вас поздравляю, но этого мало, чтобы Вас взяли в кукол
по традиции смарт-лаба все закончилось, как обычно, закидыванием всего вокруг дерьмом.
если Вы все знаете лучше всех, то что Вы здесь делаете? почему Вы сейчас не берете уроков серфинга на Гавайях?
Sprite,
и Вам спасибо! это, правда, оказалось неожиданным для меня
казалось бы, я задавал простые вопросы, а никто, слышите Карл, никто не смог ответить на них
«тут призадумаешься...» ©
ЗЫ я правда думал, что контингент здесь отличается от мкл5.ком
как же жестоко я ошибался ))
мы думаем над этим, разумеется ))) мы же разумные люди
а жаль, правда?
и Вам спасибо!!!
завтра будет новая тема
правда есть риск, что и её заполонят «доброжелатели»
но, как говорится, есть вопросы и они остались
ЗЫ так что, если не передумаю, то поставлю ряд новых вопросов
Вы ещё и что такое «кукол» не знаете? может Вы только яндексом все время пользуетесь?
а Вы точно читать умеете?
автор предлагает решение конкретной проблемы (или проблем)
вместо попыток угадать «зачем автор палит свои решения?» лучше бы написали пару своих мыслей по сути вопросов
если они у Вас есть, конечно
Вот, например, все знают про уровни. Почему одни, несмотря на большой объем покупок/продаж прошиваются. А на других, стоит в стакане 5 контрактов перед ним, например, и вроде бы тыкни в него и вперёд, ан нет, цена не доходит и разворачивается.
ни в какой, узбагойтесь ))
если Вы не знаете, зачем Вам стационарность, то что с Вами обсуждать?
цену на клинское?
чтобы сигнализировать клиенту, что пора сходить за клинским, зачем же ещё?
Денис Г.,
ну а зачем бегать туда-сюда из-за банальной приостановки торгов? проще сразу расписать весь алгоритм дальнейших действий, если он известен
это же не рокет сайнс ))
Я люблю оставаться в рамках базовой системы. Читать новости, парсить сайты — это, кмк, отдельный вид роботов, который прямо на это и натренирован, соответственно, внешняя лента для него становится важной для принятия решений.
Если же робот смотрит только на котировки, то вообще нет смысла заморачиваться, т.к. все косяки уже были в этих котировках, и алгоритм это учитывает.
Внутри системы у нас есть:
— есть/нет коннект до брокера (тут и инет, и отвал брокера, и отвал биржи — пофиг)
— есть/нет апдейт данных (как правило, нет апдейта == не будет и решения для сделки — пофиг)
— срабатывают/нет заявки
Актуально особо смотреть за последним. Если заявка не срабатывает, то проще всего встать на паузу и уведомить человека кодом ошибки. Можно обрабатывать стандартные коды, но опять же, алгоритм обычно пишется, чтобы ошибок не было, а если она вдруг вылазит (скажем, внезапно как бы нет денег на счету, хотя бот их видит), то это повод посмотреть куску мяса на проблему :)
P.S. То, что вы пытаетесь делать — явно излишнее программирование. Автоматизация — это круто, но автоматизировать нужно только то, что действительно есть рутина. Писать и отлаживать неделю что-то, что будет работать 5 минут раз в год, да ещё и с непредсказуемым результатом, — так себе затея, проще руками.
вероятно, Вы правы
но мне эти 100 вариантов сбоя стоили денег и я не хотел бы повторений
может быть я просто жадный?
поделитесь своими яйцами проблемами
вдруг у нас есть ответы?
это тяжело — быть одиночкой
могу поздравить, Вам везёт!!!
> Что делать в таких случаях?
а ничего не делать — срубить таск и послать смс/телегу хозяину
> Если у нас случилась приостановка торгов на время,
> то как это понять на уровне алгоритма?
> Вероятно, можно ввести простое условие об отсутствии тиков по
> каким-либо инструментам одновременно, которое будет означать
> приостановку торгов.
в интерфейсе биржи есть поле «статус торгов» — что мешает просто пользоваться им?
Не вполне соглашусь с этим.
Во-первых, часть стратегий может этот аспект игнорировать. Например, торговля на часовых таймфреймах без плеч. Другое дело, если бот активно присутствует в стакане, да еще и в разных инструментах.
Во-вторых, планки — это одна из тех функций, без которых можно обходится годами.
А потом случается один из тех безумных дней, вроде «дерипасхи» (апрель 2018), ковид или 24 февраля (не дай бог!) и, оказывается, что правильное поведение в такой ситуации крайне востребовано.
спасибо за мнение!
и я про то… просто детишки до сих пор играют в песочнице и не знают, что вокруг плавают акулы
Вы были бы правы, если бы ручной режим был бы панацеей
представьте, что у Вас 600 роботов, как у коллеги выше по теме
и как ему перейти на «ручку»?
и событие, случающееся, уже ныне как минимум 1 раз в год, вряд ли можно называть редким, а значит, надо к нему пилить «пилюлю»
kvazar,
просто у Вас стоит блок «принудительное закрытие позиций через ночь», поэтому так и происходит
не все могут позволить себе это, к сожалению… но проверить такой способ защиты, безусловно стоит, хотя это и непросто будет сделать
ну вот, если не хотеть гэпа, но закрываться на ночь низзя
даже у меня одним из условий является пропуск некоторого времени после выхода из приостановки торгов, т.е. после выхода из планки
но многим местным героям это по барабану ))) тормоза придумали трусы
ещё бы пару каментов и 1-ое место обеспечено!
это был интересный опыт, всем спасибо за участие!!!