Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 903

 
Alexandr Sokolov:

Ho un codice che non viene eseguito in MQL5 nel mio indicatore

Il punto è che seprezzo == STO_LOWHIGH tutto funziona correttamente, ma se prezzo == STO_CLOSECLOSE la funzione assegna solo alle variabili statiche

... bypassare il ciclo

ma questa stessa funzione funziona correttamente in MQL4

 
Alexandr Sokolov:

ma la stessa funzione funziona correttamente in MQL4

Allora dobbiamo chiarire quali sono gli array High[] Close[]

Se sono di mql4, non sono disponibili in mql5, se sono personalizzati... Non posso dare suggerimenti.

 
Alexandr Sokolov:

Voglio ottenere i soliti maxHigh e minLow stocastici entro un periodo K da Low/High e Close/Close

Low/High durante l'inizializzazione funziona bene, ma Close/Close no

È più facile trovare fmax() o fmin() dall'array ottenuto da CopyBuffer()

 
Alexey Viktorov:

Allora dobbiamo chiarire cosa sono gli array High[] Close[]

Se sono di mql4, non sono disponibili in mql5, se sono personalizzati... Non posso fare supposizioni.

Ecco il contenuto di questi buffer in MQL5

int count = rates_total - prev_calculated, copied = 0; if(count < (int)kperiod + (int)dperiod + (int)slowing) {count = (int)kperiod + (int)dperiod + (int)slowing;};
   if(mode == m1 && price == STO_LOWHIGH) {copied = CopyOpen(_Symbol,PERIOD_CURRENT,0,count,Open); if(copied != count) return(0);};
   if(price == STO_LOWHIGH) {copied = CopyHigh(_Symbol,PERIOD_CURRENT,0,count,High); if(copied != count) return(0);};
   if(price == STO_LOWHIGH) {copied = CopyLow(_Symbol,PERIOD_CURRENT,0,count,Low); if(copied != count) return(0);};
   copied = CopyClose(_Symbol,PERIOD_CURRENT,0,count,Close); if(copied != count) return(0);
 
Alexey Viktorov:

È più facile trovare fmax() o fmin() dall'array ottenuto da CopyBuffer()

Ho bisogno di valori non di tutto il buffer, ma di un periodo K
Altrimenti come implementarlo, tenendo conto che ho bisogno di copiare i dati tenendo conto del periodo di decelerazione?

 
Alexandr Sokolov:

Non ho bisogno dei valori di tutto il buffer, ma del periodo K
Altrimenti, come posso implementare questo, dato che ho bisogno di copiare i dati tenendo conto del periodo di decelerazione?

Ieri ho fatto la stessa cosa, solo con gli array alto e basso

   for(i = limit; i < rates_total; i++)
    {
     UpperBuf[i] = high[ArrayMaximum(high, i-period, period)];
     LowerBuf[i] = low[ArrayMinimum(low, i-period, period)];
     MidBuf[i] = (UpperBuf[i]+LowerBuf[i])/2;
    }

Senza serie temporale flip. Quindi, come stabilito in mql5? barra zero a sinistra.

Inoltre è possibile copiare il buffer dell'indicatore non tutto il buffer, ma solo la quantità specificata da una determinata barra. E ho raccomandato erroneamente fmax() e fmin(). Intendevo ArrayMaximum()

 
Alexandr Sokolov:

Voglio ottenere i normali stocastici maxHigh e minLow in un periodo K da Low/High e Close/Close

Low/High durante l'inizializzazione funziona bene, ma Close/Close no

Ci sono funzioni standard per le serie temporali

Maximum=iHigh(_Symbol,_Period,iHighest(_Symbol,_Period,MODE_HIGH,num,startbar));
Minimum=iLow(_Symbol,_Period,iLowest(_Symbol,_Period,MODE_LOW,num,startbar));
 
Taras Slobodyanik:

ci sono funzioni standard per le serie temporali

Si consiglia di iniziare a leggere dall'inizio per ottenere buoni consigli. Da dove era la prima domanda e il resto della discussione.

 
Alexey Viktorov:

Si consiglia di iniziare a leggere dall'inizio per avere buoni consigli. Da dove era la prima domanda e il resto della discussione.

Sembra che fin dall'inizio - l'uomo stia attraversando la serie temporale alla ricerca di min/max.
È possibile farne a meno.

void KValues(int i)
  {
   if (price == STO_LOWHIGH)
      {
      vhigh=iHigh(_Symbol,_Period,iHighest(_Symbol,_Period,MODE_HIGH,kperiod,i));
      vlow=iLow(_Symbol,_Period,iLowest(_Symbol,_Period,MODE_LOW,kperiod,i));
      }
   else
      {
      vhigh=iClose(_Symbol,_Period,iHighest(_Symbol,_Period,MODE_CLOSE,kperiod,i));
      vlow=iClose(_Symbol,_Period,iLowest(_Symbol,_Period,MODE_CLOSE,kperiod,i));
      }
  }
(non ho controllato).
 
Taras Slobodyanik:

Sembra averla guardata dall'inizio - l'uomo sta passando attraverso le serie temporali alla ricerca di min/max.
Potresti farne a meno.

(non ho controllato).

Vuole valori stocastici.

Anche se... Sono già confuso su ciò di cui ha bisogno. Sembra una condizione stocastica, ma copia le barre...
Motivazione: