Ayuda a la codificación - página 495

 
Mastercash:
¡Mladen, parece que no entiendo, estoy usando EMA período 10 para actuar como r/s flotante para un propósito, si reduzco el período a 1 período, será demasiado débil para ser utilizado como r/s....! ¡Sólo necesito un corazón amable fello para ajustar el código para dar su alerta dentro de la vela, no en la apertura de la nueva vela.Im sólo un coder más delgado!

Lo siento

He leído el código de forma incorrecta

De todos modos, esta línea

MainBuffer=iMA(NULL,60,10,0,MODE_SMA,PRICE_CLOSE,i);

será errónea en cualquier caso cuando el marco de tiempo del gráfico sea diferente a 1 hora. Utilice iBarShift() para establecer el índice. Así

int y = iBarShift(NULL,PERIOD_H1,Time);

MainBuffer=iMA(NULL,PERIOD_H1,10,0,MODE_SMA,PRICE_CLOSE,y);

Además, cambie el valor de la constante SIGNAL_BAR de 1 a 0 para alertar sobre una barra abierta actual (pero entonces hay que hacer algunos cambios más en el código)

_________________

PD: Te recomiendo que cojas algunos de los nuevos indicadores de este hilo : https://www.mql5.com/en/forum/180648 ya que hay un montón de ejemplos de cómo se deben manejar esos casos

 

¡Por favor, por favor, por favor! Necesito un indicador con alerta que me avise cuando justo después del cierre de la 7ª vela alcista consecutiva o 7ª vela bajista consecutiva.

Pin , dogi y otras formas de velas no se cuentan. Sólo alertas de velas alcistas y bajistas que aparezcan con sonido cuando haya 7 barras bajistas o alcistas consecutivas.

Realmente voy a apreciar y compartir mi idea cuando la estrategia se hace.

 

¡Hola, Mladen!

Creo que he encontrado la razón de la optimización del tiempo de aumento.

Suavizar los datos en lugar de la "iMAOnArray", Incluir MovingAverages.mqh.

Una sola ejecución del indicador en el probador de estrategias con iMAOnArray:

2015.06. 28 00:13:42.132 2015 .06.15 23:59 EURUSD,H1: 70897 eventos de tick(71897 barras, 142742 estados de barra) procesados en 0:02:40.525 (tiempo total 0:02:40.556) 2015 .06.28 00:11:01.613 2015 .06.15 23:59 TSIEntradas ergódicas: p2=7; p3=5; p4=3; p5=3; 2015.06.28 00:11:01.587 2015.06.15 23:59

Una sola ejecución del indicador en el probador de estrategias con MovingAverages.mqh:

2015.06. 28 00: 14: 10.625 2015 . 06. 15 23: 59 EURUSD,H1: 70897 eventos de tick(71897 barras, 142742 estados de barra) procesados en 0:00:01.045 (tiempo total 0:00:01.077)2015.06. 28 00:14:09.57 7 2015. 06.15 23:59 TSI_Nuevas entradas: p2=7; p3=5; p4=3; p5=3; 2015 .06. 28 00: 14:09.54 6 2015.06.15 23:59 Cuando uso un nuevo indicador en el EA, no hay operaciones y la ventana del indicador está vacía.

Durante la optimización muestra que las carreras con las operaciones:

12 513.73 354 1.18 1.45 269.81 18.75% 1.18239793 p2=21 p3=9 p4=15 p5=28 s=4 stop=0.02 p=0.026 Lots=0.01 Prots=0.07

18 417.94 349 1.16 1.20 235.92 15.14% 1.15998398 p2=41 p3=19 p4=27 p5=36 s=1 stop=0.024 p=0.012 Lots=0.01 Prots=0.07

7 314.10 346 1.09 0.91 326.66 20.58% 1.08715973 p2=13 p3=21 p4=5 p5=4 s=1 stop=0.028 p=0.02 Lots=0.01 Prots=0.07

13 229.71 176 1.17 1.31 287.58 19.28% 1.16941715 p2=35 p3=15 p4=13 p5=4 s=4 stop=0.022 p=0.016 Lots=0.01 Prots=0.07

11 66.44 26 1.31 2.56 62.37 5.78% -1.00000000 p2=23 p3=27 p4=25 p5=16 s=31 stop=0.03 p=0.014 Lots=0.01 Prots=0.07

¿Se puede arreglar el indicador?

tsi_new.mq4

Archivos adjuntos:
tsi_new.mq4  5 kb
 
QuantF:
¡Hola, Mladen!

Creo que he encontrado la razón de la optimización del tiempo de aumento.

Suavizar los datos en lugar de la "iMAOnArray", Incluir MovingAverages.mqh.

Una sola ejecución del indicador en el probador de la estrategia con iMAOnArray:

2015.06. 28 00:13:42.132 2015 .06.15 23:59 EURUSD,H1: 70897 eventos de tick(71897 barras, 142742 estados de barra) procesados en 0:02:40.525 (tiempo total 0:02:40.556) 2015 .06.28 00:11:01.613 2015 .06.15 23:59 TSIEntradas ergódicas: p2=7; p3=5; p4=3; p5=3; 2015.06.28 00:11:01.587 2015.06.15 23:59

Una sola ejecución del indicador en el probador de estrategias con MovingAverages.mqh:

2015.06. 28 00: 14: 10.625 2015 . 06. 15 23: 59 EURUSD,H1: 70897 eventos de tick(71897 barras, 142742 estados de barra) procesados en 0:00:01.045 (tiempo total 0:00:01.077)2015.06. 28 00:14:09.57 7 2015. 06.15 23:59 TSI_Nuevas entradas: p2=7; p3=5; p4=3; p5=3; 2015 .06. 28 00: 14:09.54 6 2015.06.15 23:59 Cuando uso un nuevo indicador en el EA, no hay operaciones y la ventana del indicador está vacía.

Durante la optimización muestra que las carreras con las operaciones:

12 513.73 354 1.18 1.45 269.81 18.75% 1.18239793 p2=21 p3=9 p4=15 p5=28 s=4 stop=0.02 p=0.026 Lots=0.01 Prots=0.07

18 417.94 349 1.16 1.20 235.92 15.14% 1.15998398 p2=41 p3=19 p4=27 p5=36 s=1 stop=0.024 p=0.012 Lots=0.01 Prots=0.07

7 314.10 346 1.09 0.91 326.66 20.58% 1.08715973 p2=13 p3=21 p4=5 p5=4 s=1 stop=0.028 p=0.02 Lots=0.01 Prots=0.07

13 229.71 176 1.17 1.31 287.58 19.28% 1.16941715 p2=35 p3=15 p4=13 p5=4 s=4 stop=0.022 p=0.016 Lots=0.01 Prots=0.07

11 66.44 26 1.31 2.56 62.37 5.78% -1.00000000 p2=23 p3=27 p4=25 p5=16 s=31 stop=0.03 p=0.014 Lots=0.01 Prots=0.07

¿Se puede arreglar el indicador?

tsi_nuevo.mq4

No hay nada que arreglar en el indicador

El problema no está en el indicador - el problema está en el backtester.

En cualquier caso, el uso de aMAOnArray() debe ser significativamente más rápido que el uso de ExponentialMAOnBuffer() - simplemente porque iMAOnArray() se ejecuta en el nivel de código de máquina mientras que ExponentialMAOnBuffer() se ejecuta en el nivel de código P. El hecho de que iMAOnArray() no sea más rápido sólo demuestra que las nuevas construcciones en mt4 tienen serios problemas

 
mladen:
No hay nada que arreglar en el indicador

El problema no está en el indicador - el problema está en el backtester.

En cualquier caso, el uso de aMAOnArray() debe ser significativamente más rápido que el uso de ExponentialMAOnBuffer() - simplemente porque iMAOnArray() se ejecuta en el nivel de código de máquina, mientras que ExponentialMAOnBuffer() se ejecuta en el nivel de código P. El hecho de que iMAOnArray() no sea más rápido sólo demuestra que los nuevos builds de mt4 tienen serios problemas

Muchas veces en el foro escribió sobre este tema. No es bueno. ¿Cree usted que el error no se fija?

 
QuantF:
Muchas veces en el foro escribió sobre este tema. Nada bueno. ¿Cree usted que el error no será corregido?

Debería arreglarse

Si lo será, ni idea. El Backtester es cada vez peor con cada nueva compilación - yo no esperaría demasiado

 

¿Hay algún manual que explique cómo trabajar con arrays de la manera más eficiente?

 
apprentice coder:
¿Hay algún manual que explique cómo trabajar con arrays de la manera más eficiente?

Dado que mql utiliza arrays de forma similar a C/C++, un buen comienzo sería aquí : Arrays - Tutoriales C++

Lo que debes evitar es establecer arrays como series. Redimensionar en ese caso es un dolor de cabeza ... (extremadamente ineficiente) - la mejor manera es usar arrays indexados de la misma manera que en C/C++ : el primer elemento (el más antiguo) es el índice 0, y el último elemento (el más nuevo) es el tamaño del array - 1

 

@Programadores y Codificadores en el foro por favor puede agregar una opción de equilibrio al asesor experto adjunto a continuación

Archivos adjuntos:
 
douceurdange:
Hola, ¿es posible poner flechas cuando la línea del RSI vuelve a las bandas de bollinger del indicador rsi+bollinger bands?

Pongo la alerta cci nrp advanced como modelo de alerta que me gustaría tener .

Gracias de antemano

rsi__bollinger_bands.mq4rsi__bollinger_bands.ex4cci_-_nrp_-_mtf_advanced_alerts.ex4cci_-_nrp_-_mtf_advanced_alerts.mq4

el indicador fue publicado aquí : https://www.mql5.com/en/forum/general