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

 
Sì, dovrai comunque aggiornare l'orario da solo.
 
smartemiy:

con lo stesso looping?

Proverò
 
Serg16:

Per favore aiutatemi a risolvere il problema con il limite di spostamento in iHigh(Symbol(),timeframe,shift), che è limitato al numero 1000.

iTime(Symbol(),timeframe,1001) dà 1970.01.01 00:00

Nessuno può aiutare che c'è solo un'opzione, leggere dal file di storia? Se questa è l'unica opzione, qualcuno ha un modo pronto per identificare le informazioni necessarie nel file della storia.
 
sergeev:

Non si preme la barra spaziatrice, ma si tiene premuto il pulsante di accensione per 5-10 secondi finché il segnale non scompare.

In KVN tra i moderatori, sarai il capitano della squadra... Ripeto la domanda, forse qualcuno risponderà: l'allarme non si spegne dopo aver premuto la barra spaziatrice... La versione del terminale è l'ultima 500... Non l'ho mai visto prima.
 
E nella scheda "Eventi" del menu "Strumenti - Impostazioni", le cose vanno abbastanza male, però. Prova ad usarlo :(
 

Ragazzi, per favore, datemi un suggerimento. Ho già fatto questa domanda, ma non sono riuscito a trovare il codice giusto.

Ancora una volta vi dirò il succo dell'idea. Con l'indicatore Awesom, dal basso (sotto 0) all'alto (sopra 0), viene calcolato il volume dell'onda (indicatore Volumi).

L'etichetta di testo con la somma del volume dell'onda, dovrebbe essere stampata sul grafico dell'indicatore e calcolata su tutta la storia.

Ho preso questo:

fig4

Qual è l'errore?

#property  indicator_separate_window
#property  indicator_buffers 2
#property  indicator_color1  Red
#property  indicator_color2  SteelBlue
#property  indicator_width1  2

//---- basic fan indicator parameters

extern bool Show_AOLine_2=true;
extern int SlowEMA3=34;
extern int EMA=3;
extern bool Show_Volume=true;
extern double coaf=0.5;
//---- indicator buffers
double AOBuffer3[];
double ExtMapBuffer1[];


    double VLUP, AO_up,AO_dn;
    double prhgh_e=0, prhgh_s, prlw_e=0, prlw_s;
    datetime tmhgh, tmlw;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   //---- drawing settings
   
  string name_ind = "Awesome_super_volumes";
   IndicatorShortName("Awesome_super_volumes");
   
   
//---- AO_fan line 2 (basic)
   if(Show_AOLine_2 ==true){Show_AOLine_2=DRAW_LINE; }
   else 
    {Show_AOLine_2=DRAW_NONE; }
   SetIndexBuffer(0,AOBuffer3);
   SetIndexStyle(0,Show_AOLine_2);
   SetIndexLabel(0,"basic line");   

   SetIndexBuffer(1,ExtMapBuffer1);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexLabel(1,"Volume");
   
  //---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Awesome 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;

   for(int i=0; i<limit; i++)
   {
     
 //---- AO_fan + Volumes
     
AOBuffer3[i]=iMA(NULL,0,EMA,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,SlowEMA3,0,MODE_SMA,PRICE_MEDIAN,i);
if (Show_Volume==true)
{
double nSum = Volume[i]*Point*coaf;
   if (AOBuffer3[i]<=0)ExtMapBuffer1[i] = nSum;
   if (AOBuffer3[i]>0)ExtMapBuffer1[i] = -nSum;


double Vol_Arr[];
  if (AOBuffer3[i]<=0)Vol_Arr[i]=Volume[i]*Point*coaf;
  if (AOBuffer3[i]>0)Vol_Arr[i] = -Volume[i]*Point*coaf;
}
}

  //-- Поиск High & Time & Min_AO  
  if (AOBuffer3[i]>0)
  {
    
  AO_up = AOBuffer3[i]*0.1+AOBuffer3[i];
  prhgh_s = High[i];
  if (prhgh_s >= prhgh_e) {prhgh_e = prhgh_s; tmhgh = Time[i];}
  //SetText("Awesome_super_volumes"+Close[i], DoubleToStr(VLUP,0), tmhgh, AO_up, Black);
  }   
   
  //-- Поиск Low & Time & Max_AO 
  if (AOBuffer3[i]<0)
  {
  AO_dn = AOBuffer3[i]*0.1+AOBuffer3[i];
  prlw_s = Low[i];
  if (prlw_s > prlw_e) {prlw_e = prlw_s; tmlw = Time[i];}
  //SetText("Awesome_super_volumes"+Close[i], DoubleToStr(VLUP,0), tmlw, AO_dn, Black);
  } 
  
  // -- Пересчет баров от High до Low
  
  if(NewBar())
{ 
int colbr = iBarShift(NULL,0,tmhgh)-iBarShift(NULL,0,tmlw);     
int shift=iBarShift(NULL,0,tmhgh);
 for (i=0; i<=colbr; i++)
{VLUP += MathAbs(iVolume(NULL,0, shift+i));}
}


    
   Comment("Vol_",VLUP,prlw_e,prhgh_e); 
  for(i=0; i<limit; i++)
   {     
SetText("Awesome_super_volumes"+Close[i], DoubleToStr(VLUP,0), tmlw, AO_dn, Black);     
 }
        
//---- done
   return(0);
  }
//+------------------------------------------------------------------+
void SetText(string name, string Vl, datetime t1, double p1, color c)
 {
 // if (ObjectFind(name)!=-1) ObjectDelete(name);
  ObjectCreate(name,OBJ_TEXT,WindowFind("Awesome_super_volumes"),0,0,0,0);
  ObjectSetText(name, Vl, 10, "Times New Roman", c);
  ObjectSet(name, OBJPROP_TIME1 , t1);
  ObjectSet(name, OBJPROP_PRICE1, p1);
  ObjectSet(name, OBJPROP_COLOR, c); 
  }
  
  bool NewBar()
{
   static datetime lastbar = 0;
   datetime curbar = Time[0];
   if(lastbar!=curbar)
   {
      lastbar=curbar;
      return (true);
   }
   else
   {
    return(false);
   }}
 
smartemiy:

1. La funzione di conversione converte e i cambiamenti di variabili in questa funzione non cambiano se non c'è un segno di spunta. TimeToStr(TimeLocal(), TIME_MINUTES) - dipende dal tick.

Avete un'idea di come estrarre il tempo da Win32/User32 per non far bloccare l'EA?

1. Nessuna di queste funzioni è dipendente dalle zecche. Dovete solo chiamare la funzione per ottenere il valore di ritorno. L'indicatore e l'Expert Advisor lo chiamano all'arrivo di un tick, ma niente di che. Puoi mettere in loop un Expert Advisor o uno script. La frequenza delle chiamate sarà la stessa dell'indicatore o dello script.

2. Non c'è alcun senso. Dovrete inventare la stessa TimeLocal().

 
Heroix:

Non ho trovato nulla nel libro di testo su cosa significa "&" nei parametri formali delle funzioni. Puoi dirmi cosa influisce e cosa significa?


https://docs.mql4.com/ru/basis/variables/formal


La seconda parte della pagina dalle parole "È possibile passare parametri per riferimento..." Guarda attentamente lì Esempio.

 
Però sei veloce. Cancellato il post come l'ho trovato io stesso. Grazie!
 

Buon pomeriggio.

Potreste consigliarmi il modo migliore per risolvere l'incrocio di, diciamo, stocastico:

sulla prima e terza barra confrontare i valori delle linee di segnale e principale o la prima e la seconda ?