Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1352

 
CopyBuffer não encontrado em mt4, apenas em mt5 Não em mt4? existe um simples número de buffer array para obter dados em mt4?
 
Valeriy Yastremskiy:
CopyBuffer não encontrado no mt4, somente no mt5 Não no mt4?

não

em MT4 é iCustom()https://docs.mql4.com/ru/indicators/icustom

Eu verifiquei no ano passado, a chamada iCustom() da EA é cacheável, ou seja, se você chamariCustom() várias vezes da EApara diferentes buffers ou índices no mesmo tick, o próprio indicador será recalculado uma vez para este tick, ou seja, não há nada de errado com o desempenho

ZS: por que MT4 - se MT5 já foi "descoberto", a produtividade é maior, o testador é mais preciso... em suma, uma coisa boa para a pesquisa, imho

 
Igor Makanu:

não

em MT4 é iCustom()https://docs.mql4.com/ru/indicators/icustom

Eu verifiquei no ano passado, a chamada iCustom() da EA é cacheável, ou seja, se você chamariCustom() várias vezes da EApara diferentes buffers ou índices no mesmo tick, o próprio indicador será recalculado uma vez para este tick, ou seja, não há nada de errado com o desempenho

ZS: por que MT4 - se MT5 já foi "descoberto", a produtividade é maior, o testador é mais preciso... no geral, é uma coisa boa para a pesquisa, imho

É mais fácil trabalhar com idéias no MT4. A casca é mais fácil)))) Não, não. Vamos escrever)))) em loop na matriz, à moda antiga. Ainda não cheguei a estas etapas)))) Em MT5 faz sentido escalar quando o MT4 pára de funcionar))) e isto ou é muito lento ou demasiados dados.

acrescentou. E quando a idéia é trabalhada para um erro aceitável.
 

Boa tarde a todos. A máquina de grafite está quase pronta, mas quando a compilo recebo cerca de 50-60 avisos sobre o valor de retorno do'OrderSend' deve ser verificado TREND+ _V_1,1.mq4 1626 11

Pelo que entendi, porque escrevo a abertura dos pedidos sem nenhum cheque, como este

//--- АО БАЙ--

   /*УСЛОВИЕ 1*/
   if(flag_screen1==en_vbIkl_screen1 &&flag_screen2==en_vbIkl_screen2)
   { // НАЧАЛО УСЛОВИЕ 1
   if(ao_buy!=EMPTY_VALUE && count_orders_market_buy ==0)
   {
     OrderSend(Symbol(),OP_BUY,lot,Ask,slippages,Bid-sl,Bid+tp ,comment_ao_buy); // ОТКРЫВАЕМ БАЙ ОРДЕР
   }
   } // КОНЕЦ УСЛОВИЕ1
 
DanilaMactep:

Boa tarde a todos. A máquina de grafite está quase pronta, mas quando a compilo recebo cerca de 50-60 avisos sobre o valor de retorno do 'OrderSend' deve ser verificado TREND+ _V_1,1.mq4 1626 11

Tanto quanto sei, porque escrevo a abertura dos pedidos sem nenhum cheque - como este

escreva-o assim

if(OrderSend(Symbol(),OP_BUY,lot,Ask,slippages,Bid-sl,Bid+tp ,comment_ao_buy)) Print(Buy Open); // ОТКРЫВАЕМ БАЙ ОРДЕР
 
MakarFX:

escreva isto

