Expert Advisors: DDE - Server - Seite 4

 

Wäre es möglich, den Quellcode für die DLL und EXE zu bekommen? Ich schreibe gerade meine ersten DLLs für MT5 (32bit und 64bit) und das wäre ein perfektes Projekt.

 
Es funktioniert nicht, ich bekomme die Fehlermeldung "2019.02.26 11:23:40.882 dde_example (ES,H1) Alert: Cannot find MT4.DDE.2 window!"

 
Programm läuft gut.. Aber ich verstehe nicht, wo ich excelsheet erstellen müssen.. oder seine Auto generieren? wenn seine Auto generieren, so wo ich es finden kann?

Bitte helfen

Danke,
 
Tom Sasson:

Dieser Beitrag ist ziemlich alt, aber immer noch aktuell.

Dieses Tool ist erstaunlich, und kann verwendet werden, um Daten auch aus mehreren Instanzen von MT4 oder mehrere EAs zu integrieren.

Wenn eine der früheren Fragen noch relevant ist, posten Sie sie bitte erneut und ich werde sie beantworten.

Das gleiche gilt für MQL4 Fragen, da ich auch mit MQL4 helfen kann.

Hallo Tom ,


Ich würde gerne in Echtzeit Kauf- und Verkaufs-Tickdaten nach Excel exportieren. Ist das mit diesem Tool möglich?

Vielen Dank

 

Buenas.


Ich versuche, LAST zu bekommen, aber es erscheint immer ein leeres Fenster.


Hat jemand eine Idee, was falsch ist?




CopyBuffer(MA_handle,0,0,100,MA);

ArraySetAsSeries(MA,true);

double LAST = SymbolInfoDouble("USDBRL", SYMBOL_LAST);


// Element prüfen & hinzufügen DDE

if(!CheckItem("A", "B"))

{

if(!AddItem("A", "B")) return;

}


if(!CheckItem("C", "D"))

{

if(!AddItem("C", "D")) return;

}

if(!CheckItem("FIRMA", "Wert")) AddItem("UNTERNEHMEN", "Wert");

if(!CheckItem("ZEIT", "Wert")) AddItem("ZEIT", "Wert");

if(!CheckItem("LAST", "EURUSD")) AddItem("LAST", "USDBRL");

// Elementwert setzen DDE

SetItem("FIRMA", "Wert",(string)AccountInfoString(ACCOUNT_COMPANY));

SetItem("TIME", "Wert",(string)TimeCurrent());


SetItem("A", "B", "EMA(21): "+DoubleToString(MA[0],6));


SetItem("C", "D", "LAST: "+DoubleToString(LAST,5));

}

 

Guten Abend.


Nach viel Tüftelei habe ich es geschafft, das Problem zu lösen. Ich habe mich extra dafür auf der Website registriert.

Ändern Sie die gesamte OnTimer()-Funktion:

void OnTimer()

{

//--- Füllen eines Arrays MA[] mit den aktuellen Werten von iMA

//--- Kopieren von 100 Elementen

// CopyBuffer(MA_handle,0,0,100,MA);

// ArraySetAsSeries(MA,true);

double EURUSD_ASK = SymbolInfoDouble("EURUSD",SYMBOL_ASK); // für eurusd (Beispiel)

double EURUSD_BID = SymbolInfoDouble("EURUSD",SYMBOL_BID);

double USDCHF_ASK = SymbolInfoDouble("USDCHF",SYMBOL_ASK);

double USDCHF_BID = SymbolInfoDouble("USDCHF",SYMBOL_BID);

// Element prüfen & hinzufügen DDE

// if(!CheckItem("EMA", "B"))

// {

// if(!AddItem("EMA", "B")) return;

// }


if(!CheckItem("UNTERNEHMEN", "Wert")) AddItem("UNTERNEHMEN", "Wert");

if(!CheckItem("ZEIT", "Wert")) AddItem("ZEIT", "Wert");

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");

// Elementwert setzen DDE

SetItem("FIRMA", "Wert",(string)AccountInfoString(ACCOUNT_COMPANY));

SetItem("ZEIT", "Wert",(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));

}

Der Rest ist derselbe wie oben beschrieben.


Ich hoffe, es hilft jemandem.

 
Mikhail Shikin:
Es funktioniert nicht, ich bekomme die Fehlermeldung "2019.02.26 11:23:40.882 dde_example (ES,H1) Alert: Cannot find MT4.DDE.2 window!"

Sie haben vergessen, DDE Server.exe auszuführen.

 
MARFE:

Hallo Tom ,


Ich würde gerne in Echtzeit Kauf- und Verkaufsdaten in Excel exportieren. Ist das mit diesem Tool möglich?

Danke

Entschuldigung für die späte Antwort, es war natürlich möglich.

Ich sagte "war", weil ich dieses Tool seit 3 Jahren nicht mehr benutze und es noch nicht unter Windows 10 ausprobiert habe, also experimentieren Sie und berichten Sie.

 
maurorechi:

Guten Abend.


Nach viel Tüftelei habe ich es geschafft, das Problem zu lösen. Ich habe mich extra dafür auf der Website registriert.

Ändern Sie die gesamte Funktion OnTimer():

void OnTimer()

{

//--- Füllen eines Arrays MA[] mit aktuellen Werten von iMA

//--- Kopieren von 100 Elementen

// CopyBuffer(MA_handle,0,0,100,MA);

// ArraySetAsSeries(MA,true);

double EURUSD_ASK = SymbolInfoDouble("EURUSD",SYMBOL_ASK); // für eurusd (Beispiel)

double EURUSD_BID = SymbolInfoDouble("EURUSD",SYMBOL_BID);

double USDCHF_ASK = SymbolInfoDouble("USDCHF",SYMBOL_ASK);

double USDCHF_BID = SymbolInfoDouble("USDCHF",SYMBOL_BID);

// Element DDE prüfen & hinzufügen

// if(!CheckItem("EMA", "B"))

// {

// if(!AddItem("EMA", "B")) return;

// }


if(!CheckItem("UNTERNEHMEN", "Wert")) AddItem("UNTERNEHMEN", "Wert");

if(!CheckItem("ZEIT", "Wert")) AddItem("ZEIT", "Wert");

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");

// Elementwert setzen DDE

SetItem("FIRMA", "Wert",(string)AccountInfoString(ACCOUNT_COMPANY));

SetItem("ZEIT", "Wert",(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));

}

Der Rest ist derselbe wie oben beschrieben.


Ich hoffe, es hilft jemandem.

Danke Maurorechi,


aber müssen Sie diese Zeilen, die Sie für EURUSD gemacht haben, für jeden Vermögenswert eingeben?

Und eine andere Frage, müssen Sie das Fenster des Vermögenswerts geöffnet haben, um Informationen von einem Vermögenswert zu ziehen?

 
Ich möchte, dass es in der Lage ist, die Geld-/Briefwerte automatisch für alle Symbole in der Marktbeobachtung zu generieren. Kann mir jemand helfen?