¿Cómo puedo aprender a crear objetos gráficos? MQL4. - página 6

 
         string   shortName="fraktalSDV"; 
         long   chart_ID=ChartID();        // ID графика
         int win_idx=ChartWindowFind(chart_ID,shortName);
         string nameobj=TimeToStr(Time[0]);
         string name=Time[0]+1; 
         Print("indikator=",win_idx);         
            //--- сбросим значение ошибки
            ResetLastError();
            //--- создадим трендовую линию по заданным координатам
           if(!ObjectCreate(chart_ID,nameobj,OBJ_TREND,win_idx,Time[index],maximum1,Time[1],TRENDmax[1]))
            {
            Print(__FUNCTION__,
                  ": не удалось создать линию тренда! Код ошибки = ",GetLastError());
            return(0);
            } 
           if(!ObjectCreate(chart_ID,name,OBJ_TREND,win_idx,Time[min1],minimum1,Time[1],Low_[1]))
            {
            Print(__FUNCTION__,
                  ": не удалось создать линию тренда! Код ошибки = ",GetLastError());
            return(0);
            }       
           ObjectSet(nameobj,OBJPROP_RAY,false); 
           ObjectSet(name,OBJPROP_RAY,false);
Menos 1 de todos modos. También he probado a poner el nombre del indicador todo en minúsculas, también nada.
 
forexman77:
Menos 1 de todos modos. También intenté que el nombre del indicador fuera todo en minúsculas, también nada.
¿Ha asignado win_idx=1; ? Sólo toma, y establece específicamente el número de subventana.
 
Artyom Trishkin:
¿Ha asignado win_idx=1; ? Sólo toma, y establece específicamente el número de subventana.

Lo probé y no sirvió de nada. Tal vez sea el indicador, pero las operaciones parecen abrirse correctamente.

Seguiré mañana, que ya se me ha pasado la hora de dormir.

 

He leído en la documentación que es mejor hacer el nombre del indicador con parámetros.

Hice lo siguiente en el indicador:

IndicatorSetString(INDICATOR_SHORTNAME,"fraktalsdv("+Period_MA_1+","+ma_shift+","+price+","+Period_+")"); 

en el Asesor Experto:

string   shortName="fraktalsdv("+Period_MA_1+","+ma_shift+","+price+","+Period_+")"; 

No se detecta la ventana con el indicador.

 
forexman77:

He leído en la documentación que es mejor hacer el nombre del indicador con parámetros.

Hice lo siguiente en el indicador:

en el Asesor Experto:

Ventana con indicador no detectada.

Está claro que hay un problema en su código, ya que el script de prueba encuentra fácilmente los indicadores estándar que se muestran en la subventana.
 
Karputov Vladimir:
Claramente un problema en su código porque el script de prueba encuentra fácilmente los indicadores estándar que se muestran en la subventana.

Pero, las operaciones se abren y se basan en el indicador. Y el indicador da valores correctos cuando se imprime en el EA.

Por alguna razón creo que es porque el indicador no tiene la línea #property strict (no funciona con ella)

 
forexman77:

Pero, las operaciones se abren y se basan en el indicador. Y el indicador da valores correctos cuando se imprime en el EA.

De alguna manera me parece que el indicador no tiene la línea #property strict (no funciona con ella)

No, no lo es. Prueba la función WindowFind()
 
Artyom Trishkin:
No, no lo es. Prueba la función WindowFind().
Devuelve -1.
 
forexman77:
Devuelve -1.

Busque errores. Los indicadores se buscan normalmente a través de

intVentanaGráficaEncontrar(
longchart_id,// ID del gráfico
string nombre_del_indicador // nombre corto del indicador, véaseINDICATOR_SHORTNAME

 
forexman77:

No se ha detectado ninguna ventana indicadora.

¿Quieres encontrar el indicador que el EA crea para los cálculos en el gráfico? Buena suerte.