Estou tentando encontrar o valor de 61.8 entre um intervalo de preço.
Exemplo:
Abertura: 116950
Fibo 61.8: 116898
Fechamento: 116815
Alguem sabe uma formula matematica pra calcular essa região de fibo que possa ser aplicado no MQL?
Algo do tipo:
A + (F-A)*0,618
?
Tem que normalizar o preço para vender conforme o índice arredondando para 5 ou 10.
entrada = NormalizeDouble(MathRound(entrada/tick_size)*tick_size,val_digits);
Tem que normalizar o preço para vender conforme o índice arredondando para 5 ou 10.
entrada = NormalizeDouble(MathRound(entrada/tick_size)*tick_size,val_digits);
Veja se estou fazendo algo errado:
double entrada = rates[3].open + (rates[1].close-rates[3].open)*0.618; entrada = NormalizeDouble(MathRound(entrada/5)*5,_Digits); trade.SellStop(1,entrada,_Symbol,0,0,0,0,NULL);
Ainda esta dando Invalid Price
Veja se estou fazendo algo errado:
Ainda esta dando Invalid Price
poste as telas de log...
Veja a logica de abertura de ordem:
if(rates[4].close > rates[4].open && rates[3].close < rates[3].open-20*_Point && rates[2].close < rates[2].open-20*_Point && rates[1].close < rates[1].open-20*_Point && PositionsTotal()==0){ double entrada = rates[3].open + (rates[1].close-rates[3].open)*0.618; entrada = NormalizeDouble(MathRound(entrada/5)*5,_Digits); trade.SellStop(1,entrada,_Symbol,0,0,0,0,NULL); }
A ideia é basicamente essa, inserir uma ordem limitada na zona de 61.8:
Veja a logica de abertura de ordem:
A ideia é basicamente essa, inserir uma ordem limitada na zona de 61.8:
Não entendi o porque do erro... 155 é um preço válido. A outra possibilidade é que esse preço de 155 esteja sendo colocado dentro do range do BID e ASK, OU, dentro da área definida pela corretora, que recusa ordem nesses ranges. Veja a documentação do SymbolInfo, se me recordo bem é STOPS_LEVEL ou algo assim...
Ponha mais Prints no momento do envio da ordem assim vc entende melhor o que está acontecendo, colocando BID, ASK, LAST_PRICE, etc... E, cheque
pelo erro em SellStop(), assim vc não envia repetidas vezes a ordem...
;)
Não entendi o porque do erro... 155 é um preço válido. A outra possibilidade é que esse preço de 155 esteja sendo colocado dentro do range do BID e ASK, OU, dentro da área definida pela corretora, que recusa ordem nesses ranges. Veja a documentação do SymbolInfo, se me recordo bem é STOPS_LEVEL ou algo assim...
Ponha mais Prints no momento do envio da ordem assim vc entende melhor o que está acontecendo, colocando BID, ASK, LAST_PRICE, etc... E,
cheque pelo erro em SellStop(), assim vc não envia repetidas vezes a ordem...
;)
Consegui resolver o problema! Conforme nosso amigo Ivan Rochi me atentou, a ordem deve ser sell limit e não sell stop. Porém, acredito que ainda tenha algo de errado com o calculo da fibo, pois a ordem está sendo colocada na fibo de 38.2 e não na fibo de 61.8. Veja:
Calculo:
double entrada = rates[3].open + (rates[1].close-rates[3].open)*0.618; entrada = NormalizeDouble(MathRound(entrada/5)*5,_Digits);
Consegui resolver o problema! Conforme nosso amigo Ivan Rochi me atentou, a ordem deve ser sell limit e não sell stop. Porém, acredito que ainda tenha algo de errado com o calculo da fibo, pois a ordem está sendo colocada na fibo de 38.2 e não na fibo de 61.8. Veja:
Calculo:
Temte alterar o multiplicador para 0.382 ao invés de 0.618
Consegui resolver o problema! Conforme nosso amigo Ivan Rochi me atentou, a ordem deve ser sell limit e não sell stop. Porém, acredito que ainda tenha algo de errado com o calculo da fibo, pois a ordem está sendo colocada na fibo de 38.2 e não na fibo de 61.8. Veja:
Calculo:
apenas faça a retração a partir do fechamento, pois se close>open o acréscimo é negativo, senão é positivo.
somando ao preço de abertura na verdade está fazendo
close + (open-close)*(1-0,618)
o correto seria
double entrada = rates[3].close + (rates[3].open-rates[1].close)*0.618;

- 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
Estou tentando encontrar o valor de 61.8 entre um intervalo de preço.
Exemplo:
Abertura: 116950
Fibo 61.8: 116898
Fechamento: 116815
Alguem sabe uma formula matematica pra calcular essa região de fibo que possa ser aplicado no MQL?