Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1102

 
EgorKim:

Así.

Y algunos pases del optimizador coinciden en el visualizador.

Y algunos pases: ni una sola transacción.

Las discrepancias pueden deberse a valores no inicializados en el buffer del indicador - cuando el cálculo pasa, puede haber basura en el buffer.


Simplemente imprime los datos del buffer cuando aparece la señal.

 
Vladimir Karputov:

Pueden producirse discrepancias debido a valores no inicializados en el búfer de indicadores: cuando el cálculo pasa por encima, puede haber basura en el búfer.


Simplemente imprime los datos del buffer cuando aparece la señal.

¿Te refieres al EA?

Si sobre el EA - estoy poniendo a cero todo en el ejemplo.

Y si se trata de un indicador, se puede hacer cualquier cosa. No soy el autor.

 
EgorKim:

¿Te refieres al EA?

Si te refieres a un EA, pongo a cero todo en el ejemplo.

Pero si se trata de un indicador, puede ser cualquier cosa. No soy el autor.

Me refería al indicador: si se pierde algún índice en el buffer, puede haber basura. En general, primero un indicador fiable - y luego el Asesor Experto que lo utiliza.

 
EgorKim:

Así.

Y algunos pases del optimizador coinciden en el visualizador.

Y algunos pases no coinciden con ninguna oferta

Creo que el problema está en el indicador.

Y como bien ha señalado Artem, el problema está en los datos reales.

Simplemente no quiere decirme cómo hacerlo)

No, me equivoqué al pensar que tienes un indicador multitemporal.

Usted tiene el indicador más común cuyos datos desea recuperar del marco temporal de otra persona.

En un EA, es necesario comprobar la relevancia de los datos del marco temporal deseado. Si todavía no hay datos para este marco temporal, entonces salga hasta el siguiente tick.
Y luego, cuando todos los datos de la trama anterior se recibe en el volumen correcto - a continuación, llamar al indicador.

Intenta hacerlo así.

 
Artyom Trishkin:

No, me equivoqué al pensar que tienes un indicador multitemporal.

Usted tiene el indicador más común cuyos datos desea recuperar del marco temporal de otra persona.

En el Asesor Experto, es necesario comprobar la relevancia de los datos del marco temporal deseado. Si todavía no hay datos para este marco temporal, entonces salga hasta el siguiente tick.
Y luego, cuando todos los datos del marco de tiempo más antiguo se recibe en el volumen correcto - a continuación, llamar al indicador.

Intenta hacerlo así.

¿Cómo se hace eso? Me refiero a comprobar su relevancia.

Bueno, compruebo que no es 0,0 (código anterior).

¿Qué más puedo hacer? Lo que el indicador me da, lo tomaré.

Esto es lo que hace el indicador.

 
EgorKim:

¿Cómo se hace eso? Me refiero a comprobar si está actualizado.

Bueno compruebo que no es 0,0 (código anterior).

¿Qué más puedo hacer? Lo que obtengo del indicador, lo obtengo.

Es un indicador por esta razón.

¿Tomaste el indicador de KodoBase? Si es así, ¿puede darme su URL?

 
EgorKim:

¿Cómo se hace eso? Me refiero a comprobar si está actualizado.

Bueno compruebo que no es 0,0 (código anterior).

¿Qué más puedo hacer? Lo que obtengo del indicador, lo obtengo.

Es un indicador por esta razón.

El error está en el propio indicador.

He reescrito muchos Asesores Expertos y esta es la primera vez que ocurre este problema.

Usted puede mirar y construir el Asesor Experto a ti mismo, he dado la lógica de arriba.

Y puedes ver lo mal que se comportan el terminal y el probador. Los resultados son diferentes aunque los parámetros del indicador sean los mismos)

 
Vladimir Karputov:

¿Conseguiste el indicador de KodoBase? Si es así, ¿puedo tener su URL?

https://www.mql5.com/ru/code/64

Plombiers - Осциллятор в канале
Plombiers - Осциллятор в канале
  • www.mql5.com
Просмотров: 6747 Рейтинг: Опубликован: 2010.01.26 12:54 Обновлен: 2016.11.22 07:33 Пример использования канала и осциллятора Stochastic. Иногда полезно смотреть поведение осциллятора в канале. Оценка ситуации упрощается. Изменяя параметры, можно гибко настроить отображение индикатора. Bulls Bears Power...
 

En general, usted puede probar por ahora (funciona en el indicadorPlombiers - oscilador en el canal- el indicador debe estar en la carpeta [carpeta de datos]\MQL5\Indicators\plombiers.mq5)


Idea de estrategia comercial

El Asesor Experto trabaja con el indicador personalizadoPlombiers. Para la formación de señales se consideran dos líneas del indicador: "Resistencia" y "Soporte".

Plombiers EA

Señal para la apertura de una posición deCOMPRA: El precio mínimo de la barra nº 1 estaba por debajo de la línea de "Soporte" de la barra nº 1

Señal para abrir unaposición de VENTA: el precio máximo de la barra 1 fue superior a la línea de "Resistencia" de la barra 1

//+------------------------------------------------------------------+
//| Search trading signals                                           |
//+------------------------------------------------------------------+
bool SearchTradingSignals(void)
  {
   double means[],resistance[],support[];
   MqlRates rates[];
   ArraySetAsSeries(means,true);
   ArraySetAsSeries(resistance,true);
   ArraySetAsSeries(support,true);
   ArraySetAsSeries(rates,true);
   int start_pos=0,count=3;
   if(!iGetArray(handle_iCustom,0,start_pos,count,means) || 
      !iGetArray(handle_iCustom,1,start_pos,count,resistance) || 
      !iGetArray(handle_iCustom,2,start_pos,count,support) || 
      CopyRates(m_symbol.Name(),Period(),start_pos,count,rates)!=count)
     {
      return(false);
     }

   int size_need_position=ArraySize(SNeedPosition);
   if(rates[1].low<support[1])
     {
      if(!InpReverse)
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_BUY;
         return(true);
        }
      else
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_SELL;
         return(true);
        }
     }
   if(rates[1].high>resistance[1])
     {
      if(!InpReverse)
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_SELL;
         return(true);
        }
      else
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_BUY;
         return(true);
        }
     }
//---
   return(true);
  }
 
Vladimir Karputov:

En general, usted puede probar por ahora (funciona en el indicadorPlombiers - oscilador en el canal- el indicador debe estar en la carpeta [carpeta de datos]\MQL5\Indicators\plombiers.mq5)


Idea de estrategia comercial

El Asesor Experto trabaja con el indicador personalizadoPlombiers. Para la formación de señales se consideran dos líneas del indicador: "Resistencia" y "Soporte".


Señal para la apertura de una posición deCOMPRA: El precio mínimo de la barra nº 1 estaba por debajo de la línea de "Soporte" de la barra nº 1

Señal para abrir unaposición de VENTA: el precio máximo de la barra 1 fue superior a la línea de "resistencia" de la barra 1

Tome los valores de"Soporte" y"Resistencia" del marco temporal superior

Es decir, el indicador MTF debe estar en la entrada del optimizador

input ENUM_TIMEFRAMES TimeFramePlombiers=PERIOD_H4;

handle_Plombiers=iCustom(Symbol(),TimeFramePlombiers,"plombiers",итд);

Así