Modlook ошибка устройства 130

Содержание

  • Коды ошибок
  • A) Полностью соответствуют MQL4 OrderSend() требованиям синтаксиса
  • B) Ошибка 130: == «недействительная остановка»
  • C) Хорошая практика не назначать в extern итераторных-переменных

MQL для чайников, программирование на MQL4, MQL5

Что значит 2010.02.01 17:00 MyExpert GBPUSD,M15: OrderModify error 130
почему обычно эта ошибка возникает?

Очень много подобных вопросов мне приходит. Поэтому публикую таблицу кодов ошибок. Например посмотрев вышеописанную ошибку error 130 становится понятно, что функция OrderModify пытается изменить стоп-лосс или тейк-профит слишком близко к текущей цене.

Коды ошибок

GetLastError() — функция, возвращающая коды ошибок. Кодовые константы ошибок определены в файле stderror.mqh. Для вывода текстовых сообщений следует использовать функцию ErrorDescription(), определенную в файле stdlib.mqh.

Коды ошибок, возвращаемые торговым сервером или клиентским терминалом:

Значение Описание
Нет ошибки
1 Нет ошибки, но результат неизвестен
2 Общая ошибка
3 Неправильные параметры
4 Торговый сервер занят
5 Старая версия клиентского терминала
6 Нет связи с торговым сервером
7 Недостаточно прав
8 Слишком частые запросы
9 Недопустимая операция нарушающая функционирование сервера
64 Счет заблокирован
65 Неправильный номер счета
128 Истек срок ожидания совершения сделки
129 Неправильная цена
130 Неправильные стопы
131 Неправильный объем
132 Рынок закрыт
133 Торговля запрещена
134 Недостаточно денег для совершения операции
135 Цена изменилась
136 Нет цен
137 Брокер занят
138 Новые цены
139 Ордер заблокирован и уже обрабатывается
140 Разрешена только покупка
141 Слишком много запросов
145 Модификация запрещена, так как ордер слишком близок к рынку
146 Подсистема торговли занята
147 Использование даты истечения ордера запрещено брокером
148 Количество открытых и отложенных ордеров достигло предела, установленного брокером.

Коды ошибок выполнения MQL4 программы:

GetLastError() — функция, возвращающая коды ошибок. Кодовые константы ошибок определены в файле stderror.mqh. Для вывода текстовых сообщений следует использовать функцию ErrorDescription(), определенную в файле stdlib.mqh.

Коды ошибок, возвращаемые торговым сервером или клиентским терминалом:

Я пытаюсь вставить takeprofit и stoploss аргумент в моей SendOrder() функции, но я получаю следующее сообщение об ошибке:

Я уже проверил документацию для функции NormalizeDouble() , но я все еще получаю ошибку.

A) Полностью соответствуют MQL4 OrderSend() требованиям синтаксиса

Ваш код не на установление правильной SHORT торговли входной цены, как это следует читать , а Bid не Ask (эта ошибка скрыта , как это эффективно замаскированных на довольно космическом расстоянии 100 точек на допустимом расстоянии проскальзывания от указанной цены) ,

Ваш код не при назначении int ( 0 ) в месте, где , string как ожидается.

Вы должны проверить с вашим брокером несколько деталей:

  1. Допускает ли их условия и условия в OrderSend() одной стоп-инструкции, в т.ч., TP и SL, или же брокер T & C требуют , чтобы сначала открыть торгово-позицию и только после того, как это происходит , чтобы позволить OrderModify() инструкции к прайс-уровней настройки TP и SL?
  2. В любом случае, проверьте настройки Брокер T & C для STOPLEVEL & FREEZELEVEL расстояний, в пределах которого Брокер отвергает любые TP и SL установки (ы) или модификации (части).

C) Хорошая практика не назначать в extern итераторных-переменных

Хотя это не является корневой причиной вашей проблемы, не приживаются с передовой отраслевой практикой, один из которых не является присвоить любое значение заявленного extern . Вместо объявить собственную переменную, что вы контролируете объем & назначения их, но оставить extern (s) не-прикоснулся с вашей стороны кода.

Простая программа для просмотра регистров контроллера с Modbus — протоколом:

  • Простой, интуитивно понятный интерфейс;
  • Все настройки вынесены на основную панель;
  • Просмотр до 125 регистров каждого из типов (coils, input, holding);
  • Регистры типа 0ХХХХХ, 1ХХХХХ, 4ХХХХХХ, 3ХХХХХХ;
  • Запись в регистры типа 0ХХХХХ;
  • Запись в регистры типа 4ХХХХХ;
  • Работа через COM-порт и поверх TCP/IP;
  • Бесплатное распространение программы.

Ещё статьи по теме:

Бесплатная SCADA-система

Бесплатный OPC-сервер Modbus

Скачать Скачать Modbus — Master

Время на прочтение
2 мин

Количество просмотров 18K

Сегодня я бы хотел рассказать о программе, с помощью которой я начинал изучать протокол ModBus и ПЛК. Я ей пользуюсь до сих пор, и лично видел её в использовании у нескольких наладчиков. Если кому-то интересна история её создания или исходники прошу под кат.

image

Сканер регистров ModBus предназначается для людей, занимающихся наладкой систем автоматизации или просто пытающихся “подружиться” с каким-либо устройством, на борту которого находится Modbus. Для желающих иметь возможность быстро считать интересующие регистры или вручную пройтись по содержимому нескольких устройств на шине.

Первый автор программы тесно связан с АСУ ТП. Появление ПЛК с ModBus в 90-х потребовало какой-то программы для работы с этим протоколом. В те времена чтобы посмотреть содержимое регистров контроллера нужно было либо устанавливать на компьютер среду программирования контроллера, что неудобно, либо покупать какую-то платную программу. Хотелось что-то лёгкое и компактное, что можно таскать на дискете. Это и привело к написанию собственной программы. Прототип программы был написан под DOS на Basic. Прототип, кстати, получился не очень удачным. Позже проект был сконвертирован в Visual Basic. И где-то в начале 2000-х программа была переписана на Delphi. В середине 2000-х исходники попали уже ко мне. Тогда я вынес опрос по ModBus в отдельный поток, и добавил несколько мелких улучшений. Недавно добавил режим опроса ModBus rtu поверх TCP/IP и сконвертировал проект в Lazarus.

ModLook писался для собственного пользования. Получилось довольно удобно. Все элементы вынесены на главную панель. После измерения параметра не нужно жать ОК, изменения применяются автоматически. Так что программой можно управлять одной рукой (или ногой).

Для адресации данных используются номера регистров (отсчет начинается с 1), а не физические адреса. Тогда привычнее было начинать подсчет с единицы, а не с нуля.

ModLook может опрашивать регистры Coil Status (0ХХХХ), Discrete Inputs (1ХХХХ), Holding Registers (4ХХХХ), Input Registers (3ХХХХ). Можно разрешить или запретить опрос какого-то из этих регистров галочкой «Опрос».

Ссылка на исходники

Madwolf писал(а): ↑15 мар 2023, 20:21
Ну, для этого модбас пулл бы подошёл (показать, что там ничего нет). Выяснив адреса, но не зная что там лежит, можно ещё месяцами определять, что именно там лежит )))

В модбас пулл последних версий появился сканер регистров по одному, но он только определяет, читается регистр или нет, а содержимое не отображает. На тот момент, когда мне нужен был этот функционал, он отсутствовал :affliction: . Особенности Модбаса в том, что если ты задаешь диапазон чтения регистров и этот диапазон у устройства фрагментирован, выдается ошибка чтения (Illegal address).

Если знаешь, что должно лежать в регистре (например, известную температуру или давление, которые можно задавать калибратором для стабильности), сканирование позволяет определить этот регистр.

Отправлено спустя 5 минут 7 секунд:

Jackson писал(а): ↑03 мар 2023, 13:07
В таких случаях обычно справляется модбаспул. Не раз общался с производителями на тему «а чего это у меня не читается?», присылая им скриншоты из модбаспула. МодбасПул существует с 2002 года и прекрасно работает.

функционал «сканер регистров по одному» появился в модбас пуле только в 2023 году. Причем сканирование не показывает содержимое регистров.

Отправлено спустя 53 минуты 9 секунд:
Поправка. Сейчас загрузил последнюю версию Modbus Poll version 10.4.2 Build 1930. «Сканер регистров по одному» теперь отображает и содержимое регистров.

Понравилась статья? Поделить с друзьями:
  • Modulenotfounderror no module named pygame ошибка
  • Modulenotfounderror no module named pip ошибка
  • Module time has no attribute clock ошибка
  • Module object is not callable python ошибка
  • Module datetime has no attribute now ошибка