Aprender y escribir juntos en MQL5 - página 45

 
Dimka-novitsek:
El ordenador es muy lento...

no, no es una competición :)

La matriz de salida yu (GBPUSD,H1) está fuera de rango en 'Output yu.mq5' (4873,19)- las palabras no están claras...

Has accedido a un elemento del array, mientras que el tamaño del array es menor que el número de índice del elemento al que has accedido.

Es como cuando tienes el array arr[10] y quieres obtener un elemento arr[11]. Pero sólo hay 10 elementos.

Esto es lo que se cuenta.

e incluso has dado el número de línea donde está el error, 4873 de tus 5000 líneas :)

 
¡¡¡Gracias!!!
 
Intenté proporcionar todas las matrices, que son 11, con una condición adecuada. Pero, por favor, dígame, ¿cómo se produce el mismo error aquí? И
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 función pide un parámetro-que es un número entero, cien por cien no negativo, y comprueba dentro de la función que no supera el 99. [shift-es el mismo número-se refiere a un elemento del array StdDev number shift. Entonces, ¿no se trata del número? ¿Sería correcto declararlo comodouble ATR[100]; ? п.p. El error es el número de línea y el carácter es exactamente el desplazamiento

2012.09.29 20:56:26 Salida yu (GBPUSD,H1) array fuera de rango en 'Salida yu.mq5' (4886,19)

No hay manera de que pueda acceder al elemento de la matriz equivocado, ¿verdad?

 
Dimka-novitsek:
He intentado dotar a todas las matrices, que son 11, de una condición adecuada. Pero, por favor, dígame, ¿cómo se produce el mismo error aquí? И

La función pide un parámetro-que es un número entero, cien por cien no negativo, y comprueba dentro de la función que no supera el 99. [shift-es el mismo número-se refiere a un elemento del array StdDev number shift. Entonces, ¿no se trata del número? ¿Sería correcto declararlo comodouble ATR[100]; ? п.p. El error es el número de línea y el carácter es exactamente el desplazamiento

2012.09.29 20:56:26 Salida yu (GBPUSD,H1) array fuera de rango en 'Salida yu.mq5' (4886,19)

No hay manera de que pueda acceder al elemento de la matriz equivocado, ¿verdad?


StdDev
¿Qué es? ¿Dónde se declara? ¿Cuál es su tamaño?
 
Gracias a todos, de verdad. Ayer fue una pesadilla, ahora lo estoy ordenando de nuevo y está más claro. Eso es todo por ahora.
 
Parecía que todo funcionaba correctamente, y dibujaba todo, ¡incluso cosas que no había visto antes! Y en relación con esta pregunta - por favor dígame, ¿el programa termina su trabajo prematuramente con la llegada de una nueva garrapata?
 
Dimka-novitsek: y con la llegada de una nueva garrapata, ¿el programa termina prematuramente?
Véase el manual de referencia, palabra de búsqueda: 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 entrada de estado es la entrada de fondos en la cuenta, por ejemplo en cualquier cuenta la primera línea es saldo, esta es la entrada de estado.

Eso no parece ser cierto.


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));
        }
     }
  }

Devuelve:

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

Quién sabe cuál es el DEAL_ENTRY_STATE ?

 
angevoyageur:

Esto no parece ser cierto.

Lógicamente, si el balance tiene la dirección DEAL_ENTRY_IN, entonces ¿por qué no está en la columna "Dirección"\Nde la dirección?

como por ejemplo para comprar, que en este caso también tiene la dirección DEAL_ENTRY_IN

 
A100:

Lógicamente, si el balance tiene la dirección DEAL_ENTRY_IN, ¿por qué no está en la columna "Dirección"/Dirección?

como se especifica, por ejemplo, para la compra, que en este caso también tiene la dirección 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 pregunta sigue siendo: ¿qué es DEAL_ENTRY_STATE? La pregunta sigue siendo: ¿qué esDEAL_ENTRY_STATE?