MetaTrader 4 Client Terminal build 646: Умный поиск, книги в Маркете и обновление окна параметров MQL4-программы - страница 32
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Проясните плз - сколько буферов надо резервировать под буфер типа DRAW_NONE? В справке - 1, но с #property indicator_buffers 1 компилятор предупреждает про indicator buffers amount is less than needed. С 2 - молчит об этом, значит по 2 на каждый DRAW_NONE и в справке ошибка?
Изменили поведение компилятора, при компиляции MQ4 не будет контролироваться количество заданных через #property indicator_buffers буферов.
Что вы так "зациклились" на строке?
Просто, целочисленный массив передать можете?
А в dll пишете объединение (union {...}), в котором подгоняете по размеру массив и строку.
Передаете из MQL массив, а работаете в dll со строкой.
Как такой вариант?
В массив, кстати, можете загонять что угодно, хоть китайские иероглифы. Да и по длине ограничений нет.
если нельзя передать строку, то массив тем паче). Там в инфе написано, что массивы и адреса передавать нельзя, в смысле указатели. Слишком много революций)), революции это бросок назад.
п.с. работало всё нормально, взяли испортили, повесили табличку революция, открыли революционный магазин и всё, а у меня сова не пашет)).
Я так понимаю что кроме вырезок из теории никто не может реально это сделать чтобы работало?
Это другая тема, меня интересует именно DRAW_NONE - обычный буфер, у которого отключено отображение, но всё остальное на месте. Включая отображение значений в DataWindow. А всего буферов 18, из них 6 DRAW_NONE это знач мне надо щас сидеть разбираццо как правильно чередовать фантомные 2е буфера для DRAW_NONE. Оно конешна разберусь, но хотелось бы в след релизах обойтись без этого
Что-то я не понял, вот этот код индикатора ты пытаешься скомпилировать без ошибок?
А где объявлены массивы под буферы? А где инициализация? Или этого уже не надо и я безнадёжно отстал от жизни?
если нельзя передать строку, то массив тем паче). Там в инфе написано, что массивы и адреса передавать нельзя, в смысле указатели.
***
Не буду спорить, хотя в примере и передаются и возвращаются ссылки на СТАТИЧЕСКИЙ массив (запрет касается только динамического массива)
Хотя, конечно, реально могу только посочуствовать ...Не буду спорить, хотя в примере и передаются и возвращаются ссылки на СТАТИЧЕСКИЙ массив (запрет касается только динамического массива)
Хотя, конечно, реально могу только посочуствовать ...В таких примерах и строки передаются). Только там видимо есть значение на каком языке dll написана. С++ строки представляет как массив символов, это удобно для работы со строками, но вот есть проблемы с передачей параметра, хотя до появления революционного магазина всё работало. Я практически ушёл от строк, практика показывает что это не надёжно). Но есть некоторые ситуации, когда необходимо передавать строку. Можно было бы через файл, но и с файлами тут геморой)), они пишутся в двух папках и изменить их нельзя. Когда работает тестер то пишется в одну папку, когда работает нормально то в другую. В общем mql4 потихоньку херится, и я был прав когда выбрал стратегию минимум mql4 кода. Если всё заглохнет хоть функции останутся для работы с другим терминалом.
Перестала работать OrderCloseBy, выдаёт false. GetLastError() почему-то 3.
3
ERR_INVALID_TRADE_PARAMETERS
Неправильные параметры
В редакторе курсор поставь внутри скобок функции, нажмите Shift+Ctrl+Space и посмотрите какие требуются параметры.
Либо поставьте курсор на название функции и нажмите F1 для вызова справки.
3
ERR_INVALID_TRADE_PARAMETERS
Неправильные параметры
В редакторе курсор поставь внутри скобок функции, нажмите Shift+Ctrl+Space и посмотрите какие требуются параметры.
Либо поставьте курсор на название функции и нажмите F1 для вызова справки.
Спасибо, но вроде правильно делаю:
Checked=OrderCloseBy(OrderTicketBuy,OrderTicketSell,Red);
Спасибо, но вроде правильно делаю:
Checked=OrderCloseBy(OrderTicketBuy,OrderTicketSell,Red);
при создании таймера с EventSetMillisecondTimer(100)
при перекомпиляции таймер не вызывается , приходится акрывать график открывать новый и закидывать советника снова...
Установка удаление советника на старом графике не помогают
OnTimer() не работает в тестере стратегий
EventSetMillisecondTimer(100) при использованиии в справке написано
В тестере стратегий используется минимальный интервал в 1000 миллисекунд. В общем случае при уменьшении периода таймера увеличивается время тестирования, так как возрастает количество вызовов обработчика событий таймера. При работе в режиме реального времени события таймера генерируются не чаще 1 раза в 10-16 миллисекунд, что связано с аппаратными ограничениями.
но ничего не работает ....