MMA_Breakout_strategy_strategy_volume I (sem MM ou MF) - codificado por WhooDoo22

 
Achei que seria útil para novos codificadores (e codificadores experientes) postar uma versão atualizada do MMA_Breakout_strategy_Volume I, para que os codificadores novatos/experientes pudessem ter uma chance de entender as duas importantes atualizações necessárias para que este EA (volume I) funcione de forma mais suave e eficiente. Esta versão não inclui gerenciamento de dinheiro ou filtragem de mercado e ainda é considerada o volume I. (Ainda estou decidindo como implementar ambos os recursos de gerenciamento de dinheiro e filtragem de mercado no volume I para finalmente evoluir o volume I para o volume II. Compartilharei uma parte de meus pensamentos sobre a realização de ambas as tarefas de MM (gerenciamento de dinheiro) e MF (filtragem de mercado). MM: Como você bem sabe, o volume I usa uma única ordem e fecha parcialmente sua ordem como as médias móveis se cruzam. Este objetivo para MM é aumentar o tamanho do lote à medida que o saldo da conta cresce (exemplo: o saldo da conta aumenta $1.000, bloco de código ajustará o tamanho atual do lote para dobrar o tamanho atual do lote. Este bloco de código também diminuirá o tamanho do lote para metade do tamanho do lote atual se o saldo da conta perder $1.000. Este é o objetivo atual da MM. Quanto a MF: estou considerando todas as opções antes de abrir esta porta para meu inexperiente território de codificação. Posso pensar em várias maneiras de realizar esta tarefa. A questão permanece para mim, qual opção devo escolher? Comecei a codificar versões do volume II com o recurso MF para me familiarizar com novas e diferentes técnicas. A repetição de tentativas e erros me guiará para a conclusão deste projeto. Não deixe de rodar de 1999-2012.10 no prazo de M15 EURUSD para verificar o mais recente back test postado do volume I (também é considerado em parte o volume II). Em uma nota lateral, o volume I foi baixado 10.000 vezes em cerca de dois meses! WOW! :) Estou muito feliz que meu trabalho tenha se mostrado valioso para os codificadores/comerciantes. Obrigado. - WhooDoo22.
 
Como você pode selecionar um bilhete com um número 0 em uma conta Live ou Demo ? o que acontece se alguma de suas chamadas OrderSelect() falhar ? por que você não está verificando os valores de retorno e relatando erros ?

O que são valores de retorno de funções ? Como eu os utilizo ?
 
Olá Simon, entendo que atualmente existem questões menores de menos prioridade do que MM e MF por enquanto. Eu planejo vasculhar o volume II após adicionar MM e MF. Eu vou apará-lo adicionando código para selecionar ordens por número mágico, código para executar o volume II em corretores de 4-5 dígitos, etc. Entendo que há muitos pequenos detalhes de nota a serem supervisionados, mas por enquanto, o trabalho mais difícil será realizado primeiro. Sua incitação é bem recebida e pretendo cruzar esta ponte quando chegar a ela. Visitarei o link que você forneceu. Obrigado.
 
WhooDoo22:
Olá Simon, entendo que há questões menores de prioridade menor do que MM e MF por enquanto. Eu planejo vasculhar o volume II após adicionar MM e MF. Eu vou apará-lo adicionando código para selecionar ordens por número mágico, código para executar o volume II em corretores de 4-5 dígitos, etc. Entendo que há muitos pequenos detalhes de nota a serem supervisionados, mas por enquanto, o trabalho mais difícil será realizado primeiro. Sua incitação é bem recebida e pretendo cruzar esta ponte quando chegar a ela. Visitarei o link que você forneceu. Obrigado.
Se eu achasse que o que eu tinha escrito nesse link era uma boa opção ou algo a ser adicionado em uma data posterior, se tivesse tempo, eu não teria tido tempo para escrevê-lo . . . . é essencial IMO! quantos posts estão perguntando sobre o erro 130 ? ou erro 138? verifique os valores de retorno, se você tiver um problema imprima o erro e todas as variáveis relevantes . . . então quando você tiver um problema, você terá as informações necessárias para determinar a causa.

Você não pode voltar no tempo para encontrar o que era o pedido quando você tentou fazer um pedido e ele falhou... .
 

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

i++;

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

 

Simon,

Se eu achasse que o que eu tinha escrito...

RE: Entendo que esta correção é uma necessidade. Vou consertar isso, acredito que mais cedo do que pensava, porque você parece muito inflexível na aplicação desta correção. Concordo que esta correção deve ser aplicada e farei testes com a função de verificação de erros para isolar a fonte do erro. Voltarei a este Simon. Obrigado.

O que é variável i...

RE: A variável i é uma variável falsa de bilhete, mas ;) i não é realmente um bilhete; i é considerada uma variável simples pela EA. A EA conta a variável i em vez de contar o número real do bilhete (método alternativo de contagem do bilhete atual).

como pode ser um número de bilhete quando você faz isso com ela ?...

RE: A variável i não é na verdade um número de bilhete. i é uma variável de bilhete falso que é contada pela EA para acompanhar a contagem atual de números de bilhetes. Resumindo, a variável i não é considerada um número de bilhete.


Desejei responder a suas mensagens o mais rápido possível, mas não posso fornecer respostas extensas até que tenha tempo para explicar e discutir.

Obrigado por sua importante função!

 
WhooDoo22:

Simon,

Desejei responder a seus postos o mais rápido possível, mas não posso fornecer respostas extensas até que tenha tempo para explicar e discutir.

Obrigado por seu importante cargo!

Você pode responder quando tiver tempo, tudo bem :-)

Seeu for um número de bilhete falso . . . . qual é o objetivo de fazer isso ?

OrderClose( i,  0.01,Ask,30,CLR_NONE); 

não é garantido que isso falhe?

 
Acredito que existem várias maneiras de selecionar ordens, Todos os métodos de seleção de ordens devem usar a função OrderSelect(). Com isto dito, não vejo porque isto falharia porque a EA executa claramente a função OrderClose() para todas as ordens sem erro no testador de estratégia. É possível que se apresentem erros, mas não tenho notado nenhum até o momento. Serei mais específico ao afirmar isto: A "variável i" é um substituto para o número do bilhete E a variável i é usada pelos blocos de função OrderClose(). Já faz algum tempo, mas acredito que a razão pela qual escrevi o código como escrito foi porque comecei o programa no primeiro bloco de código OrderSend() IF the OrderHistoryTotal() == 0. Eu precisava selecionar um ticket não variável i para que a função OrderHistoryTotal() reconhecesse qual ticket eu estava selecionando para que pudesse "dar a luz verde" para enviar um pedido. Pode ser difícil para mim expressar isto claramente em palavras. Obrigado.
 
WhooDoo22:
Acredito que existem várias maneiras de selecionar ordens, Todos os métodos de seleção de ordens devem usar a função OrderSelect(). Com isto dito, não vejo porque isto falharia porque a EA executa claramente a função OrderClose() para todas as ordens sem erro no testador de estratégia.
Como funciona em uma conta Demo onde você tem números de ingressos que não começam em 1 e sobem de forma incremental ?
 
Não estou familiarizado com as diferenças entre demo e live, exceto pelo conceito de fundos virtuais e reais para contas. Não estou ciente desta diferença. Atualmente acredito que o OrderHistoryTotal() começa em 0 antes de qualquer pedido ser submetido E terminado. Acredito que a função OrderClose() não seria executada a menos que ;) houvesse uma variável a ser selecionada. Aqui é onde a variável i é apresentada no primeiro bloco de código na execução abaixo de "i++". Uma vez que a variável i é 1 também conhecida como i++, a função OrderClose() verifica a 1. A função OrderClose() é como, "sim, eu vejo ya i, estamos prontos para fechar esta ordem agora. Obrigado.
 
WhooDoo22:
Não estou familiarizado com as diferenças entre demo e live, exceto pelo conceito de fundos virtuais e reais para contas.
OK, estou falando da diferença entre o Testador de Estratégia e o Demo/Live . . no ST o primeiro pedido é o ticket 1 . . . acabei de colocar uma troca Demo e meu número de ticket é 46322730 . . se eu colocar uma segunda troca o número do ticket não será46322731 Nesta situação como funciona o incremento da variável que você está usando para o número do ticket ?