Boa noite,
Estou tentando criar 2 funções booleanas: Uma para identificar topos e fundos e uma para identificar se o candle fechou entre 2 médias.
Estou desenvolvendo um EA que eu quero bloquear a compra quando o candle anterior fechou um topo e bloquear a venda se o candle anterioro fechou em um fundo e também quero bloquear entrada compra e venda quando o candle anterior fechar entre 2 médias exponenciais (Por exemplo, se o candle anterior fechar entre as medias de 9 e 50).
queria apenas que, em cada função, ele me retornasse true ou false caso entre em tal situação.
Já tentei ver diversos materiais, documentação de indicadores, etc, mas não tô conseguindo aplicar.
Poste algum código das suas tentativas, do contrário ninguém poderá te ajudar concretamente...
Poste algum código das suas tentativas, do contrário ninguém poderá te ajudar concretamente...
Para as médias móveis, fiz uma função assim:
bool MediasMoveis() { double ask, bid, last; double smaArray1[]; double smaArray2[]; int smaHandle9; int smaHandle20; ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); last = SymbolInfoDouble(_Symbol, SYMBOL_LAST); smaHandle9 = iMA(_Symbol, _Period, 9, 0, MODE_EMA, PRICE_CLOSE); smaHandle20 = iMA(_Symbol, _Period, 50, 0, MODE_EMA, PRICE_CLOSE); ArraySetAsSeries(smaArray1, true); ArraySetAsSeries(smaArray2, true); CopyBuffer(smaHandle9, 0, 0, 5, smaArray1); CopyBuffer(smaHandle20, 0, 0, 5, smaArray2); if ((last < smaArray1[1] && last > smaArray2[1]) || (last > smaArray1[1] && last < smaArray2[1])) { return false; } return true; }
Fiz a função e acho que a lógica do if não está correta. Eu quero fazer retornar false quando o candle anterior fechar entre as médias e retornar true quando ele fechar fora das médias, seja acima ou abaixo, mas nunca entre as 2.
Sobre o Topos e Fundos, tentei usar Bandas de Bollinger mas não funcionou como eu quis. Pensei usar o Indicador ZigZag ou HiLo para identificar topos e fundos mas não consegui nem adicionar o indicador. Preciso fazer algo semelhante das médias, quando estiver em um topo ou um fundo, retornar false e quando não estiver, retornar true.
Pensei em criar 2 funções booleanas VerificaFundo() e VerificaTopo(). usar o VerificaTopo para bloquear ordens de compra e VerificaFundo para bloquear ordens de venda, pois percebi que 80% dos stops do meu robô são quando ele abre ordem de compra em região de topo e ordem de venda em região de fundo, dai quero neutralizar isso.
Se eu conseguisse adicionar um indicador que me retorne quando formar um topo e um fundo, já me ajuda, pois aí pego e faço a logica pra travar quando o indicador me desse esse valor.
Para as médias móveis, fiz uma função assim:
Fiz a função e acho que a lógica do if não está correta. Eu quero fazer retornar false quando o candle anterior fechar entre as médias e retornar true quando ele fechar fora das médias, seja acima ou abaixo, mas nunca entre as 2.
Sobre o Topos e Fundos, tentei usar Bandas de Bollinger mas não funcionou como eu quis. Pensei usar o Indicador ZigZag ou HiLo para identificar topos e fundos mas não consegui nem adicionar o indicador. Preciso fazer algo semelhante das médias, quando estiver em um topo ou um fundo, retornar false e quando não estiver, retornar true.
Pensei em criar 2 funções booleanas VerificaFundo() e VerificaTopo(). usar o VerificaTopo para bloquear ordens de compra e VerificaFundo para bloquear ordens de venda, pois percebi que 80% dos stops do meu robô são quando ele abre ordem de compra em região de topo e ordem de venda em região de fundo, dai quero neutralizar isso.
Se eu conseguisse adicionar um indicador que me retorne quando formar um topo e um fundo, já me ajuda, pois aí pego e faço a logica pra travar quando o indicador me desse esse valor.
Qual seu conceito de topo e fundo? Consegue explicar para a gente?
Conceito de topo e fundo que estou buscando é formação de pullbacks.
Quero impedir de realizar uma compra ou venda quando realizar uma retração.
Se ele está realizando uma retração no topo, se eu entrar comprado, ele volta contra mim. Se ele tá realizando uma retração de fundo, se eu entro vendido, ele volta contra mim. Quero identificar esses movimentos e não permitir entradas de compra quando for fazer uma correção no topo e não permitir operação de venda quando for fazer uma correção no fundo.
Tendência pra mim é indiferente, pois o EA que estou desenvolvendo é pra Scalp, e os stops que ele tem tomado são quando realizam operações nesses movimentos.
Preciso identificar esses pontos e retornar true e false
Consegui resolver o lance dos topos e fundos inserindo o MACD.
Fiz uma função que identifica o nível do MACD colocando média rapida 12, lenta 26 e o SMA 9 aplicado ao preço de fechamento e bloqueio pra compra quando o MACD for maior que 150 e bloqueio pra venda quando for menor que -150
Dai atendeu o que precisava, e neutralizou os Loss nesses casos.
Valeu
Consegui resolver o lance dos topos e fundos inserindo o MACD.
Fiz uma função que identifica o nível do MACD colocando média rapida 12, lenta 26 e o SMA 9 aplicado ao preço de fechamento e bloqueio pra compra quando o MACD for maior que 150 e bloqueio pra venda quando for menor que -150
Dai atendeu o que precisava, e neutralizou os Loss nesses casos.
Valeu
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- 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
Boa noite,
Estou tentando criar 2 funções booleanas: Uma para identificar topos e fundos e uma para identificar se o candle fechou entre 2 médias.
Estou desenvolvendo um EA que eu quero bloquear a compra quando o candle anterior fechou um topo e bloquear a venda se o candle anterioro fechou em um fundo e também quero bloquear entrada compra e venda quando o candle anterior fechar entre 2 médias exponenciais (Por exemplo, se o candle anterior fechar entre as medias de 9 e 50).
queria apenas que, em cada função, ele me retornasse true ou false caso entre em tal situação.
Já tentei ver diversos materiais, documentação de indicadores, etc, mas não tô conseguindo aplicar.