Características da linguagem mql5, subtilezas e técnicas - página 230

 

begDayBar= iBarShift(_Symbol,_Period,begDayTime,false) De acordo com a documentação, a função retorna -1 ou o deslocamento de barra mais próximo, dependendo do parâmetro exato.

Mas hoje, por algum motivo, se begDayTime=2023.01.26 00:00:00 ele retorna -1, embora existam tais barras e elas não sejam as últimas.

2023.02.15 15:19:23.254 !indDAY_WSOWROhLine (EURRUB_TOM,M15) begDayTime=2023.01.26 00:00:00 endDayTime=2023.01.27 00:00:00 begDayBar=-2 endDayBar=-1 indATR=0 Q5days=0

ele pode retornar -1 ou pode retornar a barra correta.

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

hoje, por algum motivo, se begDayTime=2023.01.26 00:00:00 retorna -1, embora existam essas barras e elas não sejam as últimas

Forneça todos os dados para reprodução.
 
fxsaber #:
Forneça todos os dados para reprodução.

begDayTime=iTime(Symbol(),Inp_period,bar);begDayBar=iBarShift(_Symbol,_Period,begDayTime,false)-1;

Inp_period = M15

2023.02.19 13:02:42.517 !indDAY_WSOWROhLine (EURRUB_TOM,M15) bar=14 begDayTime=2023.01.30 00:00:00 endDayTime=2023.01.31 00:00:00 begDayBar=-2 endDayBar=673 indATR=0 Q5days=0
se você inserir

if (begDayBar<0) { k=0; do {k++;} while(begDayTime<time[k] && !IsStopped()); begDayBar=k; }

então tudo está OK (ou seja, conserte o iBarShift quando ele falhar)

 
IuriiPrugov #:

Não se trata de dados.

 
fxsaber #:

Não se trata de dados.

Que outros dados? Inp_period = D1 é pesquisado por 15 dias em um ciclo! begDayTime= bar= bar =14

begDayTime=iTime(Symbol(),Inp_period,bar); _Symbol= EURRUB_TOM; _Period= M15; depois disso

iBarShift(_Symbol,_Period,begDayTime,false) pode produzir uma barra normal ou -1 ou não tem tempo para contar barras ou algo assim.

Em geral, ele funciona de forma instável se você trocar o indicador (basta pressionar outro período no painel "período do gráfico"), por exemplo, no M30 ele pode produzir uma barra normal ou -1.

a mesma coisa em outro instrumento se não for inserido if (begDayBar<0) { k=0; do {k++;} while(begDayTime<time[k] && !IsStopped()); begDayBar=k; } então aparecerá um erro

2023.02.20 07:58:01.698 !indDAY_WSOWROhLine (CNYRUB_TOM,M15) array out of range in '!indDAY_WSOWROhLine.mq5' (202,148)

E assim por diante após uma ou duas vezes. Você mesmo pode tentar.

Insira essa parte no indicador mais simples e alterne para um período diferente no painel "chart period" (período do gráfico).

 
IuriiPrugov #:

E que outros dados?

Código-fonte completo e dados de ambiente para reprodução. Ou seja, qualquer pessoa pode reproduzir o problema em um minuto depois de lê-lo.
 

ok

Sou novo em MQL4 e agora em MQL5.

Eu já fui programador em Visual C/C++, então sei como codificar.

Mas não estou familiarizado com as bibliotecas e outras coisas aqui.

Minha primeira pergunta é: se eu carregar um modelo e ele produzir um gráfico no Oanda, como faço para configurar o código e tal?

Quero usar minha conta de negociação em papel e desenvolver o código para testar algumas estratégias de negociação.

Agora, não quero reinventar a roda, portanto, se eu puder obter alguns trechos de código que façam coisas "padrão" como

-obter as conexões da conta e do servidor/base de dados

-Configurar um projeto

-executar talvez um código pré-existente primeiro e depois praticar a criação de mods e a "compilação", se for assim que funciona, ou executar uma compilação do meu projeto

Pretendo ser ativo nesta comunidade assim que me orientar, então estou muito feliz por ter encontrado isso.

posso usar isso para negociar criptomoedas?

peço desculpas se não me preparei melhor - só fiz este comentário depois de dar uma olhada - acabei de entrar hoje.

Obrigado!

RayRay

RR

 
@rrb1002 #: novo na MQL4 e agora na MQL5....

Você tem artigos que descrevem como fazer as coisas com mais detalhes.

Você tem o CodeBase com exemplos de código escritos por usuários que variam de iniciantes absolutos a desenvolvedores altamente qualificados.

E você tem a versão on-line da documentação (também disponível no MetaEditor).

rrb1002 #: oh, posso usar isso para negociar criptografia?

Você pode negociar o que quer que sua corretora ofereça, e isso inclui criptomoedas.

 
Estou confuso. Sou novato. Pensei que fosse a linguagem MQL4. A linguagem mais recente que está sendo lançada é a MQL5? A MQL4 será compatível com a MQL5 e, com sorte, apenas estenderá a linguagem MQL4?
 
@rrb1002 #: Ok, estou confuso. Sou novato. Pensei que fosse a linguagem MQL4. A linguagem mais recente que está sendo lançada é a MQL5? A MQL4 será compatível com a MQL5 e, com sorte, apenas estenderá a linguagem MQL4?

A MQL5 já existe há mais de uma década. Ela não é "nova". Ela é madura.

O MetaTrader 4 e a MQL4 não são mais desenvolvidos há vários anos (provavelmente de 6 a 8 anos, eu acho). Apenas atualizações críticas são realizadas esporadicamente.

As linguagens são muito semelhantes e grande parte da funcionalidade é compatível, mas a funcionalidade de negociação é completamente diferente e nada compatível.

Razão: