Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Есть вопросы к автору программы - задай их в разделе Обсуждение
Debugger
2501
Debugger 2012.02.26 14:08 
Всем доброго времени суток!
Столкнулся с проблемой передачи объемов в реальном времени.
Можно ли их передавать по DDE как передаются параметры свечи D1
   запрос BID:    = MT4|BID!USDCHF         результат:  1.5773  
   запрос ASK:    = MT4|ASK!USDCHF         результат:  1.5778  
   запрос HIGH:   = MT4|HIGH!USDCHF        результат:  1.5801  
   запрос LOW:    = MT4|LOW!USDCHF         результат:  1.5741  
   запрос TIME:   = MT4|TIME!USDCHF        результат:  21.05.02 9:52  
   запрос QUOTE:  = MT4|QUOTE!USDCHF       результат:  21.05.02 9:52 1.5773 1.5778 1.5776  
Заранее благодарен?
IgorM М
4801
IgorM М 2012.02.26 14:59  
думаю объемы Вы никак получите по DDE, а если решите получать одновременно сразу несколько символов по DDE, то заметите сколько будет пропущенных тиков по DDE, у меня так было. Не тратьте время, сделайте .dll с filemapping и создайте событие запись тика для приложения которое "слушает" тики, все работает как часы без пропущенных тиков и с передачей большого объема данных
Debugger
2501
Debugger 2012.02.26 16:10  
Ок
Debugger
2501
Debugger 2012.02.28 06:29  

Я вот тут подумал, у меня проблема в следующем:
сигнал онлайн скидывается в базу данных при приходе тика по инструменту которому он соответствуе и одновременно на программу обсчитывающую статистику.

Следом гипотетический вопрос а вообще можно ли держать одно открытое окно, а по DDE скидывать котировки по всем фининструментам?

Если да, можно пример, даже криво работающий.

new-rena
3372
new-rena 2012.02.28 09:44  
Debugger:

Я вот тут подумал, у меня проблема в следующем:
сигнал онлайн скидывается в базу данных при приходе тика по инструменту которому он соответствуе и одновременно на программу обсчитывающую статистику.

Следом гипотетический вопрос а вообще можно ли держать одно открытое окно, а по DDE скидывать котировки по всем фининструментам?

Если да, можно пример, даже криво работающий.

//+------------------------------------------------------------------+
//|                                                 CollectTicks.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"

int ExtHandle=0;    // file handle
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void init()
  {
//----
   if(ExtHandle!=0) FileClose(Symbol()+Period()+".txt");
   ExtHandle=FileOpen(Symbol()+Period()+".txt",FILE_CSV|FILE_WRITE,' ');
//----
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void deinit()
  {
//----
   if(ExtHandle!=0) { FileClose(ExtHandle); ExtHandle=0; }
//----
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void start()
  {
   if(ExtHandle!=0) FileWrite(ExtHandle,TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS),";", Ask, ";", Bid);
  }
//+------------------------------------------------------------------+

Сделайте циклическую подстановку вместо Symbol0 инструментов и получится

Вторую строчку перенести из init() в start() после if(....

Файлы будут в /expert/files/ дописываться примерно раз в две минуты.

Туда можно записывать всё что угодно

IgorM М
4801
IgorM М 2012.02.28 10:16  
Debugger:

Следом гипотетический вопрос а вообще можно ли держать одно открытое окно, а по DDE скидывать котировки по всем фининструментам?

вот ехе-шник который по ДДЕ принимает символы которые у него сохранены в файле symbol.txt, все что будет в окне обзор рынка он прочитает по ДДЕ, но я на Delphi обычно проекты составляю, на С++ редко, если интересно то могу вечерком исходники у себя поискать

Файлы:
dde.zip 263 kb
Debugger
2501
Debugger 2012.02.28 10:19  

У меня сейчас работает через скидывание в файл.

Хотелось сделать без лишних промежуточных операций.

Если не сложно буду ждать исходники.

Заранее благодарен.

IgorM М
4801
IgorM М 2012.02.28 10:20  
Debugger:Если не сложно буду ждать исходники.

на Delphi устроит?

У меня сейчас работает через скидывание в файл.
я же писал, используйте filemapping, все работает очень быстро и без пропусков тиков, в кодобазе недавно выкладывали хороший пример filemapping
Debugger
2501
Debugger 2012.02.28 10:40  

я тоже использую в файлмаппинг для нейросети

если не сложно накидай схемку от руки

IgorM М
4801
IgorM М 2012.02.28 11:34  
вот нашел черновики файлмаппинга, у меня создается событие запись в файл и мьютекс которые разделяет доступ к чтению/записи
Файлы:
Рустам
3597
Рустам 2012.02.28 11:37  
Сюда загляните : https://www.mql5.com/ru/code/10568
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий