[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 603
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
leia aqui https://forum.mql4.com/ru/38949/page2#434212
A função ExistPosByPrice().
Esta função retorna uma bandeira para a existência de uma posição a um determinado preço em aberto.
O que éuma bandeira Existente?
Portanto, pergunte se você escreveu corretamente a função que está mostrando, caso contrário, você está perguntando sobre uma coisa e mostrando outra.
leia aqui https://forum.mql4.com/ru/38949/page2#434212
A função ExistPosByPrice().
Esta função retorna uma bandeira para a existência de uma posição a um determinado preço em aberto.
O que é"Bandeira Existente"?
Uma bandeira é uma variável, geralmente do tipo bool, que é ajustada a um estado dependendo da verdade da condição a ser verificada (aqui - há uma posição com um determinado preço de abertura).
não que desta vez para o sinal == exista apenas por 1 segundo.
é correto ou colocar o sinal >=
ou passar pelo controle de duas variáveis temporais - atual e anterior.
Mas, por outro lado, você tem um erro lógico. Você está tentando vincular um segundo a um resultado positivo de uma operação lógica de uma condição de abertura de ordem.
Isto não é correto. A ordem pode não abrir, o que significa que você não tentará abri-la no próximo tick - já que a função de tempo retornará falsa
Eu tive a idéia geral. Eis o que saiu:
N é o número de minutos após a abertura do bar diário. Até o momento, ainda não descobri como obtê-lo, por isso escrevi uma variável pura. Parece estar correto.
sergeev:
Você tem que ligar a memorização da operação bem sucedida ao tempo.
pensar.
Mas eu gostaria de esclarecer o que você quer dizer com "binding binding", lembrando-se de uma operação bem sucedida ao tempo. Eu não entendi bem.
Eu tive a idéia geral. Eis o que saiu:
N é o número de minutos transcorridos desde a abertura do bar diário. Até agora eu não entendia como obtê-lo, então escrevi puramente uma variável. Parece estar correto.
Sergeev:
Mas quero explicar mais claramente, como conectar a memorização da operação bem sucedida com o tempo. Eu não entendo bem.
Não é o tempo em si que é importante para você, mas se algo foi feito dentro de um certo período de tempo - isto é o que você deve verificar.
P.S. E você não precisa determinar N, apenas faça sua verificaçãose(TimeCurrent() >= iTime(Symbol(),1440,0) ) até que as ações necessárias estejam concluídas (instalando uma ordem).
Uma bandeira é uma variável, geralmente do tipo bool, que é definida para um estado dependendo se a condição é verdadeira ou não (aqui - se há uma posição com um determinado preço em aberto).
Estou vendo, qual é a posição INDEX? não é um ticker, e não é um tipo....
Entendi, o que é um índice de pedidos ? não é um ticker, e não é digitado....
Este é o índice que determina a posição da ordem na matriz onde os dados sobre as ordens presentes no terminal são armazenados.
Em outras palavras,está sublinhado (em SELECT_BY_POS) boolOrderSelect(int index, int select, int pool=MODE_TRADES)
Este é o índice que define a posição do pedido na matriz onde os dados sobre os pedidos presentes no terminal são armazenados.
Ou seja,o que está sublinhado( com SELECT_BY_POS) bool OrderSelect(int index, int select, int pool=MODE_TRADES)
mas como aplicar isto na prática se você precisa codificar a condição "se as duas últimas negociações foram perdidas....."? ??
mas como usar isso na prática se você precisa codificar a condição "se as duas últimas negociações fossem perdedoras....."? ??
Na prática, isto é usado em todas as operações que trabalham com ordens. É preciso primeiro selecionar a ordem e depois fazer algo com ela (ver as informações da ordem, enviar uma ordem de serviço ao servidor para modificá-la ou fechá-la). Há duas maneiras de selecionar ordens no terminal, por ticket, que é o número atribuído à ordem no servidor que não muda para uma determinada ordem, ou pelo número da ordem (índice) sob o qual a ordem é armazenada no terminal. Este número pode mudar a cada tick, dependendo de quais e quantos pedidos são abertos, definidos, fechados ou excluídos.
Para trabalhar com pedidos, é necessário organizar ciclos de avaliação de pedidos.
Não é o tempo em si que importa, mas se algo foi feito dentro de um certo período de tempo, isso é o que você deve verificar.
P.S. E você não precisa definir N, apenas faça sua verificaçãose(TimeCurrent() >= iTime(Symbol(),1440,0) ) até que a ação que você deseja esteja concluída (estabelecendo uma ordem).
Mas, se você definir desta forma:
Desta forma, o sinal será válido o tempo todo após a abertura do bar e . Ao infinito. Por que eu preciso dele? O principal é abrir um pedido na abertura de um bar, não de uma embalagem.