Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Seria possível obter o código-fonte da DLL e do EXE? Estou escrevendo minhas primeiras DLLs para o MT5 (32 bits e 64 bits) e esse seria um projeto perfeito.
Por favor, ajude
Obrigado,
Esta postagem é bastante antiga, mas ainda é relevante.
Essa ferramenta é incrível e pode ser usada para integrar dados até mesmo de várias instâncias do MT4 ou de vários EAs.
Se alguma das perguntas anteriores ainda for relevante, publique-a novamente e eu responderei.
O mesmo se aplica às perguntas sobre MQL4, pois também posso ajudar com MQL4.
Olá, Tom,
Gostaria de exportar dados de compra e venda em tempo real para o Excel. É possível usar essa ferramenta?
Obrigado, Tom
Buenas.
Estou tentando obter o LAST, mas sempre vem em branco.
Alguém faz ideia do que esta errado?
CopyBuffer(MA_handle,0,0,100,MA);
ArraySetAsSeries(MA,true);
double LAST = SymbolInfoDouble("USDBRL", SYMBOL_LAST);
// Check & Add Item DDE
if(!CheckItem("A","B"))
{
if(!AddItem("A","B")) return;
}
if(!CheckItem("C","D"))
{
if(!AddItem("C","D")) return;
}
if(!CheckItem("COMPANY","Value")) AddItem("COMPANY","Value");
if(!CheckItem("TIME","Value")) AddItem("TIME","Value");
if(!CheckItem("LAST","EURUSD")) AddItem("LAST","USDBRL");
// Set Item Value 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));
}
Boa noite.
Depois de apanhar muito, consegui resolver. Me cadastrei no site só pra isso.
Altere toda a função OnTimer():
void OnTimer()
{
//--- filling an array MA[] with current values of iMA
//--- Copying 100 elements
// CopyBuffer(MA_handle,0,0,100,MA);
// ArraySetAsSeries(MA,true);
double EURUSD_ASK = SymbolInfoDouble("EURUSD",SYMBOL_ASK); // for eurusd (example)
double EURUSD_BID = SymbolInfoDouble("EURUSD",SYMBOL_BID);
double USDCHF_ASK = SymbolInfoDouble("USDCHF",SYMBOL_ASK);
double USDCHF_BID = SymbolInfoDouble("USDCHF",SYMBOL_BID);
// Check & Add Item DDE
// if(!CheckItem("EMA","B"))
// {
// if(!AddItem("EMA","B")) return;
// }
if(!CheckItem("COMPANY","Value")) AddItem("COMPANY","Value");
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");
// Set Item Value 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));
}
O restante é igual o que foi descrito acima.
Espero que ajude alguém.
Não estou funcionando, recebo o erro "2019.02.26 11:23:40.882 dde_example (ES,H1) Alert: Cannot find MT4.DDE.2 window!"
Você esqueceu de executar o DDE Server.exe
Oi Tom,
Gostaria de exportar dados de compra e venda de ticks em tempo real para o Excel. É possível usar essa ferramenta?
Obrigado, Tom
Desculpe-me pela demora na resposta, mas é claro que é possível.
Eu disse "era" porque não uso essa ferramenta há 3 anos e não tentei no Windows 10, então você pode experimentar e relatar o resultado.
Boa noite.
Depois de apanhar muito, consegui resolver. Me cadastrei no site só pra isso.
Altere toda a função OnTimer():
void OnTimer()
{
//--- filling an array MA[] with current values of iMA
//--- Copying 100 elements
// CopyBuffer(MA_handle,0,0,100,MA);
// ArraySetAsSeries(MA,true);
double EURUSD_ASK = SymbolInfoDouble("EURUSD",SYMBOL_ASK); // for eurusd (example)
double EURUSD_BID = SymbolInfoDouble("EURUSD",SYMBOL_BID);
double USDCHF_ASK = SymbolInfoDouble("USDCHF",SYMBOL_ASK);
double USDCHF_BID = SymbolInfoDouble("USDCHF",SYMBOL_BID);
// Check & Add Item DDE
// if(!CheckItem("EMA","B"))
// {
// if(!AddItem("EMA","B")) return;
// }
if(!CheckItem("COMPANY","Value")) AddItem("COMPANY","Value");
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");
// Set Item Value 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));
}
O restante é igual o que foi descrito acima.
Espero que ajude alguém.
Valeu Maurorechi,
mas tem que fazer essas linhas que vc fez pro EURUSD pra cada ativo ?
E outra duvida, pra puxar infos de um ativo tem que estar com a janela do ativo aberta?