Мобильный терминал вечно подводил в нужный момент — собрал пульт в Telegram

Мобильный терминал вечно подводил в нужный момент — собрал пульт в Telegram

21 сентября 2026, 10:19
Vladimir Ershov
0
7

Тринадцать лет в трейдинге — и все эти годы не дружу с мобильным терминалом!

На компе, если совсем прижмёт, всегда есть путь отступления: открыл MetaEditor, накидал коленом 20-30 строк — и вот уже есть кнопки «закрыть всё», «закрыть только прибыльное», «закрыть по инструменту», «залочить позиции». Комп прощает панику. А в мобильном терминале — тишина. Ни скриптов, ни экспертов, ни макросов. Только то, что дали разработчики — и точка, спасибо, что вообще график показывают. Когда я это окончательно осознал, стало ясно: чинить надо не рабочий стол, а то, что у меня в кармане.

Дальше — по граблям. Каждый раз наступал, каждый раз в итоге добавлял функцию, чтобы больше на них не наступать.

Грабли №1: не могу найти НУЖНУЮ позицию

Экран маленький, позиций открыто штук 10-15 на разных инструментах. Надо закрыть ровно одну — убыточную по золоту. Листаю список пальцем, щурюсь, путаю строку с соседней, тычу не туда, как будто играю в мобильную игру «Угадай сделку». В спокойной обстановке — смешно. Когда рынок летит и решение нужно за секунды — уже не до смеха.

Сделал: /positions LOSS — присылает только убыточные, с короткими номерами N1, N2. /close N1 — превью «что именно закроется» и подтверждение. Тыкать пальцем в список больше не нужно вообще.

Грабли №2: подвинуть стоп = устный счёт под давлением

Хочу подтянуть стоп на 100 пунктов ближе к цене. В мобильном терминале это значит: посмотреть, где он сейчас, отнять или прибавить в уме, ввести новое число в крошечное поле, не ошибившись разрядом — на бегу, одной рукой, вторая держит поручень в метро.

Сделал: /shift SL N1 UP 100 — двигает то, что уже стоит, на N пунктов. Считать самому больше не надо.

Грабли №3: стоп «на глаз» за структурным уровнем — на телефоне лотерея

Хочу поставить стоп за последний свинг-лоу. На десктопе — увеличил график, нашёл экстремум, поставил. На телефоне, особенно если руки заняты (я в дороге), зумить график пальцами в поисках нужной свечи — отдельный вид мучения. Не раз промахивался мимо реального экстремума. Причём обычно ставлю за второй, а не за первым свингом — за первым часто охотятся на стопы.

Сделал: /swing SYMBOL — присылает скриншот с уже подписанными последними свинг-хаями/лоями прямо на графике. /set SL LOW1-1.5ATR — можно вообще не смотреть глазами, стоп встанет за структурный уровень с буфером автоматически.

Грабли №4: экстренный лок перед новостью — и я запутался, где что крыть

Самый неприятный случай. Стою жду важную новость, счёт разогнан по нескольким инструментам, решаю: сейчас всё залочу, пересижу вспышку, потом разберусь. Открываю телефон — и не могу быстро сообразить: по золоту нетто BUY 0.3, по евро нетто SELL 0.5, а по фунту вообще винегрет из нескольких сделок вразнобой. Пока считаю в уме, какой объём и в какую сторону крыть на каждом инструменте — новость уже вышла. Дневная прибыль ушла вслед за ней.

Сделал: /lock XAUUSD — мгновенно открывает встречную позицию именно на тот объём, который обнуляет нетто по символу, сам считает разницу. /lock ALL — делает это разом по всем инструментам с открытой экспозицией, и в превью показывает, что реально произойдёт, до того как это случится, а не постфактум разбираться, что залочилось, а что нет.

Грабли №5: не понимал, далеко ли до margin call, пока не стало поздно

Смотришь на баланс и свободную маржу в цифрах — и не сразу понимаешь, насколько это близко к проблеме именно по цене. Сколько пунктов у меня в запасе, прежде чем состоится личная встреча с дядей Колей (тем самым margin call).

Сделал: /marginview — присылает скриншот графика с уже нарисованными уровнями margin call и stop out, с автоматически подобранным масштабом, чтобы всё уместилось на одной картинке. Видно глазами, а не приходится держать в уме, как таблицу умножения.

Грабли №6: объём на глаз в панике — и один раз рискнул сильно больше, чем хотел

Открываю сделку в спешке, объём считаю на ходу вручную от размера депозита — и один раз ошибся в расчёте, рискнул заметно больше запланированного. Дядя Коля был доволен.

Сделал: вместо числа лота можно передать риск — /buy EURUSD RISK 1% SL HIGH2+0.3ATR . Объём считается сам от свободной маржи и расстояния до стопа, с показом расчёта в превью перед подтверждением. Больше не считаю на бегу.

Грабли №7: сам себе напортачил — и обратно откатить оказалось не так просто

Уже с готовой панелью, но по невнимательности запустил команду не на той позиции — подвинул стоп не там, где хотел. И понял, что во всей этой удобной автоматизации не хватает одной вещи: возможности откатить, если накосячил сам.

Сделал: /undo — откатывает последнюю команду, менявшую стоп/тейк, к значению, что было до неё. С отдельным жёстким подтверждением — потому что у самого отката отмены уже нет, и тут карт-бланш не выдаётся дважды.

Грабли №8: поставить стопы в безубыток именно в мобильном терминале — вот где начинается настоящий цирк

В терминале на компе ухватил мышью стоп, потянул куда надо — или готовым скриптом ткнул в нужную область цены, и все стопы послушно встали в безубыток. А в мобильном всё нужно прописывать циферками, как будто я заполняю налоговую декларацию.

Сделал: /SET BE N1 — поставить в безубыток одну сделку, /SET BE XAUUSD — по инструменту, /SET BE PROFIT — сразу все прибыльные.

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

Гладким путь, если честно, не был. Первые версии банально раздражали. Получалось на выходе немного не то, что я хотел. Да и команды были простыми. Пока решился на сложные, набирался опыта, прошли недели, месяцы.. Часто не угадывала, какой режим исполнения ордера нужен конкретному брокеру. Расчёт объёма по риску одно время мог тихо округлить лот вверх, если посчитанный размер оказывался меньше минимального, — риск получался больше заказанного, без единого предупреждения, как подарок, о котором не просил. Групповую блокировку по нескольким инструментам сразу пришлось переделывать — маржа легко переоценивается, если считать по каждому символу отдельно, будто он единственный на счёте. Всё это ловил и чинил по ходу — в общем, обкатывал бота примерно так же, как рынок когда-то обкатывал меня.

Файл — рабочий билд, привязка к демо-счетам (пожалуйста, тестируйте именно на демо, дядя Коля шуток не любит). Баги и идеи — в комментарии под постом, буду честно фиксить и выкладывать новые версии прямо здесь же. За основу взял скриншотер в телеграм с функцией поиска популярных паттернов. И с уже готовым блоком учета загрузки маржи. Как раз удобно! В  телеграм-бот  идет скриншот с паттерном, например, неожиданной большой свечой или пин-баром. И сразу же, оценив обстановку, влетаешь в сделку через тот же бот!

Инструкция: Как за 5 минут настроить оповещения в Telegram

Часть А: Создаем бота и получаем Token

  1. Откройте Telegram и в поиске найдите @BotFather (с синей галочкой).

  2. Отправьте ему команду /newbot .

  3. Придумайте имя для бота (например, My Forex Signal ).

  4. Придумайте уникальный username , который должен заканчиваться на _bot (например, MyFXSignal_bot ).

  5. BotFather пришлет вам API Token. Скопируйте и сохраните его.

Часть Б: Узнаем свой Chat ID

  • Для личных сообщений:

    1. Найдите своего созданного бота и нажмите "Start".

    2. Найдите бота-помощника @userinfobot , отправьте ему /start , и он пришлет ваш User ID — это и есть ваш Chat ID .

  • Для группы или канала:

    1. Добавьте вашего бота в группу/канал как администратора.

    2. Отправьте в эту группу/канал любое сообщение.

    3. Перешлите это сообщение боту @userinfobot . Он пришлет Chat ID вашего канала/группы (начинается с - ).

Часть В: Завершение настройки

Вставьте полученные Token и Chat ID в соответствующие поля в настройках


Список команд условно делится на информационные и торговые.

Информационные (работают всегда):

- `/status` — статус счёта.

- `/positions [ФИЛЬТР]` — открытые позиции, с короткими номерами N1,  N2... для ссылок в других командах.

- `/pending [ФИЛЬТР]` — отложенные ордера, номера P1, P2...

- `/exposure` — нетто-объём и нагрузка маржи по каждому символу (важно  при локах — видно, сколько реально ходит по рынку, а не просто сумма

  лотов).

- `/swing SYMBOL [глубина]` — присылает скриншот графика с подписанными   последними 5 свинг-хаями и 5 свинг-лоями прямо на графике (не просто

  цифры в тексте) — удобно проверить глазами, прежде чем ставить стоп за   структурный уровень.

- `/marginview CUR|SYMBOL` — автоматически подбирает таймфрейм и масштаб

  графика так, чтобы ВСЕ маржинальные уровни (margin call, stop out и   т.д.) и текущая цена поместились в один скриншот целиком — не нужно

  вручную скроллить/зумить график, чтобы увидеть, насколько далеко цена   от критического уровня. Работает не только по символу графика, на

  котором висит советник, но и по ЛЮБОМУ символу с открытой позицией —   `/marginview eurusd` покажет уровни по EURUSD, даже если советник

  висит на графике золота.

- `/pause`, `/pause N` / `/resume` — приостановить автоматические алерты  (например, на время сна), не трогая торговые команды.

Торговые (требуют отдельного включения в настройках):

- `/close`, `/set`, `/shift`, `/del`, `/buy`, `/sell`, `/lock`, `/undo` —

  полный набор операций с позициями и ордерами.

- `/shift SL|TP <ref> UP|DOWN <пункты>` — сдвигает УЖЕ СТОЯЩИЙ стоп/тейк на N пунктов относительно его текущего значения (в отличие от `/set`,

  который задаёт абсолютную цену) — не нужно самому смотреть, где сейчас   стоп, и что-то вычислять, чтобы подтянуть его при ручном трейлинге.

  По фильтру — каждая позиция сдвигается от СВОЕГО собственного текущего   уровня, удобно для сеток/мартингейла.

- `/undo` — откатывает последнюю команду, менявшую SL/TP (`/set`,   `/shift`, `/del`, перевод в безубыток), в течение 10 минут после неё.

  Один шаг назад (без истории), требует отдельного подтверждения с явным   предупреждением о необратимости. Закрытие позиций и открытие новых

  сделок не откатываются — закрытие необратимо в принципе. 

- Все команды используют один и тот же язык: вместо длинного тикета —   короткая ссылка (N1, P1) или фильтр (`ALL`, `PROFIT`, `LOSS`, `BUY`,

  `SELL`, `VOL>x`, имя символа) — можно закрыть/изменить сразу несколько  позиций одной командой.

- Цена SL/TP или входа отложки — не только число, но и выражение вида   `LOW1-1.5ATR` / `HIGH2+50P` — последний/2-й/.../5-й подтверждённый

  свинг-уровень с буфером в ATR или пунктах.

- Объём — либо фиксированное число, либо `RISK 1%` — лот считается   автоматически от заданного % риска (от свободной маржи) и расстояния

  до стоп-лосса, с показом расчёта в превью перед подтверждением.

- Каждая торговая операция — сначала превью (что именно будет сделано),  потом слово подтверждения или отмены, с автоотменой по таймауту.

  Слова подтверждения настраиваются (`Inp_ConfirmKeywordYes/No`) — по  умолчанию только однозначные `CONFIRM`/`YES` и `CANCEL`/`NO`

  (без коротких `Y`/`N`/`1`/`0` — случайно набранная цифра по другому   поводу не должна подтверждать реальную сделку).

- Символ можно писать в любом регистре (`bitcoin`, `BITCOIN`,  `Bitcoin` — бот сам находит нужный тикер у брокера).


Примеры использования

/positions PROFIT

→ список только прибыльных позиций, пронумерованных N1, N2...

/close N1

→ превью "закрыть #12345 XAUUSD BUY 0.10, P/L +42.10?" → подтверждаете → закрыто

/set TP N1 HIGH1+20P

→ тейк-профит на 20 пунктов выше последнего свинг-хая

/buy BITCOIN RISK 1% SL LOW2-0.5ATR

→ бот считает объём по 1% риска от свободной маржи и расстоянию до стопа  (второй снизу свинг-лоу минус половина ATR), показывает расчётный лот

  в превью, ждёт подтверждения

/lock XAUUSD

→ мгновенно открывает встречную позицию, обнуляя нетто-объём по золоту

/shift SL N1 UP 50

→ подтягивает уже стоящий стоп на 50 пунктов вверх (например, ручной   трейлинг по BUY) — не нужно смотреть текущую цену стопа самому 

/shift SL XAUUSD DOWN 30

→ сдвигает стоп вниз на 30 пунктов сразу на ВСЕХ позициях по золоту —   каждая от своего собственного текущего уровня (удобно для сетки)

/undo

→ "Откатить: SET SL по фильтру 'XAUUSD': ... ⚠️ ЭТО ДЕЙСТВИЕ НЕЛЬЗЯ БУДЕТ   ОТКАТИТЬ" → подтверждаете → все стопы/тейки из последней команды

  возвращаются к значениям, которые были до неё

/marginview

→ скриншот графика с автоматически подобранным масштабом, на котором   видно текущую цену и все маржинальные уровни разом

Советы и рекомендации

- Начните с `Inp_ConfirmTradingOperations = true` (это и есть значение по   умолчанию) — так каждая операция требует явного подтверждения, и вы

  успеете заметить опечатку в объёме или неверный символ до реального   исполнения.

- Проверяйте выражения `LOW/HIGH ± ATR` через `/swing SYMBOL` перед тем,   как использовать их в реальной торговой команде — так видно, на какой

  стороне от текущей цены на самом деле окажется уровень. - Для сеток/мартингейла используйте фильтры `VOL>x` в `CLOSE`/`SET`,

  чтобы управлять только частью позиций по объёму, а не всеми сразу.

- `Inp_EnableBulkTradingCommands` держите выключенным, пока не   протестируете единичные операции (по тикету/N-номеру) — массовые

  команды (`ALL`, `PROFIT` и т.д.) стоит включать осознанно.


 Известные ограничения (честно, без замалчивания)

- Свинг-уровни (`LOW/HIGH`) считаются на таймфрейме ГРАФИКА, на котором   запущен советник — не на произвольном другом ТФ.

- Рыночные `/buy`/`/sell` и отложенные ордера уже поддержаны; часть   редких комбинаций параметров (см. полный `/help`) может быть ещё не

  покрыта — список команд продолжает пополняться.

- `WebRequest` к Telegram — синхронный вызов (ограничение самого MQL5),   поэтому при недоступности Telegram API возможна кратковременная

  задержка в обработке очереди алертов.

- Если запущено несколько копий советника на одном терминале — команды   Telegram принимает и исполняет ТОЛЬКО та копия, что в режиме "Монитор"

  (и не в режиме "Скриншотер"). Это намеренное ограничение: Telegram   выдаёт новые сообщения только ОДНОМУ обратившемуся, курсор общий на

  бота — если бы несколько копий опрашивали его одновременно, одна и та   же команда могла бы выполниться дважды или потеряться.



P.S. Скришоты выложу позже


Файлы:
TradePilot.ex5  529 kb