Indicadores: STARC bands

 

STARC bands:

Variação do bem conhecido indicador bandas de STARC (canais de intervalo médio de Stoller).

Autor: Mladen Rakic

 
Versão atualizada da banda STARC com a adição de um critério simples para a exibição de velas coloridas junto com as bandas - versão 1.1

O critério para velas coloridas é o mais simples possível: as bandas STARC são calculadas usando uma média - junto com ela, uma média "rápida" do mesmo tipo e preço é calculada e, se a média rápida estiver cruzando a média lenta para cima, a cor da vela é alterada para a cor para cima e para a cor para baixo se a média rápida cruzar a média lenta para baixo. Definir o período rápido como <= 1 o torna igual ao preço escolhido que cruza o valor médio principal das bandas STARC


 

Olá, há um bug no modo MTF. Em ambas as versões.

Gráfico M1 => período de tempo H1, Gráfico H1 => período de tempo D1.

2016.11.09 11:59:26.956 starc_bands (EURUSD,M1) cannot load custom indicator 'starc_bands' [4802]
2016.11.09 12:06:15.427 starc_bands_1.1 (EURUSD,H1) não pode carregar o indicador personalizado 'starc_bands_1.1' [4802]

 
Alain Verleyen:

Olá, há um bug no modo MTF. Em ambas as versões.

Gráfico M1 => período de tempo H1, Gráfico H1 => período de tempo D1.

2016.11.09 11:59:26.956 starc_bands (EURUSD,M1) cannot load custom indicator 'starc_bands' [4802]
2016.11.09 12:06:15.427 starc_bands_1.1 (EURUSD,H1) cannot load custom indicator 'starc_bands_1.1' [4802]

O erro 4802 é um erro que ocorre com qualquer indicador que esteja chamando outro indicador (ou ele mesmo), especialmente nos fins de semana, quando não há novos ticks ou quando o período de tempo superior é chamado pela primeira vez após a inicialização.

É por isso que o manipulador é verificado e verificado novamente e, quando esse erro é eliminado, ele continua a operação normal. Esse é um problema do MT, não do código. O indicador funciona como deveria funcionar uma vez quando é "aprovado" pelo erro 4802 (ele não pode ser forçado a esperar de um indicador, pois não podemos fazer o indicador "dormir" para forçar alguma ação até que ele seja eliminado - portanto, temos que esperar a próxima ocasião para passar pelo "portão" 4802). Você também notou que ele continua a funcionar como deveria quando recebe um novo tick após esse erro quando usado em gráficos ao vivo

Tudo o que foi dito acima é para uso em tempo real em gráficos ao vivo - o back-testing não pode ser conduzido nesse modo de enquadramento de tempo múltiplo

Encontrar uma possível solução alternativa para os problemas de back-testing (o erro que você obteve foi causado pelo back-testing) não era o objetivo desse tipo de código. O objetivo era fazer com que ele funcionasse como deveria em um modo "o mais simples possível" no uso normal.
 

Sem entrar em uma "explicação pesada" do motivo pelo qual esse problema estava ocorrendo no back-test e não em tempo real, adicionei uma versão (versão 1.2) que também resolve o problema do back-test

Para tornar essa versão compatível com as duas versões anteriores, adicionamos uma opção para mostrar as velas (como na versão 1.1) ou ocultá-las (como na versão 1.2) para que ambos os modos possam ser emulados com a versão 1.2 agora

 
Obrigado pelo indicador. Alguém pode alterar uma versão do mtf: excluir o preenchimento, apenas com bordas de linha?
 

Alguém pode me ajudar a entender a causa do erro e como corrigi-lo? Às vezes acontece. Todas as instâncias do indicador na janela quebram juntas.

> matriz fora do intervalo em 'STARC_bands_1.2.mq5' (192,111)

192,111 é "if (currTime[0]==nextTime[0]) continue;" .

se exatamente, seu currTime.