Советники: DDE - Server - страница 8

 

Наконец, я получил его!!!!!

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

Сначала сервер dde, затем meta trader 5, установить робота в нужную мне пару, разрешить все dlls meta trader 5, и только потом открыть excel.

Моя ошибка заключалась в том, что я оставлял excel открытым перед открытием всех остальных программ... вот вам и совет.

 
Кто-нибудь может подсказать мне, как получить чистый объем в Excel с помощью DDE
Я в состоянии получить имя сервера DDE и время в прямом эфире, я хочу получить чистый объем в прямом эфире в Excel
 

Очень полезный и простой в использовании инструмент для извлечения данных MT5 в Excel. Вот код, позволяющий получать несколько типов данных из нескольких активов одновременно

void OnTimer()
{
  // Получаем текущие значения бид, аск, хай, лоу и последний объем для символа графика
  double bidPrice = 0.0;
  double askPrice = 0.0;
  double highPrice = 0.0;
  double lowPrice = 0.0;
  double lastVolume = 0.0;
  string symbol = _Symbol; // Получает символ графика, к которому прикреплен советник
 
  if(SymbolInfoDouble(symbol, SYMBOL_BID, bidPrice) &&
     SymbolInfoDouble(symbol, SYMBOL_ASK, askPrice) &&
     SymbolInfoDouble(symbol, SYMBOL_HIGH, highPrice) &&
     SymbolInfoDouble(symbol, SYMBOL_LOW, lowPrice) &&
     SymbolInfoDouble(symbol, SYMBOL_VOLUME_REAL, lastVolume))
  {
    // Уникальные темы DDE для каждого символа
    string bidTopic = symbol + "_BID";
    string askTopic = symbol + "_ASK";
    string highTopic = symbol + "_HIGH";
    string lowTopic = symbol + "_LOW";
    string volumeTopic = symbol + "_VOLUME";
 
    // Проверка и добавление элементов DDE для каждой точки данных с именем символа
    if(!CheckItem("PRICE", bidTopic)) AddItem("PRICE", bidTopic);
    if(!CheckItem("PRICE", askTopic)) AddItem("PRICE", askTopic);
    if(!CheckItem("PRICE", highTopic)) AddItem("PRICE", highTopic);
    if(!CheckItem("PRICE", lowTopic)) AddItem("PRICE", lowTopic);
    if(!CheckItem("PRICE", volumeTopic)) AddItem("PRICE", volumeTopic);
 
    // Установите элементы DDE с данными
    SetItem("PRICE", bidTopic, DoubleToString(bidPrice, _Digits));
    SetItem("PRICE", askTopic, DoubleToString(askPrice, _Digits));
    SetItem("PRICE", highTopic, DoubleToString(highPrice, _Digits));
    SetItem("PRICE", lowTopic, DoubleToString(lowPrice, _Digits));
    SetItem("PRICE", volumeTopic, DoubleToString(lastVolume, 0)); // Объем обычно является целым числом
  }
  else
  {
    // Обработка ошибки, если информация о цене не может быть получена
    Alert("Error retrieving price information for " + symbol);
  }
}
 
// остальной существующий код ...
 
пример запуска цен в 2035 году
пример nPriceop=2001 для лимита на покупку
trade.PositionOpen(_Symbol, ORDER_TYPE_BUY_LIMIT, 0.1, nOPPrice, 0, 0, "Commentyup"); Я использую библиотеку trade.mqh на MT5..... и для buy и sell исполнение проходит нормально... но нет открытых позиций для buylimit и selllimit.... есть ли здесь кто-нибудь, кто может мне помочь?
 

Я перепрограммировал его таким образом, чтобы получать данные о тиках (бид и аск) непосредственно в excel/libreoffice. Точно так же, как и в MT4. Никакой разницы. Спасибо за это!

Файлы:
 
Здравствуйте, будет ли он работать с google sheets вместо excel?
 
@adamko40 #: Здравствуйте, будет ли он работать с google sheets вместо excel?
Google Sheets - это веб-приложение. В нем не используется DDE.