[¡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 297

 
Urain >> :
O bien: Tiempo[0]+(Tiempo[0]-Tiempo[1]) o 2*Tiempo[0]-Tiempo[1].

tripa :)

 

¡Mis saludos a los hermanos escritores (de código)!

Entiendo que esta pregunta debe poner de los nervios a todo el mundo, pero no he encontrado nada útil al respecto. Así que estoy confundido sobre algo. ¡Ayude a un recién llegado a comprender!

No tenía una idea original - en una ventana del indicador para mostrar las líneas para los marcos de tiempo actuales y más grandes (en mi caso una hora y un día).

Mi primer pensamiento fue... Sin embargo, no tuve tiempo: mis manos lo hicieron todo solas:

Buf_1[ i]=iCCI(NULL,1440,14,PRICE_TYPICAL, i);

El resultado estaba claramente desajustado en el tiempo. Bueno, es comprensible - es más fácil tomar una barra lista del marco temporal llamado que crearla dinámicamente. Bueno, comeremos cangrejos de río si no tenemos pescado. He sincronizado el inicio del dibujo por tiempo y he sustituido i por un id que se actualiza en cada cambio de día. La escalera con segmentos horizontales, pasando por cada hora de un día no es gran cosa, pero al menos es algo. Lógicamente los tramos rectos deberían haberse doblado en tiempo real. Lo hizo. Pero se necesita mucho tiempo para estar conectado al servidor durante semanas en nombre de una imagen viable, y el visualizador del probador simula esto de forma muy real. Ejecuté un Asesor Experto vacío y lo lancé a través de la ventana de visualización de un intersticial. ¡Maldita sea! No hay ninguna simulación. Cuando cambio el día, obtengo una barra completamente formada del historial, que aún no está formada. La salida es la misma escalera. Resulta que la barra de cero en el diseño anterior no es adecuado para el trabajo, ya que durante la prueba será fingir. El siguiente paso se dio por pura terquedad para asegurarse de que nada quedara sin decir y se pusieran los puntos sobre las íes. Me dirigí desde el Asesor Experto a esta misma barra cero a través de mi indicador y filtré sus acciones (del Asesor Experto) por el estado del CCI (más o menos que el día anterior). A juzgar por esa basura en el probador, se produjeron algunos cambios en la barra, perome faltó tiempo para llegar al fondo. Una vez más me reprendí por la falta de depuración paso a paso del código con variables de control. (Por supuesto, podría registrarlo, pero para casos más complicados sería un fiasco total).

Una digresión.

Las imágenes de la versión 5 me han conmovido hasta las lágrimas. Una herramienta muy poderosa. El reproductor multimedia aparecerá probablemente en la versión 6. )))))))))) Pero, ¿por qué no darles un objeto como el "bar" con todos sus atributos? Eso sería mucho dolor de un solo golpe, ¿no?

De vuelta a los yoes. Al final del probador se abrió un indicador en el que la línea en cuestión fue absolutamente recta durante un año y no mostró nada en absoluto.

Eso es todo.

Fuera.

Una misma construcción en el historial, en tiempo real, en la ventana de visualización y en el programa se comporta de forma completamente diferente.

Me siento ahora y trato de entender, ¿es un bug esto, o tal chip o la armadura es fuerte y nuestros tanques son rápidos?

Z.U. No, debido a mi cabezonería, al final he conseguido lo que quería, simular un trozo de serie temporal a partir de los datos actuales (también se puede pedir un minuto para mayor seguridad) y el cálculo de sus propias fuerzas, pero es demasiado de mi culo, lo siento, conseguir. Y me gustaría entender las reglas de referencia a otros plazos en tales construcciones...

 
hot писал(а) >>

¡Mis saludos a los hermanos escritores (de código)!

Entiendo que esta pregunta debe poner de los nervios a todo el mundo, pero no he encontrado nada útil al respecto. Así que estoy confundido sobre algo. ¡Ayude a un recién llegado a comprender!

No tenía una idea original - en una ventana del indicador para mostrar las líneas para los marcos de tiempo actuales y más grandes (en mi caso una hora y un día).

Mi primer pensamiento fue... Sin embargo, no tuve tiempo: mis manos lo hicieron todo solas:

El resultado estaba claramente desajustado en el tiempo. Bueno, es comprensible - es más fácil tomar una barra lista del marco temporal llamado que crearla dinámicamente. Bueno, comeremos cangrejos de río si no tenemos pescado. He sincronizado el inicio del dibujo por tiempo y he sustituido i por un id que se actualiza en cada cambio de día. La escalera con segmentos horizontales, pasando por cada hora de un día no es gran cosa, pero al menos es algo. Lógicamente los tramos rectos deberían haberse doblado en tiempo real. Lo hizo. Pero se necesita mucho tiempo para estar conectado al servidor durante semanas en nombre de una imagen viable, y el visualizador del probador simula esto de forma muy real. Ejecuté un Asesor Experto vacío y lo lancé en la ventana de visualización del probador. ¡Maldita sea! No hay ninguna simulación. Cuando cambio el día, obtengo una barra completamente formada del historial, que aún no está formada. La salida es la misma escalera. Resulta que la barra de cero en el diseño anterior no es adecuado para el trabajo, ya que durante la prueba será fingir. El siguiente paso se dio por pura terquedad para asegurarse de que nada quedara sin decir y se pusieran los puntos sobre las íes. Me dirigí desde el Asesor Experto a esta misma barra cero a través de mi indicador y filtré sus acciones (del Asesor Experto) por el estado del CCI (más o menos que el día anterior). A juzgar por esa basura en el probador, se produjeron algunos cambios en la barra, perofui demasiado corto para llegar al fondo. Una vez más me reprendí por la falta de depuración paso a paso del código con variables de control. (Por supuesto, podría registrarlo, pero para casos más complicados sería un fiasco total).

Una digresión.

Las imágenes de la versión 5 me han conmovido hasta las lágrimas. Una herramienta muy poderosa. El reproductor multimedia aparecerá probablemente en la versión 6. )))))))))) Pero, ¿por qué no darles un objeto como el "bar" con todos sus atributos? Eso sería mucho dolor de un solo golpe, ¿no?

De vuelta a los yoes. Al final del probador se abrió un indicador en el que la línea en cuestión fue absolutamente recta durante un año y no mostró nada en absoluto.

Eso es todo.

Fuera.

Una misma construcción en el historial, en tiempo real, en la ventana de visualización y en el programa se comporta de forma completamente diferente.

Me siento ahora y trato de entender, ¿es un bug esto, o tal chip o la armadura es fuerte y nuestros tanques son rápidos?

Z.U. No, debido a mi cabezonería, al final conseguí lo que quería, simular un trozo de serie temporal a partir de los datos actuales (también se puede pedir un minuto para mayor certeza) y el cálculo de sus propias fuerzas, pero me sale demasiado a cuenta, lo siento, consíguelo. Y quiero entender las reglas de referencia a otros plazos en estructuras similares...

Escríbeme a mi correo personal...

 
Vinin >> :

>> escríbeme en persona

Gracias por el aviso, pero necesito la teoría y prefiero ocuparme yo mismo de la práctica. )))))))))))))

 

Hola, tengo esta pregunta:

¿Cómo puedo forzar al EA a realizar sólo una operación en un momento determinado? Es decir, por ejemplo, cada día de negociación para hacer una sola orden de compra exactamente a las 15 horas? Intenté hacerlo así:

int ct = Hour();
int cm = Minute();
int sd = Seconds();

if(ct == 15 && cm == 0 && sd == 0)
{
int tick = OrderSend(Symbol(),OP_BUY,A_lot,Ask,5,Ask-A_sl*Point,Ask+A_tp*Point,"Покупка.",3,0,CLR_NONE);
}

En principio funciona, pero sólo el EA hace muchas compras a la vez, ya que el primer segundo de la hora 16 viene con varios ticks (también depende del depósito y del lote).

Intenté comprobar por mag y día de la transacción, pero aún así terminé con un lío:

int ct = Hour();
int cm = Minute();
int sd = Seconds();

if(ct == 15 && cm == 0 && sd == 0)
{
for (int i=1; i<=OrdersTotal(); i++)
{
if(OrderSelect(i-1, SELECT_BY_POS, MODE_TRADES)==true)
{
if(OrderMagicNumber() == 3 && OrderOpenTime() == Day())
{
bool A_order = true; break;
}
A_order = false;

}
}

if(A_order == false)
int tick = OrderSend(Symbol(),OP_BUY,A_lot,Ask,5,Ask-A_sl*Point,Ask+A_tp*Point,"Покупка.",3,0,CLR_NONE);
}

Si alguien lo sabe, por favor, aconséjelo. Intentaré comprobar el número mágico de la misma manera pero sigue siendo un lío.

 
JackaLrus >> :

Hola, tengo esta pregunta:

¿Cómo puedo forzar al EA a realizar sólo una operación en un momento determinado? Es decir, por ejemplo, cada día de negociación para hacer una sola orden de compra exactamente a las 15 horas? Intenté hacerlo así:


Si alguien lo sabe, por favor, aconséjelo. Gracias.

Intenta buscar en el hilo de I. Kim -

Función isTradeToDay(). Página 21

Esta función devuelve el indicador de comercio de hoy. La bandera está en alto - Verdadero - las posiciones se abrieron hoy. Bandera abajo - Falso - ninguna posición abierta hoy

https://www.mql5.com/ru/forum/107476/page21

//-

Con esta función puede crear fácilmente una condición de apertura:

if (isTradeToDay(NULL,-1,Magic)<1 ) {//  если сегодня не было сделок
//- то торговля разрешена

Y la hora de apertura es muy fácil de ajustar.

Además, Igor tiene allí funciones de tiempo similares.

 

Gracias por el enlace. ¡Lo he descubierto!

Es necesario utilizar TimeDay(OrderOpenTime())==Day() en la comparación, entonces todo funciona como debería.

 

Necesito ayuda. Estoy cambiando la inclusión del Criterio MACD_Simple de la documentación los criterios de negociación (utilizando la regla de 4 semanas, la búsqueda de 20 y 10 días mínimos y máximos - detalles en el código comentado), pero cuando lo ejecuto en la historia en el probador, el Asesor Experto no abre órdenes.

Entiendo que estoy perdido en tres árboles, sin embargo, si tiene tiempo y oportunidad, por favor, aconséjeme...

//--------------------------------------------------------------------
// Criterion.mqh
// Правило 4-х недель
//--------------------------------------------------------------- 1 --
// Функция вычисления торговых критериев.
// Возвращаемые значения:
// 10 - открытие Buy  цена закрытия выше максим-ой за последние 20 дней
// 20 - открытие Sell цена закрытия ниже минимальной за последние 20 дней 
// 11 - закрытие Buy  цена закр ниже минимальной за последние 10 дней
// 21 - закрытие Sell цена закрытия выше максимальной за последние 10 дней
// 0  - значимых критериев нет
// -1 - используется другой финансовый инструмент
//--------------------------------------------------------------- 2 --
// Внешние переменные:
extern int                                 
       Counted_bars1=20,                         // Количество просчитанных баров 
       Counted_bars2=10;                         // Количество просчитанных баров 
       




//--------------------------------------------------------------- 3 --
int Criterion()                                                   // Пользовательская функция
  {
   double
        Max_20 = High [1], Min_20 = Low [1],                      // Присваиваем значения максимуму и  
        Max_10 = High [1], Min_10 = Low [1];                      // минимуму на 1-ом баре
   int i=0;                                                       // Индекс бара  
          
   
   //--------------------------------------------------------------- 4 --
   // Параметры торговых критериев:
   
  for( i = 2; i <= Counted_bars1+1; i++)                             // цикл для 20 дней 
         {                                        
         if (Low[ i] <  Min_20)                               // Если текущее значение < известного   
               Min_20 = Low[ i];                              // то оно и будет минимум   
         
         if (High[ i] > Max_20)                               // Если > известного    
               Max_20 = High[ i];                             // то оно и будет максимум  
           }   
  
  for( i = 2;  i <= Counted_bars2+1; i++)                     // цикл для 10 дней 
         {                                        
         if (Low[ i]< Min_10)                                 // Если текущее значение < известного   
               Min_10=Low[ i];                                // то оно и будет мин   
               
         if (High[ i] > Max_10)                                   // Если > известного    
               Max_10=High[ i];                                   // то оно и будет макс  
           }   

   
    //--------------------------------------------------------------- 5 --
   
    // Вычисление торговых критериев
    
   if(Close[0]> Max_20)
   return(10);                                           // Открытие Buy    
   
     
   if (Close[0]< Min_20)  
   return(20);                                           // Открытие Sell
     
   if(Close[0]< Min_10)
   return(11);                                           // Закрытие Buy    
  
   
   if(Close[0]> Max_10)
   return(21);                                           // Закрытие Sell    
   
     
   
  
      
       
//--------------------------------------------------------------- 6 --
   return(0);                          // Выход из пользов. функции
  }
//--------------------------------------------------------------- 7 --
 

Hola miembros del foro, he empezado a estudiar TS hace bastante tiempo y tengo una pregunta para vosotros. Vi un Asesor Experto llamado EURONIS en un sitio web conocido. Buscando en Google encontré varias críticas positivas y ninguna negativa. En el mismo Google había un enlace a este foro con tema en discusión para este asesor, que expresaba opiniones escépticas, pero el tema fue aparentemente borrado (ahora la búsqueda en el sitio no arrojó nada).

Por eso quiero saber qué es este EA? ¿Aporta beneficios estables? ¿Hay alguno de vosotros que lo haya negociado en cuenta real? Espero sus comentarios.

Espero sus comentarios, gracias de antemano.

 
Roman. >> :

Necesito ayuda. Estoy cambiando la inclusión del Criterio MACD_Simple de la documentación los criterios de negociación (utilizando la regla de 4 semanas, la búsqueda de 20 y 10 días mínimos y máximos - detalles en el código comentado), pero cuando lo ejecuto en la historia en el probador, el Asesor Experto no abre órdenes.

Entiendo que estoy perdido en tres pinos, sin embargo, si tienes tiempo y oportunidad - dime...

Añade el código completo, si no quieres mostrar tu idea, cambia el criterio, por ejemplo:

if(Close[0]>Open[1])
   return(10);                                           // Открытие Buy    
   
     
   if (Close[0]<Open[1])  
   return(20);                                           // Открытие Sell
     
   if(Close[0]<Open[1])
   return(11);                                           // Закрытие Buy    
  
   
   if(Close[0]> Open[1])
   return(21);                                           // Закрытие Sell    

Pero sin ver el cuadro completo es imposible decir en qué se equivocó el artista.