Quindi, fate finta di essere un idiota e provate a passare l'algoritmo dal punto di vista di un idiota e con i parametri fissati da un idiota. È da questo punto di vista che l'autovalidatore si adatta. Fate attenzione al "feedback". L'Expert Advisor vi informa degli errori?
Ho finalmente capito, forse qualcuno può aiutare, in generale, il Soviet ha solo quando la MM è stato controllato per un lotto minimo, e così hardcore set lot = 0,01, bene, nel deposito validatore risulta essere $ 1 (trovato questa informazione in uno dei topic), rispettivamente, utilizza il lotto 0,001 (o giù di lì) per il commercio e perché ho sempre avuto in un posto era lotto 0,01, rispettivamente, gli mancava il mezzo e il robot non commercia)
Ho finalmente capito, forse qualcuno aiuterà, in generale, la scheda solo quando la MM è stata controllata per un lotto minimo, e così hardcore set lot = 0.01, bene, nel deposito validatore risulta essere $ 1 (trovato questa informazione in uno dei topic), rispettivamente, utilizza il lotto 0.001 (o così) per il commercio e perché ho sempre avuto in un posto un lotto di 0.01, rispettivamente, mancava i fondi e il robot non commercia)
Vorrei riproporre l'argomento. La sua risposta non mi aiuta. Ho un calcolo del volume e se tutto non ci sta, si usa il volume minimo:
SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN)
Alla fine, metti subito il volume minimo senza fare calcoli. Poi arriva il controllo dei margini... e nessuna operazione commerciale.
Ieri mi sono imbattuto in una risposta del forum che diceva che a volte uno stesso codice può essere inviato dopo un po' di tempo e passerà. Il tempo è passato, non viene inviato.
Cosa fare, 2 settimane fa questa funzione di rilevamento del volume è passata e da allora non è cambiata in nessun modo!!!
Vorrei riproporre l'argomento. La sua risposta non mi aiuta. Ho un calcolo del volume, e se tutto non ci sta, allora si usa il volume minimo:
Alla fine, metti subito il volume minimo senza alcun calcolo. Poi arriva il controllo dei margini... e nessuna operazione commerciale.
Ieri mi sono imbattuto in una risposta del forum che diceva che a volte uno stesso codice può essere inviato dopo un po' di tempo e passerà. Il tempo è passato, non manda.
Cosa fare, 2 settimane fa questa funzione di rilevamento del volume è passata, e da allora non è cambiata in nessun modo!!!
Sarò un veterano. Con una tale valutazione, numeri sotto l'avatar, e avendo un problema non hai in qualche modo visto il topic dove se ne parlava. Ed è qui che è stata trovata la soluzione.
Sarò un veterano. Con una tale valutazione, numeri sotto l'avatar, e avendo un problema non hai in qualche modo visto il topic dove se ne parlava. Ed ecco che avete trovato una soluzione.
Tra i popoli della Russia c'è chi prega gli dei pagani e chi risponde
Nota - questo commento è probabilmente più per me stesso la prossima volta che cerco l'errore "non ci sono operazioni commerciali". Usato ForceStop in luoghi dubbi. Inoltre sarà visualizzato nel rapporto come una divisione con zero e la posizione esatta di questo errore. Esempio nel mio caso:
//+------------------------------------------------------------------+//| Проверяет объем ордера на корректность |//+------------------------------------------------------------------+int ForceStop=0;
int sstop=0;bool CheckVolumeValue(double volume,string &description)
{
//--- минимально допустимый объем для торговых операцийdouble min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
if(volume<min_volume)
{
description=StringFormat("Volume is less than the minimum allowable SYMBOL_VOLUME_MIN=%.2f",min_volume);
sstop=5/ForceStop; // force stop, zerro dividereturn(false);
}
//--- максимально допустимый объем для торговых операцийdouble max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
if(volume>max_volume)
{
description=StringFormat("Volume is greater than the maximum allowable SYMBOL_VOLUME_MAX=%.2f",max_volume);
sstop=5/ForceStop; // force stop, zerro dividereturn(false);
}
//--- получим минимальную градацию объемаdouble volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);
int ratio=(int)MathRound(volume/volume_step);
if(MathAbs(ratio*volume_step-volume)>0.0000001)
{
description=StringFormat("The volume is not a multiple of the minimum gradation SYMBOL_VOLUME_STEP=%.2f, Closest correct volume %.2f",
volume_step,ratio*volume_step);
sstop=5/ForceStop; // force stop, zerro dividereturn(false);
}
description="Correct value of volume";
return(true);
}
Non è perché l'ho ricompilato, è perché il test è partito da una data diversa. E ho notato un tale bug, se si infila qualcosa che è già stato, allora il test non avviene, e dà immediatamente il risultato del test precedente. Quindi, non fatevi ingannare da queste stampelle. Cerca di renderlo normale. Se manca qualcosa o i parametri non sono validi, segnalalo tramite Print e tutto sarà corretto.
Il computer è un idiota. © M.M. Botvinnik.
Quindi, fate finta di essere un idiota e provate a passare l'algoritmo dal punto di vista di un idiota e con i parametri fissati da un idiota. È da questo punto di vista che l'autovalidatore si adatta. Fate attenzione al "feedback". L'Expert Advisor vi informa degli errori?
Ho finalmente capito, forse qualcuno può aiutare, in generale, il Soviet ha solo quando la MM è stato controllato per un lotto minimo, e così hardcore set lot = 0,01, bene, nel deposito validatore risulta essere $ 1 (trovato questa informazione in uno dei topic), rispettivamente, utilizza il lotto 0,001 (o giù di lì) per il commercio e perché ho sempre avuto in un posto era lotto 0,01, rispettivamente, gli mancava il mezzo e il robot non commercia)
Ho finalmente capito, forse qualcuno aiuterà, in generale, la scheda solo quando la MM è stata controllata per un lotto minimo, e così hardcore set lot = 0.01, bene, nel deposito validatore risulta essere $ 1 (trovato questa informazione in uno dei topic), rispettivamente, utilizza il lotto 0.001 (o così) per il commercio e perché ho sempre avuto in un posto un lotto di 0.01, rispettivamente, mancava i fondi e il robot non commercia)
Vorrei riproporre l'argomento. La sua risposta non mi aiuta. Ho un calcolo del volume e se tutto non ci sta, si usa il volume minimo:
Alla fine, metti subito il volume minimo senza fare calcoli. Poi arriva il controllo dei margini... e nessuna operazione commerciale.
Ieri mi sono imbattuto in una risposta del forum che diceva che a volte uno stesso codice può essere inviato dopo un po' di tempo e passerà. Il tempo è passato, non viene inviato.
Cosa fare, 2 settimane fa questa funzione di rilevamento del volume è passata e da allora non è cambiata in nessun modo!!!
Vorrei riproporre l'argomento. La sua risposta non mi aiuta. Ho un calcolo del volume, e se tutto non ci sta, allora si usa il volume minimo:
Alla fine, metti subito il volume minimo senza alcun calcolo. Poi arriva il controllo dei margini... e nessuna operazione commerciale.
Ieri mi sono imbattuto in una risposta del forum che diceva che a volte uno stesso codice può essere inviato dopo un po' di tempo e passerà. Il tempo è passato, non manda.
Cosa fare, 2 settimane fa questa funzione di rilevamento del volume è passata, e da allora non è cambiata in nessun modo!!!
Sarò un veterano. Con una tale valutazione, numeri sotto l'avatar, e avendo un problema non hai in qualche modo visto il topic dove se ne parlava. Ed è qui che è stata trovata la soluzione.
Sarò un veterano. Con una tale valutazione, numeri sotto l'avatar, e avendo un problema non hai in qualche modo visto il topic dove se ne parlava. Ed ecco che avete trovato una soluzione.
Tra i popoli della Russia ci sono quelli che pregano gli dei pagani e quelli che rispondono
Ho risposto, ma non sono un dio pagano. Penso che questa sia una soluzione temporanea al problema, speriamo che venga risolto presto.
Usato ForceStop in luoghi dubbi. Inoltre sarà visualizzato nel rapporto come una divisione con zero e la posizione esatta di questo errore.
Esempio nel mio caso:
Fratello, mi ha aiutato a spostare tutte le variabili nell'intestazione del codice.
void OnDeinit
}
E nell'init ResetLastError();
Non so cosa abbia funzionato, ma qualcosa del genere
Mi aiuta a cambiare (modificare) semplicemente qualche riga del codice.
O semplicemente aggiungere linee vuote e ricompilare di nuovo.
Penso che sia una specie di bug sul server.
O semplicemente aggiungere linee vuote e ricompilare di nuovo.
Confermato, a volte basta ricompilare e funziona.
Confermato, a volte basta ricompilare e passa.
Non è perché l'ho ricompilato, è perché il test è partito da una data diversa. E ho notato un tale bug, se si infila qualcosa che è già stato, allora il test non avviene, e dà immediatamente il risultato del test precedente. Quindi, non fatevi ingannare da queste stampelle. Cerca di renderlo normale. Se manca qualcosa o i parametri non sono validi, segnalalo tramite Print e tutto sarà corretto.