Ajuda na codificação - página 495

 
Mastercash:
Mladen, pareço não entender, estou usando o período 10 da EMA para agir como r/s flutuante para um propósito, se eu reduzir o período para 1 período, ele será muito fraco para ser usado como r/s....! Eu só preciso de um fello bondoso para ajustar o código para dar seu alerta dentro da vela, e não na abertura da nova vela.

Desculpe

Ler o código de uma maneira errada

De qualquer forma, esta linha

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

estará errado em qualquer caso quando o cronograma do gráfico for diferente de 1 hora. Use iBarShift() para definir o índice. Desta forma

int y = iBarShift(NULL,PERÍODO_H1,Tempo);

MainBuffer=iMA(NULL,PERÍODO_H1,10,0,MODE_SMA,PRICE_CLOSE,y);

Também, alterar o valor da constante SIGNAL_BAR de 1 para 0 a fim de alertar sobre uma barra aberta atual (mas então mais algumas mudanças no código devem ser feitas)

_________________

PS: Recomendo que você tire alguns dos novos indicadores deste tópico: https: //www.mql5.com/en/forum/180648, já que há muitos exemplos de como esses casos devem ser tratados.

 

Por favor, por favor, por favor! Eu preciso e indicador com alerta que me alertará Quando logo após o encerramento da 7ª vela consecutiva de alta ou 7ª vela consecutiva de baixa.

Pin , dogi e outras formas de velas não são contadas. Somente alerta de vela de touro e urso que irá aparecer com som Quando houver 7 velas de baixa ou de alta volta para trás.

Eu realmente apreciarei e compartilharei minha idéia quando a estratégia estiver pronta.

 

Olá, Mladen!

Acho que descobri a razão para o aumento da otimização do tempo.

Alisar os dados em vez do "iMAOnArray", incluindo MovingAverages.mqh.

Uma única execução do indicador no testador de estratégia com o iMAOnArray:

2015.06.28 00:13:42.132 2015.06.15 23:59 EURUSD,H1: 70897 eventos de tick(71897 barras, 142742 estados de barras) processados em 0:02:40.525 (tempo total 0:02:40.556)2015.06.28 00:11:01.613 2015.06.15 23:59 TSIErgodic inputs: p2=7; p3=5; p4=3; p5=3; 2015.06.28 00:11:01.587 2015.06.15 23:59

Uma única execução do indicador no testador de estratégia com 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 barras) processados em 0:00:01.045 (tempo total 0:00:01.077)2015.06.28 00:14:09.577 2015. 06.15 23:59 TSI_Novas entradas: p2=7; p3=5; p4=3; p5=3; 2015.06.28 00:14:09.546 2015.06.15 23:59 Quando eu uso um novo indicador no EA, não há trocas e a janela do indicador está vazia.

Durante a otimização mostra que as execuções com transações:

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

Você pode consertar o indicador?

tsi_new.mq4

Arquivos anexados:
tsi_new.mq4  5 kb
 
QuantF:
Olá, Mladen!

Acho que descobri a razão para o aumento da otimização do tempo.

Alisar os dados em vez do "iMAOnArray", incluindo MovingAverages.mqh.

Uma única execução do indicador no testador de estratégia com o iMAOnArray:

2015.06.28 00:13:42.132 2015.06.15 23:59 EURUSD,H1: 70897 eventos de tick(71897 barras, 142742 estados de barras) processados em 0:02:40.525 (tempo total 0:02:40.556)2015.06.28 00:11:01.613 2015.06.15 23:59 TSIErgodic inputs: p2=7; p3=5; p4=3; p5=3; 2015.06.28 00:11:01.587 2015.06.15 23:59

Uma única execução do indicador no testador de estratégia com 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 barras) processados em 0:00:01.045 (tempo total 0:00:01.077)2015.06.28 00:14:09.577 2015. 06.15 23:59 TSI_Novas entradas: p2=7; p3=5; p4=3; p5=3; 2015.06.28 00:14:09.546 2015.06.15 23:59 Quando eu uso um novo indicador no EA, não há trocas e a janela do indicador está vazia.

Durante a otimização mostra que as execuções com transações:

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

Você pode consertar o indicador?

tsi_new.mq4

Não há nada a ser consertado no indicador

O problema não está no indicador - o problema está no retrovisor.

Em qualquer caso, usar aMAOnArray() deve ser significativamente mais rápido do que usar ExponentialMAOnBuffer() - simplesmente porque iMAOnArray() é executado no nível do código da máquina enquanto ExponentialMAOnBuffer() é executado no nível do código P. O fato de iMAOnArray() não ser mais rápido está apenas mostrando que as novas construções sobre mt4 estão tendo sérios problemas

 
mladen:
Não há nada para consertar no indicador.

O problema não está no indicador - o problema está no retrovisor.

Em qualquer caso, o uso de aMAOnArray() deve ser significativamente mais rápido do que o uso de ExponentialMAOnBuffer() - simplesmente porque iMAOnArray() é executado em nível de código de máquina enquanto ExponentialMAOnBuffer() é executado em nível de código P. O fato de iMAOnArray() não ser mais rápido está apenas mostrando que as novas construções sobre mt4 estão tendo sérios problemas

Muitas vezes, no fórum, escreveram sobre esta questão. Não adianta. Você acha que o bug não vai ser corrigido?

 
QuantF:
Muitas vezes, no fórum, escrevi sobre este assunto. Nada bom. Você acha que o bug não vai ser corrigido?

Deve ser fixado

Se for - não faço idéia. O retrocesso é cada vez pior a cada nova construção - eu não esperaria muito

 

Existe algum manual que explique como trabalhar com arrays da maneira mais eficiente?

 
apprentice coder:
Existe algum manual que explique como trabalhar com arrays da maneira mais eficiente?

Como a mql usa arrays de maneira similar ao C/C++, um bom começo seria aqui : Matrizes - Tutoriais C++

O que você deve evitar é definir arrays como séries. Redimensionamento no caso de nos causar uma dor no ... (extremamente ineficiente) - a melhor maneira é usar matrizes indexadas da mesma forma que em C/C++ : o primeiro (mais antigo) elemento é o índice 0, e o último (mais novo) elemento índice é o tamanho da matriz - 1

 

@Programadores e Codificadores no fórum, por favor, você pode adicionar uma opção de breakeven ao consultor especializado anexado abaixo

Arquivos anexados:
 
douceurdange:
Olá, é possível colocar setas quando a linha RSI voltar para as faixas de bollinger do indicador rsi+bollinger ?

Coloco o alerta avançado cci nrp como modelo do alerta que eu gostaria de ter .

Obrigado de antemão

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

o indicador foi afixado aqui : https://www.mql5.com/en/forum/general