- Будет ли востребовано ООП в MQL5?
- Замена функций файлов MT4.
- Импорт котировок в МТ4
не очень понятно чего ты хочешь
можешь через dde котировки передавать
или через разные mt4 api коих штук 5 точно от бесплатных до очень дорогих
Может кто подскажет, где надыбать программку, точнее её код, позволяющую обрабатывать котировки пар в Дельфи и возвращать какой-то результат, а также код программки грамотно передающей котировки в Дельфи с синхронизацией. Или может кто-то поделится опытом в этой области. Или сколько это могло бы стоить?
А длл-пример из стандартного пакета запустить не пробовал? Синхронная обработка котировок с возвращением результата.
самая известная mt4 чегото там comm бесплатна могу порыться валяется где-то
для своих задач использую разработку бразильских товарищей всего 50 баков
на английском форуме где-то есть
ну и т д и т п
Чего непонятно... я хочу получить файл формата *.GDB, содержащего котировки полученные из MT4, программа Дельфи анализирует котировки в базе и вновь поступающие и выдает обратно результат в MT. Соответственно, что надо программы MT, Дельфи и dll видимо. Дайте хоть, что бесплатное.... длл пример не видел, мало чего хорошего на эту тему видел... и тяжело понять технологии api, что там к чему... хотелось бы обсудить.
Чего непонятно... я хочу получить файл формата *.GDB, содержащего котировки полученные из MT4, программа Дельфи анализирует котировки в базе и вновь поступающие и выдает обратно результат в MT. Соответственно, что надо программы MT, Дельфи и dll видимо. Дайте хоть, что бесплатное.... длл пример не видел, мало чего хорошего на эту тему видел... и тяжело понять технологии api, что там к чему... хотелось бы обсудить.
Всё равно не понятно, что же нужно.
В приведенном примере процесс обработки выглядит примерно так:
МТ4 -> файл формата *.GDB -> программа на Delphi -> МТ4
Хотя наверное должно выглядеть примерно так:
МТ4 -> dll -> МТ4
а вот уже из dll наверное можно выгружать в "файл формата *.GDB", если есть желание хранить эти данные.
Ещё один момент, что нужно обрабатывать? Если текущую цену, в виде бида или аска, это одно, если нужно передать на обработку OHLCV то это немного другое. В обоих случаях немного разные методы обработки. Например, если обрабатывается текущий бид, нужно ли где то в инициализации сначала передать исторические данные? Или, в случае OHLC, внешняя обработка должна запускаться на каждом тике, что часто бессмысленно для этого случая, или только в том случае когда OHLCVсформирован полностью. Ну и т.д.
Всё равно не понятно, что же нужно.
В приведенном примере процесс обработки выглядит примерно так:
МТ4 -> файл формата *.GDB -> программа на Delphi -> МТ4
Хотя наверное должно выглядеть примерно так:
МТ4 -> dll -> МТ4
а вот уже из dll наверное можно выгружать в "файл формата *.GDB", если есть желание хранить эти данные.
Ещё один момент, что нужно обрабатывать? Если текущую цену, в виде бида или аска, это одно, если нужно передать на обработку OHLCV то это немного другое. В обоих случаях немного разные методы обработки. Например, если обрабатывается текущий бид, нужно ли где то в инициализации сначала передать исторические данные? Или, в случае OHLC, внешняя обработка должна запускаться на каждом тике, что часто бессмысленно для этого случая, или только в том случае когда OHLCVсформирован полностью. Ну и т.д.
OHLCV 24 пар передаем не знаю как лучше в Дельфи... Дельфи сохраняет информацию в gdb. Анализирует её на наличие дыр. Раз в минуту,н-р, обновляет базу, опять анализирует и выдает ответ в MT результат вычислений в виде 8 массивов.
OHLCV 24 пар передаем не знаю как лучше в Дельфи... Дельфи сохраняет информацию в gdb. Анализирует её на наличие дыр. Раз в минуту,н-р, обновляет базу, опять анализирует и выдает ответ в MT результат вычислений в виде 8 массивов.
Способа "лучше", пожалуй, не будет. На вскидку, нужны как минимум две функции, одна передает данные в длл,
например: void SetData( string Symbol, int DateTime, double O, double H, double L, double C, double V);
её придется вызывать 24 раза для каждого символа. На каждом тики или как там задумано, в советнике или индикаторе, проверять периодичность и вызывать.
И другая функция, которая вызывается для обработки данных, переданных через SetData,
например int AnalizeData( double& arr1[], double& arr2[].....)
где и происходит вся обработка данных, и возвращается размер массивов, которые передаются по ссылке.
Ещё придется в самом МТ организовать 8 массивов (arr1, arr2 и т.д.), дать им размер побольше, что бы результирующие массивы поместились полностью.
Как то так, наверное.
Можно написать 24 советника, каждый на свой символ, и 24 функции в длл, для SetData, ну а дальше анализ и возврат результатов. :)
Задача то в общем то не сложная, просто объемная. Напрямую, лазить в МТ за данными, вряд ли получится, так что бы безболезненно было. В принципе, есть функции типа iClose() и т.д. их и придется использовать, если из одного советника передавать данные в длл. Если из 24 советников, то можно передавать массивы Close[] и т.д. в длл. И я так понимаю, все 24 пары должны быть в "обзоре рынка", полубому.
Здесь обработка зависит от программы в МТ, т.е. функции передачи данных, обработка и возврат данных инициируются из МТ. Вариант, когда МТ и длл работают независимо - сложнее, нужно будет делать многопоточную длл.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования