[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 155
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
na definição de uma tendência?
Em uma mudança de tendência ao longo de um período de tempo... Ver https://www.mql5.com/ru/forum/131277/page148 e https://www.mql5.com/ru/forum/131277/page149
Você pode me dizer por que OrderSelect retorna VERDADEIRO mesmo que o pedido com este bilhete não exista (ele é deletado)?
em uma mudança de tendência em uma parte do tempo...
Por favor me diga se a função Tp e Slossa funciona aqui
if (total > 0) AveragePrice = NormalizeDouble(AveragePrice / Count, Digits);
if (NewOrdersPlaced) {
for (cnt = OrderTotal() - 1; cnt >= 0; cnt--) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_BUY) {
PriceTarget = AveragePrice + TakeProfit * Ponto;
BuyTarget = PriceTarget;
Stopper = AveragePrice - Stoploss * Ponto;
flag = TRUE;
}
}
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_SELLL) {
PriceTarget = AveragePrice - TakeProfit * Ponto;
SellTarget = PriceTarget;
Stopper = AveragePrice + Stoploss * Ponto;
flag = TRUE;
compilou multa para mim
Desculpe, o Indicador funciona - era assim que era originalmente, e o erro está no arquivo tcht - ele não compila.
Posso usar o init para fazer cálculos para o buffer de indicadores?
Eu queria recalcular no init todas as barras, exceto a barra zero e na barra zero inicial - isso não conta...
Você pode me dizer por que a OrderSelect retorna VERDADEIRO mesmo que não exista uma ordem com tal bilhete (ele foi apagado)?
Você já leu bem a referência da função?
Vamos lê-lo novamente:
---------------------------------------------------------------------------------------------------------------------------------------------------------------
O parâmetro do pool é ignorado se o pedido for selecionado pelo número do bilhete. O número do bilhete é um identificador único para o pedido. Para determinar a partir de qual lista um pedido é selecionado, devemos analisar sua hora de encerramento. Se o tempo de fechamento do pedido for 0, então o pedido está aberto ou pendente e é retirado da lista de posições abertas do terminal. Uma posição aberta pode ser diferenciada de uma ordem pendente por seu tipo. Se o tempo de fechamento não for igual a 0, então o pedido é fechado ou pendente e foi selecionado a partir do histórico do terminal. A distinção entre uma ordem fechada e uma ordem pendente excluída também pode ser feita por tipo de ordem.
SELECT_BY_POS - o parâmetro de índice contém o número do índice da posição na lista,
SELECT_BY_TICKET - o parâmetro do índice contém o número do bilhete.
MODE_TRADES (padrão) - a ordem é selecionada entre ordens abertas e pendentes,
MODE_HISTÓRIA - o pedido é selecionado entre os pedidos fechados e excluídos.
---------------------------------------------------------------------------------------------------------------------------------------------------------------
Este aqui:
O parâmetro do pool é ignorado se o pedido for selecionado pelo número do bilhete. O número do bilhete é o identificador único do pedido. Para determinar a partir de qual lista um pedido é selecionado, seu horário de fechamento deve ser analisado. Se o tempo de fechamento do pedido for 0, então o pedido está aberto ou pendente e é retirado dalista de posições abertas do terminal.
Você faz o quê?
Mostrei em vermelho o pool de parâmetros, que é ignorado ao escolher por bilhete e uma ordem é retirada de qualquer lista (aberta ou fechada) de posições do terminal. É por isso que ele retorna a verdade. Afinal, tal bilhete existe e uma ordem é selecionada, mas a partir da lista de ordens fechadas...
Devemos fazer isso dessa maneira:
... ou:
... ...ou:
Acho que já expliquei muito bem... :)
artmedia70
Obrigado por uma resposta tão detalhada e abrangente. Realmente o mais claro possível :) THX!!!
artmedia70
Obrigado por uma resposta tão detalhada. O mais claro possível :) THX!!!
:) Obrigado. Seja bem-vindo.
Gostaria de alertar sobre algumas "insidiosidades" na seleção de posições em aberto através de seu ingresso. O problema é que ao final de um dia de negociação, quando uma posição é movida para o dia seguinte, a corretora reabre a ordem. Ou seja, a posição atual é fechada e outra posição é aberta com o mesmo volume, mas com um novo bilhete incluindo a troca. Portanto, seu Expert Advisor deve acompanhar as ordens reabertas e levar em conta seus novos tickers, caso contrário tudo "fluirá" - a ordem com o ticker antigo aparecerá na lista de ordens fechadas, e você não poderá abrir uma posição existente movida para o próximo dia de negociação usando o ticker antigo. As posições parcialmente fechadas encontrarão o mesmo destino - um novo bilhete também lhes será atribuído.
Portanto, mantenha seu próprio registro rigoroso de todas as ordens da EA e acompanhe todas essas mudanças "insidiosas" no tempo.
Gostaria de alertar sobre uma certa "insidiosidade" de selecionar as posições em aberto através de seu bilhete. A questão é que ao final do dia de negociação, quando uma posição é transferida para o dia seguinte, o CD reabre a ordem.
Não sei se isto é verdade para algumas corretoras, mas a maioria delas não faz esta merda.
Não é uma regra de "boas maneiras" considerar este comportamento do CD também? Afinal de contas ... Sim, não importa... Eu apenas tento considerar tudo, bem... ou o que eu sei.
A cautela é precavida, eh? ;)