Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Можно ли получить исходный код DLL и EXE? Я пишу свои первые DLL для MT5 (32bit и 64bit), и это был бы идеальный проект.
Пожалуйста, помогите
Спасибо,
Это сообщение довольно старое, но по-прежнему актуальное.
Это потрясающий инструмент, который можно использовать для интеграции данных даже из нескольких экземпляров MT4 или нескольких советников.
Если какой-либо из предыдущих вопросов все еще актуален, пожалуйста, опубликуйте его повторно, и я отвечу.
То же самое касается вопросов по MQL4, так как я могу помочь и с MQL4.
Здравствуйте, Том,
Я хотел бы экспортировать данные о покупках и продажах в реальном времени в excell, возможно ли это с помощью этого инструмента?
Спасибо
Буэнас.
Я пытаюсь получить LAST, но он всегда остается пустым.
Есть ли у кого-нибудь идеи, что не так?
CopyBuffer(MA_handle,0,0,100,MA);
ArraySetAsSeries(MA,true);
double LAST = SymbolInfoDouble("USDBRL", SYMBOL_LAST);
// Проверка и добавление элементов DDE
if(!CheckItem("A", "B"))
{
if(!AddItem("A", "B")) return;
}
if(!CheckItem("C", "D"))
{
{ if(!AddItem("C", "D")) return;
}
if(!CheckItem("COMPANY", "Value")) AddItem("КОМПАНИЯ", "Значение");
if(!CheckItem("TIME", "Value")) AddItem("TIME", "Value");
if(!CheckItem("LAST", "EURUSD")) AddItem("LAST", "USDBRL");
// Установка значения элемента DDE
SetItem("COMPANY", "Value",(string)AccountInfoString(ACCOUNT_COMPANY));
SetItem("TIME", "Value",(string)TimeCurrent());
SetItem("A", "B", "EMA(21): "+DoubleToString(MA[0],6));
SetItem("C", "D", "LAST: "+DoubleToString(LAST,5));
}
Добрый вечер.
После долгих проволочек мне удалось решить эту проблему. Я зарегистрировался на сайте только для этого.
Измените всю функцию OnTimer():
void OnTimer()
{
//--- Заполнение массива MA[] текущими значениями iMA
//--- Копирование 100 элементов
// CopyBuffer(MA_handle,0,0,100,MA);
//- ArraySetAsSeries(MA,true);
double EURUSD_ASK = SymbolInfoDouble("EURUSD",SYMBOL_ASK); // для eurusd (пример)
double EURUSD_BID = SymbolInfoDouble("EURUSD",SYMBOL_BID);
double USDCHF_ASK = SymbolInfoDouble("USDCHF",SYMBOL_ASK);
double USDCHF_BID = SymbolInfoDouble("USDCHF",SYMBOL_BID);
// Проверка и добавление элемента DDE
// if(!CheckItem("EMA", "B"))
// {
// if(!AddItem("EMA", "B")) return;
// }
if(!CheckItem("COMPANY", "Value")) AddItem("COMPANY", "Value");
if(!CheckItem("TIME", "Value")) AddItem("ВРЕМЯ", "Значение");
if(!CheckItem("EURUSD", "ASK")) AddItem("EURUSD", "ASK");
if(!CheckItem("EURUSD", "BID")) AddItem("EURUSD", "BID");
if(!CheckItem("USDCHF", "ASK")) AddItem("USDCHF", "ASK");
if(!CheckItem("USDCHF", "BID")) AddItem("USDCHF", "BID");
// Установка значения элемента DDE
SetItem("COMPANY", "Value",(string)AccountInfoString(ACCOUNT_COMPANY));
SetItem("TIME", "Value",(string)TimeCurrent());
// SetItem("EMA", "B", "EMA(21): "+DoubleToString(MA[0],6));
SetItem("EURUSD", "ASK",DoubleToString(EURUSD_ASK,5));
SetItem("EURUSD", "BID",DoubleToString(EURUSD_BID,5));
SetItem("USDCHF", "ASK",DoubleToString(USDCHF_ASK,5));
SetItem("USDCHF", "BID",DoubleToString(USDCHF_BID,5));
}
Остальные действия аналогичны описанным выше.
Надеюсь, это кому-нибудь поможет.
У меня не работает выдает ошибку "2019.02.26 11:23:40.882 dde_example (ES,H1) Alert: Cannot find MT4.DDE.2 window!"
Ты забыл запустить DDE Server.exe
Привет, Том,
Я хотел бы экспортировать данные о покупках и продажах в реальном времени в excell, возможно ли это с помощью этого инструмента?
Спасибо
Извините за поздний ответ, это, конечно, возможно.
Я сказал "было", потому что я не использовал этот инструмент уже 3 года и не пробовал на Windows 10, так что вы можете поэкспериментировать и сообщить о результатах.
Добрый вечер.
После долгих проволочек мне удалось решить эту проблему. Я зарегистрировался на сайте только для этого.
Измените всю функцию OnTimer():
void OnTimer()
{
//--- заполнение массива MA[] текущими значениями iMA
//--- Копирование 100 элементов
// CopyBuffer(MA_handle,0,0,100,MA);
// ArraySetAsSeries(MA,true);
double EURUSD_ASK = SymbolInfoDouble("EURUSD",SYMBOL_ASK); // для eurusd (пример)
double EURUSD_BID = SymbolInfoDouble("EURUSD",SYMBOL_BID);
double USDCHF_ASK = SymbolInfoDouble("USDCHF",SYMBOL_ASK);
double USDCHF_BID = SymbolInfoDouble("USDCHF",SYMBOL_BID);
// Проверка и добавление элемента DDE
// if(!CheckItem("EMA", "B"))
// {
// if(!AddItem("EMA", "B")) return;
// }
if(!CheckItem("COMPANY", "Value")) AddItem("КОМПАНИЯ", "Значение");
if(!CheckItem("TIME", "Value")) AddItem("TIME", "Value");
if(!CheckItem("EURUSD", "ASK")) AddItem("EURUSD", "ASK");
if(!CheckItem("EURUSD", "BID")) AddItem("EURUSD", "BID");
if(!CheckItem("USDCHF", "ASK")) AddItem("USDCHF", "ASK");
if(!CheckItem("USDCHF", "BID")) AddItem("USDCHF", "BID");
// Установка значения элемента DDE
SetItem("COMPANY", "Value",(string)AccountInfoString(ACCOUNT_COMPANY));
SetItem("TIME", "Value",(string)TimeCurrent());
// SetItem("EMA", "B", "EMA(21): "+DoubleToString(MA[0],6));
SetItem("EURUSD", "ASK",DoubleToString(EURUSD_ASK,5));
SetItem("EURUSD", "BID",DoubleToString(EURUSD_BID,5));
SetItem("USDCHF", "ASK",DoubleToString(USDCHF_ASK,5));
SetItem("USDCHF", "BID",DoubleToString(USDCHF_BID,5));
}
Остальные действия аналогичны описанным выше.
Надеюсь, это кому-нибудь поможет.
Спасибо Maurorechi,
но нужно ли делать эти строки, которые вы сделали для EURUSD, для каждого актива?
И еще один вопрос, должно ли быть открыто окно актива, чтобы извлекать информацию из актива?