Cierre de posiciones. Señal indicadora de encendido. - página 7

 
Poner una prueba sobre los precios de apertura. Yo mismo tengo esto (desde principios de este año): estoy pensando en cómo reducir los retrocesos. Mi Expert Advisor está en demo, he hecho el 50% del depósito en una semana (sin MM). Tal vez podamos intercambiar la experiencia.
 

El experto trabaja con todas las garrapatas. No en los precios de apertura en absoluto. En la descarga - prueba para el 8 de febrero

Archivos adjuntos:
1111_1.zip  72 kb
 
Yo, por ejemplo, tengo una imagen como la tuya por ticks en el tester, pero cuando pruebo por barras, es un poco diferente, mucho más cercano a la realidad (lo he comparado con la demo). Esto es sólo mi experiencia (soy básicamente un principiante) y mis observaciones. Tal vez esté fundamentalmente equivocado, no lo niego. No sé si es una coincidencia o no, pero aquí está mi foto de la cuenta demo: IMHO, muy similar a la tuya :)
 

No he tenido tiempo de grabar una bandeja de entrada. Y no tengo una bandeja de entrada trabajando los fines de semana. No lo entiendo bien. La prueba debe realizarse en ese modo, que se utiliza en el código del Asesor Experto. Si el algoritmo implica trabajar con todos los ticks, es incorrecto probar "por precios de apertura". Sólo te engañas a ti mismo.

Hay que entender por qué los resultados son diferentes en los distintos modos. Al mismo tiempo, "a precios de apertura" es un resultado peor. Por lo general, es lo contrario.

Además, si el Asesor Experto trabaja "a precios de apertura", el resultado de la prueba debe coincidir con el resultado de "a todos los ticks". Casi coinciden.

 

Se trata del generador de garrapatas del probador. Las condiciones allí son ideales. Por ejemplo, condición de entrada: a = 1,5001. En el probador será 100% cierto, pero en la realidad puede no serlo. El precio puede saltar de 1,4999 a 1,5003 por 1 tick. La condición se pierde, el comercio no se abrió. Si me equivoco, corrígeme, te lo agradecería.

Aquí está mi prueba de la garrapata:

Depósito inicial 700.00



Beneficio neto 6157.73

Reducción máxima 74.80 (1.50%)

Precios de apertura:

Depósito inicial 700.00



Beneficio neto 1304.47

Reducción máxima 514.82 (29.40%)
----

He previsto en mi Asesor Experto el cambio entre ticks/barras. Por supuesto, al habilitar el control de apertura de barras, las pruebas en ticks y barras coinciden. El cuadro es el mismo que el dibujado anteriormente por los precios de apertura.

 
Lukyanov:

Es el generador de garrapatas del probador. El precio puede saltar de 1,4999 a 1,5003 por tick. La condición se perdió, el comercio no se abrió.

Sí, es posible. No obstante. Creo que es inaceptable probar un Asesor Experto que funciona con todos los ticks a precios de apertura. Y obtendremos datos poco fiables en grandes plazos. Por el contrario, si este experto trabaja en precios abiertos, entonces es posible y necesario hacer pruebas "en todos los ticks" .....

Y hay un parámetro para el deslizamiento - extern int Slippage=...;

 
El deslizamiento es una cosa, pero la condición: abrir si a = 1,5000 es otra muy distinta...
 

¡Buenas tardes a todos! Esta pregunta puede parecer ingenua, pero es lo que me metió en problemas...

Tengo un indicador que quiero utilizar en mi Asesor Experto. Aquí está el gráfico. Aquí está el 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);
}

 

No puedo averiguar cómo establecer la condición para cambiar de rojo a verde y viceversa.

¿Y cómo configuro la expresión i Custom para implementar esta transición... Por favor, responda si sabe...

 
if ( Buffer0[i+1] != EMPTY_VALUE && Buffer0[i+2] == EMPTY_VALUE )
{
  // началась зеленая линия
}
Es más o menos así
Razón de la queja: