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
sim, eu vi q vc disse, e o mini dolar anda de meio em meio ponto, o que não estou conseguindo é resolver esse problema de fazer o BKE para o mini dolar, para o mini indice funciona blzinha, como eu ja disse. E sim, eu opero manual tanto no mini indice como no mini dolar e sim, sei o que é spread.
O caso aqui, é que quero fazer esse breakeven rodar no mini dolar
vc pode ajudar ?
Obrigado desde ja
Cara retira esse vezes 1000 e verifica os parametros do startBreakeven, muito provavelmente esta dando invalid stop porque o preco nao andou suficiente para o stop de breakeven ser considerado valido. ex. Voce quer numa operacao que esta com perda, querendo mover para o breakeven. Obviamente nao vai aceitar. Seu problema deve ser anterior na chamada ou esta passando aquele segundo parametro errado.
Outra coisa, o WDO$ nao eh operavel. Se quiser operar ele, eh so via o testador de estrategia.Olá Fernando.
Por que você está multiplicando o _positionOpened por _Point? Isso funciona no mini-índice porque _Point no índice é igual a 1, já no WDO a coisa muda. Você tem que criar um ajuste de dígitos sempre que for modificar sua posição, e tal ajuste deve ser em função do número de dígitos do símbolo. Sua solução pode não funcionar em uma corretora onde _Digits no WDO for diferente de 3.
Eu faço assim:
Sempre que for modificar um preço que vai ser inserido na função PositionModify, somar ou subtrair uma quantidade k de pontos a esse preço dado, certifique de fazer:
Espero ter ajudado.
Fala experts
estou com esse msm problema, mas ainda nao conseguir resolver , aparece o erro somente depois das 10hs kkkkk engraçado que nas entradas anteriors ele funcionou normal sem apresenta erros
se alquem puder me dar um help seque meu be e ts
//============================================================================ void Breakeven(double preco) { int PosTotal = PositionsTotal(); for(int i = PosTotal - 1; i>=0; i--) { string symbol = PositionGetSymbol(i); if(symbol == _Symbol) { /* double digits_adjust=(_Symbol._Digits()==1 ||_Symbol._Digits()==3 || _Symbol._Digits()==5) ? 1/_Point : 1; double adjusted_point=_Symbol._Digits()*digits_adjust; stoploss =stoploss*adjusted_point; takeprofit =takeprofit*adjusted_point;*/ ulong PositionTicket = PositionGetInteger(POSITION_TICKET); double PrecoEntrada = PositionGetDouble(POSITION_PRICE_OPEN); double TakeProfitCurrent = PositionGetDouble(POSITION_TP); double StopLossCurrent = PositionGetDouble(POSITION_SL); /*SymbolInfoInteger(_Symbol,SYMBOL_DIGITS,_Digits); SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE,tickSize); preco=NormalizeDouble(MathRound(preco/tickSize)*tickSize,_Digits);*/ if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) { if(preco >= PrecoEntrada + GatilhoBE[BE]) { if(StopLossCurrent!=PrecoEntrada+alvoBE[BE]) { if(trade.PositionModify(PositionTicket, NormalizeTick(PrecoEntrada+alvoBE[BE]),TakeProfitCurrent)) { Print("Breakeven - sem falha11"+IntegerToString(trade.ResultRetcode())+", RetcodeDescription: "+ trade.ResultRetcodeDescription()); flagBEST = true; BE++; } else { Print("Breakeven - com falha11"+IntegerToString(trade.ResultRetcode())+", RetcodeDescription: "+ trade.ResultRetcodeDescription()); } } } } else if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) { if(preco <= PrecoEntrada - GatilhoBE[BE]) { if(StopLossCurrent!=PrecoEntrada-alvoBE[BE]) { if(trade.PositionModify(PositionTicket, NormalizeTick(PrecoEntrada-alvoBE[BE]),TakeProfitCurrent)) { Print("Breakeven - sem falha"+IntegerToString(trade.ResultRetcode())+", RetcodeDescription: "+ trade.ResultRetcodeDescription()); flagBEST = true; BE++; } else { Print("Breakeven - com falha"+IntegerToString(trade.ResultRetcode())+", RetcodeDescription: "+ trade.ResultRetcodeDescription()); } } } } } } } //===================================================================== //============================================================================ double NormalizeTick(double num) { if(mercado==0)//B3 return ceil(num/tickSize)*tickSize; else return ceil((num*_Point)/tickSize)*tickSize; }meu trailingstop tbm , porfavor me ajudem
Quem é o preço que você esta enviando para função?
Vem de onde?
Ja seleciono aqui:
O problema não é selecionar a ordem, é fazer o breakeven no Dolar (WDO)
meu trailingstop tbm , porfavor me ajudem
Segue um exemplo de como percorrer a lista de posições.