Boa noite
Tenho um bom indicador para timeframes grandes, problema é que se o mercado vai contra a seta dele, ele apaga a seta, ela nao repinta, digo, fica pulando de candle a candle, ela simplesmente apaga e aparece em outros candles a frente, como faço para que ela nao apague, permaneça a seta fixa mesmo errando a entrada?
abaixo, parte do codigo:
int start()
{
int counted_bars = IndicatorCounted();
if(counted_bars < 0) return(-4);
if(counted_bars > 0) counted_bars--;
int limit = Bars - counted_bars;
if(counted_bars==0) limit-=5+5;
//---- îñíîâíîé öèêë
for(int i = 1; i < limit; i++)
{
double
HP1=High[i+1],HP2=High[i],HP3=High[i-1],HPi=High[i-1],
LP1=Low[i+1],LP2=Low[i],LP3=Low[i-1], LPi=Low[i-1],
res=iFractals(NULL, 0, MODE_UPPER, i);
if(res==0 && INDICADOR)//ïîâûøåííàÿ ÷óâñòâèòåëüíîñòü
{
if(HP1<HP2&&HP2>HP3 && (LP2>=LP3 || HP2>HPi)) res=HP2;
}
if(Shifth && res!=0)// ñäâèãàåò ôðàêòàë ôëåòà
while(iHigh(NULL,0,i)==iHigh(NULL,0,i+1)) i++;
ExtMapBuffer1[i] = res;
if(res!=0 && i==1 && NewFAlert) Alert("NOVO ALERTA PARA "+DoubleToStr(res,Digits));
res= iFractals(NULL, 0, MODE_LOWER, i);
if(res==0 && INDICADOR)
{
if(LP1>LP2&&LP2<LP3&& (HP2<=HP3 || LP2<LPi)) res=LP2;
}
if(Shifth && res!=0)
while(iLow(NULL,0,i)==iLow(NULL,0,i+1)) i++;
ExtMapBuffer2[i] =res;
if(res!=0 && i==1 && NewFAlert) Alert("NOVO ALERTA"+DoubleToStr(res,Digits));
Boa noite
Tenho um bom indicador para timeframes grandes, problema é que se o mercado vai contra a seta dele, ele apaga a seta, ela nao repinta, digo, fica pulando de candle a candle, ela simplesmente apaga e aparece em outros candles a frente, como faço para que ela nao apague, permaneça a seta fixa mesmo errando a entrada?
abaixo, parte do codigo:
int start()
{
int counted_bars = IndicatorCounted();
if(counted_bars < 0) return(-4);
if(counted_bars > 0) counted_bars--;
int limit = Bars - counted_bars;
if(counted_bars==0) limit-=5+5;
//---- îñíîâíîé öèêë
for(int i = 1; i < limit; i++)
{
double
HP1=High[i+1],HP2=High[i],HP3=High[i-1],HPi=High[i-1],
LP1=Low[i+1],LP2=Low[i],LP3=Low[i-1], LPi=Low[i-1],
res=iFractals(NULL, 0, MODE_UPPER, i);
if(res==0 && INDICADOR)//ïîâûøåííàÿ ÷óâñòâèòåëüíîñòü
{
if(HP1<HP2&&HP2>HP3 && (LP2>=LP3 || HP2>HPi)) res=HP2;
}
if(Shifth && res!=0)// ñäâèãàåò ôðàêòàë ôëåòà
while(iHigh(NULL,0,i)==iHigh(NULL,0,i+1)) i++;
ExtMapBuffer1[i] = res;
if(res!=0 && i==1 && NewFAlert) Alert("NOVO ALERTA PARA "+DoubleToStr(res,Digits));
res= iFractals(NULL, 0, MODE_LOWER, i);
if(res==0 && INDICADOR)
{
if(LP1>LP2&&LP2<LP3&& (HP2<=HP3 || LP2<LPi)) res=LP2;
}
if(Shifth && res!=0)
while(iLow(NULL,0,i)==iLow(NULL,0,i+1)) i++;
ExtMapBuffer2[i] =res;
if(res!=0 && i==1 && NewFAlert) Alert("NOVO ALERTA"+DoubleToStr(res,Digits));
Voce que fez o código? Pergunto porque tem variaveis faltando e o conceito de re-pintar parece que voce não entendeu.
Parece que seu problema é que quando não é um fractal e aquela condição dentro do if marcado como INDICADOR (em ambos os casos) tambem não ocorre, a variavel re-pinta tirando a seta. Voce precisa de uma variavel auxiliar se quiser manter a seta para nao perder esse valor em ambos os casos.
Boa sorte!

- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Boa noite
Tenho um bom indicador para timeframes grandes, problema é que se o mercado vai contra a seta dele, ele apaga a seta, ela nao repinta, digo, fica pulando de candle a candle, ela simplesmente apaga e aparece em outros candles a frente, como faço para que ela nao apague, permaneça a seta fixa mesmo errando a entrada?
abaixo, parte do codigo:
int start()
{
int counted_bars = IndicatorCounted();
if(counted_bars < 0) return(-4);
if(counted_bars > 0) counted_bars--;
int limit = Bars - counted_bars;
if(counted_bars==0) limit-=5+5;
//---- îñíîâíîé öèêë
for(int i = 1; i < limit; i++)
{
double
HP1=High[i+1],HP2=High[i],HP3=High[i-1],HPi=High[i-1],
LP1=Low[i+1],LP2=Low[i],LP3=Low[i-1], LPi=Low[i-1],
res=iFractals(NULL, 0, MODE_UPPER, i);
if(res==0 && INDICADOR)//ïîâûøåííàÿ ÷óâñòâèòåëüíîñòü
{
if(HP1<HP2&&HP2>HP3 && (LP2>=LP3 || HP2>HPi)) res=HP2;
}
if(Shifth && res!=0)// ñäâèãàåò ôðàêòàë ôëåòà
while(iHigh(NULL,0,i)==iHigh(NULL,0,i+1)) i++;
ExtMapBuffer1[i] = res;
if(res!=0 && i==1 && NewFAlert) Alert("NOVO ALERTA PARA "+DoubleToStr(res,Digits));
res= iFractals(NULL, 0, MODE_LOWER, i);
if(res==0 && INDICADOR)
{
if(LP1>LP2&&LP2<LP3&& (HP2<=HP3 || LP2<LPi)) res=LP2;
}
if(Shifth && res!=0)
while(iLow(NULL,0,i)==iLow(NULL,0,i+1)) i++;
ExtMapBuffer2[i] =res;
if(res!=0 && i==1 && NewFAlert) Alert("NOVO ALERTA"+DoubleToStr(res,Digits));