MetaTrader 4 Build 529 beta publié avec un nouveau compilateur - page 43

 
stringo:
Il a été réparé. Merci


Hélas, tout a été corrigé, mais pas tout.

C'est ce que montreiVolume.


Il reste à corriger le type de valeur de retour dans la documentation.

Expérimentalement, il s'est avéré être long,

et non pas date, comme écrit, et non pas double, comme auparavant.

Merci de votre attention.

 
C'est moi ou la version bêta est vraiment plus rapide (j'ai Win XP) ?
 

Aux développeurs

Letesteur de stratégie fonctionne-t-il ou non ?

Je teste le MACD standard sur EURUSD. Le compte de trading est le même, les paramètres sont les mêmes, le symbole est le même.

Sur 509, les transactions sont exécutées, mais sur 538, elles ne le sont pas.

Si j'en ai besoin, je vous enverrai les détails.

 
thecore:

Expérimentalement, il s'est avéré qu'elle est longue,

pas de date comme écrit et pas de double comme avant.

D'ailleurs, ce type de données n'est pas décrit sur le site (dans la documentation) :)

Et il est plus logique, à mon avis, de rendre ulong.

 

Temps précis à ms dans le journal - cool !

Mais l'historique des scores n'indique même pas les secondes).

 
Un double-clic à partir des favoris permet de modifier le code.
 
"Fichier - Ouvrir à distance" ouvre un modèle de gauche (par défaut mais pas par défaut).
 

Si vous lisez une ligne d'un fichier et que vous écrivez ensuite la même ligne, un saut de ligne supplémentaire est ajouté :

        string file_name = "test.txt";
        int handle  = FileOpen( file_name, FILE_TXT | FILE_READ | FILE_WRITE | FILE_ANSI | FILE_SHARE_READ ), _GetLastError = 0;
        if ( handle < 0 )
        {
                _GetLastError = GetLastError();
                if ( _GetLastError != 4103 ) Print( "FileOpen() - Error #", _GetLastError );
                return(false);
        }

        string temp_command;
        FileSeek( handle, 0, SEEK_SET );

        while ( !FileIsEnding( handle ) )
        {
                ulong command_start = FileTell( handle );
                temp_command = FileReadString( handle );
                if ( temp_command == "" ) continue;

                FileSeek( handle, command_start, SEEK_SET );
                FileWrite( handle, temp_command );
                break;
        }

        FileClose( handle );

Apparaît à partir de la ligne 2 (la première ligne est OK). En 509, c'était bien.

Je pense que c'est le problème :

FileWriteString

Écrit dans un fichier de type BIN, CSV ou TXT la valeur d'un paramètre de type chaîne de caractères à partir de la position actuelle du pointeur de fichier. Lors de l'écriture dans un fichier CSV ou TXT, si un caractère "\n" (LF) est présent dans la chaîne sans être précédé d'un caractère "\r" (CR), le caractère "\r" manquant est ajouté avant le caractère "\n".

Mais je ne suis pas sûr que cela s'applique également à FileWrite. Je ne sais toujours pas quoi en faire.

Dois-je le signaler au service d'assistance ?

 
komposter:

Si vous lisez une ligne d'un fichier et que vous écrivez ensuite la même ligne, un saut de ligne supplémentaire est ajouté :

Apparaît à partir de la ligne 2 (la première ligne est OK). En 509, c'était bien.

Je pense que c'est le problème :

Mais je ne suis pas sûr que cela s'applique également à FileWrite. Je ne sais toujours pas quoi faire à ce sujet.

Dois-je écrire au service d'assistance ?

Veuillez écrire avec tous les détails. Pour ne pas se perdre.
 
komposter:

Si vous lisez une ligne d'un fichier et que vous écrivez ensuite la même ligne, un saut de ligne supplémentaire est ajouté :

int handle  = FileOpen( file_name, FILE_TXT | FILE_READ | FILE_WRITE | FILE_ANSI | FILE_SHARE_READ )   ,   _GetLastError = 0;
;?