[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 961

 
artmedia70:

Todo es individual y todo IMHO.

"...necesito encontrar la variante de EA con los mejores resultados..." Estos resultados - no significan casi nada para el presente y el futuro - se ajustan a la HISTORIA - y por lo tanto al pasado.

Se trata, en particular, de mi actitud hacia la velocidad y, más aún, hacia la optimización: intento reducir a cero los parámetros ajustables del EA. Según mis observaciones, la optimización no es más que una cuestión de ajuste a los datos históricos que no tienen sentido para el presente. ¿Por qué necesito un juguete que comercia razonablemente bien en el pasado?

Por esta misma razón, todos mis Asesores Expertos tienen parámetros auto-ajustables para la situación actual del mercado, y no reaccionan a la historia con parámetros rígidamente escritos, sino que reaccionan a los eventos actuales, cambiando dinámicamente algunos de sus parámetros para adaptarse al momento presente... Y NUNCA los optimizo. A mí me basta con ejecutar un mes o dos de historial para encontrar errores y asegurarme de que la lógica de mi Asesor Experto funciona correctamente y es rentable.

Así que no te tomes a pecho mi humor de soldado. Pido disculpas, espero, sin ánimo de ofender. :))

Artem, está bien). Si fueras una chica te daría flores virtuales )) Gracias. Sobre el "color verde" - los resultados están unidos no sólo a la historia, sino al movimiento МА (sí, a la historia, pero de otra manera no se puede ver su posible comportamiento y variantes). Si se detecta aunque sea un pequeño patrón -al fin y al cabo siempre habrá movimientos al alza y a la baja- esa será la optimización. Tal vez todas mis iniciativas son erróneas, pero no tengo ninguna otra opción para ejecutar el Asesor Experto con el fin de determinar al menos algunos de su usabilidad. Sólo quiero optimizarlo una vez ) Y quiero rechazar de este EA o llevarlo al trabajo. Y si durante 4 años hay un beneficio constante, ¿es un criterio débil? Después de todo, entonces se capta algún tipo de regularidad. Por ejemplo, si la corriente del río cambia de un lado a otro, las pequeñas piedras ligeras rodarán de un lado a otro en una pequeña distancia en cualquier caso, eso es dependencia.
 
volshebnik:
Nikolai, gracias. Utilizo indicadores estándar - MA. El código tiene más de mil líneas, quién querría molestarse con él, creo. El cálculo se realiza una vez por cada tic (lo he comprobado con "alertas").
Tal vez haya algunos cálculos de los que podamos prescindir, por ejemplo, el manejo de errores y todo tipo de situaciones anormales, no son necesarios en la etapa de desarrollo, y pueden ser añadidos cuando el algoritmo de trading esté listo y el EA pueda ser configurado para el trading real. ¿Cuántas veces pasa el Asesor Experto por todas las órdenes? ¿Hay muchos bucles y funciones iHigest/ilowest? Mil líneas, sí, muy poca gente lo entendería, salvo un vistazo superficial, por si algo les llama la atención...
 
Techno:
También es posible que haya cálculos sin los cuales se puede prescindir, por ejemplo, el manejo de errores y todo tipo de situaciones anormales no es necesario en la etapa de desarrollo, pueden ser añadidos cuando el algoritmo de negociación está completo y se puede empezar a utilizar el Asesor Experto de verdad. ¿Cuántas veces pasa el Asesor Experto por todas las órdenes? ¿Hay muchos bucles y funciones iHigest/ilowest? Mil líneas, sí, sólo muy pocas personas lo entenderían, salvo una rápida mirada alrededor por si algo les llama la atención.
Todas las órdenes se prueban en cada tick (porque las órdenes se modifican al alcanzar un determinado nivel, y este logro sólo puede evaluarse por un tick). Todavía no he implementado ninguna situación anormal; el manejo de errores existe, sí. Y los ciclos se cuentan sólo en la apertura de cada hora (se nota un retraso significativo, cuando se comprueba cada tick, como se describe).
 
volshebnik:
Todas las órdenes se reproducen en cada tick (porque las órdenes se modifican cuando se alcanza un determinado nivel, y este logro sólo puede ser definido por un tick). Todavía no he implementado ninguna situación anormal, pero el manejo de errores existe. Y los ciclos se cuentan sólo en la apertura de cada hora (se nota un retraso significativo, cuando se comprueba cada tick, como se describe).
parece que no hay nada atroz, ya se puede decir algo más con el código...
 
Techno:
no parece haber nada atroz, algo más se puede decir con el código...
Gracias, Nikolai, eso es lo que me preguntaba: ¿la velocidad del probador aumentaría significativamente si cambiara el procesador?
 
volshebnik:
Gracias, Nikolai, eso es lo que me preguntaba: ¿la velocidad del probador aumentaría significativamente si cambiara el procesador?
El problema no está en el procesador, sino en el código del EA, en alguna parte hay cuellos de botella, pero es imposible diagnosticarlos y arreglarlos con palabras, se necesita el código
 
Hola a todos. Pregunta: ¿Cómo puedo modificar una orden pendiente y una posición ya abierta preseleccionándolas por número mágico? Si puedes darme un ejemplo. Me gustaría hacerle una pregunta.
 
¿Pueden decirme si, cuando está habilitado, un EA puede tomar el nivel de precios de una entrada al mercado o de una orden pendiente desde una celda de Excel (los números correspondientes se introducirán allí por adelantado)?
 
Ayuda a "revivir" el indicador. Funciona según los datos históricos, pero no según los nuevos datos. Al menos dame la razón.
#property copyright "Stellar Space"
#property link      "http"

#property indicator_chart_window                                               // Индикатор рисуется в основном окне
#property indicator_buffers 2                                                  // Количество индикаторных буферов
#property indicator_color1 DarkGreen                                           // Цвет первой линии
#property indicator_width1 1                                                   // Ширина первой линии
#property indicator_color2 Crimson                                             // Цвет второй линии
#property indicator_width2 1                                                   // Ширина второй линии

extern int Code_1=159;                                                         // Код значка
extern int Code_2=159;                                                         // Код значка

extern int History=1000;                                                       // Количество баров истории

double Buf_0[],Buf_1[];                                                        // Объявление массива под буфер индикатора

//+------------------------------------------------------------------+
int init()
 {
 
 SetIndexBuffer(0,Buf_0);                                                      // Назначение массива буферу
 SetIndexStyle(0, DRAW_ARROW);                                                 // Стиль линии
 SetIndexArrow(0, Code_1);                                                     // Стиль Arrow
 SetIndexLabel(0,"Максимум (1 уровень)");                                      // Установка имени линии индикатора 
 SetIndexBuffer(1,Buf_1);                                                      // Назначение массива буферу
 SetIndexStyle(1, DRAW_ARROW);                                                 // Стиль линии
 SetIndexArrow(1, Code_2);                                                     // Стиль Arrow
 SetIndexLabel(1,"Минимум (1 уровень)");                                       // Установка имени линии индикатора 
  
 return(0);
 }

//+------------------------------------------------------------------+
int start()
 {
 
 int i;                                                                        // Индекс бара
 int a,b,c,d,e,f,g,h,j,k,l,m,n,o,p,q;                                          // Объявление переменых
 int Counted_bars=IndicatorCounted();                                          // Количество просчитанных баров
 
 
//+------------------------------------------------------------------+         // START
 i=MathMin(History,Bars-Counted_bars-1);

  while(i>0)                                                                    // Цикл по непосчитанным барам
 {

 
//+------------------------------------------------------------------+         // A

 for(a=i; a>0; a--)    
 {//Aa
 if (High[a+1]<High[a]&&Low[a+1]<Low[a])
    {b=a;}    
 else {break;}
 }//Aa
//--
 for(a=i; a>0; a--)    
 {//Ab
 if (High[a+1]>High[a]&&Low[a+1]>Low[a])
    {c=a;}
 else {break;}
 }//Ab
//--

 for(a=i; a>0; a--)    
 {//Ac
 if (b>c){d=b;}    
 else {break;}
 }//Ac 
//--
 for(a=i; a>0; a--)    
 {//Ad
 if (c>b){e=c;}    
 else {break;}
 }//Ad
//--

 for(a=i; a>0; a--)    
 {//Ae
 if (e>d&&d>c)
  {
   f=iHighest(NULL,0,MODE_HIGH,e-c,c);
   Buf_0[f]=High[f]+2*Point;
  }    
 else {break;}
 }//Ae 
 for(a=i; a>0; a--)    
 {//Af
 if (d>e&&e>b)
  {
   g=iLowest(NULL,0,MODE_LOW,d-b,b);
   Buf_1[g]=Low[g]-2*Point;
  }    
 else {break;}
 }//Af 
 

//+------------------------------------------------------------------+
 i--;
 }

//+------------------------------------------------------------------+         // FINISH

 //!

 return(0);
 }

//+------------------------------------------------------------------+
int deinit()
 {
 return(0);
 }
  
//+------------------------------------------------------------------+
 

¿Dónde puedo conseguir cotizaciones M30 (o inferiores) anteriores a 2004 para CUALQUIER acción o índice? ¿NO en divisas? Gracias