Создание собственного расширения MetaTrader (dll) - страница 5

 

Я вижу, вы крупный бизнесмен?????

Это не тот форум, где вы можете продавать такое дерьмо, которое у вас есть.

Что именно вы изменили в DGC OZFX EA

firedoji:
Легко!!! Просто скачайте все электронные книги по форексу и посмотрите инструкцию внутри. Я взял оттуда более 200++ электронных книг и несколько советников тоже... Все советники там отредактированы и модифицированы...

-----------------------------------------

Скачать все советники Скачать все индикаторы Скачать электронную книгу
 
prasxz:
Возможно ли сделать mt4 dll подключенной к веб-сервису и сделать php скрипт, который будет показывать открытую позицию MT4 через веб-сайт, чтобы люди без MT4 могли видеть ее с веб-сайта в реальном времени?

Некоторое время назад кто-то опубликовал пример MQL / MySQL, который отлично работает, единственная проблема с ним заключается в том, что большинство хостинговых компаний не разрешают удаленный доступ к своим серверам баз данных. Однако если бы у вас был полный доступ и контроль к вашему серверу, вы бы написали советника, который бы подключался к вашей базе данных и вставлял данные для каждого нового заказа. Затем с вашего сайта просто подключаетесь к базе данных и считываете данные... На мой взгляд, это лучший подход.

Теперь MT4 DLL может подключаться к php-скрипту, но я никогда не пробовал передавать информацию от советника на сайт, я смог успешно сделать это наоборот... Вам придется изучить сокеты windows и такие функции, как HTTP_GET / HTTP_POST.

Патрик

 
Mistigri:
Не уверен, эта библиотека выглядит знакомой, вы используете ее для подключения к веб-сайту? Пробовали ли вы использовать wininet.lib вместо нее?

Я не думаю, что проблема здесь в def-файле, иначе ваша dll даже не загрузилась бы и не работала должным образом... Если вы можете предоставить больше информации (т.е. часть кода, который вы используете в dll), тогда, возможно, я смогу попытаться помочь.

Патрик

Привет Патрик!

Я нашел библиотеку и исходный код здесь:

https://www.mql5.com/en/forum/178272

Я разместил там свое сообщение, но админ перенес его в эту тему...

Спасибо!

 

Чтение файла, расположенного в Интернете

Здравствуйте,

Я хочу, чтобы советник читал файл, который находится не на локальной машине, а в интернете.

FileOpen работает только когда файл находится в каталоге metatrader.

Я пытаюсь это сделать с помощью c#-dll, но получаю сообщение об ошибке "cannot call function".

Есть ли у s.o. простое решение этой проблемы?

Спасибо

 

Решение ошибки 127 - невозможно вызвать функцию

Решение ошибки 127 - невозможно вызвать функцию

Хорошо,

Вчера вечером я наконец вернулся к рассмотрению этого вопроса. Проблема связана с ассоциацией неправильного def файла или nodef файла с dll.

Вот как это исправить в Visual Studio 2008 Express -

1) Перейдите в проект, свойства - или alt-F7

2) Перейдите к Linker - дважды щелкните на нем, и вы получите выпадающий список

3) Выберите Input

4) Измените файл определения модуля на то, как вы назвали свой def-файл.

Убедитесь, что он содержит путь и полное имя файла - например .\MyDef.def

В версии 2008 Express это имя не генерируется автоматически, как в профессиональных версиях.

Это главный виновник. Могут быть и другие проблемы с компоновщиком/компилятором, которые все еще могут вызвать проблему. Что вам нужно сделать, так это загрузить проект примера ExportFunction, который поставляется вместе с Metatrader4. Он находится в папке experts/DllSample. Теперь перейдите и просмотрите его свойства страница за страницей, пункт за пунктом, и везде, где написано ExportSample, или ExpertSample, (или что там используется в соответствии с соглашениями об именовании), измените свойства в соответствии с вашими собственными соглашениями об именовании. Я проделал это пункт за пунктом, а затем проверил, получил ли я ошибку 127. Я продолжал получать эту ошибку до тех пор, пока правильный файл определения модуля не был явно указан как зависимость. Я не говорю, что не может быть других вещей, кроме этого, потому что я изменил все, чтобы соответствовать образцу, но как только def-файл был явно указан, это устранило проблему.

Помните, что dll должна находиться в папке lib. У вас должен быть mqh-файл в каталоге include, который явно импортирует dll и перечисляет имена функций с параметрами, типами возврата и т. д. А затем в вашем индикаторе или эксперте вы должны включить заголовочный файл. Это должно помочь.

У CodersGuru и Mistigri есть хорошие примеры, как это сделать, но непрофессиональные версии Express не добавляют явно def-файл в качестве зависимости, и это корень проблемы, с которой сталкиваются все, кто использует версии Express. (По крайней мере, он не добавляет его в явном виде при выборе конкретного проекта, чтобы мы, у которых есть проблема, выбрали его).

См. прикрепленное изображение. Помните, что вы, вероятно, все еще хотите убедиться, что значения вашего компилятора и компоновщика соответствуют значениям образца exportfunction, который поставляется с Metatrader.

С уважением,

MG

Файлы:
properties.jpg  75 kb
 
fedecosta:
Привет Патрик!

Я нашел библиотеку и исходный код здесь:

https://www.mql5.com/en/forum/178272

Я разместил там свое сообщение, но админ перенес его в эту тему...

Спасибо!

Извините, что еще не успел посмотреть, был занят, но я не забыл и постараюсь вам ответить.

Peco07:

Я хочу, чтобы советник читал файл, который находится не на локальной машине, а в интернете.

У вас есть 2 варианта, написать приложение на C#, которое будет подключаться к сайту, записывать файл данных на вашем компьютере и читать его из MT4 или написать C++ dll, которая будет подключаться к сайту и читать данные .....

Если вы пойдете по пути C#, пока что это кажется намного быстрее, чем путь DLL ... Если вы хотите написать DLL на c++, вот код, который поможет вам начать.

MT4 DLL Web Connect | Mistigri

MG_1:

Проблема связана с ассоциацией неправильного def файла или отсутствием def файла с dll.

Вот как это можно исправить в Visual Studio 2008 Express -

Спасибо за информацию! Если вы не возражаете, я воспроизведу некоторые части ваших сообщений на моем сайте...

 
Mistigri:
Спасибо за информацию! Если вы не возражаете, я воспроизведу некоторые части ваших сообщений на своем сайте...

Нет проблем, я знаю, что многие люди приходят туда учиться, так что, надеюсь, это поможет пользователям Express, gnu и т.д..

-MG

 
fedecosta:
Здравствуйте, ребята!

У меня возникла проблема при попытке использовать эту библиотеку.

Я поместил их в metatrader\experts\library.

Я правильно определил путь для файла .def

... но мой советник выводит на реестр эту ошибку: -65495.

В чем может быть проблема?

И, самое главное, как ее решить?

Возможно ли, что файл .def может быть поврежден?

Заранее спасибо...

Здравствуйте, Федекоста,

Попробуйте скопировать файл def прямо на диск c:\... Это, кажется, работает для меня.

Обратите внимание, что это не имеет никакого отношения к программированию DLL, это специфично для этого советника...

Патрик

 
Mistigri:
Привет, Тим,

При использовании dev-c++ файл def генерируется автоматически, проблема в том, что в итоге получаются имена функций, которые выглядят следующим образом:

EXPORTS

_Z11GetSMAArrayP8RateInfoiiPd@16 @ 1

_Z12GetHighValueP8RateInfoii = _Z12GetHighValueP8RateInfoii@12 @ 2

_Z12GetHighValueP8RateInfoii@12 @ 3

_Z13GetCloseValueP8RateInfoii = _Z13GetCloseValueP8RateInfoii@12 @ 4

_Z13GetCloseValueP8RateInfoii@12 @ 5

_Z11GetSMAArrayP8RateInfoiiPd = _Z11GetSMAArrayP8RateInfoiiPd@16 @ 6[/PHP]

Now you need to make sure you add the following check around your code

[PHP]

#ifdef __cplusplus

extern "C" {

#endif

#ifdef __cplusplus

}

#endif

Прилагаю примеры файлов, которые я сделал для VS2008, но на этот раз с использованием dev-c++ ...

Надеюсь, это поможет

Вы имеете в виду, что при написании dll файла,

функция в def-файле должна добавить _z12 в начале?

Это означает, что в файле .mq4

вызываем функцию: get_max_deviation

затем в .def файле

переданная функция: _z12get_max_deviation?????

что означает номер @ после имени функции?

спасибо

 
Mistigri:

Прилагаются примеры файлов, которые я сделал для VS2008, но на этот раз с использованием dev-c++ ...

Надеюсь, это поможет

Прикрепленные файлы

MistigriFX Sample Debug.mq4 (2.1 KB, 15 просмотров)

MSFXDEV.zip (8.6 KB, 17 просмотров)

Я скачал ваши файлы, скомпилировал .cpp по картинке.

но возникает ошибка

Может я неправильно компилирую, как мне скомпилировать его в dll? (Я новичок в С++ ^^)

Файлы:
dev_dll.jpg  298 kb
Причина обращения: