Crea la tua estensione MetaTrader (dll) - pagina 5

 

Vedo che sei un grande uomo d'affari?

Questo non è il forum dove si può vendere tale merda che hai.

Cosa hai modificato esattamente in DGC OZFX EA

firedoji:
Facile! Basta scaricare tutti gli e-book forex e guardare le istruzioni all'interno. Ho più di 200++ e-book da lì e anche alcuni EA... Tutti gli EA sono editati e modificati...

-----------------------------------------

Scarica tutti gli EA Scarica tutti gli indicatori Scarica l'e-book
 
prasxz:
è possibile rendere mt4 dll connesso al servizio web e fare uno script php per mostrare la posizione aperta di MT4 attraverso un sito web, così le persone senza MT4 possono vederla dal sito web in tempo reale?

Qualcuno ha postato un po' di tempo fa un esempio MQL / MySQL che ha funzionato benissimo, l'unico problema è che la maggior parte delle società di hosting non permette l'accesso remoto ai loro server di database. Tuttavia se tu avessi pieno accesso e controllo al tuo server potresti scrivere un EA che si connetta al tuo database e inserisca i dati per ogni nuovo ordine. Poi dal tuo sito web semplicemente connettersi al database e leggere i dati ... Secondo me questo sarebbe l'approccio migliore.

Ora una DLL MT4 può connettersi a uno script php ma non ho mai provato a passare le informazioni dall'EA al sito web, sono stato in grado di farlo con successo nell'altro modo ... Dovresti dare un'occhiata ai socket di Windows e a funzioni come HTTP_GET / HTTP_POST.

Patrick

 
Mistigri:
Non sono sicuro, quella libreria sembra familiare, la stai usando per connetterti a un sito web? Hai provato ad usare wininet.lib invece?

Non credo che il problema qui sia il file def o la tua dll non verrebbe nemmeno caricata e funzionerebbe correttamente... Se puoi fornire più informazioni (cioè qualche pezzo del codice che stai usando nella dll) allora forse posso provare ad aiutarti.

Patrick

Ciao Patrick!

Ho trovato la libreria e il codice sorgente qui:

https://www.mql5.com/en/forum/178272

Ho messo lì il mio post, ma l'amministratore lo ha spostato in questo thread...

Grazie!

 

Lettura di un file che si trova su internet

Salve,

Voglio che un EA legga un file che non si trova sulla macchina locale ma su Internet.

FileOpen funziona solo quando il file si trova nella directory di metatrader.

Ho provato con una DLL c# ma ho ottenuto il messaggio di errore "impossibile chiamare la funzione".

C'è una soluzione semplice per questo problema?

Grazie

 

Soluzione all'errore 127 - impossibile chiamare una funzione

Soluzione all'errore 127 - impossibile chiamare una funzione

Ok,

Finalmente sono tornato a dare un'occhiata a questo ieri sera. Il problema ha a che fare con l'associazione del file def sbagliato o del file nodef con la dll.

Ecco come risolvere il problema in Visual Studio 2008 Express -

1) Vai al progetto, proprietà - o alt-F7

2) Vai su Linker - doppio clic su di esso e ottieni un elenco a discesa

3) Seleziona Input

4) Cambia il Module Definition File in qualsiasi nome tu abbia dato al tuo file def

Assicurati che abbia il percorso e il nome completo del file - come .\MyDef.def

Nella versione 2008 Express, questo non viene generato automaticamente come nelle versioni professionali.

Questo è il principale colpevole. Ci possono essere altri problemi di linker/compiler che possono ancora causare un problema. Quello che devi fare è caricare il progetto di esempio ExportFunction che viene fornito con Metatrader4. Questo si trova nella cartella experts/DllSample. Ora andate a guardare le sue proprietà pagina per pagina, voce per voce, e ovunque ci sia scritto ExportSample, o ExpertSample, (o qualsiasi cosa usi in relazione alle sue convenzioni di denominazione) cambiate le vostre proprietà per farle corrispondere alle vostre convenzioni di denominazione. Sono andato avanti e l'ho fatto voce per voce, e poi ho controllato se ho ricevuto l'errore 127. Ho continuato a ricevere quell'errore finché il file di definizione del modulo corretto non è stato esplicitamente indicato come dipendenza. Non sto dicendo che non ci possono essere altre cose oltre a questo, perché ho cambiato tutto per abbinare l'esempio, ma una volta che il file di definizione era esplicito, questo ha risolto il problema.

Ricordate che la dll deve essere nella cartella lib. Devi avere un file mqh nella cartella include che importa esplicitamente la dll, ed elenca i nomi delle funzioni con parametri, tipi di ritorno, ecc. E poi nel vostro indicatore o esperto dovete includere il file header. Questo dovrebbe bastare.

CodersGuru e Mistigri hanno entrambi buoni esempi su come farlo, ma le versioni Express non professionali non aggiungono esplicitamente il file def come dipendenza, e questa è la radice del problema che hanno tutti noi che usiamo le versioni Express. (Almeno non lo aggiunge esplicitamente quando si seleziona il progetto particolare per fare che noi che abbiamo il problema, selezionato).

Vedi immagine allegata. Ricorda, probabilmente vuoi ancora assicurarti che i valori del tuo compilatore e linker corrispondano a quelli dell'esempio di exportfunction che viene fornito con Metatrader.

Saluti,

MG

File:
properties.jpg  75 kb
 
fedecosta:
Ciao Patrick!

Ho trovato la libreria e il codice sorgente qui:

https://www.mql5.com/en/forum/178272

Ho messo lì il mio post, ma l'amministratore lo ha spostato in questo thread...

Grazie!

Mi dispiace non ho ancora avuto la possibilità di guardarlo, sono stato occupato, ma non l'ho dimenticato e cercherò di tornare a voi su questo.

Peco07:

Voglio un EA per leggere un file, che non si trova sulla macchina locale ma su Internet.

Hai 2 opzioni, scrivere un'applicazione C# che si connetta al sito web, scrivere un file di dati sul tuo computer e leggerlo da MT4 o scrivere una dll C++ che si connetta al sito web e legga i dati ....

Se scegli la via C#, finora sembra molto più veloce della via DLL ... Se vuoi scrivere una DLL in c++ ecco un po' di codice per aiutarti ad iniziare.

MT4 DLL Web Connect | Mistigri

MG_1:

Il problema ha a che fare con l'associazione del file def sbagliato o nessun file def con la DLL.

Questo è il modo in cui si risolve in Visual Studio 2008 Express -

Grazie per le informazioni! Se non ti dispiace riprodurrò alcune parti dei tuoi post sul mio sito...

 
Mistigri:
Grazie per le informazioni! Se non ti dispiace riprodurrò alcune parti dei tuoi post sul mio sito...

Nessun problema, so che molte persone vanno lì per imparare, quindi si spera che aiuti gli utenti di Express e gli utenti di gnu, ecc.

-MG

 
fedecosta:
Ciao ragazzi!

Ho un problema nel cercare di usare questa libreria.

Li ho messi in metatrader\experts\library

Ho definito correttamente il percorso del file .def

... ma il mio EA stampa sul registro questo errore: -65495

Quale può essere il problema?

E, soprattutto, come risolverlo?

E' possibile che il file .def sia corrotto?

Grazie in anticipo...

Ciao Fedecosta,

Prova a copiare il file def direttamente sotto il tuo drive c:\... Questo sembra funzionare per me.

Nota che questo non ha nulla a che fare con la programmazione delle DLL, è specifico per questo EA...

Patrick

 
Mistigri:
Ciao Tim,

Quando si usa dev-c++ il file def viene generato automaticamente per voi, il problema è che vi ritrovate con nomi di funzioni che assomigliano a questo:

EXPORTS

_Z11GetSMAArrayP8RateInfoiiPd@16 @ 1

_Z12GetHighValueP8RateInfoii = _Z12GetHighValueP8RateInfoii@12 @ 2

_Z12GetHighValueP8RateInfoii@12 @ 3

_Z13GetCloseValueP8RateInfoii = _Z13GetCloseValueP8RateInfoii@12 @ 4

_Z13GetCloseValueP8RateInfoii@12 @ 5

_Z11GetSMAArrayP8RateInfoiiPd = _Z11GetSMAArrayP8RateInfoiiPd@16 @ 6[/PHP]

Now you need to make sure you add the following check around your code

[PHP]

#ifdef __cplusplus

extern "C" {

#endif

#ifdef __cplusplus

}

#endif

In allegato ci sono i file di esempio che ho fatto per VS2008 ma questa volta usando dev-c++ ...

Spero che questo aiuti

vuoi dire che quando scrivi il file dll,

la funzione nel file def dovrebbe aggiungere _z12 all'inizio?

Questo significa che nel file .mq4

chiamare la funzione: get_max_deviation

poi nel file .def

la funzione trasferita: _z12get_max_deviation??

cosa significa il numero @ dopo il nome della funzione

grazie

 
Mistigri:

In allegato ci sono i file di esempio che ho fatto per VS2008 ma questa volta usando dev-c++ ...

Spero che questo aiuti

File allegati

MistigriFX Sample Debug.mq4 (2.1 KB, 15 visualizzazioni)

MSFXDEV.zip (8.6 KB, 17 visualizzazioni)

Ho scaricato i vostri file e ho compilato il .cpp secondo l'immagine mostrata

ma verificano l'errore

il mio metodo di compilazione è sbagliato, come faccio a compilarlo in dll? (sono un principiante di c++ ^^)

File:
dev_dll.jpg  298 kb
Motivazione: