aventuras de um novato - página 9

 

Tim,


Consegui que o código indicasse onde não há erros reportados quando ele é compilado (ele estava apenas corrigindo alguns erros que você destacou), mesmo que no testador de estratégia ele ainda não faça nenhuma negociação. Mas estou intrigado com algo:


int EntryRules(string CurrencySymbol, double TopFilter, double BottomFilter)  //Tim: string CurrencySymbol not CurrencySym right?
{

      emas_Up =  (ema7>ema14) && (ema14>sma50);
      if (emas_Up && Ask < TopFilter) // Note the TopFilter value  is a parameter passed to the function just like CurrencySymbol. These have not been defined anywhere as global variables.
         result = LONG_ENTRY;   // We have assigned the manifest constant to the local variable result 



Os parâmetros TopFilter e BottomFilter. Você quer dizer parâmetros 'TopFilters' e 'BotFilters' em vez disso? (estes são os que definimos como variáveis em nível global. Os que estão abaixo. Eu alterei o código para refletir isto, e não produziu erros (isto significou mudar a declaração de debug de acordo). O que o seu guru assume sobre isto?

   double TopFilters[NUM_CURRENCY_PAIRS];     // So we just define uninitialised arrays of the required size
   double BotFilters[NUM_CURRENCY_PAIRS];    // This is Step 1/2 for array building. Step 2/2 is to assign a numerical value to each element, 
Arquivos anexados:
 
niko:

Hey CB, O ideal é ter uma EA multipares - que é o que Tim e eu estamos tentando construir. Entretanto, uma EA de par único também é altamente desejável, pois me ensina a codificar. Seus estilos de codificação são diferentes e é um excelente exercício para mim ver como a mesma idéia pode ser codificada de forma diferente. Além disso, pensei que se terminássemos a EA única primeiro, então eu usaria isso para me ajudar no trabalho manual, mas parece que ambos os códigos serão terminados ao mesmo tempo agora.

Não tenho certeza exatamente o que você quer dizer com simples e múltiplo. Como eles se relacionam com o modelo que descrevi acima? Ou seja, um único EA que poderia ser descartado em qualquer par e seria negociado apenas no par do gráfico em que foi descartado - tomando todas as decisões comerciais baseadas apenas no par do gráfico em que foi descartado (um único codebase para manter). Só estou tentando entender a terminologia para que eu saiba o que você quer.


CB

 

Hey CB,

Em minha vaga compreensão de como as EA são executadas, o que eu quis dizer foi 1. 1 EA que pode ser executada e que irá trocar múltiplos pares ao mesmo tempo. 2. Uma única EA que precisa ser descartada em um gráfico específico e que, portanto, se aplicaria apenas a esse gráfico (a pergunta é: é possível fazer uma única EA que pode ser descartada em 3 gráficos diferentes e que ainda funcionaria nesses 3 gráficos? Eu tentei isto antes, mas por alguma razão apenas 1 gráfico foi executado (todos os outros não foram executados).

 
niko:

Hey CB,

Em minha vaga compreensão de como as EA são executadas, o que eu quis dizer foi 1. 1 EA que pode ser executada e que irá trocar múltiplos pares ao mesmo tempo. 2. Uma única EA que precisa ser descartada em um gráfico específico e que, portanto, se aplicaria apenas a esse gráfico (a pergunta é: é possível fazer uma única EA que pode ser descartada em 3 gráficos diferentes e que ainda funcionaria nesses 3 gráficos? Eu tentei isto antes, mas por alguma razão apenas 1 gráfico foi executado (todos os outros não foram executados).

Sim, é facilmente possível. Um dos meus EAs:

- Pode ser colocado em vários gráficos diferentes (que estão rodando simultaneamente na mesma instância de plataforma ou que estão cada um rodando em uma instância de plataforma separada - o que você escolher)

- Tomará suas decisões somente com base no par associado ao gráfico em que está rodando

- Trocará apenas pelo par associado a esse gráfico


CB

 

Obrigado CB, eu não sabia disso. Vou passar mais tempo esta semana comparando os 2 códigos, na verdade, imprimi os dois e os afixarei por todo o meu quarto para tentar entender melhor o que está acontecendo. entender o raciocínio lógico por trás dos códigos é provavelmente a coisa mais difícil com que me deparo no momento.

 
niko:

Obrigado CB, eu não sabia disso. Vou passar mais tempo esta semana comparando os 2 códigos, na verdade, imprimi os dois e os afixarei por todo o meu quarto para tentar entender melhor o que está acontecendo. entender o raciocínio lógico por trás dos códigos é provavelmente a coisa mais difícil com que me deparo no momento.

Ok, se você se deparar com algo que não entende no código que lhe deixei, basta perguntar.


CB.

 
Obrigado CB. Com certeza! Estou passando por isso agora mesmo
 

CB, preciso de sua sabedoria. Não consigo descobrir os erros no compilador (e são os mesmos que encontrei antes e não sabia o que fazer). Em ordem de erros. você poderia compartilhar alguma luz por erro para que eu saiba o que fazer da próxima vez.


1. Descrição: " 'para' - ponto-e-vírgula esperado". Meu entendimento é que algo está com nossos parênteses em algum lugar, pois esta linha não precisa ;.

for (int c=0;c<NUM_CURRENCY_PAIRS;c++) 


2. descrição: " 'c' - expressão sobre o escopo global não permitido'. A mesma linha do acima. Eu não entendo isto, como eles não permitem uma declaração de variável global? Além disso, muitas pessoas usam este código e ele funciona bem.

3. descrição "NUM_CURRENCY_PAIRS" - expressão sobre escopo global não permitido". Mas eu já declarei isto ao lado dos externos, portanto não pode ser mais global do que isso!

4. descrição: "{expressão sobre o escopo global não permitida. Parecia não gostar dos parênteses para o código abaixo.

{
   sSignal = fnGenerateSignal();						// change this to "sGignal = fnGenerateSignal();" ***done
   if (fnShouldWeTrade())
    fnTrade();                                                            // change this to "fnTrade();"**done
   return(0);
   }


Obrigado,

nick

 
niko:

CB, preciso de sua sabedoria. Não consigo descobrir os erros no compilador (e são os mesmos que encontrei antes e não sabia o que fazer). Em ordem de erros. você poderia compartilhar alguma luz por erro para que eu saiba o que fazer da próxima vez.


1. Descrição: " 'para' - ponto-e-vírgula esperado". Meu entendimento é que algo está com nossos parênteses em algum lugar, pois esta linha não precisa ;.


2. descrição: " 'c' -expressão sobre âmbito global não permitida'. A mesma linha do acima. Eu não entendo isto, como eles não permitem uma declaração de variável global? Além disso, muitas pessoas usam este código e ele funciona bem.

3. descrição "NUM_CURRENCY_PAIRS" - expressão sobre escopo global não permitido". Mas eu já declarei isto ao lado dos externos, portanto não pode ser mais global do que isso!

4. descrição: "{expressão sobre o escopo global não permitida. Parecia não gostar dos parênteses para o código abaixo.


Obrigado,

nick

Você pode postar a totalidade do código que está tentando compilar, por favor. Ta.


CB

 
Seu desejo é meu comando (eu ia dizer 'high flyer' mas depois verifiquei o dicionário online e aparentemente é um comentário grosseiro, sem dúvida)
Arquivos anexados: