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

 
Vladimir Karputov:

Ver los errores:

1. Especifique siempre el símbolo del gráfico de forma explícita (sí, puede basarse en la documentación, pero SIEMPRE es mejor especificarlo de forma explícita)

2. La cadena no tiene sentido - ya que preff+"hhh" nunca será igual a Symbol()


Añadido: mejor tener este enfoque - siempre una línea en el gráfico, sólo cambiar el precio de la línea cuando se cambia de gráfico.

Si se advierte explícitamente: conversión implícita de 'cadena' a 'número'

La esencia del problema es que la línea no se muestra en el lugar donde fue creada.

Si lo creo en la herramienta al precio de 255, ¿por qué se muestra a 255 cuando cargo otra herramienta con el precio actual de 310?

Por favor, díganme cómo guardar la línea y mostrarla donde fue creada.
 
serg_V777:

Si emite explícitamente una advertencia: conversión implícita de 'cadena' a 'número'

La esencia del problema es que la línea no se muestra en el lugar donde fue creada.

Si lo creo en la herramienta al precio de 255, ¿por qué se muestra a 255 cuando cargo otra herramienta con el precio actual de 310?

Por favor, díganme cómo guardar la línea y mostrarla donde fue creada.

Usted me ha mostrado su fragmento de código - yo le he dado su fragmento. Declara las variables y no tendrás errores.

No puedo entender su lógica con las líneas. Intenta describir tus acciones con detalle y, sobre todo, por qué tienes que hacerlo.


En tu código no entiendo por quéChartSymbol

 
Vladimir Karputov:

Me mostraste un trozo de código, te di tu trozo. Declara las variables y no habrá errores.

No entiendo su lógica con las líneas. Intente describir sus acciones con detalle y, sobre todo, por qué debe hacerlo.


En su código, no entiendo por qué necesitoChartSymbol.

void OnChartEvent(const int id,           // идентификатор события   
                  const long& lparam,     // параметр события типа long 
                  const double& dparam,   // параметр события типа double 
                  const string& sparam) { // параметр события типа string 
 
 
  preff=ChartSymbol( NULL);
  price=SymbolInfoDouble(Symbol(),SYMBOL_BIDLOW); 
 if(id == CHARTEVENT_OBJECT_CLICK && sparam == "dz_draw")// Нажатие кнопки   
  {   
   ObjectCreate(0,preff+"hhh",OBJ_HLINE,0,0,price) ;    
 ObjectSetInteger(0,preff+"hhh",OBJPROP_COLOR,clrBlack); 
   ObjectSetInteger(0,preff+"hhh",OBJPROP_STYLE,0); 
   ObjectSetInteger(0,preff+"hhh",OBJPROP_WIDTH,3); 
   ObjectSetInteger(0,preff+"hhh",OBJPROP_BACK,false); 
   ObjectSetInteger(0,preff+"hhh",OBJPROP_SELECTABLE,true); 
   ObjectSetInteger(0,preff+"hhh",OBJPROP_SELECTED,true); 
   ObjectSetInteger(0,"dz_draw"   ,OBJPROP_STATE,false);
   }
}

Así que creo una línea al precio de 277 en el gráfico de Gazp.

Cuando lo cambio en la misma ventana en Sber, aparece la línea creada en Gazp en el 277...

Si creo una línea Sber en 310, obtengo dos líneas en el gráfico - una correcta (creada donde se necesita y lo que se necesita) y la segunda incorrecta - no de este gráfico ....

Cambiando de herramienta y creando líneas en el rango de precios de 200- 400 y volviendo al gráfico de Gazp me confundo tanto de personas como de caballos :),

Pero necesito el único (quizás un par de líneas horizontales), creado donde y cuando lo necesito.

 
serg_V777:

Así que creo una línea en 277 en el gráfico de Gazp...

Al cambiar en la misma ventana en Sber se muestra la línea creada en Gazp en el 277...

Si creo y en Sber la línea en 310 obtengo dos líneas en el gráfico - uno correcto (creado donde es necesario y para lo que es necesario) y segundo incorrecto - no de este gráfico....

Cambiando de herramienta y creando líneas en el rango de precios de 200- 400 y volviendo al gráfico de Gazp me confundo tanto de personas como de caballos :),

Pero es la única que necesito (quizá un par de líneas horizontales), creada donde y cuando la necesito.

ChartSymbol

Lee la ayuda. Después de la ayuda, no use este operador - no lo necesita.


Necesita el siguiente algoritmo: para que cada personaje guarde el precio. El precio se almacena en las variables globales del terminal (el nombre de la variable global es el nombre del símbolo). A continuación, es necesario dar servicio a 'CHARTEVENT_OBJECT_CHANGE' y'CHARTEVENT_OBJECT_DRAG' - y volver a guardar el precio en las variables globales.

También hay muchos matices que resolver: por ejemplo - hay una variable global y no hay línea en el gráfico...

 
User_mt5:
Muchas gracias. Me has ayudado mucho.

Y por supuesto, ¿dónde podría estar esta característica sino en medio de la lista de indicadores técnicos?)

¿No puedes hacerlo sin ser sarcástico?

Parece que no lees la documentación en absoluto... Pero respondes a los consejos como si fueras el centro del universo... Sólo un ombligo analfabeto e indefenso...

 
Vitaly Muzichenko:

Gracias.

No hay manera de hacerlo con las herramientas estándar.

No se puede hacer sin utilizar las DLL del sistema.

He publicado toda una biblioteca para este fin )

Para los 5's por separado.
CDir (MT4) - класс для получения оглавления каталога
CDir (MT4) - класс для получения оглавления каталога
  • www.mql5.com
Класс CDir предназначен для получения сведений о файлах и папках вне "песочницы" MQL4 подобно команде MS-DOS Dir. Задействован вызов системных DLL, поэтому следует разрешить их использование.
 
Vladimir Karputov:

Lee la ayuda. Después de la ayuda, no utilice este operador - no lo necesita.


Necesitas este algoritmo: para cada símbolo necesitas guardar un precio. El precio se almacena en las variables globales del terminal (el nombre de la variable global es sólo el nombre del símbolo). A continuación, es necesario dar servicio a 'CHARTEVENT_OBJECT_CHANGE' y'CHARTEVENT_OBJECT_DRAG' - y volver a guardar el precio en las variables globales.

Hay muchos matices por resolver todavía: por ejemplo - hay una variable global y no hay línea en el gráfico...

Gracias por el algoritmo.

Pregunta - ¿Por qué se encuentra la línea y se descolora en este código?

if(preff+"hhh" == ChartSymbol(0) ){
ObjectSetInteger(0,preff+"hhh",OBJPROP_COLOR,clrNONE); }

pero para hacerlo como se debe hacer es un bosque oscuro para ir a ....

 
Mikhail Dovbakh:

No se puede hacer sin utilizar las DLL del sistema.

He publicado toda una biblioteca para este fin )

Para 5 por separado.

Genial, ¡es justo lo que necesito!

 
Сергей Таболин:

¿No puedes hacerlo sin ser sarcástico?

Parece que no lees la documentación en absoluto... Pero respondes a los consejos como si fueras el centro del universo... Sólo un ombligo analfabeto e indefenso...

En lugar de ser grosero, harías algo útil, ¡por Dios!

¡Y no te molestes en contestar y responder! Su opinión, por desgracia, no me interesa).

 

Por favor, dígame de qué clase heredar su clase para utilizar todos los métodos de estos

para utilizar todos los métodos de estas clases dentro de su clase, sin crear objetos dentro de su clase?



Razón de la queja: