MetaTrader 4 Build 529 beta rilasciato con un nuovo compilatore - pagina 43

 
stringo:
È stato aggiustato. Grazie


Ahimè, è stato risolto, ma non tutto.

iVolume lo dimostra.


Resta da fissare il tipo di valore di ritorno nella documentazione.

Sperimentalmente si è rivelato lungo,

non datetime, come scritto, e non double, come prima.

Grazie per l'attenzione.

 
Sono solo io, o la versione beta è davvero più veloce (ho Win XP)?
 

Agli sviluppatori

LoStrategy Tester funziona o no?

Sto testando il MACD standard su EURUSD. Il conto di trading è lo stesso, i parametri sono gli stessi, il simbolo è lo stesso.

Su 509 gli scambi vengono eseguiti, ma su 538 no.

Se ne ho bisogno vi manderò i dettagli.

 
thecore:

Sperimentalmente si è scoperto che è lungo,

non datetime come scritto e non double come prima.

A proposito, questo tipo di dati non è descritto sul sito (nella documentazione) :)

Ed è più logico, secondo me, restituire ulong.

 

Tempo preciso a ms nel registro - figo!

Ma la cronologia dei punteggi non mostra nemmeno i secondi)

 
Il doppio clic dai preferiti porta alla modifica del codice
 
"File - Open remote" apre un qualche modello di sinistra (predefinito ma non predefinito).
 

Se si legge una riga da un file e poi si scrive la stessa riga, viene aggiunta un'interruzione di riga extra:

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

Appare dalla linea 2 in poi (la prima linea è OK). Nel 509 era ok.

Ho il sospetto che questo sia il problema:

FileWriteString

Scrive in un file di tipo BIN, CSV o TXT il valore di un parametro di tipo stringa dalla posizione corrente del puntatore del file. Quando si scrive in un file CSV o TXT, se c'è un carattere '\n' (LF) senza un precedente carattere '\r' (CR) nella stringa, il carattere '\r' mancante viene aggiunto prima del carattere '\n'.

Ma non sono sicuro che questo valga anche per FileWrite. Non so ancora cosa farci.

Devo scriverlo nel service-desk?

 
komposter:

Se si legge una riga da un file e poi si scrive la stessa riga, viene aggiunta un'interruzione di riga extra:

Appare dalla linea 2 in poi (la prima linea è OK). Nel 509 era ok.

Ho il sospetto che questo sia il problema:

Ma non sono sicuro che valga anche per FileWrite. Non sono ancora sicuro di cosa fare.

Devo scrivere al service-desk?

Si prega di scrivere con tutti i dettagli. Per non perdersi.
 
komposter:

Se si legge una riga da un file e poi si scrive la stessa riga, viene aggiunta un'interruzione di riga extra:

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