С этой статьи я начинаю еще одну серию, относящуюся к разработке графических интерфейсов. На текущий момент нет ни одной библиотеки кода, которая позволяла бы легко и быстро создавать качественные графические интерфейсы в MQL-приложениях. Я имею в виду графические интерфейсы, к которым мы все привыкли в известных операционных системах. Цель проекта — дать конечному пользователю такую возможность и научить это делать с помощью моей библиотеки. Я постарался сделать ее максимально понятной в изучении, с возможностями дальнейшего развития.
¿Podríais aconsejar cómo implementar correctamente el llenado del buffer del indicador con datos copiando desde el buffer de otro indicador, llamado a través de iCustom? La idea es poder llamar al mismo indicador, construido en base a los datos de otro instrumento en la ventana del instrumento actual.
Como resultado, el buffer de datos está vacío, el gráfico no se traza. El tampón de color no es importante.
//---- indicator settings#property indicator_separate_window#property indicator_buffers2#property indicator_plots1#property indicator_type1DRAW_COLOR_HISTOGRAM#property indicator_color1 Green,Red
#property indicator_style10#property indicator_width13//--- input datainputstring OtherSymbol=""; //Название символа, по которому считать. Если пусто - текущий символ//---- indicator buffersdouble DataBuffer[];
double ColorsBuffer[];
//---- external indicator handleint CustomHandle=0;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
SetIndexBuffer(0,DataBuffer,INDICATOR_DATA);
SetIndexBuffer(1,ColorsBuffer,INDICATOR_COLOR_INDEX);
IndicatorSetString(INDICATOR_SHORTNAME,"PercentChangeHistogram");
IndicatorSetInteger(INDICATOR_DIGITS,2);
//----if (OtherSymbol!="") //если есть имя другого символа, рекурсивно вызываем индикатор через iCustom
{
CustomHandle=iCustom(OtherSymbol,_Period,"PercentChangeHistogram","");
if (CustomHandle==-1)
{Alert ("iCustom function initialization failed!");
return (INIT_FAILED);}
}
return (INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| OnCalculate |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
if(rates_total<2)
return(0);
int start=prev_calculated-1;
if(start<1) start=1;
//---if (OtherSymbol=="")// если input переменная содержит пустую строку, заполняем индикаторный массив через простой расчет функцией CalculateData// если input переменная содержит не пустую строку, пытаемся заполнить индикаторный массив копированием данных другого индикатора
CalculateData(start,rates_total,open,close);
elseCopyBuffer(CustomHandle,0,start,rates_total-prev_calculated,DataBuffer);
//---return(rates_total);
}
...
Da la sensación de que se refiere a su edad más que a su antigüedad.
He leído tu mensaje, todo parece estar bien :-) pero ¿qué pasa con la pregunta que provocó esta confusión?
Declarar un array medianteSetIndexBuffer(1, tmp1) no hace nada. Por supuesto, puedo aumentar el tamaño del array en el mismo bucle, pero quiero conocer una forma más sencilla y eficiente.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Hazlo. Entonces el código aquí.
Por cierto, Artem.
La tarea que nos ocupa plantea una cuestión interesante.
Para comprobar TODO, se necesita un procedimiento de "importación de datos".
Es decir, las matrices dinámicas deben cargarse con sus propios datos dinámicos de fuentes de terceros.
No sé si MT4/MT5 tiene este procedimiento - o no?
¿Cómo importar datos en MT4/MT5?
¿Es esto posible?
-------------------------------------------------------------------
Me interesa importar datos dinámicos, no sólo leer datos de un array.
---------------------------------------------------------------------------------------------------------------
Por cierto, aquí es donde http://tol64.blogspot.com/2015/12/easy-and-fast-gui-mql.html esta importación debe ser por la construcción.
Simplemente no hay manera de hacerlo sin él.
------------------------------------------------------------------------------------------
No veo la importación en MT4/MT5 o sus extensiones.
¡¡¡Dame la importación!!!
Esto es un disparate feroz, digno de pasar a los anales del foro.
"¡Ah, la musa! Saber que es fuerte,
"¡Eso ladra al elefante!"
https://ru.wikisource.org/wiki/%D0%A1%D0%BB%D0%BE%D0%BD_%D0%B8_%D0%9C%D0%BE%D1%81%D1%8C%D0%BA%D0%B0_(%D0%9A%D1%80%D1%8B%D0%BB%D0%BE%D0%B2)
¡Alexey!
¡¡¡Te voy a hacer una chuleta, en el foro !!!
Lo siento.
¡Buenas tardes!
¿Podríais aconsejar cómo implementar correctamente el llenado del buffer del indicador con datos copiando desde el buffer de otro indicador, llamado a través de iCustom? La idea es poder llamar al mismo indicador, construido en base a los datos de otro instrumento en la ventana del instrumento actual.
Como resultado, el buffer de datos está vacío, el gráfico no se traza. El tampón de color no es importante.
Es una chorrada digna de los anales del foro.
¡Alexey!
¿Desde cuándo es usted comerciante? -
- ¿Ninguna?
Los comerciantes solían razonar simple y llanamente...
- ¿Qué cuenta tienes, Alexey, en más o en menos, y cuántos años?
- ¿O no tiene ninguna cuenta comercial?
- ¿O simplemente eres un descerebrado y has decidido enseñar a otros comerciantes?
- Hay muchos.
--------------------------------------------------------------------------------------
- Tengo una cuenta de comerciante, y es buena. Mucho tiempo. 20 años. Y no voy a enseñar a nadie.
- Esa es la paradoja.
¡Alexey!
¿Desde cuándo es usted comerciante? -
- ¿Ninguna?
Los comerciantes solían razonar simple y llanamente...
- ¿Qué cuenta tienes, Alexey, en más o en menos, y cuántos años?
- ¿O no tiene ninguna cuenta comercial?
- ¿O simplemente eres un descerebrado y has decidido enseñar a otros comerciantes?
- Hay muchos.
--------------------------------------------------------------------------------------
- Tengo una cuenta de comerciante, y es buena. Mucho tiempo. 20 años. Y no voy a enseñar a nadie.
- Esa es la paradoja.
Se le ha dado una respuesta sobre el lado técnico de la moneda, y no debería estar relacionado con la calidad del comercio en absoluto.
Se le ha dado una respuesta sobre el lado técnico de la moneda, y no debería estar relacionado con la calidad del comercio en absoluto.
¿Por qué?
¿O cree que los operadores son "idiotas analfabetos" que juegan y apuestan en el mercado?
Entonces yo soy uno de ellos.
Sólo tomo la integral de dx sin dificultad. ¿Y tú? - ¿Qué, tienes un problema?
Es evidente que no eres un comerciante, al igual que muchos otros "expertos" de este foro.
Para un trader, el mercado FOREX es una "vaca sagrada", que SIEMPRE tiene razón.
Si eres capaz de impulsar tu idea en este mercado, ¡eres un héroe!
Si el mercado le da un vuelco, ¡ya sabe lo que le espera!
--------------------------------------------------------------------------------------------------------
Pero no se prohíbe a nadie en el mercado de divisas: ¡¡¡otra paradoja!!!
Si tienes razón o no - ¡no importa! ¡¡¡Todo está pagado!!!
Otra vez. Mira atentamente la imagen:
Gracias por la pista.
¿Por qué?
¿O cree que los operadores son "idiotas analfabetos" que juegan y apuestan en el mercado?
Entonces yo soy uno de ellos.
Sólo tomo la integral de dx sin dificultad. ¿Y tú? - ¿Qué, tienes un problema?
Es evidente que no eres un comerciante, al igual que muchos otros "expertos" de este foro.
Para un trader, el mercado FOREX es una "vaca sagrada", que SIEMPRE tiene razón.
Si eres capaz de impulsar tu idea en este mercado, ¡eres un héroe!
Si el mercado le da un vuelco, ¡ya sabe lo que le espera!
--------------------------------------------------------------------------------------------------------
Pero no se prohíbe a nadie en el mercado de divisas: ¡¡¡otra paradoja!!!
Si tienes razón o no - ¡no importa! ¡¡¡Todo está pagado!!!
Hablas de matrices y hablas de Forex. Sin embargo, ¡una paradoja!
- Y tengo una cuenta de comerciante, y una decente. Durante mucho tiempo. 20 años. Y no voy a enseñar a nadie.
- Esa es la paradoja.
Foro sobre trading, sistemas de trading automatizados y comprobación de estrategias
Cualquier pregunta para los novatos en MQL4, ayuda y discusión sobre algoritmos y códigos
Artyom Trishkin, 2018.10.17 18:00
Da la sensación de que se refiere a su edad más que a su antigüedad.He leído tu mensaje, todo parece estar bien :-) pero ¿qué pasa con la pregunta que provocó esta confusión?
Declarar un array medianteSetIndexBuffer(1, tmp1) no hace nada. Por supuesto, puedo aumentar el tamaño del array en el mismo bucle, pero quiero conocer una forma más sencilla y eficiente.