Aprender e escrever juntos em MQL5 - página 45

 
Dimka-novitsek:
O computador é muito lento...

não, não é uma obrigação :)

Saída yu (GBPUSD,H1) fora do intervalo em 'Output yu.mq5' (4873,19)- palavras não claras...

Acedeu a um elemento de matriz, enquanto que o tamanho da matriz é menor do que o número de índice do elemento a que acedeu.

É como quando se tem a matriz arr[10] e se quer obter um item arr[11]. Mas existem apenas 10 elementos.

É sobre isto que lhe falam.

e até deu o número da linha onde o erro é 4873 das suas 5000 linhas :)

 
Obrigado!!!
 
Tentei fornecer todas as matrizes, são 11, com uma condição apropriada. Mas por favor diga-me, como é que o mesmo erro ocorre aqui? И
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]); }           //Вывод ризультата
///////////////////////////////////////////////////////////////////////////////////////////////  

A função pede um parâmetro, que é um inteiro não negativo, e verifica dentro da função que não excede 99. [shift-it é o mesmo número- refere-se a um elemento da matriz StdDev numérica shift. Então, não se trata do número? Seria correcto declará-lo comoduplo ATR[100]; ? п.p. O erro é o número da linha e o carácter é exactamente o deslocamento

2012.09.29 20:56:26 Saída yu (GBPUSD,H1) fora do intervalo em 'Saída yu.mq5' (4886,19)

Não há forma de aceder ao elemento de matriz errado, certo?

 
Dimka-novitsek:
Tentei fornecer todas as matrizes, são 11, com uma condição apropriada. Mas por favor diga-me, como é que o mesmo erro ocorre aqui? И

A função pede um parâmetro - conhecido por ser um número inteiro, cem por cento não-negativo, e verifica dentro da função que não excede 99. [shift-it é o mesmo número- refere-se a um elemento da matriz StdDev numérica shift. Então, não se trata do número? Seria correcto declará-lo comoduplo ATR[100]; ? п.p. O erro é o número da linha e o carácter é exactamente o deslocamento

2012.09.29 20:56:26 Saída yu (GBPUSD,H1) fora do intervalo em 'Saída yu.mq5' (4886,19)

Não há forma de aceder ao elemento de matriz errado, certo?


StdDev
O que é? onde é declarado? qual é o seu tamanho?
 
Obrigado a todos, realmente! Ontem foi um pesadelo, agora estou de novo a resolver o assunto e é mais claro. É tudo por agora.
 
Sabe, tudo parecia funcionar bem, e atraiu tudo, mesmo coisas que eu não tinha visto antes! E em relação a esta pergunta - diga-me por favor, o programa termina o seu trabalho prematuramente com a chegada de um novo tick?
 
Dimka-novitsek: e com a chegada de um novo tick, o programa termina prematuramente?
Ver Manual de Referência, palavra de pesquisa: NewTick
 

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

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

Yedelkin , 2011.04.30 08:47

Вопрос

ENUM_DEAL_ENTRY

 

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

Описание

DEAL_ENTRY_IN

Вход в рынок

DEAL_ENTRY_OUT

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

DEAL_ENTRY_INOUT

Разворот

DEAL_ENTRY_STATE

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

Что такое " статусная запись", и когда может потребоваться (необходимо использовать) признак этой записи?
Urain:
A entrada de estado é a entrada de fundos na conta, por exemplo, em qualquer conta a primeira linha é o saldo, esta é a entrada de estado.

Isso não parece ser verdade.


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

Devoluções:

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

Quem sabe o que é o DEAL_ENTRY_STATE ?

 
angevoyageur:

Isto não parece ser verdade.

Logicamente, se o balace tem direcção DEAL_ENTRY_IN, então porque não está na coluna "Direcção"\i1!

como por exemplo para comprar, que neste caso também tem direcção DEAL_ENTRY_IN

 
A100:

Logicamente, se o balace tem direcção DEAL_ENTRY_IN, então porque não está na coluna "Direcção"/Direcção?!

como é especificado, por exemplo, para a compra, que neste caso também tem direcção 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

A questão permanece, o que é o DEAL_ENTRY_STATE ? Aquestão permanece, o que é oDEAL_ENTRY_STATE?