Organizando o ciclo do pedido - página 10

 
Alexey Viktorov:

Quem se machucou quando uma ordem foi re-selecionada?

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Organização de um ciclo de repetição de pedidos

fxsaber, 2017.10.06 06:26

Pode levar a uma situação em que algum bilhete será perdido ou um bilhete através de um será repetido, etc.

E não se trata sequer de modificação, trata-se de simples pedidos de quantidades.

 
fxsaber:

Por que, se IsChange é cinco linhas?

Não para resolver este problema em particular. É para minha biblioteca - e muitos problemas necessários para a criação de programas confortáveis são resolvidos lá. Mas, em particular, apenas retorna o fato de qualquer mudança nas listas de mercado ou histórico.

 
fxsaber:

E não se trata sequer de modificação, trata-se de simples pedidos de quantidades.

Você simplesmente não precisa passar pelas listas do ambiente, que são embaralhadas quando o ambiente muda, mas tem sua própria lista - não é embaralhada, e tem todas (ou em excesso, mas não em deficiência) as passagens que você precisa para fechar/apagar/modificar. Se estiverem fisicamente ausentes, não é preciso recomeçar o ciclo, basta passar para o próximo da lista. E isso é tudo - não há necessidade de alterar o índice do laço ou tentar repetir o laço de alguma forma. Simplesmente vamos à nossa lista e tentamos fazer o que precisamos. Nenhum bilhete está no mercado - nada de mais (você não pode devolvê-lo já) - vamos para o próximo e fazemos o que queremos com ele. E o cronômetro, por sua vez, corrigirá a lista no próximo tick.

 
fxsaber:

E não se trata sequer de modificação, trata-se de simples pedidos de quantidades.

É claro que pode. Qualquer coisa pode acontecer, a qualquer momento. Você está caminhando, está caminhando, tudo está bem e de repente você escorrega... Não há rede de segurança para tudo. É por isso que eu não tento escrever funções maximamente universais "para todas as ocasiões". Então, o que importa se um pedido é selecionado duas vezes para um simples Pedido de Quantidade? Qual é a probabilidade de a ordem ser fechada/apagada manualmente exatamente no momento da execução do loop? Porque no exemplo dado, a ordem está sendo fechada no mesmo ciclo. Isto pode ser feito apenas como uma experiência, mas não posso imaginar que tenhamos de modificar a ordem ou fazer outra coisa e fechá-la imediatamente...

 
Artyom Trishkin:

Você simplesmente não precisa passar pelas listas do ambiente que são embaralhadas quando o ambiente muda, mas tem sua própria lista - não é embaralhada, e tem todas (ou em excesso, mas não em insuficiência) das passagens que você precisa fechar/apagar/modificar. Se estiverem fisicamente ausentes, não é preciso recomeçar o ciclo, basta passar para o próximo da lista. E isso é tudo - não há necessidade de alterar o índice do laço ou tentar repetir o laço de alguma forma. Simplesmente vamos à nossa lista e tentamos fazer o que precisamos. Nenhum bilhete está no mercado - nada de mais (você não pode devolvê-lo) - nós vamos para o próximo e fazemos o que queremos com ele. E o cronômetro, por sua vez, corrigirá a lista no próximo tick.

Suponhamos que queremos desativar a EA se o número de pedidos para um determinado símbolo exceder o número especificado. Então, como?

 
Alexey Viktorov:

É claro que pode. Qualquer coisa pode acontecer, a qualquer momento. Você está caminhando, está caminhando, tudo está reto e, de repente, você escorrega... Não há rede de segurança para tudo. É por isso que eu não tento escrever funções maximamente universais "para todas as ocasiões". Então, o que importa se um pedido é selecionado duas vezes para um simples Pedido de Quantidade? Qual é a probabilidade de a ordem ser fechada/apagada manualmente exatamente no momento da execução do loop? Porque no exemplo dado, a ordem está sendo fechada no mesmo ciclo. Isto pode ser feito apenas como uma experiência, mas não posso imaginar que tenhamos de modificar a ordem ou fazer outra coisa e fechá-la imediatamente...

Você não assistiu a isso? Reproduzível em pouco tempo!

 
fxsaber:

Suponhamos que queremos desativar a EA se o número de pedidos para um determinado símbolo exceder o número especificado. Então, como?

Lá - no cronômetro ao escrever ordens para a lista - excedeu - enviou um evento ou ergueu uma bandeira.

 
Artyom Trishkin:

Lá - no cronômetro ao escrever ordens para a lista - excedeu - enviou um evento ou ergueu uma bandeira.

Entretanto, é melhor não fazer isso - tudo deveria estar em seu lugar.

No temporizador do Expert Advisor tomamos a lista de acordo com os critérios necessários e na lista.Total()>xxx fazemos o que queremos.

 
fxsaber:

Você não assistiu a isso? É jogável em pouco tempo!

Foi exatamente isso que eu observei.

    
  // Закрыли позиции
  for (int i = 0; i < Total; i++)
    OrderClose(Tickets[i], 1, SymbolInfoDouble(_Symbol, SYMBOL_BID), 100);
}


E meu posto

Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais

Como organizar um loop de pedidos

Alexey Viktorov, 2017.10.06 08:49

Qual é a probabilidade de fechar/eliminar manualmente uma ordem exatamente no momento da execução do ciclo?


E também, qual é o sentido mais profundo no comércio real para perseguir continuamente o ciclo da ordem? O mais importante para nada...

 
Alexey Viktorov:

Além disso, qual é o significado mais profundo na negociação real de uma corrida contínua através de um ciclo de ordens?

Em um ambiente de combate, isso deve ser sempre feito! Portanto, a probabilidade de correr para um lado fechando uma posição dentro de um ciclo é uma porcentagem.