esta linha de código não funciona:( 2 erros como este aparecem de uma só vez:

Comprar' - identificador não declarado TREND+_1,1.1.mq4 860 98


Aberto - alguns operadores esperam TREND+_V_1,1.1.mq4 860 102

E o próprio código é assim

if(OrderSend(Symbol(),OP_BUY,lot,Ask,slippages,Bid-sl,Bid+tp ,comment_ao_market_buy)) Print(Buy Open); // ОТКРЫВАЕМ БАЙ ОРДЕР


Escrevi tudo como aconselhado, a única diferença é que mudei o nome da variável para o comentário para separar o comentário para ordens de mercado e pendentes. O que eu estou fazendo de errado?
 
Print("Buy Open");
 
DanilaMactep:

Esta linha de código não funciona:( 2 erros como este aparecem de uma só vez:

Comprar' - identificador não declarado TREND+_1,1.1.mq4 860 98


Aberto - alguns operadores esperam TREND+_V_1,1.1.mq4 860 102

e o próprio código é assim


Escrevi tudo como aconselhado, a única diferença é que mudei o nome da variável para o comentário para separar o comentário para ordens de mercado e pendentes. O que eu estou fazendo de errado?

Perdi ""...

Vladislav Andruschenko:

Print("Buy Open");


 
Com o primeiro início do indicador no método OnCalculate, o CopyRates não funciona
                MqlRates rates[];
                if (CopyRates(_Symbol, _Period, (datetime)SeriesInfoInteger(Symbol(), Period(), SERIES_SERVER_FIRSTDATE), 1, rates) == -1)
                {
                        return(0);
                }

Os bilhetes vêm visíveis nas impressões, mas não copiam, como se não houvesse indicador no terminal, apenas a mudança de período com indicador ajuda, então após o primeiro indicador de partida funciona bem.

 
BillionerClub:
Com o primeiro início do indicador no método OnCalculate, o CopyRates não funciona

Os bilhetes chegam e são visíveis nas impressões, mas não copiam, como se não houvesse indicador no terminal, apenas a mudança de período com indicador ajuda, então após o primeiro indicador de partida funciona normalmente.

Ajuda:CopyRates

Nota

Se o intervalo dos dados solicitados estiver completamente fora do alcance no servidor, a função retorna -1. Caso os dados sejam solicitados fora deTERMINAL_MAXBARS(quantidade máxima de barras no gráfico), a função também retornará -1.

Ao solicitar dados do indicador, se as séries de tempos solicitadas ainda não foram construídas ou precisam ser baixadas de um servidor, a função retornará -1 imediatamente, mas o processo de download/construção será iniciado.

Ao solicitar dados do Expert Advisor ou um script, ocarregamento do servidor será iniciado, se o terminal não tiver esses dados localmente, ou a construção das séries de tempos requeridos será iniciada, se os dados puderem ser construídos a partir do histórico local, mas ainda não estiverem prontos. A função retornará a quantidade de dados que estarão prontos no tempo limite, mas o carregamento do histórico continuará, e o próximo pedido semelhante retornará mais dados.

Ao solicitar dados por data de início e número de itens necessários, somente os dados com data menor que (antes) ou igual à especificada serão devolvidos. Ao mesmo tempo, o intervalo é especificado e levado em conta para o segundo mais próximo. Isso significa que a data de abertura de qualquer barra, para a qual o valor é devolvido (volume, spread, valor no buffer indicador, preço Aberto, Alto, Baixo, Tempo Fechado ou Tempo Aberto), é sempre igual ou menor do que o especificado.

Ao solicitar dados no intervalo de datas especificado, somente os dados que estiverem dentro do intervalo solicitado serão devolvidos, e o intervalo é especificado e levado em consideração para o segundo mais próximo. Isto significa que o tempo de abertura de qualquer barra para a qual um valor é devolvido (volume, spread, valor no buffer indicador, preço Aberto, Alto, Baixo, Tempo Fechado ou Tempo Aberto), está sempre dentro do intervalo solicitado.

Assim,se o dia atual da semana for sábado, então ao tentar copiar os dados no horário semanal, especificandostart_time=Last Tuesday estop_time=Last Friday, a função retornará 0, já que o horário de abertura do horário semanal sempre cai no domingo, mas nenhuma barra semanal se enquadra no intervalo especificado.

Se você quiser obter o valor correspondente à barra inacabada atual, você pode usar a primeira forma da chamada, especificandostart_pos=0 ecount=1.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
  • www.mql5.com
CopyRates - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5