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

 
Trova il massimo e il minimo di un dato tempo Time1 a Time1+Time2 . Time1+Time2 è fatto per poter saltare ad un altro giorno. Ho scritto il codice
extern int     Time1            = 0;      // Start box Time (broker time)
extern int     Time2            = 8;      // Start box plius Time2 hours  (broker time)
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   datetime StartBox,EndBox;
   int      StartBar,EndBar;  
   double   HighBox,LowBox;
   
   StartBox  = StrToTime(Year()+"."+Month()+"."+Day()+" "+Time1+":00"); //time(s)
   Print("    startBox        ",StartBox);
   EndBox    = StartBox+Time2*3600; //time(s)
   Print("    endBox          ",EndBox);
   StartBar  = iBarShift("GBPJPY",240,StartBox,true);
   Print("  startBar        ",StartBar);
   EndBar    = iBarShift("GBPJPY",240,EndBox,true);
   Print("   endBar        ",EndBar);
   HighBox   = High[iHighest("GBPJPY",240,MODE_HIGH,StartBar-EndBar,EndBar+1)];
   Print("HihghBox       ",HighBox);
   LowBox    = Low[iLowest("GBPJPY",240,MODE_LOW,StartBar-EndBar,EndBar+1)];
   Print("LowBox    ",LowBox);
   return(0);
  }
Log

2010.03.31 10:24:59 2010.03.29 16:43 b GBPJPY,H4: LowBox 137.655
2010.03.31 10:24:59 2010.03.29 16:43 b GBPJPY,H4: HighBox 138.367
2010.03.31 10:24:59 2010.03.29 16:43 b GBPJPY,H4: endBar 2
2010.03.31 10:24:59 2010.03.29 16:43 b GBPJPY,H4: startBar 4

2010.03.31 10:24:59 2010 03.29 16:43 b GBPJPY,H4: endBox 1269849600
2010 03.31 10:24:59 2010 03.29 16:43 b GBPJPY,H4: startBox 1269820800

Il log dice che ha cercato dalla barra 4 alla 2. Cosa significa 16:43. È l'ora del broker o dobbiamo correggerla in base al GMT? Perché dalla quarta alla seconda quando volevo da ore 0 a ore 8 .
Chi può spiegarmelo, per favore. Forse è possibile scrivere il codice in modo diverso.
 
gince писал(а) >>
Devi trovare il massimo e il minimo del tempo dato da Time1 a Time1+Time2 . Time1+Time2 è fatto per poter saltare ad un altro giorno. Ho scritto il seguente codice
Log

2010.03.31 10:24:59 2010.03.29 16:43b GBPJPY,H4: LowBox 137.655
2010.03.31 10:24:59 2010.03.29 16:43 b GBPJPY,H4: HihghBox 138.367
2010.03.31 10:24:59 2010.03.29 16:43 b GBPJPY,H4: endBar 2
2010.03.31 10:24:59 2010.03.29 16:43 b GBPJPY,H4: startBar 4

2010.03.31 10:24:59 2010.03.29 16:43 b GBPJPY,H4: endBox 1269849600
2010.03.31 10:24:59 2010.03.29 16:43 b GBPJPY,H4: startBox 1269820800

Il registro dice che ha cercato dalla quarta alla seconda barra. Qual è il tempo 16:43. È l'ora del broker o devo correggerla in base al GMT? Perché dalla quarta alla seconda quando volevo da ore 0 a ore 8.
Chi può spiegarmelo, per favore. Forse è possibile scrivere il codice in modo diverso.


16:43 - ora del terminale, tempo di iniziare lo script
La ricerca dovrebbe essere fatta dall'inizio del giorno alle 8 del mattino, su H4 sono due barre
alle 16:43 ci sono già quattro barre H4 completamente formate e una barra in formazione (zero)

 
Buon pomeriggio.
Vorrei chiedere ancora una volta alla comunità riguardo alla build 226.
"Forse qualcuno l'ha già chiesto, ma ho cercato e non ho trovato una risposta a questa domanda. Da lunedì, quando accendo il terminale, ottengo un aggiornamento alla nuova build 226. Inizio l'avvio e quando inizio l'installazione l'antivirus bestemmia. Che cosa non fare tutto lo stesso non passa. Anche se scarico senza antivirus, poi starnutisce questo aggiornamento. Come affrontare questa nastoyka.
L'antivirus è AVG. Ho capito bene: se non ho AVG, funziona tutto, ma quando collego il mio AVG, dice "Detected Win32/Themida virus. Rilevato all'apertura" E qualsiasi ulteriore azione porta solo alla cancellazione dell'aggiornamento".
 
gvi2504 писал(а) >>
Buon pomeriggio.
Ancora una volta vorrei fare una domanda alla comunità riguardo alla build 226.
"Forse qualcuno l'ha già chiesto, ma ho cercato e non ho trovato una risposta a questa domanda. Da lunedì, quando accendo il terminale, ottengo un aggiornamento alla nuova build 226. Inizio l'avvio e quando inizio l'installazione l'antivirus bestemmia. Quello che non fa tutto lo stesso non passa. Anche se scarico senza antivirus, poi starnutisce questo aggiornamento. Come affrontare questa nastoyka.
L'antivirus è AVG. Ho capito bene: se non ho AVG, funziona tutto, ma quando collego il mio AVG, dice "Detected Win32/Themida virus. Rilevato all'apertura" E qualsiasi ulteriore azione porta solo alla cancellazione dell'aggiornamento".


https://www.mql5.com/ru/forum/120616/page2#209538
ma ho cercato e non ho trovato una risposta a questa domanda.
https://www.mql5.com/ru/search
 

Grazie, naturalmente, ma cosa fare. Ci sono solo chiacchiere ovunque e nessun suggerimento concreto. È possibile disattivare l'aggiornamento automatico nel terminale? All'avvio si presenta con un'offerta di aggiornamento. Se questa build non passa l'antivirus, allora che non vengano automaticamente.

 
gvi2504 писал(а) >>

Grazie, naturalmente, ma cosa fare. Ci sono solo chiacchiere ovunque e nessun suggerimento concreto. È possibile disattivare l'aggiornamento automatico nel terminale? All'avvio si presenta con un'offerta di aggiornamento. Se questa build non passa l'antivirus, allora che non vengano automaticamente.

Non so nulla del tuo AVG, ma ecco il "risultato della ricerca" per "avg+Themida"
https://www.mql5.com/go?link=https://support.avg.com/answers

"Si prega di aggiungere questi file alle eccezioni di AVG Resident Shield (non PUP) -> aprire AVG -> menu Strumenti -> Impostazioni avanzate -> Resident Shield -> eccezioni file/cartelle"
 

C'è un malinteso. Aiutatemi a capire, per favore. ))

int start(){
   double MasOrd[2][3];
   double po = MarketInfo(Symbol(), MODE_POINT );
   int di = MarketInfo(Symbol(), MODE_DIGITS);
   int Level = 2; 
   int o = 1;
   if(OrderSelect(0,SELECT_BY_POS)==true){
      MasOrd[o][1] = NormalizeDouble(OrderOpenPrice(), di);//0.34610000 
      MasOrd[o][2] = NormalizeDouble(OrderStopLoss() , di);//0.34630000
   }
   if(MasOrd[o][2] - MasOrd[o][1] == Level*po) Alert(MasOrd[o][2] - MasOrd[o][1]);
   return(0);
}
Mentre le condizioni nell'ultimo if() sono completamente soddisfatte (0,34630000 - 0,34610000 == 2*0,00010000) Alert() non stampa. Perché succede così? Se normalizzo la differenza usando la funzione NormalizeDouble(MasOrd[o][2]-MasOrd[o][1]), tutto è ok. Ho normalizzato MasOrd[o][2] e MasOrd[o][1] separatamente - anche la loro differenza dovrebbe essere normale?
 
gvi2504 >>:

...Везде одни разговоры, а конкретных предложений нет. Скажите, а можно ли в терминале отключить автоматическое обновление? При запуске приходит предложение для обновления. Если этот билд не проходит по антивирусу, то пусть и не приходят автоматически.

Rinominate il file LiveUpdate.exe nella cartella del terminale, per esempio, in LiveUpdate.$$$. L'aggiornamento automatico perderà il file eseguibile e smetterà di darvi fastidio. Una volta che il problema è stato risolto, potete rinominare nuovamente il file e ripristinare l'aggiornamento.

 
Probabilmente non è una domanda rara, ma non ho ancora trovato una risposta coerente. Per favore, aiutatemi.
C'è un Expert Advisor che lavora simultaneamente con diverse coppie - c'è la possibilità di testarlo sulla storia?
(È importante l'esecuzione sincrona sulla storia di un dato insieme di coppie).
 
Salve.
Per favore aiutatemi a scoprire cosa c'è di sbagliato qui. Perché c'è prima lo zero nel secondo buffer e poi i valori calcolati?
//+------------------------------------------------------------------+
//|                                                          123.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 LightSeaGreen
#property indicator_color2 Red

extern int cciPeriod = 14;
extern int cciPrice  = 5;
extern int maPeriod  = 14;

double Buf_0[],Buf_1[];
//+------------------------------------------------------------------+ 
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
SetIndexBuffer(0,Buf_0);
SetIndexBuffer(1,Buf_1);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,1);
SetIndexLabel (0,"Buffer CCI");
SetIndexLabel (1,"Buffer Average CCI");
IndicatorShortName("CCI & MA("+cciPeriod+","+cciPrice+","+maPeriod+") ");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
   int i,z,Counted_bars;
   double sum;
   Counted_bars=IndicatorCounted();
   i=Bars-Counted_bars-1;
   while(i>=0)
   {
      while(z<maPeriod){
         sum+=iCCI(Symbol(),0,cciPeriod,cciPrice,i+z);
         z++;}
      Buf_0[i]=iCCI(Symbol(),0,cciPeriod,cciPrice,i);
      Buf_1[i]=sum/maPeriod;
      i--;
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+