Caros Senhores, peço para ter um olho experiente na "tentativa número um". O assunto é: Obtive um código "atravessando" um indicador fractal escrito em MQL5 e um indicador azzx_larry-2.0, cuja essência é excluir as chamadas "barras interiores" enquanto se procura um extremo (em anexo). Ao compilar, recebemos quatro erros, todos eles estão na parte do código que foi emprestada do azzx escrito em "4". As questões surgiram ao interpretar os "erros":
1. Porque é que se propõe que a declaração (lugar no código - sublinhado) seja colocada na Global. ("para" - as expressões não são permitidas num âmbito global).
2. Porque é que o compilador considera Alto[bar] e Baixo[bar] (também sublinhado no código) não declarados, enquanto várias linhas acima no código há Alto[i] e Baixo[i] que não considera erros.
('Alto' - identificador não declarado, 'Baixo' - identificador não declarado).
3. o mesmo se aplica ao limite - porque é que o compilador o considera não declarado. ("limite" - identificador não declarado).
PS: parte do código (indicador fractal) deriva da documentação mql5, e parte do código do indicador azzx_larry2.0 deriva do codobase mql4, autor azzx
//+------------------------------------------------------------------+//| azzx 2.0.mq5 |//| Copyright 2009, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright"2009, MetaQuotes Software Corp."#property link"http://www.mql5.com"//---- indicator settings#property indicator_chart_window#property indicator_buffers2#property indicator_plots2#property indicator_type1 DRAW_ARROW#property indicator_type2 DRAW_ARROW#property indicator_color1 White
#property indicator_color2 White
#property indicator_label1 "azzx Up"#property indicator_label2 "azzx Down"//---- indicator buffersdouble max[];
double min[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+voidOnInit()
{
//---- indicator buffers mappingSetIndexBuffer(0,max,INDICATOR_DATA);
SetIndexBuffer(1,min,INDICATOR_DATA);
IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
//---- sets first bar from what index will be drawnPlotIndexSetInteger(0,PLOT_ARROW,108);
PlotIndexSetInteger(1,PLOT_ARROW,108);
//---- arrow shifts when drawingPlotIndexSetInteger(0,PLOT_ARROW_SHIFT,0);
PlotIndexSetInteger(1,PLOT_ARROW_SHIFT,0);
//---- sets drawing line empty value--PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE);
PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,EMPTY_VALUE);
//---- initialization done
}
//+------------------------------------------------------------------+//| Accelerator/Decelerator Oscillator |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,constint prev_calculated,
constdatetime &Time[],
constdouble &Open[],
constdouble &High[],
constdouble &Low[],
constdouble &Close[],
constlong &TickVolume[],
constlong &Volume[],
constint &Spread[])
{
int i,limit;
//---if(rates_total<3)
return(0);
//---if(prev_calculated<3)
{
limit=1;
//--- clean up arraysArrayInitialize(max,EMPTY_VALUE);
ArrayInitialize(min,EMPTY_VALUE);
}
else limit=rates_total-1;
for(i=limit;i<rates_total-1 && !IsStopped();i++)
{
//---- Up azzxif(High[i]>High[i+1] && High[i]>=High[i-1])
max[i]=High[i];
else max[i]=EMPTY_VALUE;
//---- Low azzxif(Low[i]<Low[i+1] && Low[i]<=Low[i-1])
min[i]=Low[i];
else min[i]=EMPTY_VALUE;
}
//--- OnCalculate done. Return new prev_calculated.return(rates_total);
}
//+------------------------------------------------------------------+// Поиск краткосрочных экстремумов.for(i=limit-2;i>1;i--)
{
l = left_bar(i);
r = right_bar(i);
if((l>0) && (r>0))
{
if(((Low[l]>=Low[i]) && (Low[r]>Low[i])) ||
((Low[l]>Low[i]) && (Low[r]>Low[i])))
{
min[i] =1;
}
}
if((l>0) && (r>0))
{
if(((High[l]<= High[i]) && (High[r]<High[i])) ||
((High[l]<High[i]) && (High[r]<High[i])))
{
max[i] =1;
}
}
// Отметка экстремумов.ArrayInitialize(buf_st_min,0);
ArrayInitialize(buf_st_max,0);
for(i=limit-1;i>0;i--)
{
switch(min[i])
{
case1 : buf_st_min[i]=Low[i]; break;
}
switch(max[i])
{
case1 : buf_st_max[i]=High[i]; break;
}
}
return(0);
}
// Проверка, что заданный бар - внутренний.bool is_internal(int bar)
{
return((High[bar] < High[bar + 1]) &&
(Low [bar] > Low [bar + 1]));
}
// Возвращает бар слева от заданного бара или -1.int left_bar(int bar)
{
int i;
for(i=bar+1;i<limit-2;i++)
{
if(is_internal(i)==false)
{
return(i);
}
}
return(-1);
}
// Возвращает бар справа от заданного бара или -1.int right_bar(int bar) {
int i;
for(i=bar-1;i>0;i--)
{
if(is_internal(i)==false)
{
return(i);
}
}
return(-1);
}
//+------------------------------------------------------------------+//| Indicator deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//--- почистим график при удалении индикатораComment("");
}
Penso que o código tem Alto[i] e Baixo[i] algumas linhas acima das quais ele não considera erros. 3. Do mesmo modo, quanto ao limite - porque é que o compilador o considera não declarado
Olá a todos, podem dizer aos utilizadores do fórum que trabalham com o produto de software ITrade Chaos de G. Stanilevich? Gosto muito, mas há algumas coisas que não compreendo. Se não se importar, quem trabalha ou já trabalhou com este produto, por favor contacte-me no Skype. O meu skype é Furkat1962 Obrigado de antemão. Sinceramente Furkat
torblin: não creio que este posto seja para principiantes, então porque não me diz onde perguntar a um novato com 200dpa o que é que o conselheiro fará?
Não quer compreender que FOREX não é um comércio livre, mas é o mesmo trabalho que qualquer outro comércio, só que o retorno é maior quando se coloca no trabalho!
Adicionei um indicador ao gráfico da EA - como posso colorir este indicador agora? O indicador utiliza 3 linhas, gostaria de as fazer todas de 3 cores e espessuras diferentes.
YAndrey: Adicionei um indicador ao gráfico da EA - como posso colorir este indicador agora? O indicador utiliza 3 linhas, gostaria de as fazer todas de 3 cores e espessuras diferentes.
Sim, poderia fazer isso. Mas não gostaria de o fazer. E eu gostaria de ouvir de pessoas inteligentes ;). Encontrei uma saída criando um indicador personalizado com parâmetros de entrada sob a forma de cores para cada linha, mas como posso torná-lo mais simples? Por isso, mais uma vez uma pergunta. Estou a criar um indicador iBands no meu Expert Advisor. Anexo-a à tabela. Gostaria de desenhar as suas 3 linhas com cores diferentes. Será possível?
olá a todos, não parece que o posto seja para novatos oh gee whiz onde perguntar com dp 200 que assessor vai trabalhar?
Caros Senhores, peço para ter um olho experiente na "tentativa número um". O assunto é: Obtive um código "atravessando" um indicador fractal escrito em MQL5 e um indicador azzx_larry-2.0, cuja essência é excluir as chamadas "barras interiores" enquanto se procura um extremo (em anexo). Ao compilar, recebemos quatro erros, todos eles estão na parte do código que foi emprestada do azzx escrito em "4". As questões surgiram ao interpretar os "erros":
1. Porque é que se propõe que a declaração (lugar no código - sublinhado) seja colocada na Global. ("para" - as expressões não são permitidas num âmbito global).
2. Porque é que o compilador considera Alto[bar] e Baixo[bar] (também sublinhado no código) não declarados, enquanto várias linhas acima no código há Alto[i] e Baixo[i] que não considera erros.
('Alto' - identificador não declarado, 'Baixo' - identificador não declarado).
3. o mesmo se aplica ao limite - porque é que o compilador o considera não declarado. ("limite" - identificador não declarado).
PS: parte do código (indicador fractal) deriva da documentação mql5, e parte do código do indicador azzx_larry2.0 deriva do codobase mql4, autor azzx
А робот случаем не из Маркета?
há High[i] e Low[i] no código, o que não conta como erros. 3. O mesmo se aplica ao limite - porque é que o compilador o considera não declarado
Tem aqui um parêntese de fecho precoce:
Ou faltam várias linhas, porque não são declaradas.
Tem aqui um parêntese de fecho precoce:
Ou faltam várias linhas porque não são anunciadas
Obrigado pela vossa participação. O suporte foi movido para o fim do código, a compilação deu 16 erros - algo em que trabalhar.
não creio que este posto seja para principiantes, então porque não me diz onde perguntar a um novato com 200dpa o que é que o conselheiro fará?
Adicionei um indicador ao gráfico da EA - como posso colorir este indicador agora? O indicador utiliza 3 linhas, gostaria de as fazer todas de 3 cores e espessuras diferentes.
Pode usar canetas de feltro no monitor).