Можно ли записать содержимое звукового файла в файл MQL ? - страница 2

 
Yuriy Vins:

Все, ребята! Я счастлив. Мой терминал заговорил. И скомпилированному роботу отдельные файлы - больше не нужны! Правда сначала не получалось у меня.

Оказывается чтобы все работало, после указания, в самом начале, файла как ресурс:

Компилятор затем должен читать исполняемый ресурс в такой форме:

В справке прочитал, - двоеточия нужно ставить вместо слэшей.

А я вот так делал сначала:

, и после удаления файла из папки робот перестал издавать звук.

А теперь все работает. И в MQL4 и в MQL5 - я проверил.

Спасибо за БЫСТРЫЕ ответы. В который раз убеждаюсь, что лучше спросить на нашем форуме, чем гуглить неизвестно где.

И индюки так можно делать?)

 
Evgeniy Zhdan:

И индюки так можно делать?)

Именно так и нужно делать, если имеете ввиду индикаторы.

 
Evgeniy Zhdan:

И индюки так можно делать?)

Да конечно можно! Разница только в том что в индюках весь код , в том числе и исполняемые ресурсы, будут исполняться в OnCalculate(),  а в советниках в OnTick().

 
Yuriy Vins:

Да конечно можно! Разница только в том что в индюках весь код , в том числе и исполняемые ресурсы, будут исполняться в OnCalculate(),  а в советниках в OnTick().

Индикаторы, подключенные ресурсом будут исполняться из своего обработчика. И доступ к ним стандартный - iCustom()
 
Vitaly Muzichenko:

Именно так и нужно делать, если имеете ввиду индикаторы.

Благодарствую.

Yuriy Vins:

Да конечно можно! Разница только в том что в индюках весь код , в том числе и исполняемые ресурсы, будут исполняться в OnCalculate(),  а в советниках в OnTick().

Я в смысле подключать индикаторы так, чтобы на выходе был один эксперт.mql4/mql5 

 
Evgeniy Zhdan:

Благодарствую.

Я в смысле подключать индикаторы так, чтобы на выходе был один эксперт.mql4/mql5 

Можно зашить в код несколько индикаторов, чтоб использовать советник только одним файлом .ех, и не таскать за ним индикаторы по разным машинам и терминалам

 
Evgeniy Zhdan:

Благодарствую.

Я в смысле подключать индикаторы так, чтобы на выходе был один эксперт.mql4/mql5 

Читайте справку по #resourse - большинство ответов с примерами на любой вопрос - там.
 
Evgeniy Zhdan:

Благодарствую.

Я в смысле подключать индикаторы так, чтобы на выходе был один эксперт.mql4/mql5 

Ах, Вы это имели в виду. Ну я не пробовал. Кастомные индикаторы я всегда подключал открытым исходником вставленным в подключаемый файл mqh или оформлял в том же файле mql отдельной функцией.

 
Artyom Trishkin:
Читайте справку по #resourse - большинство ответов с примерами на любой вопрос - там.

Как раз этим и занимаюсь сейчас. Раньше внимания не обращал на эти ресурсы. Оказывается хорошая вещь

 
Artyom Trishkin:
Читайте справку по #resourse - большинство ответов с примерами на любой вопрос - там.

Включение ресурсов в исполняемые файлы при компиляции mql4-программ

Для работы mql4-программы может потребоваться множество разнообразных загружаемых ресурсов в виде файлов изображений и звуков. Для того чтобы исключить необходимость переноса всех этих файлов при передаче исполняемой программы на MQL4, следует использовать директиву компилятора #resource:

 #resource путь_к_файлу_ресурса

Команда #resource указывает компилятору, что ресурс по указанному пути путь_к_файлу_ресурса нужно включить в исполняемый файл EX4. Таким образом, все необходимые картинки и звуки можно поместить непосредственно в EX4-файл и для запуска программы в другом терминале не потребуется передавать все используемые в ней отдельные файлы. Любой EX4-файл может содержать ресурсы, и любая EX4-программа может использовать ресурсы из другой EX4-программы.

Файлы в формате BMP и WAV перед включением в исполняемый EX4 файл автоматически сжимаются. Это означает, что использование ресурсов не только позволяет создавать полноценные программы на MQL4, но и уменьшает общий размер требуемых терминалу файлов при использовании графики и звука по сравнению с обычным способом написания mql4-программ.

Размер файла ресурса не может быть больше 16 Mb.

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