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

 
Top2n:


Gracias. Si no te importa otra pregunta, ¿cómo demonios se divide un array bidimensional en dos, la lógica se rompe, no?

Si quieres dar un array bidimensional desde un indicador, haz un buffer para cada dimensión del array.

El buffer 0 es la primera dimensión, el buffer 1 es la segunda dimensión.

Y que entren en el EA de la forma habitual.

 
Artyom Trishkin:

Si quieres dar un array bidimensional desde un indicador, haz un buffer para cada dimensión del array.

El buffer 0 es la primera dimensión, el buffer 1 es la segunda dimensión.

Y meterlos en el EA de la forma habitual.


Gracias, pero si la dimensionalidad es de 1000*1000, entonces no cómo.

¿Cómo se divide una matriz bidimensional en dos?

Tengo una matriz unidimensional de datos en cada barra

 
Top2n:


Gracias, pero si la dimensionalidad es 1000*1000, entonces no hay manera.

¿Cómo se divide una matriz bidimensional en dos?

Tengo una matriz unidimensional de datos en cada barra

¿Por qué hay que calcular todo en el indicador para alimentar al Asesor Experto? Simplemente calcula todo en el Asesor Experto - será más fácil.
 
Artyom Trishkin:
¿Por qué hay que hacer cálculos en un indicador y luego pasarlos al Asesor Experto? Simplemente calcula todo en el Asesor Experto - será más fácil.


Tengo una clase que utiliza el parámetro&precio[]

OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
   sm.Solve(rates_total,prev_calculated,price);

No puedo evitarlo en el EA

 
Top2n:


Tengo una clase que utiliza&precio[] como parámetro

No puedo evitarlo en el EA

Lea atentamente la sección "Acceso a las series temporales y a los indicadores" de la documentación y todo quedará claro.

También puede utilizar"SymbolInfoTick" para obtener los precios en los EAs.

Документация по MQL5: Доступ к таймсериям и индикаторам
Документация по MQL5: Доступ к таймсериям и индикаторам
  • www.mql5.com
Доступ к таймсериям и индикаторам - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Colegas, buenos días.

He leído unos 20 temas sobre MQL5 pero no he encontrado una respuesta a la siguiente pregunta: ¿dónde puedo conseguir un código de muestra de un simple Asesor Experto MQL5 para el comercio automatizado de FORTS?

Cuanto más sencillo sea el EA, mejor. Cuanto más sencillo sea el EA, mejor.

Ya tengo un código que funciona en MT5.


Anteriormente he trabajado con Tranzac, AmiBroker y alguna terminal informática. Nunca he trabajado con MetaTrader 4 o 5,

Pero ahora Jus2Trade (al parecer es una filial de Finam) tiene MT5 con acceso a los fuertes y a los futuros americanos.

Quiero probarlo en MT5, pero no encuentro un ejemplo normal que funcione correctamente. Todos los ejemplos son para el mercado de divisas.

Colegas, pinchen el enlace, por favor.

 
Alexey Viktorov:

Lee atentamente la sección "Acceso a las series temporales y a los indicadores" de la documentación y lo verás todo.

También puede utilizar"SymbolInfoTick" para obtener los precios en los EAs.


No lo entiendo.
 

Buenas gente, aconsejen como pasar por alto estos parámetros en un EA, no consigo averiguar como utilizar una clase personalizada para un indicador en un EA

sm.Solve(rates_total,prev_calculated,price);

Información: cuando se inicia el indicador utilizo SMA, se aplica a HL/2

 
Top2n:

Buenas personas, aconsejen como pasar por alto estos parámetros en un EA, no consigo averiguar como usar una clase personalizada para un indicador en un EA

Información: Uso SMA cuando se inicia el indicador, se aplica a HL/2

No necesito rates_total o prev_calculated en mi EA. Pisa estas expresiones incomprensibles y pulsa F1, lee lo que significan, tal vez entonces se aclare. Al fin y al cabo, todas las acciones tienen que tener sentido. ¿Cómo se puede hacer algo sin pensar en lo que puede o no puede funcionar? ¿Cómo se puede utilizar algo sin entender lo que es?

Pues bien, imagínate que si quieres clavar un clavo, intentarás hacerlo con un rastrillo o un microscopio sin entender lo que tienes entre manos...

Si necesita los valores del indicador iMA en las últimas 2-3 barras, puede obtenerlos a través de CopyBuffer mediante un handle del indicador creado anteriormente. Justo ahí, cuando creas un indicador y obtienes su mango

PRECIO_MEDIO

El precio medio, (alto+bajo)/2


Y hay un ejemplo absolutamente claro en la documentación.

Документация по MQL5: Технические индикаторы / iMA
Документация по MQL5: Технические индикаторы / iMA
  • www.mql5.com
Технические индикаторы / iMA - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Ni rates_total ni prev_calculated son necesarios en la EA. Pisa estas expresiones incomprensibles y pulsa F1, lee lo que significan, tal vez entonces se aclare. Al fin y al cabo, todas las acciones tienen que tener sentido. ¿Cómo se puede hacer algo sin pensar en lo que puede o no puede funcionar? ¿Cómo se puede utilizar algo sin entender lo que es?

Pues bien, imagínate que si quieres clavar un clavo, intentarás hacerlo con un rastrillo o un microscopio sin entender lo que tienes entre manos...

Si necesita los valores del indicador iMA en las últimas 2-3 barras, puede obtenerlos a través de CopyBuffer mediante un handle del indicador creado anteriormente. Justo ahí, cuando creas un indicador y obtienes su mango

PRECIO_MEDIO

El precio medio, (alto+bajo)/2


Y hay un ejemplo absolutamente claro en la documentación.


Ok, me pasé con los dos primeros rates_total y el otro, pero en lugar de prece ->&aData[]. debería integrar la clase, no los indicadores a través de copybuff

la clase es

//+------------------------------------------------------------------+
void  CSMA_Greed::Solve(const int aRatesTotal,const int aPrevCalc,const double  &aData[])
  {
   rt=aRatesTotal; prv=aPrevCalc;
   for(int i=0;i<m_max_period;i++)ArrayResize(d[i].m,rt);
   chsma.Solve(rt,prv,aData,d[m_max_period-1].m);

   for(int i=prv>m_max_period?prv:m_max_period;i<rt;i++)
     {
      temp=d[m_max_period-1].m[i]*m_max_period;
      for(int j=m_max_period-2;j>=0;j--)
        {
         temp-=aData[i-(j+1)];
         d[j].m[i]=temp/(j+1);
        }
     }
  };
Razón de la queja: