[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 281

 
 
DDFedor >> :

no... nessun bisogno di freni... Durante la mia ricerca non ricordo di averne incontrato uno, così ho chiesto... loop, slittamenti e ritardi non sono la soluzione... Grazie!

A proposito, se il calcolo è lungo, si può visualizzare il passaggio su certe fasi del codice cambiando il colore dell'oggetto. Sarà bello, ma ci vogliono comunque risorse per la visualizzazione; le funzioni più lente sono il lavoro con i file e le funzioni con gli oggetti.

 
granit77 писал(а) >>
Testo lampeggiante.

Grande! >> grazie!

 

Qualcuno può mostrarmi un esempio di codice per leggere da un file *.csv a un array 1D/2D in MQL5?

Non ci sono stati problemi con la scrittura.

Grazie.

Sarebbe bello se l'esempio fosse con le classi.

 
joo >> :

Qualcuno può mostrarmi un esempio di codice per leggere da un file *.csv a un array 1D/2D in MQL5...?

>>: >>:::::::::::::::::::::::::::::::::::::.

Che "neofiti", dai :))) È ora di fare un thread separato per la "classe media".

 
Oh, amico, sta diventando pazzesco. :) -durante il lavoro con i prodotti beta. Prima di questo stavo lottando con gli array. Ho aggiornato - ha funzionato...
 

Per MQL4:

void start()
{
double m[]={1.1,2.2,3.3,4.4,5.5,6.6};//Массив источник
double m_[6]; //Массив приемник

ArrayInitialize(m_,0);

string str;
int handle;
//=======Запись в массив============
handle=FileOpen("p.csv", FILE_CSV|FILE_WRITE,";");
//Цикл записи строчек в файл
for(int i=0; i<6; i++)
{
str=DoubleToStr(m [i], 8);
FileWrite (handle,str);
}
FileClose(handle);
//==================================

//========Чтение из файла===========
FileOpen("p.csv",FILE_CSV|FILE_READ,";");
int cnt;
while(FileIsEnding(handle)!=true)
{
m_[cnt]=StrToDouble(FileReadString(handle));
cnt++;
}
FileClose(handle);
//==================================

//Посмотрим, что там записалось в массив?
for(i=0;i<6;i++)
{
Alert(m_[i]);
}
}

E per MQL5, a quanto pare, bisogna fare questo:

void OnStart()
{
double m[]={1.1,2.2,3.3,4.4,5.5,6.6};//Массив источник
double m_[6]; //Массив приемник

ArrayInitialize(m_,0);

string str;
int handle;
//=======Запись в массив============
handle=FileOpen("p.csv",FILE_CSV|FILE_WRITE,";");
//Цикл записи строчек в файл
for(int i=0;i<6;i++)
{
str=DoubleToString(m[i],8);
FileWrite(handle,str);
}
FileClose(handle);
//==================================

//========Чтение из файла===========
FileOpen("p.csv",FILE_CSV|FILE_READ,";");
for(int i=0;i<6;i++)
{
m_[i]=StringToDouble(FileReadString(handle));
}
FileClose(handle);
//==================================

//Посмотрим, что там записалось в массив?
for(int i=0;i<6;i++)
{
Alert(m_[i]);
}
}

Attenzione, domanda: "Perché?

 

Possiamo implementare questo algoritmo?
1. Cosa farebbe l'Expert Advisor se guardasse un altro timeframe e usasse per esempio una media mobile per filtrare i falsi segnali?
2. Cosa succede se voglio che il mio Expert Advisor tiri uno Stop Loss non al livello di break-even? Per esempio, se uno stop loss è inizialmente impostato a 50 pips, e quando raggiunge 30 pips, tirerei lo Stop Loss di 20 pips.

Grazie in anticipo!

 
Come semplificare il modello dall'articolo "Affidarsi al potere dei modelli" rimuovendo SL, TP, ordini pendenti e la loro modifica. Altrimenti è impossibile sperimentare.
 
shap писал(а) >>
Come semplificare un modello dall'articolo "Affidarsi al potere dei modelli", rimuovendo SL, TP, ordini in sospeso e la loro modifica. Altrimenti è impossibile sperimentare.

Per un modello corretto, la loro presenza (SL, TP) non è un ostacolo. E la modifica di solito non è un ostacolo. Potete disabilitarlo. Per essere più precisi non chiamate questa funzione.

Motivazione: