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

 
Artyom Trishkin:
Examinar el código

Gracias por la rápida respuesta. No quiero ser grosero, pero está cerca pero no del todo bien. En mi caso se utiliza DRAW_COLOR_HISTOGRAM2

tiene tres buffers, dos para los valores de inicio y final de la vela y el tercero para almacenar el color de esta vela.

El ejemplo mostrado arriba utiliza DRAW_COLOR_HISTOGRAM , tiene dos buffers (tamaño de la vela y color) y construye barras sólo desde "0". Un histograma de este tipo no puede trazar a partir del nivel (por ejemplo, 50).

Deberíamos restar 50 del rango de valores de la matriz de indicadores para desplazar el valor de -50 a 50, en lugar de 0 a 100 como en la fuente original. En lugar del nivel 50 será el nivel 0. Y

para ordenar los histogramas por encima y por debajo de 0, tendré que utilizar dos, uno "negativo", por debajo de 0, y otro "positivo", por encima de 0. Supongo :-))

Esto, por supuesto, es también una opción y es probablemente más fácil de implementar para mí ahora, pero quiero entenderlo y encontrar ERROR.


¿Qué estoy haciendo mal? Los valores se calculan correctamente (los he comprobado en el probador, paso a paso), el índice de color cambia correctamente, pero el indicador en sí no tiene ningún efecto, el color no cambia, no hay conexión entre el índice de color

SetIndexBuffer(6,ColorHistogram_2Colors,INDICATOR_COLOR_INDEX); 

y la pantalla. Gracias de todos modos.

 

Realizados los cambios, añadidos Impresiones para ver los cambios en cada garrapata

se puede ver que el índice es igual al valor verde "32768", debe serlo, porque

ExtMainBuffer[i]>50

es decir, el estocástico está por encima de 50. Pero las barras del histograma siguen siendo rojas.

He añadido el archivo con la impresión.

Archivos adjuntos:
 

He utilizado el ejemplo de la Referencia MQL5 como ejemplo para mí

Guía de referencia MQL5 / Indicadores personalizados / Estilos de indicadores en los ejemplos / DRAW_COLOR_HISTOGRAM2

¡¡¡¡comprobado todo, todo como lo hacen, y no funciona!!!!
¿Quién sabe, por favor, aconsejar donde el error, lo que está mal?

 
Seric29:

Acabo de llamar al programa compilador de forma figurada, pero en general, ¿en qué caso sería mejor?

utilizar muchas funciones pequeñas en lugar de un "gran trozo" de código, como aconsejó@Ilyas

 
Sergey Voytsekhovsky:

He utilizado el ejemplo de la Referencia MQL5 como ejemplo para mí

Guía de referencia MQL5 / Indicadores personalizados / Estilos de indicadores en los ejemplos / DRAW_COLOR_HISTOGRAM2

¡¡¡¡comprobado todo, todo como lo hacen, y no funciona!!!!
¿Quién sabe, por favor, aconsejar donde el error, lo que está mal?

Te he dado un enlace para que aprendas a trabajar con un buffer de color, no con un histograma. Abstraerse del histograma y centrarse en cómo trabajar con el color.

 
Sergey Voytsekhovsky:

Buenas noches. Lo he intentado durante mucho tiempo y en vano. El histograma se dibuja correctamente, pero la coloración en diferentes colores (por encima y por debajo del nivel 50) no ha ganado. Por favor, dígame dónde he metido la pata. El texto de abajo, el archivo está vinculado


Lo primero que me llamó la atención fue la secuencia de topes.

//--- indicator buffers mapping
   SetIndexBuffer(0,ExtMainBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ExtSignalBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,ColorHistogram_2Buffer1,INDICATOR_DATA);
   SetIndexBuffer(3,ColorHistogram_2Buffer2,INDICATOR_DATA);
   SetIndexBuffer(4,ExtHighesBuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(5,ExtLowesBuffer,INDICATOR_CALCULATIONS);
   SetIn dexBuffer(6,ColorHistogram_2Colors,INDICATOR_COLOR_INDEX);

Los topes deben ser SIEMPRE consecutivos. Es decir, si los búferes de datos son los números 2 y 3, el búfer de color DEBE ser el número 4

Si este no es el único error, entonces buscaremos más.

 

No puedo pensar con claridad.

Llevo media hora curioseando y no consigo entenderlo.

Por favor, dígame cómo saber el valor en rublos de 1 punto de precio, si el tamaño del tick y su precio son diferentes en la especificación de la herramienta.

Por ejemplo, si tengo una variable con valor 10

está claro que para Uber son 10 rublos

rts 130 rublos

aceite 60 rublos

¿Cómo se ve en el código? Estoy confundido, los puntos simples están bien, pero el aceite rts es diferente

 
Konstantin Seredkin:

No puedo pensar con claridad.

Llevo media hora curioseando y no consigo entenderlo.

Por favor, dígame cómo saber el valor en rublos de 1 punto de precio, si el tamaño del tick y su precio son diferentes en la especificación de la herramienta.

Por ejemplo, si tengo una variable con valor 10

está claro que para Uber son 10 rublos

rts 130 rublos

aceite 60 rublos

¿Cómo se ve en el código? Estoy confundido, los puntos simples están bien, pero el aceite rts es diferente

SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE) * volumen

MQL4

 
Alexandr Sokolov:

SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE) * volumen

MQL4

Se necesita MQL5

los futuros no se negocian en mt4


esto es lo que necesitas


 
Konstantin Seredkin:

Se necesita MQL5

los futuros no se negocian en mt4


esto es lo que necesitas


Así que es lo mismo en mql5. Incluso se ha ampliado un poco. ¿No es eso lo que necesitamos?

SÍMBOLO_COMERCIO_VALOR_DE_TICK

Valor de SYMBOL_TRADE_TICK_VALUE_PROFIT

doble

SYMBOL_TRADE_TICK_VALUE_PROFIT

Valor del tick calculado para la posición rentable

doble

SIMBOLO_COMERCIO_VALOR_DE_PUNTUALIDAD_PÉRDIDA

Valor calculado de un tick para una posición perdedora

doble

SYMBOL_TRADE_TICK_SIZE

Cambio de precio mínimo

doble

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
Razón de la queja: