Работа завершена
Техническое задание
O EA abre operações no cruzamento de duas médias móveis no timeframe configurado, ou seja, quero usá-lo em candles de 1H, 30min, 15min, etc. Vou utilizar esse EA para operar na papéis da Bovespa bem como criptomoedas. Portanto, não sei se há alguma configuração adicional a ser incluída.
* Favor inserir comentários no código de forma a possibilitar futuras atualizações
Indicadores:
1) Média Móvel Aritmética com P1 períodos – MMA_P1
2) Média Móvel Aritmética com P2 períodos – MMA_P2
3) Média Móvel Aritmética com P3 períodos – MMA_P3
4) Média Móvel Exponencial com P4 períodos – MME_P4
5) Média Móvel Exponencial com P5 períodos – MME_P5
· Parâmetros: P1, P2, P3, P4 e P5 configuráveis
Vou chamar agora o indicador DME como sendo a diferença entre os indicadores 4 e 5 da lista acima. DME = MME_P4 - MME_P5
Ordem de compra:
- condições:
1) Indicador DME maior do que Var1
2) Indicador MMA_P2 maior do que MMA_P1 (cruzamento de média móvel)
- Se o preço for Var2% acima da MMA_P1, lançar uma ordem de compra no valor da MMA_P1.
- Se o preço for Var2% abaixo da MMA_P1, lançar uma ordem de compra no valor atual do book de ofertas.
--> Exemplos
Caso 1 - Na abertura do candle, caso sejam atendidas as duas condições acima, supomos que o preço = 10, MMA_P1 = 9 e Var2% = 2%. Então o EA vai lançar uma ordem de compra no preço de 9. Ou seja, o preço maior do que 2% da MMA_P1.
Caso 2 - Na abertura do candle, caso sejam atendidas as duas condições acima, supomos que o preço = 10, MMA_P1 = 9,9 e Var2% = 2%. Então o EA vai lançar uma ordem de compra no preço de 10.
Com a ordem de compra lançada, mas ainda não executada, em cada abertura de candle verificar se as duas condições acima ainda estão sendo satisfeitas. Caso contrário, encerrar a ordem de compra. Verificar se o preço de abertura do candle é menor ou igual a MMA_P3, e nesse caso encerrar a ordem de compra.
Ordem de venda:
- assim que efetuar uma compra, lançar uma ordem stop com a seguinte configuração para preço de disparo e preço de venda.
Preço de disparo: MMA_P1 – Var3% *MMA_P1
Preço de venda: MMA_P1 – Var4%*MMA_P1
Disparo Var3% abaixo do valor de MMA_P1 e venda Var4% abaixo do valor de MMA_P1. Por exemplo: MMA_P1 = 10 e Var3% = 2%, Var4% = 3%, então lança a ordem com preço de disparo em 9,8 e preço de venda 9,7.
A cada abertura de candle, checar se MMA_P1 aumentou Var5%. Caso negativo, nada a ser feito. Caso positivo, alterar a ordem stop de venda com a configuração abaixo. Ou seja, como um stop móvel.
Preço de disparo: MMA_P1 – Var6% *MMA_P1
Preço de venda: MMA_P1 – Var7%*MMA_P1
Após a concluída a venda, o EA monitorará o preço para nova compra. Repetindo o procedimento acima.
Gostaria de controlar de alguma maneira a quantidade de lotes a serem comprados, com um parâmetro NLOTES.
Parâmetros:
P1, P2, P3, P4 , P5, Var1, Var2, Var3, Var4, Var5, Var6, Var7, NLOTES