Discussione sull’articolo "L'Istogramma dei Prezzi (Market Profile) e la sua implementazione in MQL5" - pagina 10

 
Salve, qualcuno sa come modificare il codice 'ClassExpert' per costruire un profilo di mercato settimanale o mensile? Chiedo aiuto
 
Salve, non riesco a trovare i file allegati! Solo il prezzo-istogramma.
 
Thiago Duarte:

Rimuovete il comando "Delete()" e funzionerà.

Infatti, la funzione delete è stata dichiarata senza un tipo; impostandola a "void" tornerà a funzionare correttamente.
 

Ciao ragazzi, mi è piaciuto molto questo indicatore, ho studiato il profilo di mercato per un po' e questo è il migliore che ho trovato.


Ho appena apportato una modifica al metodo di calcolo del profilo, ho usato il tick del volume invece di verificare solo se il prezzo è passato nel punto. Ho fatto questo perché se vedete, gli scambi e i tempi diversi hanno libbre diverse, si può vedere nell'istogramma del volume. Quindi non possiamo contare solo se il prezzo è lì aggiungere uno.


Siete d'accordo?


La modifica che ho apportato ha mostrato le differenze tra i due metodi

 
Ciao Qualcuno sa se è possibile fare un robot che tradisce solo in queste righe del POC? Se sì, come posso fare? Perché sto testando tutte le variabili nel file ClassPriceHistogram e i valori sono tutti a zero, qualcuno può aiutarmi?
 
Ciao Luiz@Luiz Vinicius Pereira Rocha - allora amico, sono nuovo nella programmazione, e stavo lavorando su un EA che traccia solo i POC, le valutazioni alte e basse, e ho finito per trovare questo indicatore. Tuttavia, non sono riuscito a trovare il luogo in cui memorizza i punti Poc, quando uso la funzione di stampa su alcune variabili dell'autore come: Poc_value, appaiono valori zero. puoi aiutarmi?
 

Ciao Dmitry,

prima di tutto: Grazie per il tuo grande articolo e lavoro!

Anche se è passato molto tempo da quando l'hai pubblicato, funziona bene.

Quello che ho qui per te e per la comunità è un aggiornamento, in modo che l'istogramma utilizzi il tickvolume, perché utilizzare solo l'azione del prezzo in aree temporali, dove il volume è quasi nullo, non aiuta molto.

Sostituire il codice corrispondente nel file ClassPriceHistogram.mqh


bool CPriceHistogram::calculationPOCs()
  {
   int rates_total,rates_high,rates_time,rates_tv,index;
   double iHigh[],iLow[];
   long iTV[];
   datetime iTime[];
// Ïîëó÷àåì äàííûå çà ïåðèîä ñ time_start äî time_end / Otteniamo i dati da time_start a time_end
   int err=0;
   do
     {
      rates_time=CopyTime(NULL,PERIOD_M1,time_start,time_end,iTime);
      rates_high=CopyHigh(NULL,PERIOD_M1,time_start,time_end,iHigh);
      rates_total=CopyLow(NULL,PERIOD_M1,time_start,time_end,iLow);
      
      rates_tv=CopyTickVolume(NULL,PERIOD_M1,time_start,time_end,iTV);
      
      err++;
     }
   while((rates_time<=0 || (rates_total!=rates_high || rates_total!=rates_time || rates_tv!=rates_time)) && err<AMOUNT_OF_ATTEMPTS);
   if(err>=AMOUNT_OF_ATTEMPTS)
     {
      return(false);
     }
   poc_start_time=iTime[0];
   high_day=iHigh[ArrayMaximum(iHigh,0,rates_total)];
   low_day=iLow[ArrayMinimum(iLow,0,rates_total)];
   int count=int((high_day-low_day)/_Point)+1;
// Ïîäñ÷åò äëèòåëüíîñòè íàõîæäåíèÿ öåíû íà êàæäîì óðîâíå / Conteggio della durata di una rilevazione del prezzo ad ogni livello
   int ThicknessOfLevel[];    // ñîçäàåì ìàññèâ äëÿ ïîäñ÷åòà òèêîâ / creiamo un array per il conteggio dei tic
   ArrayResize(ThicknessOfLevel,count);
   ArrayInitialize(ThicknessOfLevel,0);
   for(int i=0;i<rates_total;i++)
     {
      double C=iLow[i];
      long CTV=iTV[i];
      // Distribuire il tickvolume della barra dei minuti su tutti i punti possibili della barra.
      // Quindi l'incremento per punto sarà questo ...
      int CInc=int(((iHigh[i]-iLow[i])/_Point));  
      while(C<iHigh[i])
        {
         int Index=int((C-low_day)/_Point);
         ThicknessOfLevel[Index]+=CInc;
         C+=_Point;
        }
     }


Ammetto che si tratta di un hack veloce e che non ho testato tutti i pezzi di codice, ma finora funziona bene.

Ecco un esempio con l'indice SP500:


Lato sinistro codice originale. Lato destro con tickvolume

 

Caro Dmitry

Spero che tu stia bene.

Sarebbe possibile implementare dei buffer per le linee?

Per ogni POC, magari un Vwap e una Mediana?


Grazie mille in anticipo

 
Solo un'avvertenza... Ho scaricato tutti i file nelle rispettive directory, ho compilato e ho ricevuto un errore relativo a ClassPriceHistogram.mqh. Alla riga 375, ho semplicemente sostituito
CPriceHistogram::Delete()

con

void CPriceHistogram::Delete()

Ora funziona bene nella versione 5.00 Build 3661 di MT5 di AMP Futures.

@Oleksandr, questo "indicatore" è tecnicamente un Expert. I buffer degli indicatori non sono disponibili negli Expert. I buffer possono essere ricreati efficacemente utilizzando gli array negli Expert, ma solo i buffer degli indicatori veri e propri possono essere richiamati da iCustom, quindi a tale scopo è necessario codificare da zero un nuovo indicatore personalizzato. Purtroppo entrambe le opzioni sono al di là delle mie capacità di codifica. Vi auguro di trovare un aiuto migliore.

 
c'è un modo per tracciare l'attuale seeion?


GRAZIE