Errori, bug, domande - pagina 940

 

Buon pomeriggio.

Potete dirmi cosa si può fare ...

Invece di C:\Program files\MT 5 ......... tuttova in C:\Users\Iam\AppData\Roaming\MetaQuotes\Terminal\...

Disinstallato e installato MT 5 diverse volte - stesso risultato. Tutto questo è successo dopo l'installazione di Windows 8.

Saluti, E.Kovalev

 
erkov:

Buon pomeriggio.

Potete dirmi cosa si può fare ...

Invece di C:\Program files\MT 5 ......... tuttova in C:\Users\Iam\AppData\Roaming\MetaQuotes\Terminal\...

Disinstallato e installato MT 5 diverse volte - stesso risultato. Tutto questo è successo dopo l'installazione di Windows 8.

Cordialmente, E. Kovalev

Ho lo stesso sul mio desktop 7 e tutti gli Expert Advisors, le induzioni, ecc. sono installati su di esso.

Apparentemente è un "default".

Vorrei anche cambiarlo? Non è conveniente arrivare alla cartella....

 
Violazione di accesso scrivere a 0x000000001535C1D8


questo è ciò che lo script dà, lo script chiama lo stesso indicatore in un ciclo, solo i parametri cambiano, dopo circa 300 chiamate questo messaggio

all'inizio del ciclo, creo un handle

chiamare l'indicatore

alla fine di ogni ciclo mettere IndicatorRelease(...);

forse qualcos'altro ha bisogno di rimuovere l'indicatore

 
vgeny:

Ho lo stesso sul mio 7, tutti gli EA, le induzioni, ecc. sono messi lì

questo deve essere il "default".

Vorrei anche cambiarlo? Non è conveniente arrivare alla cartella....

Guardate nella guida integrata del terminale - MetaTrader 5 HelpStart Menu → Run Terminal:

Modalità ospite

La distinzione del modo ospite del lancio del terminale client è la localizzazione dei suoi file modificabili separatamente dai file immutabili. Questa modalità è attivata quando il terminale è installato nella cartella di sistema (cartella OS, Program Files) e i diritti dell'utente di scrivere in essa sono limitati.

La modalità ospite è abilitata anche nelle seguenti situazioni:

  • Se UAC (User Account Control) è abilitato.
  • Se ci si connette a un computer in remoto (Remote Desktop Protocol, RDP).

Nelle situazioni di cui sopra, tutti i file modificabili del terminale, a seconda del sistema operativo utilizzato, sono memorizzati nelle seguenti directory:

Microsoft Windows XP:

  • C:\Documents and Settings\username\Application Data\MetaQuotes\Terminal\instance_id

Microsoft Windows Vista e successivi:

  • C:\Users\username\Application Data\Roaming\MetaQuotes\Terminal\instance_id

Qui "C" è la lettera di un'unità logica dove il sistema operativo è installato, "username" è il nome dell'account nel sistema operativo, sotto il quale il terminale è stato installato, e "instance_id" è un identificatore unico generato in base al percorso di una directory, dove il terminale è installato.

Per accedere rapidamente a queste cartelle, il terminale fornisce un comando speciale - "Aprire la directory dei dati Open data directory" situato nel menu "File".

  • In modalità ospite ogni account di Windows avrà una directory diversa per memorizzare i file del terminale modificati.
  • Per forzare il terminale ad avviarsi in modalità principale, avviatelo dalla linea di comando con lo switch /portable.
  • La descrizione dettagliata della struttura dei file del terminale client e i loro scopi sono dati nella sezione corrispondente.

Se non vuoi avere problemi con il sistema di sicurezza, non installare il terminale nella cartella/Program Files/ .

Leggi anche l'articolo Una rapida immersione in MQL5


 
vgeny: prima della stampa

k2 = NormalizeDouble(k2, 2);

Nel diario di bordo va così

0.07000000000000001

e solo quando il coefficiente è 0,07

tipo k2 doppio k2;

cosa può essere?

A quanto pare, questo è esattamente come appare questo numero dopo la normalizzazione. Guardate nel riferimento alla nota che descrive la funzione NormalizeDouble(): cosa stamperà la linea seguente?

Print("DoubleToString(a,8)=",DoubleToString(a,8)); // выведем с заданной точностью

Документация по MQL5: Преобразование данных / NormalizeDouble
Документация по MQL5: Преобразование данных / NormalizeDouble
  • www.mql5.com
Преобразование данных / NormalizeDouble - Документация по MQL5
 
vgeny: Violazione di accesso scrivere a 0x000000001535C1D8

questo è ciò che lo script dà, lo script chiama lo stesso indicatore in un ciclo, solo i parametri cambiano, dopo circa 300 chiamate questo messaggio

Formo la maniglia all'inizio del ciclo, chiamo l'indicatore, metto IndicatorRelease(...) alla fine di ogni ciclo;

forse qualcos'altro ha bisogno di rimuovere l'indicatore

Chiamata continua dell'indicatore in un ciclo? È un modo molto difficile. Qui, trovate l'inizio e leggete attentamente tutto l'argomento: Infatti, nel 99% dei casi la chiamata IndicatorRelease è un errore logico del programmatore
 
vgeny:

Si prega di consigliare perché questo accade alla linea di loop

for(k2 = 0.01; k2 < 0.1; k2 += 0.01)

Mando in stampa il coefficiente k2

Stampa(k2);

prima della stampa

k2 = NormalizeDouble(k2, 2);

si presenta così nel diario

0.07000000000000001

e solo quando il coefficiente è 0,07

tipo k2 doppio k2;

cosa può essere?

Questa domanda è già stata discussa molte volte.

Leggete qui.

 
Yedelkin:
Chiamare continuamente l'indicatore in un ciclo? È un modo molto difficile di farlo. Qui, trovate l'inizio e leggete attentamente tutto l'argomento: Infatti, nel 99% dei casi, la chiamata IndicatorRelease è un errore logico del programmatore

ok 900 pagine))

Consigliare un altro modo di ispezionare la linea dell'indicatore, 10000 varianti diverse del parametro dell'indicatore, il risultato di ognuna che ispeziono per la diffusione ecc, salvare il risultato, prendere il prossimo parametro ecc.

per esempio se si considera il MA, 10000 periodi come lo si implementa?

 
alexvd:

La questione è già stata discussa molte volte.

Leggete qui.

OK, grazie per la vostra pazienza e comprensione)))))))
 

vgeny:

Yedelkin:
Chiamata continua dell'indicatore in un ciclo? È un modo molto difficile. Qui, trovate l'inizio e leggete attentamente tutto l'argomento: Infatti, nel 99% dei casi, la chiamata IndicatorRelease è un errore logico del programmatore

ok 900 pagine))

No, non 900 pagine. L'argomento sull'uso inefficiente di IndicatorRelease() difficilmente otterrà più di 10 pagine nelle vicinanze di questo link. Ecco perché ti ho consigliato di "trovare l'inizio" del soggetto. Non c'è bisogno di rileggere il ramo generale "Errori, bug, domande" per questo.

vgeny : ti consiglierò un altro modo di ispezionare la linea dell'indicatore, ispezionerò il risultato di ogni parametro, salverò il risultato e prenderò il prossimo, ecc.

Cioè avete bisogno di 10 mila indicatori per l'analisi (10 mila versioni di un indicatore con parametri diversi)? Penso che la risposta a questa domanda sia già stata data - prova a cercare nelle discussioni del forum con la parola chiave IndicatorRelease.

vgeny : per esempio se tu stessi considerando MA, 10000 periodi come lo implementeresti?

È difficile rispondere quando non si capisce il significato dell'uso di un numero così grande di periodi/parametri. Ma teoricamente, rinuncerei all'idea di usare 10 mila indicatori standard (10 mila versioni di un indicatore standard con parametri diversi) e scriverei un mio indicatore (uno) che ricalcola 10 mila valori su ogni tick e altri parametri derivati. E riduce al minimo il numero di buffer degli indicatori - hai bisogno dei dati calcolati, non del loro riflesso sul grafico. E bisogna controllare se un tale ibrido fa tutti i calcoli in un tick. O in un minuto, se la tua analisi permette di fare un ricalcolo minuto per minuto invece che tick per tick.

Ecco un semplice esempio: le Bande di Bollinger. Puoi usare tre indicatori separati - per la linea centrale, superiore e inferiore. Oppure potete combinarli tutti elegantemente in un programma indicatore.