Imparare e scrivere insieme in MQL5 - pagina 45

 
Dimka-novitsek:
Il computer è molto lento...

no, non è un comp :)

Output yu (GBPUSD,H1) array fuori range in 'Output yu.mq5' (4873,19)- parole non chiare...

Avete avuto accesso a un elemento dell'array, mentre la dimensione dell'array è più piccola del numero di indice dell'elemento a cui avete avuto accesso.

È come quando avete l'array arr[10] e volete ottenere un elemento arr[11], ma ci sono solo 10 elementi.

Questo è ciò di cui si parla.

e hai anche dato il numero di linea dove l'errore è 4873 delle tue 5000 linee :)

 
Grazie!!!
 
Ho cercato di fornire tutti gli array, ce ne sono 11, con una condizione appropriata. Ma per favore ditemi, come si verifica lo stesso errore qui? И
double      ATR[];                // массив для индикатора iATR
//---- handles for indicators
int         ATR_handle;           // указатель на индикатор iATR


..................................................
..................................................

///////////////////////////////////////////////////////////////////////////////////////////////  
double iStdDevf(        string symbol, int timeframe, int ma_period, int ma_shift, ENUM_MA_METHOD ma_method,  ENUM_APPLIED_PRICE applied_price, int shift){
     SymbolSelect(
  symbol,       // имя символа
  true      // включить или выключить
   );
 StdDev_handle= iStdDev(
               symbol,            // имя символа
       periodd(timeframe),            // период
                   ma_period,         // период усреднения
                 ma_shift,          // смещение индикатора по горизонтали
         ma_method,         // тип сглаживания
    applied_price      // тип цены или handle
   );   
  
   if(StdDev_handle==INVALID_HANDLE)     
     {
     return (0.0);}                     //Если массив не был создан, то 0          
      
    CopyBuffer(StdDev_handle,0,0,100,ATR);
    if(shift>99)return(0);
    ArraySetAsSeries(ATR,true);         // Установим порядок расположения массива от 0 к 100
    return( StdDev[shift]); }           //Вывод ризультата
///////////////////////////////////////////////////////////////////////////////////////////////  

La funzione chiede un parametro, noto per essere un intero, cento per cento non negativo, e controlla all'interno della funzione che non superi 99. [shift - è lo stesso numero - si riferisce a un elemento dell'array StdDev number shift. Quindi non si tratta del numero? Sarebbe corretto dichiararlo comedoppio ATR[100]; ? п.p. L'errore è il numero di linea e il carattere è esattamente shift

2012.09.29 20:56:26 Uscita yu (GBPUSD,H1) array fuori range in 'Uscita yu.mq5' (4886,19)

Non c'è modo di accedere all'elemento sbagliato dell'array, giusto?

 
Dimka-novitsek:
Ho cercato di fornire tutti gli array, ce ne sono 11, con una condizione appropriata. Ma per favore ditemi, come si verifica lo stesso errore qui? И

La funzione chiede un parametro, noto per essere un intero, cento per cento non negativo, e controlla all'interno della funzione che non superi 99. [shift - è lo stesso numero - si riferisce a un elemento dell'array StdDev number shift. Quindi non si tratta del numero? Sarebbe corretto dichiararlo comedoppio ATR[100]; ? п.p. L'errore è il numero di linea e il carattere è esattamente shift

2012.09.29 20:56:26 Uscita yu (GBPUSD,H1) array fuori range in 'Uscita yu.mq5' (4886,19)

Non c'è modo di accedere all'elemento sbagliato dell'array, giusto?


StdDev
Cos'è, dove è dichiarato, quali sono le sue dimensioni?
 
Grazie a tutti, davvero! Ieri è stato un incubo, ora lo sto risolvendo di nuovo ed è più chiaro. Questo è tutto per ora.
 
Sembrava che tutto funzionasse correttamente, e disegnava tutto, anche cose che non avevo mai visto prima! E in relazione a questa domanda - per favore ditemi, il programma termina il suo lavoro prematuramente con l'arrivo di una nuova zecca?
 
Dimka-novitsek: e con l'arrivo di una nuova zecca, il programma termina prematuramente?
Vedere il manuale di riferimento, parola di ricerca: NewTick
 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Изучаем и пишем вместе на MQL5

Yedelkin , 2011.04.30 08:47

Вопрос

ENUM_DEAL_ENTRY

 

Идентификатор

Описание

DEAL_ENTRY_IN

Вход в рынок

DEAL_ENTRY_OUT

Выход из рынка

DEAL_ENTRY_INOUT

Разворот

DEAL_ENTRY_STATE

Признак статусной записи

Что такое " статусная запись", и когда может потребоваться (необходимо использовать) признак этой записи?
Urain:
La voce di stato è l'entrata di fondi nel conto, per esempio in qualsiasi conto la prima riga è il saldo, questa è la voce di stato.

Questo non sembra essere vero.


void OnStart()
  {
//---
   if(HistorySelect(0,TimeCurrent()))
     {
      int total=HistoryDealsTotal();
      for(int i=0;i<total;i++)
        {
         ulong ticket=HistoryDealGetTicket(i);
         ENUM_DEAL_ENTRY deal_entry=(ENUM_DEAL_ENTRY) HistoryDealGetInteger(ticket,DEAL_ENTRY);
         printf("Deal ticket#%u entry=%s",ticket,EnumToString(deal_entry));
        }
     }
  }

Ritorna:

2014.08.27 19:15:42.163 Deal_Entry_State (AUDUSD,D1) Deal ticket#3879156 entry=DEAL_ENTRY_IN

Chi sa qual è il DEAL_ENTRY_STATE ?

 
angevoyageur:

Questo non sembra essere vero.

Logicamente, se balace ha direzione DEAL_ENTRY_IN, allora perché non è nella colonna "Direction"/Direzione?!

come per esempio per comprare, che in questo caso ha anche la direzione DEAL_ENTRY_IN

 
A100:

Logicamente, se balace ha direzione DEAL_ENTRY_IN, allora perché non è nella colonna "Direction"\Direction?!

come è specificato per esempio per comprare, che in questo caso ha anche la direzione DEAL_ENTRY_IN

   if(HistorySelect(0,TimeCurrent()))
     {
      int total=HistoryDealsTotal();
      for(int i=0;i<total;i++)
        {
         ulong ticket=HistoryDealGetTicket(i);
         ENUM_DEAL_ENTRY deal_entry=(ENUM_DEAL_ENTRY) HistoryDealGetInteger(ticket,DEAL_ENTRY);
         ENUM_DEAL_TYPE  deal_type=(ENUM_DEAL_TYPE) HistoryDealGetInteger(ticket,DEAL_TYPE);
         printf("Deal ticket#%u type=%s entry=%s",ticket,EnumToString(deal_type),EnumToString(deal_entry));
        }
     }


2014.08.28 13:25:44.007 Deal_Entry_State (AUDUSD,H8) Deal ticket#3892717 type=DEAL_TYPE_BUY entry=DEAL_ENTRY_OUT

2014.08.28 13:25:44.007 Deal_Entry_State (AUDUSD,H8) Deal ticket#3892714 type=DEAL_TYPE_SELL entry=DEAL_ENTRY_IN

2014.08.28 13:25:44.007 Deal_Entry_State (AUDUSD,H8) Deal ticket#3879156 type=DEAL_TYPE_BALANCE entry=DEAL_ENTRY_IN

La domanda rimane, cos'è DEAL_ENTRY_STATE? Ladomanda rimane, cos'èDEAL_ENTRY_STATE?