Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 81

 
Gevorg Hakobyan:
if(v=="NZD")
{
h=(iClose("NZDUSD",p,b)-iOpen("NZDUSD",p,b))/MarketInfo("NZDUSD",MODE_POINT)+
(iOpen("EURNZD",p,b)-iClose("EURNZD",p,b))/MarketInfo("EURNZD",MODE_POINT)+
(iOpen("GBPNZD",p,b)-iClose("GBPNZD",p,b))/MarketInfo("GBPNZD",MODE_POINT)+
(iOpen("AUDNZD",p,b)-iClose("AUDNZD",p,b))/MarketInfo("AUDNZD",MODE_POINT)+
(iClose("NZDJPY",p,b)-iOpen("NZDJPY",p,b))/MarketInfo("NZDJPY",MODE_POINT)+
(iClose("NZDCAD",p,b)-iOpen("NZDCAD",p,b))/MarketInfo("NZDCAD",MODE_POINT)+
(iClose("NZDCHF",p,b)-iOpen("NZDCHF",p,b))/MarketInfo("NZDCHF",MODE_POINT);
}
Realmente no importa lo que tengas en tu código. ¿Puedes decir a qué CC estás conectado que obtienes cero en lugar de Point()?
 
sile:

Hola.

Por favor, ayuda.

Ahora el lote de cada orden siguiente se incrementa en 1, 2, 3, 4, 5...

Quiero que el lote de cada pedido aumente no cada orden, sino en incrementos de 3, así que 1, 1, 1, 1, 2, 2, 2, 3, 3, 3...

El contador debe ponerse en marcha y volver al valor inicial cuando se alcanza el umbral establecido:
extern double   LotStop        = 0.01;
extern double   Plus_LotStop   = 0.01;
extern double   Plus_N_ORD  = 3;        //каждые N ордеров
void OnTick()
  {
//---
int c=0;
  for (int i=1; i<=OrdersStop; i++)
   {
       if((Close[1]<Open[1]&&Close[2]>Open[2]&&NumberOfPositions(Symbol(), -1,_Magic)<1))
         {
            OPENORDER (OP_BUYSTOP,PriceBS,LOTs,_Magic,i);
            numB++;
            PriceBS = NormalizeDouble(PriceBS+Step_Stop*Point,Digits);
          
            OPENORDER (OP_SELLSTOP,PriceSS,LOTs,_Magic,i);
            numS++;
            PriceSS = NormalizeDouble(PriceSS-Step_Stop*Point,Digits);
         }
      c++;
      if(c==3){LOTs+=Plus_LotStop;c=0;}
    }
  }
 

¿Puede decirme si un indicador llamado "iSignal" funciona en el terminal, es posible averiguar desde un EA que este indicador existe realmente en cualquier ventana o en una ventana con un EA?

 
Vitaly Muzichenko:

¿Puede decirme si un indicador llamado "iSignal" funciona en el terminal, es posible averiguar desde un EA que este indicador existe realmente en cualquier ventana o en una ventana con un EA?

En la Ayuda ChartIndicatorName(); Y otros que verás allí.


ChartIndicatorName

Devuelve el nombre corto del indicador por su número en la lista de indicadores de la ventana del gráfico especificada.

stringChartIndicatorName(
longchart_id,// ID del gráfico
intsub_window,// número de la subventana
intindex// índice del indicador en la lista de indicadores añadidos a la subventana dada
);

Parámetros

chart_id

[ID del gráfico. 0 significa el gráfico actual.

subventana

[in] Número de subventana del gráfico. 0 significa la ventana principal del gráfico.

índice

[in] Índice del indicador en la lista de indicadores. Los indicadores se numeran a partir de cero, es decir, el primer indicador de la lista tiene un índice cero. El número de indicadores de la lista puede obtenerse mediante ChartIndicatorsTotal().

Valor devuelto

Nombre corto del indicador, que sedefine en la propiedad INDICATOR_SHORTNAME mediante la función IndicatorSetString().Para obtener información sobre el error, llame a la función GetLastError().


Revise todos los gráficos y busque el indicador requerido en ellos. También puede definir el número de indicadores en el gráfico, así como el número de todas las ventanas de un gráfico. Lo verás en la ayuda.
 
Vitaly Muzichenko:

¿Pueden decirme si un indicador llamado "iSignal" funciona en el terminal, es posible averiguar desde un EA que este indicador existe realmente en cualquier ventana, o en una ventana con un EA?

Es posible. Recorra los indicadores del bucle en el gráfico necesario y compare el nombre del indicador seleccionado con el dado. La función ChartIndicatorName().

Probablemente, tendrá que buscar también en las subventanas del gráfico, si el indicador está en el "sótano".

 
Artyom Trishkin:

En la ayuda ChartIndicatorName(); Y otros que también verás allí.


ChartIndicatorName

Devuelve el nombre corto del indicador por número en la lista de indicadores en la ventana del gráfico especificado.

stringChartIndicatorName(
longchart_id,// ID del gráfico
intsub_window,// número de subventanas
intindex// índice del indicador en la lista de indicadores añadidos a esta subventana
);

Gracias, estaba buscando exactamente eso, ¡y funciona!

Y ahora de vuelta) ¿Es lo mismo, pero de un indicador encontrar experto: (c)este experto es realmente en cualquier ventana, o una ventana con indicador?

 
Vitaly Muzichenko:

Gracias, estaba buscando exactamente eso, ¡y funciona!

Y ahora de vuelta) ¿Hay una similar, sólo desde el indicador para encontrar el experto: (c)es este experto realmente en cualquier ventana, o una ventana con un indicador?

¿Cómo se codifica en general?
WindowExpertName - Операции с графиками - Справочник MQL4
WindowExpertName - Операции с графиками - Справочник MQL4
  • docs.mql4.com
WindowExpertName - Операции с графиками - Справочник MQL4
 
Vitalie Postolache:
¿Cómo se codifica en absoluto?
Conozco este, pero no sabe buscar en los gráficos de otras personas.
 
Vitaly Muzichenko:
Conozco este, pero no puede buscar en la carta de otra persona.

No sólo no sabe buscar en el gráfico de otro, sino que en su propio gráfico sólo encuentra "su" indicador, script o experto, aquel en el que está prescrita esta función.

No lo he comprobado, pero he probado a pasar por el bucle de gráficos.

ChartGetString(chart_id, CHART_EXPERT_NAME)
Creo que debería funcionar.
 
Alexey Viktorov:

No sólo no sabe buscar en el gráfico de otro, sino que en su propio gráfico sólo encuentra "su" indicador, script o experto, aquel en el que está prescrita esta función.

No lo he comprobado, pero lo he probado en el bucle a través de gráficos

ChartGetString(chart_id, CHART_EXPERT_NAME)
Creo que debería funcionar.

Sí, funciona y encuentra desde el indicador experto por su nombre. Pero ahora una pregunta: ¿hay alguno similar, pero para cuatros, y preferiblemente multiplataforma?

Gracias.