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

 
Alexey Viktorov #:

Stupido al secondo tentativo. A quanto pare l'ora è arrivata di sera.

Non ho capito bene, ma non so come dividere lo strumento in valute.

E c'è una probabilità dell'uguaglianza centrale, non la vedo subito, ma è meglio fare una ricerca completa dell'uguaglianza dei nomi delle valute nello strumento dalla 2a alla 3a posizione. Oppure tagliate la prima e l'ultima posizione e cercate nelle restanti 4 cifre)

 
Valeriy Yastremskiy #:

A B C D è corretto, ma non capisco come dividere lo strumento in valute.

E c'è una probabilità di uguaglianza centrale, non l'ho vista subito, ma è meglio fare una ricerca completa per l'uguaglianza dei nomi delle valute nello strumento dalla 2a alla 3a posizione. Oppure tagliate la prima e l'ultima posizione e cercate nei 4 caratteri rimanenti).

No, sono diventato stupido al secondo tentativo solo nelle 4 condizioni. Dopo tutto, per il compito non importa in quale posizione si troverà l'oggetto desiderato, in zero o in terza, la cosa principale è trovare o no. Di conseguenza, ci sono due condizioni, una per la valuta di base e una per la seconda valuta.

 
Alexey Viktorov #:

No, sono diventato scemo al secondo tentativo solo nelle 4 condizioni. Dopo tutto, per il compito non importa in quale posizione si troverà l'elemento di ricerca, zero o terzo, l'importante è che venga trovato o meno. Di conseguenza, ci sono due condizioni, una per la valuta di base e una per la seconda.

Così ho escluso l'uguaglianza centrale dalla seconda o terza posizione dello strumento. Se non è escluso, allora è corretto, 2 condizioni.

 
Valeriy Yastremskiy #:

Ebbene, io escludevo l'uguaglianza centrale quindi, dalla seconda o terza posizione dello strumento. Se non escludi, hai ragione, 2 condizioni.

Non ho ancora capito cosa significa "uguaglianza del punto medio".

Segnale su EURUSD

Un ordine EURJPY - cerca EUR e lo trovi, è vero. La seconda condizione non ha bisogno di essere verificata.

GBPJPY - cerca EUR, non lo trova. cerca USD, non lo trova, i lanci sono falsi. Totale due condizioni.

 
Alexey Viktorov #:

Continuo a non capire cosa sia un "mezzo uguale".

Segnale su EURUSD

Ordine su EURJPY - cerca EUR e trova, espulsione vera. La seconda condizione non ha bisogno di essere verificata.

GBPJPY - cerca EUR, non lo trova. cerca USD, non lo trova, i lanci sono falsi. Totale due condizioni.

EURJPY è uguale a URJP

GBPJPY tra i BPJP

Sono d'accordo, è un caso raro. Ma è possibile, a giudicare dal gran numero di strumenti.

 
Valeriy Yastremskiy #:

Parità EURJPY tra URJP

GBPJPY tra i BPJP

Sono d'accordo, è un caso raro. Ma possibile, a giudicare dal gran numero di strumenti.

No, preferisco rimanere sulla mia lunghezza d'onda. Trovo difficile capire perché...

 

Come funziona il costruttore nelle strutture?

struct as{
  int a,
      b,
      c;
    void as(){
    b=0;c=0;
    a=b+c;
    }  
 };
as sir;
 

Ciao, mi sto scervellando.

Chi non è difficile, si prega di aiutare con i commenti.


1. Qual è lo scopo della variabile "bb" e, di conseguenza, dell'operatore if (bb == 0) bb = i; ?


2. se ((Time[i]>=BeginDateCalc && Time[i]<=EndDateCalc && NumberOfBars<=0)

|| (NumberOfBars>0 && NumberOfBars>=i))

Come può NumberOfBars essere <= 0 e per cosa?


3. s += (Alto [i] - Basso [i]) / Punto;

A cosa serve la divisione per Punto?


4. Per la condizione del ciclo for (i = Bars; i > 0; i--) il conteggio va dalla barra più "vecchia" a quella più "giovane".

Perché la variabile b++ viene incrementata, ma non decrementata?

//+----------------------------------------------------------------------------+
//|                                                          AverageRange.mq4  |
//|                                                    Ким Игорь В. aka KimIV  |
//|                                                       http://www.kimiv.ru  |
//|                                                                            |
//|  14.09.2005  Скрипт для расчёта:                                           |
//|              средней волатильности инструмента High-Low                    |
//|              Возможность использования заданного количества баров          |
//+----------------------------------------------------------------------------+
#property copyright "Ким Игорь В. aka KimIV"
#property link      "http://www.kimiv.ru"
#property  show_inputs

extern datetime BeginDateCalc = D'2013.01.01';
extern datetime EndDateCalc   = D'2013.12.31';
extern int      NumberOfBars  = 100;         


//+----------------------------------------------------------------------------+
//|  script program start function                                             |
//+----------------------------------------------------------------------------+
void start() {
   int    i;           //счётчик
   int    b  = 0;      //использовано баров
   int    bb = 0;      //?????????????????????
   int    s =  0;      //сумма всех значений High - Low
   string st = "";     //строка вывода на экран    

  for (i = Bars; i > 0; i--) {
    
    if ((Time [i] >= BeginDateCalc && Time [i] <= EndDateCalc && NumberOfBars <= 0)
    || (NumberOfBars > 0 && NumberOfBars >= i)) {
      
      if (bb == 0) bb = i;
      s += (High [i] - Low [i]) / Point;
      
      b++;
    }
  }

  st =      "Начало: " + TimeToStr (Time [bb], TIME_DATE | TIME_MINUTES) + "\n";        // "/n" - это перенос строки
  st = st + "Конец: " + TimeToStr (Time [bb - b + 1], TIME_DATE | TIME_MINUTES) + "\n";
  st = st + "Использовано баров: " + b + "\n";
  st = st + "Средняя волатильность: " + s / b + " п.\n";
  
  Comment (st);
}
//+----------------------------------------------------------------------------+
 

Il bb contiene l'indice della barra della prima condizione attivata. Questo indice viene poi utilizzato per calcolare il tempo di inizio del calcolo.

NumberOfBars - questa variabile è impostata dall'utente, e questo tipo non è affidabile e può impostare un valore negativo. Forse, la logica è che se NumberOfBars è non positivo, il calcolo viene effettuato tra la data di inizio e di fine, mentre se è positivo, allora viene calcolato dal numero di candele impostato con questa variabile.

Il punto è diviso in punti (1.01051-1.01000)/Punto=51 per convertire i valori della parte frazionaria in punti.

La variabile bb dopo lo zero viene cambiata solo una volta durante tutto il funzionamento dello script. if (bb == 0)

 
Aleksei Stepanenko #:

Il bb contiene l'indice della barra della prima condizione attivata. Questo indice viene poi utilizzato per calcolare il tempo di inizio del calcolo.

NumberOfBars - questa variabile è impostata dall'utente, e questo tipo non è affidabile e può impostare un valore negativo. Forse, la logica è che se NumberOfBars non è positivo, il calcolo viene effettuato tra le date di inizio e fine.

Ma il punto è diviso per trasferire i valori dalla parte frazionaria ai punti 0.00051/Punto=51

La variabile bb dopo lo zero viene cambiata solo una volta durante tutto il funzionamento dello script.

Ad essere onesti, non capisco la logica di Kim, perché le condizioni di tempi di barre che superano il valore specificato e il numero di barre calcolate con OR il numero di barre calcolate è superiore al numero di barre Barz)))) E allo stesso tempo corregge solo i parametri personalizzati)

E non visualizza nemmeno un avviso che l'utente ha sbagliato)