Ayuda a la codificación - página 712

 
mladen:
El método es exactamente el mismo, sólo hay que cambiar la ventana de destino en ChartIndicatorAdd() para que sea 0

Hola mladen, gracias por la respuesta... estaba estudiando aquí..

ChartIndicatorAdd(0,(int)ChartGetInteger(1,CHART_WINDOWS_TOTAL),MA1Handle);

donde (1) ventana superior

CharGetInteger(1=>ventana superior)

donde (0) abajo

ChartIndicatorAdd(0,(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL),RSI1Handle);
CharGetInteger(0=>abajo)

no es fácil descubrir esto.. lol

ahora trato de poner diferente color en la MA
 
baraozemo:

Hola mladen, gracias por la respuesta... estaba estudiando aquí..

ChartIndicatorAdd(0,(int)ChartGetInteger(1,CHART_WINDOWS_TOTAL),MA1Handle);

donde (1) ventana superior

CharGetInteger(1=>ventana superior)

donde (0) abajo

ChartIndicatorAdd(0,(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL),RSI1Handle);
CharGetInteger(0=>abajo)

no es fácil descubrir esto.. lol

ahora trato de poner diferente color en la MA

Así

ChartIndicatorAdd(0,0,MA1Handle);
 
mladen:

Así

ChartIndicatorAdd(0,0,MA1Handle);

la pregunta sobre poner el indicador en la parte superior o inferior , como dije , descubrí...

ChartIndicatorAdd(0, 1,MA1Handle); (arriba)

ChartIndicatorAdd(0, 2,RS1Handle); (abajo)

los problemas reales:

1) ahora estoy tratando de aplicar un color diferente a las MA's

2) y resolver un problema para liberar las MA's de los gráficos (las RSI's y las WPR se limpian correctamente.. )

por ejemplo...

el RSI1,RSI2,RSI3 y el WPR se limpian correctamente pero el MA1,MA2,MA3 no se limpian...

int OnInit()

  {

  

  if (_Period==Signal_0_MA_Timeframe)  

   {

   MA1Handle = iMA(_Symbol,Signal_0_MA_Timeframe,Signal_0_MA_PeriodMA,Signal_0_MA_Shift,Signal_0_MA_Method,Signal_0_MA_Applied);

   if (MA1Handle!=INVALID_HANDLE)

      ChartIndicatorAdd(0,(int)ChartGetInteger(1,CHART_WINDOWS_TOTAL),MA1Handle);

      //return(INIT_SUCCEEDED);

   }

  

  //---adicionando MA2

  if (_Period==Signal_1_MA_Timeframe)

   {

   MA2Handle = iMA(_Symbol,Signal_1_MA_Timeframe,Signal_1_MA_PeriodMA,Signal_1_MA_Shift,Signal_1_MA_Method,Signal_1_MA_Applied);

   if (MA2Handle!=INVALID_HANDLE)

      ChartIndicatorAdd(0,(int)ChartGetInteger(1,CHART_WINDOWS_TOTAL),MA2Handle);

      //return(INIT_SUCCEEDED);      

   }   



===============================//===========================


//+------------------------------------------------------------------+

//| Deinitialization function of the expert                          |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

  {

   //limpa do gráfico os indicadores RSI e WPR

    for (int w = (int)ChartGetInteger(0,CHART_WINDOWS_TOTAL); w>=0; w--)

   {

      string name = ChartIndicatorName(0,w,0);

      if (StringFind(name,"RSI(",0)==0)

            ChartIndicatorDelete(0,w,name);

      if (StringFind(name,"%R(",0)==0)

            ChartIndicatorDelete(0,w,name);

      if (StringFind(name,"Moving Average(",0)==0)

            ChartIndicatorDelete(0,w,name);

   }         

   

   ExtExpert.Deinit();

  }

 
baraozemo:

la pregunta sobre poner el indicador en la parte superior o inferior , como dije , descubrí...

ChartIndicatorAdd(0, 1,MA1Handle); (arriba)

ChartIndicatorAdd(0, 2,RS1Handle); (abajo)

los problemas actuales:

1) ahora estoy intentando aplicar un color diferente a las MA's

2) y resolver un problema para liberar las MA's de los gráficos (los RSI's y el WPR se limpian correctamente.. )

por ejemplo...

los RSI1,RSI2,RSI3 y WPR se limpian correctamente pero los MA1,MA2,MA3 no se limpian...

int OnInit()

  {

  

  if (_Period==Signal_0_MA_Timeframe)  

   {

   MA1Handle = iMA(_Symbol,Signal_0_MA_Timeframe,Signal_0_MA_PeriodMA,Signal_0_MA_Shift,Signal_0_MA_Method,Signal_0_MA_Applied);

   if (MA1Handle!=INVALID_HANDLE)

      ChartIndicatorAdd(0,(int)ChartGetInteger(1,CHART_WINDOWS_TOTAL),MA1Handle);

      //return(INIT_SUCCEEDED);

   }

  

  //---adicionando MA2

  if (_Period==Signal_1_MA_Timeframe)

   {

   MA2Handle = iMA(_Symbol,Signal_1_MA_Timeframe,Signal_1_MA_PeriodMA,Signal_1_MA_Shift,Signal_1_MA_Method,Signal_1_MA_Applied);

   if (MA2Handle!=INVALID_HANDLE)

      ChartIndicatorAdd(0,(int)ChartGetInteger(1,CHART_WINDOWS_TOTAL),MA2Handle);

      //return(INIT_SUCCEEDED);      

   }   



===============================//===========================


//+------------------------------------------------------------------+

//| Deinitialization function of the expert                          |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

  {

   //limpa do gráfico os indicadores RSI e WPR

    for (int w = (int)ChartGetInteger(0,CHART_WINDOWS_TOTAL); w>=0; w--)

   {

      string name = ChartIndicatorName(0,w,0);

      if (StringFind(name,"RSI(",0)==0)

            ChartIndicatorDelete(0,w,name);

      if (StringFind(name,"%R(",0)==0)

            ChartIndicatorDelete(0,w,name);

      if (StringFind(name,"Moving Average(",0)==0)

            ChartIndicatorDelete(0,w,name);

   }         

   

   ExtExpert.Deinit();

  }

La media móvil sinusoidal sólo tiene un nombre "Media móvil" no se puede identificar de forma única, por lo que no se puede eliminar con seguridad
 

Mladen, 1) por favor ayuda a hacer los dígitos redondos en iCustom a 0,1 o 0,01 máximo.

y explique, por favor, cómo insertar "valor2" (o3) en lugar de la media del indicador por defecto?

iCustom(NombreSimbolo,PeriodoMinutos,"_1_IFT 2-1",0,i)

 

HOLA Sr. mladen

ejecuto este indicador {ssa_squeeze_of_averages_mtf_amp_alerts_2.mq4} pero no puede mostrar nada

podría arreglarlo

mejor consideración

y podría hacer MTF de este indicador:ma_count_amp_alerts.mq4

MTF similar este histograma:

 
bilbao:

HOLA Sr. mladen

ejecuto este indicador {ssa_squeeze_of_averages_mtf_amp_alerts_2.mq4} pero no puede mostrar nada

podría arreglarlo

saludos

y podría hacer MTF de este indicador:ma_count_amp_alerts.mq4

MTF similar este histograma:

Necesitas "SSA del precio" para que el ssa_squeeze . .. funcione
 
kostumer27:

Mladen, 1) por favor ayuda a hacer los dígitos redondos en iCustom a 0,1 o 0,01 máximo.

y explicar, por favor, cómo insertar "value2" (o3) en lugar de la media del indicador por defecto?

iCustom(symbolName,PeriodMinutes,"_1_IFT 2-1",0,i)

Depende de la lista de parámetros del indicador, pero tienes que pasar los parámetros entre el nombre del indicador y el número del buffer

Algo como esto :

iCustom(symbolName,PeriodMinutes,"_1_IFT-1",yourParameter1,yourParameter2,yourParameter3,yourParameter9999,0,i)

La otra parte, no entiendo

Si te refieres a limitar en caliente los valores de retorno, no puedes hacerlo. Sólo puede limitar el valor asignado a algo desde la llamada iCustom(), así

double result = MathMax(MathMin(iCustom(symbolName,PeriodMinutes,"_1_IFT 2-1",0,i),0.1),0.01);
 
mladen:
Necesitas "SSA de precio" para que el ssa_squeeze . .. funcione

Gracias.

ahora funciona

 

señor mladen :

podría hacer MTF de ella

similar este histograma de la imagen

mejor consideración

Archivos adjuntos:
Razón de la queja: