aventuras de um novato - página 5

 

Hey Tim,

Estive acordado até cerca das 2h de ontem transformando o PSC em C (pseudocódigo em código). Comecei logo após chegar em casa do trabalho.

Terminando o primeiro rascunho, percebi i) que faltavam algumas coisas, ii) que tínhamos que fazer tudo 'par' específico.

Só para verificar se estou nas linhas certas, você poderia compartilhar alguma sabedoria sobre isso?

1. Não podemos usar 3 ema's sem especificar o símbolo quando declaramos cada iMA ou a EA não funcionará corretamente. assim, temos que declarar 15 ema's (5 símbolos com 3 Ma's por símbolo)?

2. Perdemos a função CountOrders. Novamente, por causa de 5 pares. Precisamos de 10 funções, por exemplo: EUR_USD_BuyCount, EUR_USD_SellCount; etc. ?

3. Eu percebi que há uma maneira eficiente de escrever o código, e uma maneira 'novato'. Eu faço a maneira do novato e então gostaria que você me mostrasse como torná-la eficiente.

4. Números Mágicos. Eu aspiro ao que você está fazendo e, portanto, gostaria de executar vários EA's ao mesmo tempo. Investiguei os Números Mágicos, mas pela minha vida não consigo entendê-los, nem mesmo de outros códigos. Você poderia me indicar um lugar onde eu possa aprender mais sobre como fazer com que o computador diferencie os diferentes EA's.

Obrigado.

Nick

 

Oi Nick

Sinto muito, mas você está me perdendo aqui. Parece que estamos colocando a carroça novamente à frente dos cavalos e, conseqüentemente, estamos retrocedendo. Em meu post anterior sugeri que você criasse uma estrutura básica para seu programa usando o assistente de EA MetaTrader e o pseudo-código que já tínhamos escrito. Você pode voltar atrás e completar esse passo e postar os resultados (o arquivo mq4) neste fórum para que eu possa dar uma olhada? Então podemos passar para o próximo passo. Você certamente não precisa de 15 ema's, 10 funções ou números mágicos para isso e, no caso improvável de termos problemas com requisitos específicos de corretagem, podemos lidar com eles se e quando chegarmos a eles.


Eu provavelmente posso orientá-lo através do processo de escrever sua primeira EA, mas somente se você estiver disposto a fazê-lo um passo de cada vez e postar os resultados de volta neste fórum a cada vez para que eu os revise. Caso contrário, acho que este pequeno projeto vai simplesmente sair dos trilhos, desperdiçando meu tempo e o seu.

Você disse - eu faço à maneira de novato e depois agradeceria se você pudesse me mostrar como torná-lo eficiente.

Nick, é um exercício frustrante e demorado, tentando resolver alguns códigos ruins. Normalmente, não vale a pena o esforço.


Cumprimentos

Tim

 

Hey Tim,

Desculpe tê-lo frustrado, eu o entendi mal. Você disse que eu deveria codificar agora, apesar de não correr e por isso pensei que deveria ir em frente e codificá-lo. Assim, eu passo bastante tempo codificando-o, tentando alevizar o trabalho de você - mas acabou sendo o contrário.

Mas não se preocupe, eu coloco o PseudoCódigo no quadro da EA, se é isso que você quer dizer. Então você poderia me guiar através de cada bloco se você não tiver perdido a paciência até lá :)

 

Hey Tim,


Anexei o Código Pseudo em um formato EA com parênteses editando-o. Avise-me se eu ainda não entendi o que você quis dizer e eu o troco conforme necessário. Somente as bandeiras e filtros que declarei para economizar seu tempo. Eu não toquei em mais nada. Eu não criei nomes para funções porque ainda não entendi o que elas serão, como você claramente entendeu a partir da minha última mensagem. Qual é o próximo passo a partir daqui, chefe?

Arquivos anexados:
 
niko:

Hey Tim,


Anexei o Código Pseudo em um formato EA com parênteses editando-o. Avise-me se eu ainda não entendi o que você quis dizer e eu o troco conforme necessário. Somente as bandeiras e filtros que declarei para economizar seu tempo. Eu não toquei em mais nada. Eu não criei nomes para funções porque ainda não entendi o que elas serão, como você claramente entendeu a partir da minha última mensagem. Qual é o próximo passo a partir daqui, chefe?

Olá. Fiquei impaciente - embora concorde com a necessidade do pseudocódigo, acho que vocês estavam exagerando um pouco (desculpe Tim).

Acabei de engravidar isto. Só gastei realmente meia hora nele, não o verifiquei por erros, sintaxe, etc., etc.

Mas se você der um giro, deve estar bem perto do que você precisa. Eu o deixei propositalmente como um osso nu para que você veja a estrutura, mas para que você ainda tenha trabalho a fazer. Como exemplo, deixei propositalmente de fora toda a verificação de erros na função fnTrade e um erro no manuseio do TakeProfit.


CB


ATUALIZAÇÃO: Devido ao cargo subseqüente de Tim, eu apaguei a EA que eu criei para você e vou recuar e deixar Tim fazê-lo em seu lugar.


TIM: Com referência ao seu post sobre a lógica das múltiplas moedas, eu tinha estruturado aquela EA para ser símbolo-agnóstica, pois foi isso que Nick me disse que queria enquanto eu estava trabalhando com ele antes de você chegar para assumir.

 

Oi Nick. Quebra-nuvem

Quebra-nuvens, observo sua frustração com o progresso lento. Pensei que o objetivo deste exercício era ensinar a Nick como programar usando o MT4. Julgando por muito do código e discussões relacionadas à codificação que vi neste fórum, mantenho minha afirmação de que uma abordagem sistêmica é a mais confiável e muitas vezes a maneira mais rápida de produzir um código de boa qualidade.


No entanto, entendo que este é um projeto bastante trivial e que qualquer programador proficiente iria criar algo como isto muito rapidamente, com um mínimo de formalidade. Vou me esforçar para levar as coisas o mais rápido que puder para minimizar a frustração de todos, mas tenha em mente que aprender muitas vezes leva tempo e é fácil para aqueles que podem fazer para ficar frustrados com aqueles que estão tentando aprender.

Nick,

O código que você postou não era bem o que eu estava procurando. Fiz algumas anotações para você no código com algumas coisas para você fazer.

A próxima tarefa é fornecer uma maneira de lidar com os diferentes pares de moedas sem escrever procedimentos separados para cada par.


Uma maneira de fazer isso seria declarar os pares de moedas como um ARRAY of STRINGS na área de declaração global.

Em seguida, no bloco principal do programa - (função iniciar) Use um loop FOR para indexar através da matriz

Nick pode programar este código e depois postá-lo de volta no fórum


Também precisamos começar a pensar no tratamento de erros. testes e depuração. Uma maneira comum de fazer isso no MetaTrader é usar os arquivos de log. Acrescentei algumas linhas no EA para tentar começar.

Por favor, dê uma olhada e tente entender o que eu fiz. Você pode executar o código e dar uma olhada no arquivo de log em uma conta ativa ou no testador de estratégia.


Cumprimentos

Tim

Arquivos anexados:
 

Ei, pessoal,

Obrigado a ambos por seu apoio nesta jornada! Concordo que uma abordagem sistemática é essencial para um novato, mas igualmente importante é mergulhar no código. Esses dois componentes ajudam um ao outro a crescer e incentivam o processo de aprendizagem. Foi o que percebi e assim passei tempo em ambos. Quanto melhor entender o processo de codificação, melhor será seu pseudo-código e o programa subseqüente.

Continuo com este esforço, trabalhando com os dois documentos em paralelo - acho que isso aceleraria o processo de aprendizagem como nada mais, pois tenho um ponto de referência específico.

O foco principal será a transformação do pseudocódigo em código, mas uso o documento do CB para idéias sobre como e que partes acrescentar, bem como usá-lo em paralelo para aprender, naturalmente também com a orientação de Tim ao longo do caminho.

Nick

 
niko:

Ei, pessoal,

Obrigado a ambos por seu apoio nesta jornada! Concordo que uma abordagem sistemática é essencial para um novato, mas igualmente importante é mergulhar no código. Esses dois componentes ajudam um ao outro a crescer e incentivam o processo de aprendizagem. Foi o que percebi e assim passei tempo em ambos. Quanto melhor entender o processo de codificação, melhor será seu pseudo-código e o programa subseqüente.

Continuo com este esforço, trabalhando com os dois documentos em paralelo - acho que isso aceleraria o processo de aprendizagem como nada mais, pois tenho um ponto de referência específico.

O foco principal será a transformação do pseudocódigo em código, mas uso o documento do CB para idéias sobre como e que partes acrescentar, bem como usá-lo em paralelo para aprender, naturalmente também com a orientação de Tim ao longo do caminho.

Nick

Oi Nick, vou recuar agora. Veja emenda ao meu posto acima.


CB

 
cloudbreaker:

Oi Nick, vou recuar agora. Veja emenda ao meu posto acima.


CB

Ei CB, eu pensei que você iria, então fui rápido o suficiente para baixá-lo. Como mencionei antes, qualquer coisa a respeito da idéia que tenho está me ajudando a aprender, seu código não vai desencorajar minha aprendizagem, pois não vou copiá-lo para o modelo do Tim, vou tentar compreendê-lo em vez disso para ver como as coisas podem ser feitas de forma diferente :)


Qualquer coisa ajuda como se diz!

 
niko:

Ei CB, eu pensei que você iria, então fui rápido o suficiente para baixá-lo. Como mencionei antes, qualquer coisa a respeito da idéia que tenho está me ajudando a aprender, seu código não vai desencorajar minha aprendizagem, pois não vou copiá-lo para o modelo do Tim, vou tentar compreendê-lo em vez disso para ver como as coisas podem ser feitas de forma diferente :)


Qualquer coisa ajuda como dizem!

Não se preocupe. Com apenas algumas emendas, ele deve realmente fazer o trabalho por você.

Você deve começar por emendar o "erro" TakeProfit que eu incorporei para você. Dê uma olhada em como o StopLoss é feito para ter uma pista.

Uma vez que você o tenha colocado em funcionamento, espero que você comece a adicionar no manuseio de erros, e algumas coisas fáceis de serem feitas pelo operador como declarações Print() para que você possa ver facilmente nos logs o que ele está fazendo.

Pseudo código é importante antes de se comprometer com o código (mesmo para programadores experientes), mas não o cozinhe demais.

Você parece atrair ajuda devido à sua maneira bem-humorada. Meu palpite é que você ou trabalha em RH ou está interessado em psicologia humana?


CB

Razão: