Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 167

 
Come ottenere Open[] del grafico corrente ma non del timeframe corrente?
 

Ciao a tutti!

Grazie a tutti coloro che aiutano i nuovi arrivati, non risparmiando il loro tempo, nonostante il fatto che l'altruismo ha perso il suo valore in questi giorni.

Chiedo aiuto agli utenti del forum, ho letto tutto il thread di Igor, ma non ho trovato quello che mi serve, quindi ho deciso di scrivere qui.

E la funzione che sospetto non è complicata e da qualche parte lo è già, ma...

Come calcolare il massimo/minimo dell'attuale (precedente, ...) candela giornaliera (settimanale, ...) un MINUTE(5,15,30,60, ...) BACK?

Sarò molto grato ai professionisti altruisti.

 
KAVrus:

Ciao a tutti!

Grazie a tutti coloro che aiutano i nuovi arrivati, non risparmiando il loro tempo, nonostante il fatto che l'altruismo ha perso il suo valore in questi giorni.

Chiedo aiuto agli utenti del forum, ho letto l'intero thread Igor, ma non ho trovato quello che mi serve, quindi ho deciso di scrivere qui.

Ho il sospetto che la funzione non sia complicata ed esista già da qualche parte, ma...

Come si calcola il massimo/minimo dell'attuale (precedente, ...) candela giornaliera (settimanale, ...) un MINUTE(5,15,30,60, ...) BACK?

Sarò molto grato ai professionisti altruisti.


:)))- è divertente.

Continuate a leggere - troverete molte cose interessanti. :)))

 
boing9267:
Come ottenere Open[] del grafico corrente ma non del timeframe corrente?
iOpen().
 
TarasBY:

:)))-)) - mi ha fatto ridere.

Continuate a leggere - troverete molte cose interessanti. :)))


È un peccato ridere di .....)))


L'ho letto... "I volumi di altri intervalli di tempo non sono modellati"

Devo aver sbagliato il senso della domanda allora... Cercherò di semplificare:

Come si calcola il massimo/minimo della candela attuale un MINUTO DOPO?

 
TarasBY:
iOpen().


Grazie
 
KAVrus:

È un peccato ridere di .....)))


Leggi... "I volumi di altri intervalli di tempo non sono simulati"

Devo aver sbagliato il senso della domanda allora... Cercherò di semplificare:

Come si calcola il massimo/minimo della candela giornaliera attuale un MINUTO DOPO?

È più facile ridere che leggere (figuriamoci "scavare")... :)))

Proviamo a risolvere il problema in codice:

    //---- Находим последний расчётный бар на нужном нам тамфрейме
    int li_Shift = iBarShift (Symbol(), PERIOD_M1, iTime (Sumbol(), PERIOD_D1, 0)),
        //---- Ищем на нужном промежутке номер бара с High
        li_Bar = iHighest (Symbol(), PERIOD_M1, MODE_HIGH, li_Shift, 1);
    //---- Получаем значение High
    double ld_HIGH = iHigh (Symbol(), PERIOD_M1, li_Bar);

Nell'immagine e nella somiglianza con il minimo si può gestire! ;)

P.S. Dato che nella storia dei prezzi abbiamo una discrezione con una dimensione minima di 1 minuto, è corretto dire non "un minuto fa", ma "senza contare l'ultimo minuto".

 
TarasBY:

Ridere è più facile che leggere (figuriamoci "entrare")... :)))

Cercando di risolvere il problema nel codice:

A vostra immagine e somiglianza, riuscite a gestire il minimo?! ;)

P.S. Siccome nella storia dei prezzi abbiamo una discretezza, il cui minimo è 1 minuto, è corretto dire non "un minuto fa", ma "senza contare l'ultimo minuto".


Grazie!!!
 
Ciao ragazzi, si prega di aiutare con l'indicatore sAccelerator.mq4. Voglio fare un avviso quando la linea 0 è attraversata, e l'avviso di colorazione per rimuovere, non funziona, e in mql francamente non capisco.
//+------------------------------------------------------------------+
//|                                                 sAccelerator.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2005, MetaQuotes Software Corp."
#property  link      "http://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Black
#property  indicator_color2  Lime
#property  indicator_color3  Red
//---- indicator buffers
double ExtBuffer0[];
double ExtBuffer1[];
double ExtBuffer2[];
double ExtBuffer3[];
double ExtBuffer4[];
// Номер бара, по которому будет искаться сигнал
#define SIGNAL_BAR 1
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(5);
//---- drawing settings
   SetIndexStyle(0, DRAW_NONE);
   SetIndexStyle(1, DRAW_HISTOGRAM);
   SetIndexStyle(2, DRAW_HISTOGRAM);
   IndicatorDigits(Digits + 2);
   SetIndexDrawBegin(0, 38);
   SetIndexDrawBegin(1, 38);
   SetIndexDrawBegin(2, 38);
//---- 4 indicator buffers mapping
   SetIndexBuffer(0, ExtBuffer0);
   SetIndexBuffer(1, ExtBuffer1);
   SetIndexBuffer(2, ExtBuffer2);
   SetIndexBuffer(3, ExtBuffer3);
   SetIndexBuffer(4, ExtBuffer4);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("sAC");
   SetIndexLabel(1, NULL);
   SetIndexLabel(2, NULL);
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Accelerator/Decelerator Oscillator                               |
//+------------------------------------------------------------------+
int start()
  {
   int    limit;
   int    counted_bars = IndicatorCounted();
   double prev, current;
//---- last counted bar will be recounted
   if(counted_bars > 0) 
       counted_bars--;
   limit = Bars - counted_bars;
//---- macd counted in the 1-st additional buffer
   for(int i = 0; i < limit; i++)
       ExtBuffer3[i] = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_MEDIAN, i) - 
                       iMA(NULL, 0, 34, 0, MODE_SMA, PRICE_MEDIAN, i);
//---- signal line counted in the 2-nd additional buffer
   for(i = 0; i < limit; i++)
       ExtBuffer4[i] = iMAOnArray(ExtBuffer3, Bars, 5, 0, MODE_SMA, i);
//---- dispatch values between 2 buffers
   bool up = true;
   for(i = limit - 1; i >= 0; i--)
     {
       current = ExtBuffer3[i] - ExtBuffer4[i];
       prev = ExtBuffer3[i+1] - ExtBuffer4[i+1];
       if(current > prev) 
           up = true;
       if(current < prev) 
           up = false;
       if(!up)
         {
           ExtBuffer2[i] = current;
           ExtBuffer1[i] = 0.0;
         }
       else
         {
           ExtBuffer1[i] = current;
           ExtBuffer2[i] = 0.0;
         }
       ExtBuffer0[i] = current;
     }
//---- done
    //---- Статические переменные, в которых хранятся
    //---- время последнего бара и направление последнего сигнала
    static int PrevSignal = 0, PrevTime = 0;
 
    //---- Если баром для анализа выбран не 0-й, нам нет смысла проверять сигнал
    //---- несколько раз. Если не начался новый бар, выходим.
    if(SIGNAL_BAR > 0 && Time[0] <= PrevTime ) 
        return(0);
    //---- Отмечаем, что этот бар проверен
    PrevTime = Time[0];
          if(PrevSignal <= 0)
      {
        if(MainBuffer[SIGNAL_BAR] - 0.0 > 0 && 
           0.0 - MainBuffer[SIGNAL_BAR+1] >= 0)
          {
            PrevSignal = 1;
            Alert("sAC (", Symbol(), ", ", Period(), ")  -  BUY!!!");
          }
      }
    if(PrevSignal >= 0)
      {
        if(0.0 - MainBuffer[SIGNAL_BAR] > 0 && 
           MainBuffer[SIGNAL_BAR+1] - 0.0 >= 0)
          {
            PrevSignal = -1;
            Alert("sAC (", Symbol(), ", ", Period(), ")  -  SELL!!!");
          }
      } 
   return(0);
  }
//+------------------------------------------------------------------+

 

Signori, vi prego di consigliarmi come trovare la media delle zecche in una barra. Presumo quanto segue:

Media[i] = (quantità totale di tick della barra[i])/Volume[i]; Come trovare la quantità totale di tick della barra desiderata?