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

[Deleted]  
drknn:


Il mercato riposa - quindi riposa tu.

Il mercato apre lunedì a Tokyo. Chiude venerdì a Chicago. Apre intorno alle 2 del mattino e chiude intorno alle 10 o alle 11 di sera (fuso orario di Mosca o Kiev)

Grazie mille!))) Mi fa ridere. Ho iniziato a lavorare solo martedì e non sapevo che il mercato fosse spento nel fine settimana:))
 
Zhunko:
Non c'è una funzione, ma può essere fatta in MQL4 + WinAPI.

//+------------------------------------------------------------------+
//|          Function  : int GetChartScale()[1,2,4,6,13]             |
//|          Copyright © 2012, XrustSolution.  mail:xrustx@gmail.com |
//|          https://www.youtube.com/user/opmlv http://forexrust.info |
//+------------------------------------------------------------------+
//|          Description: Возвращает ширину свечи по масштабу чарта  |
//+------------------------------------------------------------------+
#import "user32.dll"
  bool GetWindowRect(int h, int& pos[4]);
#import
//+------------------------------------------------------------------+
int GetChartScale(){
        int h = WindowHandle(Symbol(), Period());
        int rect[4];
        if(h==0) return(1);
        GetWindowRect(h, rect);
        int wW  = rect[2] - rect[0]; // ширина окна
        int bpc = WindowBarsPerChart();
        if(bpc==0) return(1);
        int scale = MathFloor((wW-48)/bpc);
        switch(scale){
                case  1 :       return(0);
                case  2 :       return(1);
                case  4 :       return(2);
                case  8 :       return(3);
                case 16 :       return(6);
                case 32 :       return(13);
                default :   return(1);
        }
        return(1);
}
//+------------------------------------------------------------------+
[Eliminato]  

Buon pomeriggio! Potete dirmi perché la linea dell'indicatore non viene visualizzata, il codice sembra essere elementare e niente di complicato. Ho controllato con Print (T_V) - dà il valore, ma la linea non viene visualizzata per qualche motivo?

Vorrei aggiungere una domanda: ho cancellato l'indicatore e l'ho rimesso su un grafico e la linea viene visualizzata. Perché l'indicatore non viene ricalcolato durante la compilazione?

#property indicator_separate_window
#property indicator_minimum -3
#property indicator_maximum 3
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_level1 0.0         //горизонтальный уровень N в отдельном окне индикатора, где N от 1 до 8 
#property indicator_levelcolor Black   // цвет горизонтальных уровней индикатора е 
#property indicator_levelwidth 1       //толщина горизонтальных уровней индикатора
double T_Vol[];

int init()
  {  SetIndexBuffer (0, T_Vol); 
     SetIndexStyle  (0, DRAW_HISTOGRAM, STYLE_SOLID, 1); 
     IndicatorDigits(Digits);
   return(0); }
int start(){
   int limit;
   int сounted_bars=IndicatorCounted();
   if (сounted_bars==0) limit=Bars-1;
   if (сounted_bars>0) limit=Bars-сounted_bars-1;
   for(int i=limit;i>=0;i--){
       int T_V=0; 
       if (Volume[i]>Volume[i+1])T_V=1;
       if (Volume[i]<Volume[i+1])T_V=-1;
       T_Vol[i]=T_V;
   }
   return(0);
}
 
PapaYozh:


1.

Qual è il valore della variabile "SignalBar" e l'indicatore è calcolato su questa barra?

Forse SignalBar=0 e l'indicatore non calcola la 0a barra.

2.

Sì, durante i test visivi i buffer degli indicatori non vengono visualizzati finché il test non è completato o interrotto. Ma gli indicatori contano.

Grazie per averlo fatto notare! Ma niente aiuta finora :(

Così ora sto studiando la migrazione degli indicatori in Expert Advisor. Se avete qualche saggio consiglio, non lo rifiuterò! :)

 

Ciao a tutti!

Ho studiato programmazione da dilettante, non ho programmato per molto tempo, quindi ho una domanda:

Perché ho bisogno di punti di interruzione in MQL4, se dopo averli impostati non succede nulla alla compilazione? Ero solito programmare molto in C#, dove c'era una pausa nell'esecuzione del programma e si poteva vedere i valori delle variabili, quali funzioni erano chiamate e gli errori elencati. Ma qui premo Compile e non succede nulla. Oppure si può abilitare il Debug in qualche modo, ma non so come?

[Eliminato]  

c'è una funzione "double MathRound( double value)", ma ho bisogno dell'arrotondamento ad una frazione decimale più grande, e se il numero è intero o già decimale, allora lascia perdere.

Per esempio: 1) 0,744 arrotondato a 0,8; 1,233 arrotondato a 1,3

2) 0,9 o 3 o 1,5 non toccare.



Chi può aiutare, per favore?
 

Mi chiedo se sa che esiste una documentazione completa e dettagliata della lingua?

NormalizeDouble

[Eliminato]  
FAQ:

Mi chiedo se sa che esiste una documentazione completa e dettagliata della lingua?

NormalizeDouble

verso l'alto, è un po' facile per te, eh?...
 
okvseok:
verso l'alto, è un po' semplice, vero...?

Potete tradurre un numero in una stringa e scrivere una funzione per elaborare i caratteri di questa stringa. Non è complicato qui - arrotondiamo solo se il numero ha più di una cifra dopo il punto decimale.
[Eliminato]  
drknn:

Potete convertire un numero in una stringa e scrivere una funzione per elaborare i caratteri di quella stringa. Non è complicato qui - arrotondiamo un numero solo se ha più di una cifra dopo il punto decimale.
Ok, ci proverò davvero, grazie mille per l'idea!