Ci sono sei maniglie di un indicatore su tre timeframe.
E la compensazione del valore da prendere è già stabilita. Ho copiato da loro un valore alla volta.
Mi sono confuso usando tre maniglie di un indicatore su tre timeframe e copiando il possibile intervallo di spostamento da esse.
Se avete bisogno di ottenere il valore di un indicatore da più di una barra alla volta, dovreste copiare i valori in un array. Usando iATR come esempio:
//+------------------------------------------------------------------+//| Get value of buffers for the iATR |//+------------------------------------------------------------------+double iATRGet(constint index)
{
double ATR[1];
//--- reset error code ResetLastError();
//--- fill a part of the iATR array with values from the indicator buffer that has 0 index if(CopyBuffer(handle_iATR,0,index,1,ATR)<0)
{
//--- if the copying fails, tell the error code PrintFormat("Failed to copy data from the iATR indicator, error code %d",GetLastError());
//--- quit with zero result - it means that the indicator is considered as not calculated return(0.0);
}
return(ATR[0]);
}
//+------------------------------------------------------------------+//| Get value of buffers for the iATR in the array |//+------------------------------------------------------------------+bool iATRGetArray(constint start_pos,constint count,double &arr_buffer[])
{
bool result=true;
if(!ArrayIsDynamic(arr_buffer))
{
Print("This a no dynamic array!");
return(false);
}
ArrayFree(arr_buffer);
int buffer_num=0; // indicator buffer number //--- reset error code ResetLastError();
//--- fill a part of the iATRBuffer array with values from the indicator buffer that has 0 index int copied=CopyBuffer(handle_iATR,buffer_num,start_pos,count,arr_buffer);
if(copied!=count)
{
//--- if the copying fails, tell the error code PrintFormat("Failed to copy data from the iATR indicator, error code %d",GetLastError());
//--- quit with zero result - it means that the indicator is considered as not calculated return(false);
}
//---return(result);
}
//--- Используя функцию CopyBuffer, мы копируем по 1 последних новых значения индикаторов в динамические массивыif(CopyBuffer(Handle_4P72_L0_1,0,0,200,line1_L0)<0// || CopyBuffer(Handle_4P72_L0_2,0,0,1,line2_L0)<0 || CopyBuffer(SMA_Handle_00,0,0,1,SMA_L0)<0
|| CopyBuffer(Handle_4P72_L1_1,0,0,200,line1_L1)<0// || CopyBuffer(Handle_4P72_L1_2,0,0,1,line2_L1)<0 || CopyBuffer(SMA_Handle_01,0,0,1,SMA_L1)<0
|| CopyBuffer(Handle_4P72_L2_1,0,0,200,line1_L2)<0// || CopyBuffer(Handle_4P72_L2_2,0,0,1,line2_L2)<0 || CopyBuffer(SMA_Handle_02,0,0,1,SMA_L2)<0
|| CopyTime(_Symbol,_Period,0,1,New_Time)<0)
Se siete pronti a fare robot per MT5, posso cominciare a darvi delle idee. Simulo le condizioni in TS-Lab, ma vorrei fare trading su MT5 in modalità automatica.
Se non ci sono problemi con il test, descriverò la logica di trading. Il primo sarà probabilmente questo.
Non appena ci sono"Secondi prima della chiusura della candela del segnale" secondi prima della chiusura della candela attuale, calcoliamo la dimensione media delle candele"Numero di candele per il calcolo della dimensione media della candela". Se la candela attuale supera la dimensione media di"Candela attuale: dimensione del corpo in eccesso, percentuali" - apriamo una posizione con il volume"Lotti" e piazziamo un ordine limite pendente con il volume"Lotti" *"Fattore di moltiplicazione" dal prezzo di apertura alla distanza di"Livello limite pendente: percentuale dell'altezza della candela attuale" in percentuale dell'altezza della candela del segnale.
È corretto?
Ho bisogno di tempo per ricordare cosa ho fatto lì :) Mi sta venendo il raffreddore a causa delle correnti d'aria. È allo stesso tempo arrabbiato e divertente: prendere la febbre in estate e prendere il raffreddore :)
Ci vuole tempo per ricordare cosa ho fatto :) E poi, come di proposito, ci sono degli spifferi e il risultato è un raffreddore. È divertente e arrabbiato allo stesso tempo: prendere la febbre e il raffreddore in estate :)
Copio solo su array dinamici! E prima di copiare, forzoArrayFree. C'erano problemi con gli array statici. Da allora, solo quelli dinamici.
Oh, andiamo... Non ho problemi nemmeno con quelli statici. Dipende da cosa stiamo parlando, però. Negli indici, sì, quelli dinamici sono meglio, se non c'è il desiderio di gestire il buffer e catturare gli errori. Ma nei gufi non c'è differenza, infatti.
Ci sono sei maniglie di un indicatore su tre timeframe.
E la compensazione del valore da prendere è già stabilita. Ho copiato da loro un valore alla volta.
Mi sono confuso usando tre maniglie di un indicatore su tre timeframe e copiando il possibile intervallo di spostamento da esse.
Se avete bisogno di ottenere il valore di un indicatore da più di una barra alla volta, dovreste copiare i valori in un array. Usando iATR come esempio:
Se volete ricevere il valore di un indicatore da più di una barra alla volta, dovete copiare i valori in un array. Usando iATR come esempio:
Sì, sembra che sia stato un errore lasciare gli array che ho copiato come dinamici. :(
Controlleremo.
Sì, sembra che sia stato un errore lasciare gli array che ho copiato come dinamici. :(
Controllerò.
Copio solo su array dinamici! E, prima di copiare, forzoArrayFree. Ho avuto problemi con gli array statici. Da allora, solo quelli dinamici.
Copio solo su array dinamici! E prima di copiare, forzoArrayFree. C'erano problemi con gli array statici. Da allora, solo quelli dinamici.
Capito. L'errore non è qui.
Ecco l'Expert Advisor che non è andato.
Capito. L'errore non è qui.
Ecco l'esperto che non è andato.
ERRORE: stai copiando UN valore o DUE?
ERROR: stai copiando UN valore o DUE valori?
In questo EA (è diverso nella data) ho provato tre handel e duecento valori.
Se siete pronti a fare robot per MT5, posso cominciare a darvi delle idee. Simulo le condizioni in TS-Lab, ma vorrei fare trading su MT5 in modalità automatica.
Se non ci sono problemi con il test, descriverò la logica di trading. Il primo sarà probabilmente questo.
#55
Inizierò con piccole porzioni.
Non appena ci sono"Secondi prima della chiusura della candela del segnale" secondi prima della chiusura della candela attuale, calcoliamo la dimensione media delle candele"Numero di candele per il calcolo della dimensione media della candela". Se la candela attuale supera la dimensione media di"Candela attuale: dimensione del corpo in eccesso, percentuali" - apriamo una posizione con il volume"Lotti" e piazziamo un ordine limite pendente con il volume"Lotti" *"Fattore di moltiplicazione" dal prezzo di apertura alla distanza di"Livello limite pendente: percentuale dell'altezza della candela attuale" in percentuale dell'altezza della candela del segnale.
È corretto?
Ho bisogno di tempo per ricordare cosa ho fatto lì :) Mi sta venendo il raffreddore a causa delle correnti d'aria. È allo stesso tempo arrabbiato e divertente: prendere la febbre in estate e prendere il raffreddore :)
Ci vuole tempo per ricordare cosa ho fatto :) E poi, come di proposito, ci sono degli spifferi e il risultato è un raffreddore. È divertente e arrabbiato allo stesso tempo: prendere la febbre e il raffreddore in estate :)
Sentirsi meglio.
Copio solo su array dinamici! E prima di copiare, forzoArrayFree. C'erano problemi con gli array statici. Da allora, solo quelli dinamici.
Oh, andiamo... Non ho problemi nemmeno con quelli statici. Dipende da cosa stiamo parlando, però. Negli indici, sì, quelli dinamici sono meglio, se non c'è il desiderio di gestire il buffer e catturare gli errori. Ma nei gufi non c'è differenza, infatti.