O CAMPEONATO COMERCIAL DE 2007! - página 10

 
rsi:
Como você realizaria o pré-teste de EAs com várias moedas?

É possível incluir em um EA a possibilidade de testar, por exemplo, eu o fiz desta maneira:

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  int PeriodCounter=2,SymbolCounter=1,trendOnTF;
  string ComString;
  int tf;
//----
   if (IsTesting())
      {
      Print("Прошли проверку на IsTesting");
      for (int indexCount=TestingIndexPeriod;indexCount<=6;indexCount++)
         {
         if (isNewBar(TestingIndexSymbol,indexCount)) 
            {
            Print("Вызовем трейлинг");
            if (OrdersTotal()>0) CheckOrdersForTrailing();            
            trendOnTF=TrendByWPR(TestingIndexSymbol,indexCount);
            TrendOnSymbol[TestingIndexSymbol,indexCount]=trendOnTF;
            GatorTrend[TestingIndexSymbol,indexCount]=iCustom(GetSymbolString(TestingIndexSymbol),PeriodNumber(indexCount),"NRTR_GATOR",40,2,false,7,0);
            NRTR_Trend[TestingIndexSymbol,indexCount]=iCustom(GetSymbolString(TestingIndexSymbol),PeriodNumber(indexCount),"NRTR_GATOR",40,2,false,6,1);
            Complextrend[TestingIndexSymbol,indexCount]=(TrendOnSymbol[TestingIndexSymbol,indexCount]+GatorTrend[TestingIndexSymbol,indexCount]+NRTR_Trend[TestingIndexSymbol,indexCount])/3.0;
            ComString="";
            for (tf=indexCount;tf<7;tf++)
               {
               ComString=ComString+StringConcatenate("Period ",PeriodNumber(tf),"M  Complextrend=",Complextrend[TestingIndexSymbol,tf],"n");
            }
            Comment(ComString);   
            Print("Trend on ",GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter),"M=",trendOnTF);
            }
         }
      }
   else
      {
      for (SymbolCounter=1;SymbolCounter<13;SymbolCounter++)
         {
         for (PeriodCounter=2;PeriodCounter<=6;PeriodCounter++)
            {
            if (isNewBar(SymbolCounter,PeriodCounter))
               {
               if (OrdersTotal()>0) CheckOrdersForTrailing();            
               trendOnTF=TrendByWPR(SymbolCounter,PeriodCounter);
               TrendOnSymbol[SymbolCounter,PeriodCounter]=trendOnTF;
               GatorTrend[SymbolCounter,PeriodCounter]=iCustom(GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter),"NRTR_GATOR",40,2,false,7,0);
               NRTR_Trend[SymbolCounter,PeriodCounter]=iCustom(GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter),"NRTR_GATOR",40,2,false,6,1);
               Complextrend[SymbolCounter,PeriodCounter]=(TrendOnSymbol[SymbolCounter,PeriodCounter]+GatorTrend[SymbolCounter,PeriodCounter]+NRTR_Trend[SymbolCounter,PeriodCounter])/3.0;
               if (Symbol()==GetSymbolString(SymbolCounter))
                  {
                  ComString="";
                  for (tf=2;tf<7;tf++)
                     {
                     ComString=ComString+StringConcatenate("Period ",PeriodNumber(tf),"M  Z_trend=",TrendOnSymbol[SymbolCounter,tf],"  G_trend=",
                     GatorTrend[SymbolCounter,tf],"  N_trend=",NRTR_Trend[SymbolCounter,tf],"n");
                     }
                  Comment(ComString);   
               //Print("Trend on ",GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter),"M=",trendOnTF);
                  }
               } 
            }
         }
      }
   
   ArrayInitialize(TPvsSL,0.0);
   ArrayInitialize(BestTPvsSLSymbol,0);
   ArrayInitialize(BestTPvsSLPeriod,0);
   if (TrendExist())
      {
      if (OrdersTotal()<MaxOpenedOrders) TryOpenOrder();
      else TryCloseOrder();
      }
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Rosh:
rsi escreveu (a):
E como será feito o pré-teste de especialistas em várias moedas?

Você pode começar a testar EAs, por exemplo, eu o fiz desta maneira:

...
Obrigado pelo código. Vou tentar entendê-lo, mas 1) seria útil ter uma descrição (peço desculpas pela impudência), 2) acho que não resolve a questão sistematicamente. Quero dizer, que então é necessário incluir em condições de competição (talvez recomendá-lo) para EAs com várias moedas um requisito para adicionar este código a seu programa - para que os organizadores possam realizar testes preliminares do EA antes do campeonato. Certo?
 
Grosso modo - um Expert Advisor com várias moedas deve permitir um backtest em cada símbolo e cada quadro, para o qual ele é declarado.
Se voltar atrás - trabalhamos somente em Symbol() e Period (). Se online - trabalhamos em todos os símbolos, incluídos no algoritmo.
 
Reshetov писал (а):
Mathemat escreveu (a):

8. Taxa de inscrição $100:.... E aqui eles reuniram uma multidão variada, apenas para que os participantes pudessem compilar uma linha ou duas de código.


Em essência, não foi um campeonato, mas algo semelhante a um evento esportivo em todo o distrito, onde a condição principal é que alguém, não importa como,
mas venha para a linha de chegada.

Esse é o resultado.
O resultado é bastante normal, considerando o fato de que o campeonato foi realizado pela primeira vez.
Para este fim, as regras do futuro campeonato estão sendo discutidas agora.

É claro que nem todos estão dispostos a pagar a taxa de entrada, e alguns talvez não consigam. Talvez, apenas um dos poucos irá vencer os super-duper programadores. Então por que restringir a capacidade das pessoas de participar do concurso?
Especialmente porque as regras provavelmente serão atualizadas para levar em conta todas, ou muitas, das deficiências do último campeonato
além de novas restrições e exigências.
Tudo chega ao ponto em que um Expert Advisor com uma estratégia lucrativa e correta
gestão de capital, não apenas gestão agressiva de capital.
 
alexnau писал (а):

Obviamente, nem todos estão dispostos a pagar a taxa, e alguns talvez não consigam. Talvez, apenas talvez, uma das multidões mais heterogêneas vença os super-duper programadores. Então por que limitar a capacidade das pessoas de participar do concurso?
Especialmente porque as regras provavelmente serão atualizadas para levar em conta todas, ou muitas, das deficiências do último campeonato
além de novas restrições e exigências.
Tudo está caminhando para o ponto em que um consultor especializado com uma estratégia lucrativa e correta
e não apenas uma gestão agressiva do capital.

alexnau, você realmente acha que os organizadores, tendo recebido apenas um ex4 (isso é permitido), serão capazes de resolver com competência a questão de uma estratégia lucrativa e de uma gestão de capital adequada? E se a EA falhar ligeiramente na área testada? Então ele é rejeitado?

As limitações e exigências devem ser razoáveis e não facilmente contornadas. Digamos que o limite mínimo de 10 ofícios é facilmente contornado. Portanto, não é razoável.

Na minha opinião, o pré-teste da história só é necessário para verificar o cumprimento das exigências formais já descritas nas Regras de 2006 (ver III. Programas de Conselheiros Especializados).

Mas a avaliação da adequação de um Expert Advisor pelo Organizador do ponto de vista da rentabilidade e da MM sobre a história é uma tarefa morosa: você pode enfiar em um Expert Advisor quaisquer sinais históricos preparados com antecedência e dá-los ao testador no isTesting() == verdadeiro. Os sinaisZigZag são um bom exemplo: eles são perfeitos para a história! A propósito, há, por sinal, um ponto misterioso nas Regras do Campeonato 2006 que impede tal falsificação:

7. Se o Expert Advisor se comportar de maneira diferente durante a verificação preliminar e durante o Campeonato, isso levará à desclassificação.

Havia algum precedente, senhores, organizadores do Campeonato 2006? Se não, como você define essas diferenças?
.

Portanto, talvez tenhamos que aceitar o fato de que os organizadores não poderão excluir todos os EAs obviamente aventureiros na fase de admissão dos EAs. Mas podemos remover a maioria deles de forma radical - por exemplo, cobrando uma pequena taxa de entrada de US$ 30 que só é paga de volta quando a EA termina o Campeonato com alguns resultados positivos. A multidão será menor, mas a qualidade dos EAs deve aumentar drasticamente: de que adianta pagar 30 dólares com um EA de sashken ou Zonker?

Proponho esta lista de requisitos:

- Taxa de entrada de $30, com um retorno apenas no resultado final de pelo menos capital inicial + $30
- Chamada de margem mínima de 70% para o Campeonato; no caso de uma Chamada de margem, você será imediatamente desclassificado.
- Todos os requisitos formais do Campeonato de 2006 (ver III. Programas de Conselheiros Especializados).

Condições comerciais:

- capital inicial - $500 (se esta condição for muito rígida, então $1000)
- tamanho mínimo do lote 0,1 e sem limites para o lote máximo, número e tamanho das posições abertas simultaneamente (com ordens pendentes).

Sem limitações:

- rentabilidade sobre o histórico
- MM sobre a história
- TP/SL
- Número de negócios dentro do Campeonato
- Razão margem/qualidade.
 
Mathemat:
- Taxa de entrada $30, reembolsável somente no resultado final de pelo menos o capital inicial + $30
Em geral, concordo pessoalmente que seria bom se houvesse uma taxa para entrar. Existem taxas de inscrição em competições em quase todos os esportes. A idéia de um reembolso já me parece, novamente para mim pessoalmente, um tanto controversa.
Mas a principal razão pela qual isso nunca acontecerá é o lado técnico da questão. A dificuldade de gerar todas essas taxas é tão grande que nunca será compensada. Especialmente se você se lembrar que nem todos os participantes potenciais vivem no território do BSSR, ou seja, aceitando pagamentos em dinheiro normal de cartões de crédito separadamente, dinheiro de reserva diferente separadamente. E uma licença para dirigir um negócio de varejo com cartões de crédito...? E tudo isso incomoda a cabeça dos organizadores, em vez de fazer o que eles sabem fazer.

Então, por que pagar 30 dólares por um zoner. E depois colocar dois deles, um para cima e outro para baixo. 60 dólares é dinheiro ridículo quando há 40 mil em jogo, e o zonker estava perto de ganhar, maldito perto.
 
Bem, talvez não tenhamos que pagar a taxa de entrada, que não é muito dinheiro, mas pelo menos algum incentivo para criar uma EA decente...

Mas abater especialistas por sinais é uma tarefa intrigante.

Proibir múltiplos registros de um IP é muito fácil de manusear se o autor tiver pelo menos dois computadores com IP diferentes. Portanto, se ele quiser enviar dois ou mais Expert Advisors diferentes de diferentes IPs, ele pode fazê-lo sem que os organizadores percebam. O único problema real surgirá se ele carregar pelo menos dois de seus trabalhos como líderes e os organizadores quiserem entrevistar os líderes.

Para ser honesto, não acho injusto: se um autor coloca dois EAs diferentes que acabam sendo vice-campeões, parabéns ao autor! Outra coisa é que isto não está de acordo com a própria tradição de tais concursos. Eu mesmo não pretendo fazer isso :)

Em relação aos EAs "espelho", a la Zonker's EuroBull ou EuroBear. Você pode, por exemplo, introduzir uma verificação adicional para EAs com correlação anormalmente alta de sinais. É extremamente duvidoso que autores diferentes possam criar, de forma independente, Conselheiros Especializados correspondentes para sinais. Portanto, ou eles não os fizeram eles mesmos (eles os encontraram na Internet), ou eles os compartilharam uns com os outros, ou é apenas um autor. No primeiro caso, é altamente provável que seja um mau especialista, e no segundo e terceiro é um jogo injusto.

Os organizadores, digamos, podem exigir o código fonte destes EAs compilados exatamente no mesmo ex4 enviado aos organizadores. Em caso de recusa em fornecer o código ou código compilado em outro ex4, - desqualificação sem reembolso da taxa de entrada e colocação de IP na lista negra de Campeonatos. Se os códigos "corretos" forem enviados e sua lógica for a mesma - desqualificação para todos, exceto um, com base no cálculo da águia. Duvido que tais ações afetem os autores, que enviaram um consultor especializado razoável e proficiente.

P.S. Em geral, por solidez, poderíamos introduzir uma rodada de qualificação - digamos, por um mês. Especialistas com resultado pré-determinado, de acordo com os resultados da qualificação, passam para a rodada principal. E depois a rodada principal - durante dois ou três meses, com o mesmo assessor. Sim, há uma probabilidade de que alguns candidatos extremos consigam passar. Mas a maioria dos perdedores óbvios - pelo menos 70% - não vai conseguir.
 
NRTR_GATOR Indicador ?
 
Mathemat:
alexnau escreveu (a):

Tudo se resume ao fato de que um conselheiro com uma estratégia lucrativa incorporada e adequada
Trata-se de ter uma EA com uma estratégia lucrativa e uma gestão de capital adequada, e não apenas uma gestão de capital agressiva.

alexnau, você realmente acha que os organizadores, tendo recebido apenas ex4 (isto é permitido), serão capazes de resolver com competência a questão de uma estratégia lucrativa e de uma correta gestão de capital? E se a EA falhar ligeiramente na área testada? Então é rejeitada?
Mathemat , expressei a opinião de que a qualidade dos Expert Advisors deve melhorar no próximo Campeonato,
Eu não acho que o Organizador deveria "tomar uma decisão sábia sobre a rentabilidade da estratégia e a gestão adequada do dinheiro" com base
teste do ex4 do qual eu não tinha idéia.