Fechamento das posições. No sinal indicador. - página 7

 
Faça um teste sobre os preços de abertura. Eu mesmo tenho isto (desde o início deste ano): estou pensando em como reduzir as recuos. Meu consultor especializado está em demonstração, eu fiz 50% do depósito em uma semana (sem MM). Talvez possamos trocar a experiência.
 

O especialista trabalha com todos os carrapatos. Não sobre os preços de abertura. No download - teste para 8 de fevereiro

Arquivos anexados:
1111_1.zip  72 kb
 
Eu, por exemplo, tenho uma imagem como a sua por carrapatos no testador, mas quando testo por barras, é um pouco diferente, muito mais próxima da realidade (eu a comparei com a demo). Esta é apenas a minha experiência (sou basicamente um principiante) e minhas observações. Talvez eu esteja fundamentalmente errado, não há como negar isso. Não sei se é uma coincidência ou não, mas aqui está minha foto da conta demo: IMHO, muito parecida com a sua :)
 

Eu não tive tempo de gravar uma caixa de entrada. E eu não tenho uma caixa de entrada trabalhando nos fins de semana. Eu não entendo bem. Os testes devem ser realizados nesse modo, que é usado no código do Expert Advisor. Se o algoritmo implica trabalhar com todos os carrapatos, é incorreto testar " abrindo os preços". Você está apenas enganando a si mesmo.

Você precisa entender porque os resultados são diferentes em modos diferentes. Ao mesmo tempo, "a preços de abertura" é um resultado pior. Normalmente o oposto é verdade.

Além disso, se o consultor especializado trabalha "a preços de abertura", o resultado do teste deve coincidir com o resultado de "em todos os carrapatos". Quase coincidem.

 

É tudo sobre o gerador de carrapatos do testador. As condições lá são ideais. Por exemplo, condição de entrada: a = 1.5001. No testador será 100% verdadeiro, mas na realidade pode não ser. O preço pode saltar de 1.4999 para 1.5003 por 1 tick. A condição não foi cumprida, o comércio não foi aberto. Se eu estiver errado - me corrija, eu ficaria grato.

Aqui está o meu teste de carrapato:

Depósito inicial 700.00



Lucro líquido 6157.73

Máximo de drawdown 74.80 (1.50%)

Preços de abertura:

Depósito inicial 700.00



Lucro líquido 1304.47

Máximo de drawdown 514.82 (29.40%)
----

Eu providenciei em meu consultor especializado a troca entre carrapatos/barras. Naturalmente, ao permitir o controle de abertura de barras, os testes em carrapatos e barras coincidem. O quadro é o mesmo que o desenhado acima ao abrir os preços.

 
Lukyanov:

É o gerador de carrapatos do testador. O preço pode saltar de 1.4999 para 1.5003 por tick. A condição não foi atendida, o comércio não se abriu.

Sim, isso é possível. No entanto. Acho inadmissível testar um Expert Advisor que trabalha com todos os carrapatos a preços de abertura. E obteremos dados não confiáveis sobre grandes períodos de tempo. Pelo contrário, se este especialista trabalha a preços abertos, então é possível e necessário testar "a qualquer momento".....

E há um parâmetro para o escorregamento - extern int Slippage=

 
Escorregar é uma coisa, mas a condição: aberto se a = 1.5000 é outra bem diferente...
 

Boa tarde a todos! Esta pergunta pode parecer ingênua, mas foi o que me meteu em problemas...

Tenho um indicador que quero usar em meu Consultor Especialista. Aqui está a tabela. Aqui está o código.

#property copyright "Copyright © 2006 , David W Honeywell , 12/12/2006"
#property link      "HellOnWheels.Trans@gmail.com"

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red

#property indicator_maximum 100.0
#property indicator_minimum   0.0

#property indicator_level1 70
#property indicator_level2 50
#property indicator_level3 20

extern int IndicatorTime =  0;
extern int RSI_Periods   = 14;
extern int Applied_Price =  0;
extern int LineWidth     =  4;

double Buffer0[];
double Buffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,LineWidth);
SetIndexBuffer(0,Buffer0);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,LineWidth);
SetIndexBuffer(1,Buffer1);

IndicatorShortName(" ColorRSI ( "+RSI_Periods+" )");

return(0);  
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int start()
{
  
  int     counted_bars=IndicatorCounted();
  double  RSIValue;
  int     i;
  int     limit;

  limit = Bars-counted_bars;
  
  for(i=limit; i>0; i--)
   {
     RSIValue=iRSI(Symbol(),IndicatorTime,RSI_Periods,Applied_Price,i);
    if (RSIValue > 50.00000000)
     {
       Buffer0[i] = RSIValue;
       Buffer1[i] = EMPTY_VALUE;
       if (Buffer0[i+1] == EMPTY_VALUE) Buffer0[i+1] = Buffer1[i+1]; 
     }
    else
     {
       Buffer0[i] = EMPTY_VALUE; 
       Buffer1[i] = RSIValue;
       if (Buffer1[i+1] == EMPTY_VALUE) Buffer1[i+1] = Buffer0[i+1]; 
     }
   }

//---- done
  
  return(0);
}

 

Não sei como definir a condição para mudar do vermelho para o verde e vice-versa!

E como eu defino a expressão i Custom para implementar esta transição... Por favor, responda se você souber...

 
if ( Buffer0[i+1] != EMPTY_VALUE && Buffer0[i+2] == EMPTY_VALUE )
{
  // началась зеленая линия
}
É mais ou menos assim
Razão: