MMA_Breakout_strategy_strategy_volume I (sem MM ou MF) - codificado por WhooDoo22 - página 3

 
Por que você não corrige o código que é o assunto deste tópico antes de passar para outra versão ... você aprenderia tanto se o fizesse.
 
Simon,


Outro ponto . . .

RE: É importante para mim enfatizar que meu método de codificação foi o mais rápido que pude juntar tudo para confirmar meus pensamentos sobre a capacidade e o valor comercial do Volume I/II. Eu não tenho tempo suficiente em minha vida para codificar tudo "corretamente" na primeira vez. Normalmente, começo os projetos em fases. Exemplo: Fase 1. Cobre todas as bases funcionais, Fase 2. Limpar o código, 3. Acrescentar beleza ao lado visual externo da EA. Atualmente, ainda estou trabalhando na Fase 1. Há simplesmente muito mais neste EA do que uma ordem de envio típica, fechar ordem EA. Muito tempo e pensamento foram postos à prova. O teste será passado com a evolução do volume I. Estou confiante de seu reconhecimento à sua singularidade.

Dito isto, estou considerando uma opção diferente para "fazer a bola rolar" para a primeira função OrderSend(). Ainda não tenho certeza de qual direção vou tomar. Por fim, vou substituir completamente a condição "if(OrdersHistoryTotal()==0){" por uma condição confiável. Você fez um ponto importante para pensar um pouco sobre isso. Agradeço seu encorajamento.

Obrigado.

 
RaptorUK:

O que é variável i como pode ser um número de bilhete quando você faz isso com ele?

Eu tenho 4 negócios ao vivo no momento, seus números de bilhetes não são seqüenciais...

sinal de igual, deve fazer o varilhão valer alguma coisa, mas o que é isso? Eu acho que sei o que você quer dizer, como é possível, ++ é uma boa pergunta
 
WhooDoo22:
Simon,


Outro ponto . . .

RE: É importante para mim enfatizar que meu método de codificação foi o mais rápido que pude unir tudo para confirmar meus pensamentos sobre a capacidade e o valor comercial do Volume I/II. Eu não tenho tempo suficiente em minha vida para codificar tudo "corretamente" na primeira vez.

Você deve, pelo menos, fazê-lo funcionar corretamente ... este código está muito, muito longe disso. Eu disse que deve ... . isso é incorreto, você tem uma escolha, você pode continuar a escrever seu código e ter GBs de erros quando executar o ST e ter um código que não funcionará em Live ou Demo . . se você desejar.
 

Simon,

Você deve, pelo menos,...

RE: Eu não me preocupo com o tempo que levará para atingir uma meta, eu simplesmente continuo lavrando até que o projeto esteja completo. Minha escolha seria não ter GBs de erros :) Eu preferiria ouvir as críticas construtivas de meus colegas de codificação e responder e retribuir as soluções para as questões de codificação apresentadas. Estas soluções poderiam potencialmente produzir menos erros para o Volume I/II.

Obrigado.

 
WhooDoo22:

Simon,

Você deve, pelo menos,...

RE: Eu não me preocupo com o tempo que levará para atingir uma meta, eu simplesmente continuo lavrando até que o projeto esteja completo. Minha escolha seria não ter GBs de erros :) Eu preferiria ouvir as críticas construtivas de meus colegas de codificação e responder e retribuir as soluções para as questões de codificação apresentadas. Estas soluções poderiam potencialmente produzir menos erros para o Volume I/II.

Obrigado.



O que o RaptorUK deu lá, foi e ainda é uma crítica construtiva e soluções recíprocas a seus códigos
 

Simon, vou usar uma variável booleana para resolver este problema. Esta condição booleana é uma solução comum que resolverá este problema até que eu chegue à fase 2. Eu posso então dar à primeira ordem de envio de sinal uma condição única que reflete meu estilo de codificação. Obrigado por sua contribuição.

 
WhooDoo22:

Simon, vou usar uma variável booleana para resolver este problema. Esta condição booleana é uma solução comum que resolverá este problema até que eu chegue à fase 2. Eu posso então dar à primeira ordem de envio de sinal uma condição única que reflete meu estilo de codificação. Obrigado por sua contribuição.

Não, não vai . . . sua codificação mostra que você não entende, se você não entende não pode consertá-lo.
 

Simon, eu acredito que entendo, o que você acredita que eu não entendo?

Até agora, discutimos duas coisas importantes:

1. Consertar os blocos de código de emergência.

2. remover a condição atual, "se (OrdersHistoryTotal()==0{" e substituir a condição por outra diferente (minha solução atual é substituir a condição atual por uma condição booleana para iniciar as encomendas).

//example

if(x==false){OrderSend()...; x=true;}

/* now, x is true and the code block will not execute again. Of course, I would add code to save variables and if connection 
   is lost from the terminal server, all variables are saved. Simple.
   I understand the code is incorrect, but I wrote this for you to understand its concept, not a completely typed up code. */

Esta idéia de salvar variáveis é uma solução comum para a desconexão do servidor e foi sugerida pela ubzen. Eu dou crédito a ele por esta idéia.

Obrigado.

 
WhooDoo22:

Simon, eu acredito que entendo, o que você acredita que eu não entendo?

A primeira linha em sua função inicial() é esta . . .

   OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);

. qual é o número do bilhete que está selecionando? bem bilhete foi declarado sem uma configuração inicial de variável, então ele será 0 , então você está imediatamente tentando selecionar bilhete 0 , isto irá gerar um erro, se você verificar o valor de retorno deste OrderSend() você verá que, provavelmente, seria erro 4108 ERR_INVALID_TICKET . . . se você entendesse como usar OrderSend() corretamente, por que você faria isso ?


Se você entendesse OrderHistoryTotal() você não o teria usado da mesma forma que você usou e não teria dito que é ... " procurando apenas o histórico comercial da variável única do bilhete".

Se você entendesse como funcionavam os aparelhos, não teria acrescentado aparelhos desnecessários. . eles não adicionam nada, não tornam seu código mais limpo ou mais fácil de ler.

if(OrderType()==OP_BUY)                                                                     
      {
         {
         OrderModify(ticket,0,OrderOpenPrice()-5000*Point,0,0,Blue
         }
      }

pode ser substituído por . . .

if(OrderType()==OP_BUY)  
   OrderModify(ticket,0,OrderOpenPrice()-5000*Point,0,0,Blue);

O uso da variável i como número de bilhete mostra que você não entende como os números de bilhete funcionam fora do Testador de Estratégia, ou seja, em uma conta Demo ou Live ...


Você não verifica se suas funções comerciais funcionaram ou falharam, em seu código isto é crítico porque você usa o seguinte . . .

ticket = OrderSend(Symbol(),OP_BUY,0.05,Ask,30,0,0,"",0,0,Blue);

. se o OrderSend() falhar oticket = -1, mais tarde, em seu código, quando você tentar usar esta variável para selecionar e ordenar pelo número do ticket -1, ele obviamente falhará . . .