Erstellen Sie Ihre eigene MetaTrader-Erweiterung (dll) - Seite 11

 

Grundlegende Frage zur mql4-Programmierung

Hallo!

ich möchte einige Funktionen aus einer dll importieren. Dazu müsste ich einige *.h Dateien einbinden.

Ist das möglich, oder muss ich *.mqh statt *.h schreiben?

Die dll ist für eine C-Programmiersprache.

Und es gibt Funktionen mit Zeigern und Structs als Datentypen. Ist es möglich, diese mit mql4? zu verwenden?

 

Aktienkurs erhalten

Hallo,

Ich versuche, Aktienkurse von Meta Trader mit c# zu erhalten, aber nicht wirklich wissen, wie man es tun.

Kann mir das jemand erklären oder mich in eine spezielle Anleitung schicken ?

Vielen Dank.

 
kfirmt:
Hallo,

Ich versuche, Aktienkurse von Meta Trader mit c# zu erhalten, aber nicht wirklich wissen, wie man es tut.

Kann mir das jemand erklären oder mich in eine spezielle Anleitung schicken ?

vielen Dank.

In den Experten\examples\DLLExample finden Sie, wie die Preise von metatrader zu C übergeben werden können (es ist nah genug, also können Sie dieses Beispiel direkt dafür verwenden), Die Kursinfostruktur hat sich nicht von Anfang an geändert und ist immer noch definiert als :

struct RateInfo

{

unsigned int ctm;

double open;

double low;

double high;

double close;

double vol;

};

Sie sollten also keine Probleme haben, sie an C# zu übergeben.

 

Danke!

Wo sind die Experten\Beispiele\DLLExample?

 
kfirmt:
Danke! Wo befindet sich das Experten\Beispiel\DLLExample?

In Ihrem Metatrader-Ordner (der Ordner, in dem Sie ihn installiert haben)

 
mladen:
In Ihrem Metatrader-Ordner (der Ordner, in dem Sie ihn installiert haben)

Ich habe 2 Metatrader heruntergeladen, und in den beiden von ihnen die Beispiele waren in C + +. Ich denke, ich könnte das verstehen, obwohl ich mit c# programmiere, aber ich konnte nicht finden, was ich brauche, wie man die Aktienkurse erhält.

 
kfirmt:
Ich habe 2 Metatrader heruntergeladen, und in den beiden von ihnen die Beispiele waren in C + +. Ich denke, ich könnte verstehen, obwohl ich mit c# programmieren, aber ich konnte nicht finden, was ich brauche, wie man die Aktienkurse zu bekommen.

Sie übergeben die Preise von einem Indikator oder einem EAs an Ihre DLL-Erweiterung

Sie haben ein komplettes Beispiel (MQL-Teil als auch C-Teil) in diesem Ordner, wie es getan wird. Sobald Sie Daten aus MQL-Teil in C # Teil ity erhalten ist nur eine Frage des Codes, was Sie gehen ot tun mit ihm

 
mladen:
Sie übergeben die Preise von einem Indikator oder einem EAs an Ihre DLL-Erweiterung Sie haben ein komplettes Beispiel (MQL-Teil sowie C-Teil) in diesem Ordner, wie es gemacht wird. Sobald Sie Daten aus MQL-Teil in C # Teil ity erhalten ist nur eine Frage des Codes, was Sie gehen ot tun mit ihm

Ich habe kein Beispiel in MQL oder C gefunden, nur in C++. Wie auch immer, es gab viele Funktionen und ich konnte nicht verstehen, welche die Funktion ist, die ich brauche, um den Preis zu erhalten. haben Sie ein solches Beispiel?

Vielen Dank.

 
kfirmt:
Ich habe kein Beispiel in MQL oder C gefunden, nur in C++. Wie auch immer, es gab eine Menge von Funktionen und ich konnte nicht verstehen, welche die Funktion ist, die ich brauche, um den Preis zu erhalten. haben Sie ein solches Beispiel?

Von der C-Seite (siehe den Kommentar):

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

MT4_EXPFUNC double __stdcall GetRatesItemValue(const RateInfo* rates,const int rates_total,const int shift,const int nrate)

{

//---

if(rates==NULL)

{

printf("GetRatesItemValue: NULL array\n");

return(0.0);

}

//---

if(rates_total<0)

{

printf("GetRatesItemValue: wrong rates_total number (%d)\n", rates_total);

return(0.0);

}

//---

if(shift=rates_total)

{

printf("GetRatesItemValue: wrong shift number (%d)\n", shift);

return(0.0);

}

//---

if(nrate5)

{

printf("GetRatesItemValue: wrong rate index (%d)\n", nrate);

return(0.0);

}

//

// here you are having prices, time and volume

//

int nitem=rates_total-1-shift;

switch(nrate)

{

case 0: return double(rates[nitem].ctm);

case 1: return rates[nitem].open;

case 2: return rates[nitem].low;

case 3: return rates[nitem].high;

case 4: return rates[nitem].close;

case 5: return rates[nitem].vol;

}

//---

return(0.0);

}

 
mladen:
Von C Seite (siehe den Kommentar) :
//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

MT4_EXPFUNC double __stdcall GetRatesItemValue(const RateInfo* rates,const int rates_total,const int shift,const int nrate)

{

//---

if(rates==NULL)

{

printf("GetRatesItemValue: NULL array\n");

return(0.0);

}

//---

if(rates_total<0)

{

printf("GetRatesItemValue: wrong rates_total number (%d)\n", rates_total);

return(0.0);

}

//---

if(shift=rates_total)

{

printf("GetRatesItemValue: wrong shift number (%d)\n", shift);

return(0.0);

}

//---

if(nrate5)

{

printf("GetRatesItemValue: wrong rate index (%d)\n", nrate);

return(0.0);

}

//

// here you are having prices, time and volume

//

int nitem=rates_total-1-shift;

switch(nrate)

{

case 0: return double(rates[nitem].ctm);

case 1: return rates[nitem].open;

case 2: return rates[nitem].low;

case 3: return rates[nitem].high;

case 4: return rates[nitem].close;

case 5: return rates[nitem].vol;

}

//---

return(0.0);

}

Danke!

haben Sie etwas in C #? weil es nicht wirklich etwas zu mir sagen.