//+------------------------------------------------------------------+ //| Retorna o StopLoss correto em relação ao StopLevel //+------------------------------------------------------------------+ double CorrectStopLoss(const string symbol_name,const ENUM_POSITION_TYPE position_type,const int stop_loss) { if(stop_loss==0) return 0; double pt=SymbolInfoDouble(symbol_name,SYMBOL_POINT); if(pt==0) return 0; double price=(position_type==POSITION_TYPE_BUY ? SymbolInfoDouble(symbol_name,SYMBOL_ASK) : SymbolInfoDouble(symbol_name,SYMBOL_BID)); int lv=StopLevel(symbol_name),dg=(int)SymbolInfoInteger(symbol_name,SYMBOL_DIGITS); return (position_type==POSITION_TYPE_BUY ? NormalizeDouble(::fmin(price-lv*pt,price-stop_loss*pt),dg) : NormalizeDouble(::fmax(price+lv*pt,price+stop_loss*pt),dg) ); } //+------------------------------------------------------------------+ //| Verifica se o StopLoss está correto em relação ao StopLevel //+------------------------------------------------------------------+ bool CheckCorrectStopLoss(const string symbol_name,const ENUM_POSITION_TYPE position_type,const double stop_loss) { if(stop_loss==0) return true; double pt=SymbolInfoDouble(symbol_name,SYMBOL_POINT); if(pt==0) return false; double price=(position_type==POSITION_TYPE_BUY ? SymbolInfoDouble(symbol_name,SYMBOL_ASK) : SymbolInfoDouble(symbol_name,SYMBOL_BID)); int lv=StopLevel(symbol_name),dg=(int)SymbolInfoInteger(symbol_name,SYMBOL_DIGITS); return ( position_type==POSITION_TYPE_BUY ? NormalizeDouble(stop_loss-price- lv*pt,dg)<0 : NormalizeDouble(stop_loss-price+ lv*pt,dg)>0 ); }
Erros destacados.
fxsaber:
Os erros são destacados.
double price=(position_type==POSITION_TYPE_BUY ? SymbolInfoDouble(symbol_name,SYMBOL_ASK) : SymbolInfoDouble(symbol_name,SYMBOL_BID)); int lv=StopLevel(symbol_name),dg=(int)SymbolInfoInteger(symbol_name,SYMBOL_DIGITS); return (position_type==POSITION_TYPE_BUY ? NormalizeDouble(::fmin(price-lv*pt,price-stop_loss*pt),dg) : NormalizeDouble(::fmax(price+lv*pt,price+stop_loss*pt),dg) );
Qual é o erro?
Artyom Trishkin:
Qual é o erro?
É usado o preço errado.
fxsaber:
Justifique.
O preço está sendo usado incorretamente.
Artyom Trishkin:
Justificar.
Justificar.
OrderSend(_Symbol, OP_BUY, 1, Ask, 100, 0, Bid);
Ele funcionará quando StopLevel == 0.
Existe uma versão para o MT4?
Excelente trabalho! Muito obrigado!
Fácil de usar. Excelente. Excelente.
Hello there.
I am trying to use your EA, but it get out of with code 1.
It´s brazilian IBOV market. covered contracts and real account.
Os trailing stops não parecem se ajustar à medida que o preço se afasta. Há algo que eu esteja perdendo?
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
TrailingStopAndTake:
Trailing simples de ordens stop-loss e take-profit de posições abertas.
Autor: Scriptor