Aide au codage - page 547

 
popej30:
Montrez-moi deux fichiers Mladen - le premier non décompilé - le second compilé. A mon avis, non décompilé, c'est ex4, compilé - mq4.

popey30

Merci pour l'effort de m'expliquer ce qu'est un fichier compilé et ce qu'est un fichier décompilé, mais le fichier :

le fichier ex4 est un fichier compilé

Le fichier que vous avez posté est un fichier décompilé - un processus au cours duquel le fichier ex4 est reconverti en fichier mt4 - généralement lorsqu'il y a une protection ou lorsque l'auteur ne veut pas poster le fichier de code source original et lorsque les gens pensent qu'ils vont gagner quelque chose en "déverrouillant les secrets" des fichiers ex4.

________________

Les fichiers de code source originaux (les fichiers mq4 aussi, mais de la manière dont l'auteur les a écrits, pas de la manière dont le décompilateur les a "reconstruits"), vous pouvez en trouver autant que vous voulez - par exemple, je n'ai jamais posté un seul fichier mq4 décompilé - tous les fichiers mq4 que j'ai postés sont des fichiers de code source originaux et vous êtes les bienvenus pour voir la différence entre ces fichiers et le fichier mq4 que vous avez posté.

________________

PS : Je l'ai dit plusieurs fois, mais je vais le répéter. La question n'est pas de savoir si je peux modifier le fichier mq4 décompilé ou non. Il s'agit d'un choix. Et j'ai choisi de ne pas faire aux autres ce que je n'aimerais pas qu'ils me fassent. Et c'est tout

tous mes vœux

 

Bonjour mladen

Savez-vous comment on peut stocker les prix DAX avec l'horodatage dans Excel ? J'ai essayé d'utiliser DDE sans succès. J'ai parcouru toutes les pages sur FF, ici et mql5 sans succès.

Voici le code vba que j'utilise dans Excel pour le DDE fourni par MT4.

Sub Workbook_Open()

DimwbAsWorkbookDimLinksAsVariantDimiAsLongSetwb=ThisWorkbook Links=wb.LinkSources(xlOLELinks)Fori=LBound(Links)ToUBound(Links)IfLeft$(Links(i),8)="MT4|ASK"Thenwb.SetLinkOnData Links(i),"MT4_OnUpdate"EndIfNextEnd Sub[/CODE]

and

Sub MT4_OnUpdate() ' DDE Updated TIME, copy dataDimwsAsWorksheetDimSourceAsRangeDimDestAsRangeSetws=Worksheets("DAX")WithwsSetSource=ws.Range("A2:E2")SetDest=.Cells(.Rows.Count,1).End(xlUp).Offset(1,0).Resize(1,Source.Columns.Count)EndWithDest.Value=Source.ValueEnd Sub

It won't update on ASK price and every time i open Excel the sheet wont update because the code "='MT4'|ASK!"DE30" changes to "='MT4'|ASK!_xlbgnm.DE30" automatically.

There is a code for MQL but it only stores price in a notepad. I need it live on excel so i can create charts and calculations.

[CODE]// EA code

int file_handle;string InpFileName = _Symbol + ".txt"; // File nameinput string InpDirectoryName = "Data"; // Folder name int OnInit(){ ResetLastError(); file_handle = FileOpen(InpDirectoryName + "//" + InpFileName, FILE_WRITE|FILE_TXT|FILE_ANSI); if(file_handle == INVALID_HANDLE) { PrintFormat("Failed to open %s file, Error code = %d", InpFileName, GetLastError()); ExpertRemove(); } return INIT_SUCCEEDED;} void OnTick(){ // Datetime, Bid, Volume string s = TimeToStr(TimeGMT()) + " " + Bid + " " + Volume[0]; FileWriteString(file_handle, s + "\r\n");} void OnDeinit(const int reason){ FileClose(file_handle); }

Je serais heureux si vous pouviez m'aider. Je suis coincé depuis 2 semaines à essayer de résoudre ce problème.

Merci d'avance

 
drammen:
Bonjour mladen

Savez-vous comment on peut stocker des prix DAX avec un horodatage dans Excel ? J'ai essayé d'utiliser DDE sans succès. J'ai parcouru toutes les pages sur FF, ici et mql5 sans succès.

Voici le code vba que j'utilise dans Excel pour le DDE fourni par MT4.

Sub Workbook_Open()

DimwbAsWorkbookDimLinksAsVariantDimiAsLongSetwb=ThisWorkbook Links=wb.LinkSources(xlOLELinks)Fori=LBound(Links)ToUBound(Links)IfLeft$(Links(i),8)="MT4|ASK"Thenwb.SetLinkOnData Links(i),"MT4_OnUpdate"EndIfNextEndSub[/CODE]

and

Sub MT4_OnUpdate() ' DDE Updated TIME, copy dataDimwsAsWorksheetDimSourceAsRangeDimDestAsRangeSetws=Worksheets("DAX")WithwsSetSource=ws.Range("A2:E2")SetDest=.Cells(.Rows.Count,1).End(xlUp).Offset(1,0).Resize(1,Source.Columns.Count)EndWithDest.Value=Source.ValueEndSub

It won't update on ASK price and every time i open Excel the sheet wont update because the code "='MT4'|ASK!"DE30" changes to "='MT4'|ASK!_xlbgnm.DE30" automatically.

There is a code for MQL but it only stores price in a notepad. I need it live on excel so i can create charts and calculations.

[CODE]// EA code

int file_handle;string InpFileName = _Symbol + ".txt"; // File nameinput string InpDirectoryName = "Data"; // Folder name int OnInit(){ ResetLastError(); file_handle = FileOpen(InpDirectoryName + "//" + InpFileName, FILE_WRITE|FILE_TXT|FILE_ANSI); if(file_handle == INVALID_HANDLE) { PrintFormat("Failed to open %s file, Error code = %d", InpFileName, GetLastError()); ExpertRemove(); } return INIT_SUCCEEDED;} void OnTick(){ // Datetime, Bid, Volume string s = TimeToStr(TimeGMT()) + " " + Bid + " " + Volume[0]; FileWriteString(file_handle, s + "\r\n");} void OnDeinit(const int reason){ FileClose(file_handle); }

Je serais heureux si vous pouviez m'aider. Je suis coincé depuis 2 semaines à essayer de résoudre ce problème.

Merci d'avance

drammen

Franchement je n'ai pas utilisé metatrader comme source de données dynamiques du côté d'excel donc je ne peux pas vous aider utilement dans cette affaire.

 

Bonjour mladen

Merci de m'avoir répondu

Je comprends. Merci quand même Vous ne connaîtriez pas par hasard d'autres solutions ?

 

Bonjour,

J'ai une petite question.

J'ai un indicateur qui vérifie certaines conditions dans le graphique auquel il est attaché. Je suis plusieurs instruments en ce moment, donc je dois ajouter le même indicateur à différents graphiques afin d'obtenir une alerte de tous les instruments. J'ai pensé à vérifier tous les instruments avec un indicateur qui est attaché à un graphique en utilisant une boucle for. A chaque nouvelle boucle, un instrument différent est vérifié pour les bonnes conditions. Cependant, que se passe-t-il lorsque le symbole/instrument auquel cet indicateur tout-en-un est attaché ne donne pas de tick, ou donne des ticks beaucoup moins souvent que les autres instruments qui sont vérifiés avec la boucle. Est-ce que je pourrais théoriquement manquer des alertes ? Que se passe-t-il lorsque les ticks arrivent si vite que l'indicateur n'a pas fini de parcourir toutes les boucles avant que le prochain tick n'arrive ?

Cordialement,

 
drammen:
Salut mladen

Merci de m'avoir répondu

drammen

Je comprends. Merci quand même Vous ne connaîtriez pas par hasard d'autres solutions ?

drammen

Désolé, mais il y a si longtemps que j'ai codé des trucs en utilisant VBA qu'on peut dire que c'est parti avec le vent ce que j'en savais alors

 
mrcodix:
Bonjour,

J'ai une petite question.

J'ai un indicateur qui vérifie certaines conditions dans le graphique auquel il est attaché. Je suis plusieurs instruments en ce moment, donc je dois ajouter le même indicateur à différents graphiques afin d'obtenir une alerte de tous les instruments. J'ai pensé à vérifier tous les instruments avec un indicateur qui est attaché à un graphique en utilisant une boucle for. A chaque nouvelle boucle, un instrument différent est vérifié pour les bonnes conditions. Cependant, que se passe-t-il lorsque le symbole/instrument auquel cet indicateur tout-en-un est attaché ne donne pas de tick, ou donne des ticks beaucoup moins souvent que les autres instruments qui sont vérifiés avec la boucle. Est-ce que je pourrais théoriquement manquer des alertes ? Que se passe-t-il lorsque les ticks arrivent si vite que l'indicateur n'a pas fini de parcourir toutes les boucles avant que le tick suivant n'arrive ?

Cordialement,

mrcodix

Dans le nouveau metatrader 4, vous avez une fonction de minuterie qui ne dépend pas des ticks (ni du graphique actuel, ni d'un autre graphique). Vous pouvez donc l'utiliser pour avoir une réponse raisonnablement rapide pour toute liste d'instruments, même s'ils ne reçoivent jamais de ticks.

 

Bonjour mladen et mr.tools et tout le monde.... j'ai besoin de votre aide....ı avez vous un indicateur lignes de tendance..mais ı ai besoin d'une version histogramme...s'il vous plait faites le histo......merci beaucoup tout le monde....

Dossiers :
trend.mq4  2 kb
trend.ex4  9 kb
 
mladen:
mrcodix Dans le nouveau metatrader 4 vous avez une fonction timer qui ne dépend pas des ticks (ni du graphique actuel ni d'un autre graphique). Vous pouvez donc l'utiliser pour avoir une réponse raisonnablement rapide pour n'importe quelle liste d'instruments, même s'ils ne reçoivent jamais de ticks.

wow thx allot mladen !

 
mrcodix:
wow thx tout mladen !

Heureux d'avoir pu aider

Bon échange