if(newBar) // faça código p/dar valor ao newBar
{
barNumber+=1;
}
// eventos entre Low e Fast
//|--------------------------------------------------------------------|//
if(maLow[1]>maFast[1]) // Low está sobre Fast
{if(LowSobreFast==false) // Low não estava acima de Fast
{
LowSobreFast=true // memo que Low ficou acima de Fast
barNumber=1; // reinicia contagem dos Bars
}
}
else // Low está abaixo de Fast
{
if(lowSobreFast==true) // Low estava sobre Fast
{
LowSobreFast=false // memo que Low ficou anaixo de Fast
barNumber=1; // reinicia contagem dos Bars
}
}
//|-------------------------------------------------------------------|//
// eventos entre Low e Media//|--------------------------------------------------------------------|//
if(
maLow>maMedia // Low foi acima da Media&& lowAbaixoMedia==true // antes estava abaixo, agora cruzou
)
{
lowAbaixoMedia=false; // memo que Low não esta abaixo de Media
fazerAlgo=true; // já que cruzou, vai fazer algo, né?
}
if(
maLow<maMedia // Low foi abaixo da Media
&& lowAbaixoMedia==false // antes estava acima, agora cruzou
)
{
lowAbaixoMedia=true; // memo que Low está abaixo de Media
fazerAlgo=true; // já que cruzou, vai fazer algo, né? }
//|-------------------------------------------------------------------|//
// finalizando o pgm//|--------------------------------------------------------------------|//
if(fazerAlgo==true && barNumber>=20) // passaram 20 Bars após cruzamento de Low c/ Fast
{// escreva aqui o que fazer, por exemplo:
// fazer passeata com faixa de "I AM AGAINST THIS GOVERNMENT" :)
fazerAlgo=false; // false p/não executar este bloco antes de novo cruzamento
barNumber=0; // se não quer repetir eventos dentro do mesmo cruzamento maLow x maFast + 20 bars
}
Ahh esqueci de pergunta..
Vc acha melhor criar como um indice(.mqh) .. e depois chamar no EA (.mq5) principal ou fazer direto no EA (.mq5).
A principio eu estava fazendo como um indice .. mas não sei o qu é melhor.
Outra coisa .. como faço o codigo do newBar.. ??
Abs
O MQL5 tem um manual com 5 mil páginas. Não é brincadeira nem exagero, é realidade mesmo!!!
Assim não tem quem se sinta seguro em programação.
Não acho importante fazer um .MQH, para simples detecção de cruzamento de MAs.
Nem tenho qualquer experiência nisso.
Segue o código para monitorar os Bars:
void OnTick()
{
static datetime oldTime;
datetime newTime[3];
bool isNewBar=false;
// copying the last bar time to the element newTime[0]
int handle_copied=CopyTime(_Symbol,_Period,0,3,newTime);
if(handle_copied>0) // dados copiados com sucesso
{
if(oldTime!=newTime[0]) // se oldtime não é igual a hora atual
{
isNewBar=true; // = true qdo é um novo Bar
numBarPeriod+=1; // pode contar aqui quantos bars
oldTime=newTime[0]; // achamos um novo Bar, então memorizamos sua hora
}
}
else // matriz com datas não funcionou
{
Comment("Erro ao copiar historical times data, error =",GetLastError());
ResetLastError();
return;
}
// ---------------------------------//
// seu código deve ficar aqui
// ---------------------------------//
} // chave de enceram/do OnTick()
Não se sinta pequeno por não ser programador.
O MQL5 tem um manual com 5 mil páginas. Não é brincadeira nem exagero, é realidade mesmo!!!
Assim não tem quem se sinta seguro em programação.
Não acho importante fazer um .MQH, para simples detecção de cruzamento de MAs.
Nem tenho qualquer experiência nisso.
Segue o código para monitorar os Bars:
void OnTick()
{
static datetime oldTime;
datetime newTime[3];
bool isNewBar=false;
// copying the last bar time to the element newTime[0]
int handle_copied=CopyTime(_Symbol,_Period,0,3,newTime);
if(handle_copied>0) // dados copiados com sucesso
{
if(oldTime!=newTime[0]) // se oldtime não é igual a hora atual
{
isNewBar=true; // = true qdo é um novo Bar
numBarPeriod+=1; // pode contar aqui quantos bars
oldTime=newTime[0]; // achamos um novo Bar, então memorizamos sua hora
}
}
else // matriz com datas não funcionou
{
Comment("Erro ao copiar historical times data, error =",GetLastError());
ResetLastError();
return;
}
// ---------------------------------//
// seu código deve ficar aqui
// ---------------------------------//
} // chave de enceram/do OnTick()
Cara valeu .. mesmo eu peguei esse manual .. é enorme mesmo .. mas achei muitas partes mal explicadas .. tipo poderia ter mais exemplos acho que isso ajudaria bastante ..
valeu pelo programa e pela ajuda
abs
Pessoal, estou precisando de um indicador com 2 medias moveis, sendo:
1º Linha: Média/Período: 2 / Deslocamento/Período: 2 / Exponencial / Calculado Sobre: Abertura
2º Linha: Média/Período: 2 / Deslocamento/Período: 1 / Exponencial / Calculado Sobre: Fechamento
Tempo Gráfico: 1M e/ou 2M
Pode ser parametrizada apenas como estratégia, ou como robô, onde eu dê apenas a 1º ordem (compra/venda), e depois ele segue dando as entradas/saídas e reversão da ordem (após a saída), conforme o cruzamento das médias (para cima e/ou para baixo).
Espero ter sido claro em minha explanação.
Desde já agradeço pela apoio.
- www.mql5.com
Boa tarde, pessoal.
Estou tentando criar meu primeiro indicador/robo baseado nas seguintes configuracoes:
- Compra quando cruzar a VWAP (somente compra e, claro, no sentido favoravel)
- Venda quando cruzar a EMA9 (somente venda...)
- Trailing Stop/ Stop Loss ajustável
- Uma unica operacao dentro de um candle de 60min de modo que perdeu ou ganhou, fecha posicao e so entra no proximo candle de 60min.
Faz algum sentido essa estrategia? é possível implementar?
Agradeco desde já. abraco.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Oi galera, tudo bem ? Acabei de começar a estudar mql5 e estou tendo problemas em fazer um programa de cruzamento de médias. Gostaria de fazer um cruzamento de 3 médias móveis..
Eu consigo fazer duas porém, na terceira estou tendo problemas. Para exemplificar melhor o meu problema, suponha que tenhamos uma Ma_rapida , Ma_médio e Ma_lenta.. Quando a lenta cruza com a média.. Gostaria de verificar se a mais rápida já cruzou a mais lenta dentro de um intervalo específico tipo 20 bars..
Como faço isso ??
Obrigado pela ajuda
Abraçao a todos