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
Desculpe pela pergunta indiscreta aos organizadores do Campeonato:
Como será tratada a tributação do prêmio (porque o valor de cada prêmio é muito grande):
Cada premiado terá que pagar seu próprio imposto? (e a que ritmo?) Ou será centralizada? (ou seja, os impostos já são levados em conta?).
Seria uma pena desistir da metade do prêmio por impostos!
Na verdade, é melhor não ganhar nada para não se sentir arrependido... .
Desculpe pela pergunta indiscreta aos organizadores do Campeonato:
Como será tratada a tributação do prêmio (porque o valor de cada prêmio é muito grande):
Cada premiado terá que pagar seu próprio imposto? (e a que ritmo?) Ou será centralizada? (ou seja, os impostos já são levados em conta?).
Seria uma pena desistir da metade do prêmio por impostos!
Sim, os premiados pagam seus próprios impostos - esta é uma prática padrão para prêmios em todo o mundo.
A questão é: se o código de erro não for 135 ou 138, haverá um loop? Em caso afirmativo, como se pode evitar isso, com a garantia de que as ordens serão fechadas?
Não há como testar se este fechamento de pedidos sempre funcionará corretamente:
Leia o artigo de aconselhamento novamente, por favor.
Negligência grosseira no controle de erros com looping
(Eu tenho controle de erros, ordens pendentes não são usadas, ou devo fazer uma condição de saída de loop também? O que fazer então com a garantia de fechamento do pedido? Ou talvez eu não tenha processado todos os códigos de erro?
Falta de controle do OrderSelect - processos assíncronos em ação
(sim, eu não verifico o que a Order_Select retorna! Bem, digamos que se neste caso em particular ele retornar falso, o que mudará dentro do laço, ou o que será incorreto? Não estou modificando o pedido, estou fechando-o!)
Saltar a função de atualização do ambiente de mercado através de RefreshRates()
(acho que atualizo, tudo deve ficar bem aqui)
Talvez haja uma peça de código pronta para fechar TODOS os pedidos... Eu apreciaria se você pudesse publicá-la!
P.S. o que Rosh sugeriu http://www.alpari-idc.ru/ru/experts/articles/9.html , não garante o fechamento dos pedidos!
- O resultado da OrderSelect não é verificado
- o resultado do OrderClose() não é verificado explicitamente
- GetLastError() pode ser chamado sem nenhuma operação comercial (por exemplo, se você encontrou uma ordem pendente)
- RefreshRates() nem sempre é chamado, mas somente quando há uma falha - este é um erro grosseiro.
- se houver ordens pendentes na lista, este é um loop de 100%.
Como resultado: há 5 erros em 9 linhas - o código só pode ser jogado fora.Mesmo 5 erros:
- O resultado da OrderSelect não é verificado
- o resultado do OrderClose() não é verificado explicitamente
- GetLastError() pode ser chamado sem nenhuma operação comercial (por exemplo, se você encontrou uma ordem pendente)
- ...
Como resultado: há 5 erros em 9 linhas - o código só pode ser jogado fora.A OrderSelect deve selecionar e a OrderClose deve fechar as ordens necessárias.
E não deve haver nenhum erro :-)
Ou às custas do cliente :-)
Há até 5 erros:
Restrições: pedidos pendentes não são utilizados
1. Por que devemos verificar o resultado se precisamos fechar um pedido? Se ele retornar falso, voltará a ele na próxima passagem, já que um loop é usado durante algum tempo.
2. Ver o ponto 1.
3. Há uma verificação de códigos de erro para este fim.
4. Se atualizar sempre, então não há sentido em verificar erros :(
5. Sem ordens pendentes
Todos os exemplos de fechamento de pedidos que encontrei em minha busca são de passagem única e só funcionam se tudo estiver bem com o servidor, sem solicitações, etc. E todos eles levam ao fato de que um dia um pedido não fechará e teremos um bom lucro... Se eu estiver errado, me corrija, ou me dê um link onde eu possa ser convencido de que estou errado.
É claro que estou bem ciente de que meu código pode levar a um loop, mas na minha opinião é melhor do que o risco de não fechar uma ordem, o que poderia levar a sérias perdas financeiras.
Embora fosse melhor se todas as ordens fossem fechadas com 100% de garantia e não houvesse possibilidade de uma ordem vadiagem, este é o código que eu gostaria que você me desse =)
Aqui está um código ligeiramente modificado, que deve até mesmo levar em conta as ordens pendentes:
Não é tão "imprudente" como o anterior?
Ainda não entendo, por que verificar OrderSelect e OrderClose neste caso?
OrderSelect deve ser sempre verificado, isto é explicitamente declarado nas Dicas Úteis:
Normalmente, um comerciante percebe seu programa como uma única tarefa e a única tarefa. Mas na realidade, há muitas mudanças assíncronas na conta comercial durante o funcionamento do Expert Advisor. As posições são modificadas, adicionadas e excluídas. Se o resultado de cada chamada OrderSelect() não for controlado, então pode acontecer que em um determinado momento o especialista opere com dados errados (zero) e faça um movimento errado.
Infelizmente, não há garantias nas operações comerciais. O código acima é muito melhor do que o anterior.
OrderSelect deve ser sempre verificado, isto é explicitamente declarado nas Dicas Úteis:
... As posições são modificadas, acrescentadas e removidas. ...
Sem comentários sobre "adicionado e removido" :-(
Por favor, me dê um exemplo de código funcional usando OrderSelect para obter OrderCloseTime.