É claro que não )))) Não são SL, TP e TS que devem ser ajustados ao mínimo, mas o nível de parada. E não apenas uma vez no início do programa, mas a cada tic-tac:
digits = (int) SymbolInfoInteger(symbol, SYMBOL_DIGITS); point = SymbolInfoDouble(symbol, SYMBOL_POINT); tickSize = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE); ask = SymbolInfoDouble(symbol, SYMBOL_ASK); bid = SymbolInfoDouble(symbol, SYMBOL_BID); spread = ask - bid; stopLevel = MarketInfo(symbol, MODE_STOPLEVEL) * point; if (stopLevel == 0) { if (!isECN) stopLevel = NormalizeDouble(2 * spread, digits); } else stopLevel = NormalizeDouble(stopLevel + tickSize, digits);isECN - deve estar à disposição do usuário para a configuração. Há contas como "verdadeiro ECN" onde realmente não há limitações de distâncias mínimas, ou seja, paradas/lucros/posições podem ser definidos dentro do spread.
Obrigado. mas seu projeto é o mesmo que o meu, apenas você multiplicou na parada min = 0 apenas pelo spread*2, mas como sabemos em muitos corretores parada min = 3 spread, por que você fez 2?
Eu verifico se há uma parada mínima em cada tique.
StopLevel não ajuda, pois também retorna zero, eu uso a diferença Ask-Bid
e para a parada min, também.
Olá a todos, amigos!
Há uma característica especial do Marketplace: precisamos verificar todos os valores para a parada mínima.
Se o valor da variável for menor que a min-stop, então atribua uma min-stop, para que não haja erro 130.
Atualmente 90% dos corretores têm spread flutuante e min STOP e rendimento 0.
Há uma construção de código que atribui todas as variáveis à parada mínima.
Mas não funciona mais no mercado, porque agora o minstop = 0 em todos os lugares,
Quem está lidando com este problema?
Como opção, introduza uma restrição ao tamanho mínimo de parada. Por exemplo, no OnInit(), se um usuário definir uma parada inferior a 2 pontos, dê um aviso e devolva o código INIT_PARAMETERS_INCORRECT.
Outra opção é não permitir ao usuário controlar o tamanho da parada e calculá-la dinamicamente no Expert Advisor com base nas condições comerciais.
Alternativamente, você pode introduzir um limite para o tamanho mínimo de parada. Por exemplo, no OnInit(), se um usuário definir uma parada de menos de 2 pips, ele daria um aviso e devolveria o código INIT_PARAMETERS_INCORRECT.
Outra opção é não permitir ao usuário controlar o tamanho da parada e calculá-la dinamicamente no Expert Advisor com base nas condições comerciais.
Concordo - não dando controle, mas você sabe como é exigido pelo tipo: eu quero estabelecer minha própria parada.
Vou pensar sobre a saída da mensagem - obrigado.
Como o corretor declara que a parada mínima é zero, não há mais nada a fazer, você pode pegar um multiplicador se o spread não for suficiente.
Sim, isto é apenas para o mercado - mas não há universalidade para nenhum corretor.
a maneira como funciona é preciso fazer uma parada mínima em 3 spreads para ser aceito no mercado,
A única diferença é que o mercado os aceita - você tem que fazer uma parada min e 3 spreads, mas na verdade isto é errado - se um broker min stop = 1 spread - então o usuário não pode colocar menos de 3 spreads.
Baffle.
- 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
Olá a todos, amigos!
Háuma característica do Marketplace: precisamos verificar todos os valores para a parada mínima.
Se o valor da variável for menor que a min-stop, então atribua uma min-stop, para que não haja erro 130.
Atualmente 90% dos corretores têm spread flutuante e min STOP e rendimento 0.
Há uma construção de código que atribui todas as variáveis à parada mínima.
Mas não funciona mais no mercado, porque agora o minstop = 0 em todos os lugares,
Quem está lidando com este problema?