Ajuda na codificação - página 31

 

Trabalhando em Multidimensionnal Array, eu bloqueio uma coisa tão simples...

Olá, senhores,

Apenas tentando obter uma célula de um Array em uma linha de tela ( mesma mensagem de resultado Alerta), falta algo que é certo, mas o dia todo nele e eu não entendo por quê.

A ajuda seria tão boa ... ...

é isso ..:

//+

//| !XTEST sur arrays.mq4 |

+

//| |

//| |

//+------------------------------------------------------------------+

#direitos de propriedade intelectual "".

#ligação de propriedade ""

#janela_do_cartão_indicador de propriedade

Moeda externa int = 1 ;

int externo X_Col = 700 ;

externo int Y_Ligne = 30 ;

FontCar = "Arial" ;

Exterior int TailCar = 14 ;

cor exterior Couleur = "Lime ;

Exterior int X = 1;

//+------------------------------------------------------------------+

//| Função de inicialização do indicador personalizado |

//+------------------------------------------------------------------+

string Tab1dim[2];

string Tab2dim[2,2];

string Tab3dim[2,2,2];

string Tab4dim[2,2,2,2,2]; string Tab3dim[2,2,2];

// 5eme Dimensão de tableau non autorisée . int Tab5dim[20,20,20,80,2];

int init()

{

//---- indicadores

string Tab1dim[2]={"tab1-c0","tab1C1"};

//----

retorno(0);

}

//+------------------------------------------------------------------+

//| Função de desinicialização de indicador personalizada |

//+------------------------------------------------------------------+

int deinit()

{

//----

ObjectDelete("R");

//----

retorno(0);

}

//+------------------------------------------------------------------+

//| Função de iteração de indicador personalizada |

//+------------------------------------------------------------------+

int start()

{

//----

Tab1dim[2]={"tab1-c0","tab1C1"};

string affich=Tab1dim[0];

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//

ObjectCreate ("A1", OBJ_LABEL, 0, 0, 0, 0 );

ObjectSet ("A1", OBJPROP_CORNER,Coin );

ObjectSet ("A1", OBJPROP_XDISTANCE,X_Col );

ObjectSet ("A1", OBJPROP_YDISTANCE,Y_Ligne );

ObjectSetText ("A1",affich,TailCar, FontCar , Couleur );

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//

Alerta(affich);

//----

retorno(0);

}

//+------------------------------------------------------------------+

Obrigado de antemão.

 

...

Tente assim(a inicialização da matriz é feita de forma diferente) :

//+------------------------------------------------------------------+

//| !XTEST sur arrays.mq4 |

//| |

//| |

//+------------------------------------------------------------------+

#property copyright ""

#property link ""

#property indicator_chart_window

extern int Coin = 1 ;

extern int X_Col = 10 ;

extern int Y_Ligne = 10 ;

extern string FontCar = "Arial" ;

extern int TailCar = 14 ;

extern color Couleur = Lime ;

extern int X = 1;

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

string Tab1dim[] = {"tab1-c0","tab1C1"};

string Tab2dim[2,2];

string Tab3dim[2,2,2];

string Tab4dim[2,2,2,2];

// 5eme Dimension de tableau non autorisée . int Tab5dim[20,20,20,80,2];

int init()

{

//---- indicators

string Tab1dim[2]={"tab1-c0","tab1C1"};

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

ObjectDelete("A1");

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

//----

string affich=Tab1dim[0];

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//

ObjectCreate ("A1", OBJ_LABEL, 0, 0, 0 );

ObjectSet ("A1", OBJPROP_CORNER,Coin );

ObjectSet ("A1", OBJPROP_XDISTANCE,X_Col );

ObjectSet ("A1", OBJPROP_YDISTANCE,Y_Ligne );

ObjectSetText("A1",affich,TailCar, FontCar , Couleur );

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//

//----

return(0);

}

//+------------------------------------------------------------------+

Ilevna:
Olá, senhores,

Apenas tentando obter uma célula de um Array em uma linha de tela ( mesma mensagem de resultado Alerta), ela perde algo que é certo, mas o dia todo nela e eu não entendo por quê...

A ajuda seria tão boa ... ...

é isso ..:

Obrigado de antemão.
 
mladen:
Tente assim (a inicialização da matriz é feita de forma diferente) :

//+------------------------------------------------------------------+

//| !XTEST sur arrays.mq4 |

//| |**************

Muito obrigado, isso correu bem, mas não me incomodam as razões pelas quais é necessário declarar como normal, ou em âmbito global, ou dentro de uma função, algo como escreveram no manual: duplo Tab2Dim[2*n-3]; ou então

int [] valores =novo int[3];

valores[0]=5;

values[1]=values[0]*2;

values[2]=values[1]*2;

mas é bom para o meu dia final, obrigado senhor.

 

...

Você pode superar parcialmente esse problema com a função ArrayResize() (dessa forma você pode ter arrays dinamicamente dimensionados)

O problema é que o ArrayResize() funciona apenas para as matrizes de dimensão única e primeira dimensão de um array (por exemplo, se você tiver array[][2], você pode redimensioná-lo com ArrayResize() para algo como este array[anySize][2]). Qualquer outra dimensão (da segunda dimensão f arrays para cima) deve ser de um tamanho constante conhecido em tempo de compilação.

Ilevna:
Muito obrigado, isso correu bem, mas eu não me desagrada por que é necessário tão normal que possamos declarar, ou em âmbito global, ou dentro de uma função, algo como eles escreveram no manual: duplo Tab2Dim[2*n-3]; ou então

int [] valores =novo int[3];

valores[0]=5;

values[1]=values[0]*2;

values[2]=values[1]*2;

mas é bom para o meu dia final, obrigado senhor.
 

Ajuda no meu indicador de banda

Olá a todos,

depois de experimentar muitas Band ind , tais como jband,tmaband etc... finalmente, tomei a decisão de escrever meu próprio Indicador de Banda ,

o anexo que você vai encontrar é o meu indicador de banda, mas quando a EA chama de linha de banda baixa dá uma divisão zero, eu procurei meu código, não há nenhum divisor zeor lá dentro,

Se você tem uma idéia ou experiência como esta, por favor, deixe-me ajudar a resolver o problema.

obrigado antecipadamente....

Arquivos anexados:
aband.gif  20 kb
 

...

Sem a fonte (ou sem o código para chamar o indicador personalizado) é impossível dizer nada. Se seu indicador funcionar, então o erro está em seu EA

kemal44:
Olá a todos,

depois de experimentar muitas Band ind , tais como jband,tmaband etc... finalmente, tomei a decisão de escrever meu próprio Indicador de Banda ,

o anexo que você vai encontrar é o meu indicador de banda, mas quando a EA chama de linha de banda baixa dá uma divisão zero, eu procurei meu código, não há nenhum divisor zeor lá dentro,

Se você tem uma idéia ou experiência como esta, por favor, deixe-me ajudar a resolver o problema.

obrigado antecipadamente....
 

Precisa de ajuda com a codificação de um crossover MA EA

Olá, pessoal,

Estou me perguntando se alguém poderia me ajudar a codificar um MA crossover ea para que eu possa usá-lo quando estou longe do computador.

A idéia é a seguinte.

Gráfico de 1 minuto - 3 EMA e 8 SMA

Se 3 EMA cruzarem abaixo de 8 SMA, vender o par de moedas com TP e SL predefinidos nos parâmetros.

Se 3 EMA cruzarem acima de 8 SMA, compre o par de moedas com TP e SL pré-ajustados nos parâmetros.

Não sei se é possível codificar uma MA ea tão simples mas apreciaria muito se alguém pudesse me dar uma mão.

Obrigado de antemão!

 

...

Você verificou esta linha : https://www.mql5.com/en/forum/general?

jacktrader:
Olá, pessoal,

Estou me perguntando se alguém poderia me ajudar a codificar um MA crossover ea para que eu possa usá-lo quando estiver longe do computador.

A idéia é a seguinte.

Gráfico de 1 minuto - 3 EMA e 8 SMA

Se 3 EMA cruzarem abaixo de 8 SMA, vender o par de moedas com TP e SL predefinidos nos parâmetros.

Se 3 EMA cruzarem acima de 8 SMA, compre o par de moedas com TP e SL pré-ajustados nos parâmetros.

Não sei se é possível codificar uma MA ea tão simples mas apreciaria muito se alguém pudesse me dar uma mão.

Agradecemos antecipadamente!
 
kemal44:
Olá a todos,

depois de experimentar muitas Band ind , tais como jband,tmaband etc... finalmente, tomei a decisão de escrever meu próprio Indicador de Banda ,

o anexo que você vai encontrar é o meu indicador de banda, mas quando a EA chama de linha de banda baixa dá uma divisão zero, eu procurei meu código, não há nenhum divisor zeor lá dentro,

Se você tem uma idéia ou experiência como esta, por favor, deixe-me ajudar a resolver o problema.

obrigado antecipadamente....

AQUI está o código para o ind. de banda.

EA call mid and up signal , mas a banda baixa é o problema para mim ,

//+------------------------------------------------------------------+

//| IndicatorPlan.mq4 |

//| Copyright © 2007, MetaQuotes Software Corp. |

//| MetaTrader 5 Trading Platform / MetaQuotes Software Corp. |

//+------------------------------------------------------------------+

#direitos autorais "Copyright © 2007, MetaQuotes Software Corp."

#link do proprietário "http://www.metaquotes.net/"

//---- desenhando o indicador na janela principal

#janela_do_cartão_indicador de propriedade

//---- número de buffers indicadores

#property indicator_buffers 3

//---- cor do indicador

#indicador de propriedade_cor1 Ouro

#indicador de propriedade_color2 Magenta

#indicador de propriedade_color3 BlueViolet

//---- PARÂMETROS DE ENTRADA DO INDICADOR

MBand_Period = 15;

Exterior int UpBand_Period = 15;

externo int DnBand_Period = 15; externo int DnBand_Period = 15;

ent externo ABand_Timeframe = 15; ent externo ABand_Timeframe = 15;

extern int shift =0;

//---- buffers indicadores

duplo Ind_Buffer0[];

duplo Ind_Buffer1[];

duplo Ind_Buffer2[];

duplo Ind_Buffer3[];

duplo Ind_Buffer4[];

//+------------------------------------------------------------------+

//| Função de inicialização do indicador personalizado |

//+------------------------------------------------------------------+

int init()

{

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));

IndicatorShortName("ABand "+ABand_Timeframe);

//---- definindo o estilo de execução gráfica

SetIndexStyle(0, DRAW_LINE);

SetIndexLabel(0, "MBand "+MBand_Period);

SetIndexStyle(2, DRAW_LINE);

SetIndexLabel(2, "UpBand "+UpBand_Period); SetIndexLabel(2, "UpBand "+UpBand_Period);

SetIndexStyle(1, DRAW_LINE);

SetIndexLabel(1, "DnBand "+DnBand_Period); SetIndexLabel(1, "DnBand "+DnBand_Period);

//---- 3 buffers indicadores são usados para o cálculo

IndicatorBuffers(5);

SetIndexBuffer(0, Ind_Buffer0);

SetIndexBuffer(1, Ind_Buffer1);

SetIndexBuffer(2, Ind_Buffer2);

SetIndexBuffer(3, Ind_Buffer3); SetIndexBuffer(3, Ind_Buffer3);

SetIndexBuffer(4, Ind_Buffer4);

//áàğà óñòàíîâêà íîìåğà ----, íà÷èíàÿ ñ êîòîğîãî áóäåò îòğèñîâûâàòüñÿ èíäèêàòîğ

//ôîğìàòà Óñòàíîâêà ---- òî÷íîñòè îòîáğàæåíèÿ èíäèêàòîğà

IndicadorDígitos(Dígitos);

//---- ğàçìåğ êàíàëà â ïóíêòàõ

//---- final da inicialização

retorno(0);

}

//+------------------------------------------------------------------+

//| Função de iteração de indicador personalizada |

//+------------------------------------------------------------------+

int start()

{

//---- Ïğîâåğêà êîëè÷åñòâà áàğîâ íà äîñòàòàòî÷íîñòü äëÿ äàëüíåéøåãî ğàñ÷¸òà

if(Bars < MBand_Period + UpBand_Period + DnBand_Period)

retorno(0);

//---- İÌÓËßÖÈß ÈÍÄÈÊÀÒÎĞÍÛÕ ÁÓÔÅĞÎÂ

if(ArraySize(Ind_Buffer0) < Barras)

{

ArraySetAsSeries(Ind_Buffer0, false);

ArraySetAsSeries(Ind_Buffer1, false);

ArraySetAsSeries(Ind_Buffer2, false);

ArraySetAsSeries(Ind_Buffer3, false);

ArraySetAsSeries(Ind_Buffer4, false);

//----

ArrayResize(Ind_Buffer0, Bars);

ArrayResize(Ind_Buffer1, Barras);

ArrayResize(Ind_Buffer2, Barras);

ArrayResize(Ind_Buffer3, Barras);

ArrayResize(Ind_Buffer4, Barras);

//----

ArraySetAsSeries(Ind_Buffer0, true);

ArraySetAsSeries(Ind_Buffer1, true);

ArraySetAsSeries(Ind_Buffer2, true);

ArraySetAsSeries(Ind_Buffer3, verdadeiro);

ArraySetAsSeries(Ind_Buffer4, verdadeiro);

}

//----+ ÂÂÅÄÅÍÈÅ ÑÒÀÒÈ×ÅÑÊÎÉ ÖÅËÎÉ ÏÅĞÅÌÅÍÍÎÉ ÏÀÌßÒÈ

estática em IndContado;

//----+ Inserção de variáveis com um ponto flutuante

duplo Resalt0, Resalt1, Resalt2;

dobro do preço;

//----+ Inserção de variáveis inteiras e obtenção de barras calculadas

int limit, MaxBar,bar, counted_bars = IndicatorCounted();

int i,k;

//---- verificação de possíveis erros

if(counted_bars < 0)

retorno(-1);

//---- a última barra calculada deve ser recalculada

if(counted_bars > 0)

barrinhas_contadas..;

//---- definindo o número da barra mais antiga,

// a partir do qual as novas barras serão recalculadas

limite = Barras - contadas_barras - 1;

//---- definindo o número da barra mais antiga,

// a partir do qual as novas barras serão recalculadas

MaxBar = Barras - 1 - (MBand_Period + UpBand_Period + DnBand_Period);

//---- inicialização de zero

if(limite > MaxBar)

{

limite = MaxBar;

for(bar = Barras - 1; bar >= MaxBar; bar--)

{

Ind_Buffer0 = 0,0;

Ind_Buffer1 = 0,0;

Ind_Buffer2 = 0,0;

Ind_Buffer3 = 0,0;

Ind_Buffer4 = 0,0;

}

}

//----+ O PRIMEIRO CICLO DE CÁLCULO DE INDICADORES

i=Bars-DnBand_Period;

if(counted_bars>DnBand_Period) i=Bars-counted_bars-1;

while(i>=0)

{

i=Bars-DnBand_Period;

if(counted_bars>DnBand_Period) i=Bars-counted_bars-1;

while(i>=0)

{

duplo min=1000000;

k=i+DnBand_Period-1;

while(k>==i)

{

price=Resalt1[k];

if(min>preço) min=preço;

k--;

}

Ind_Buffer1=min;

i--;

}

}

para(i=0; i<limite; i++)

{

// Aqui código da variável Cálculo Resalt0

// com base nos valores do buffer UpBand[]

// e variável externa0

Ind_Buffer3 =iMAOnArray(Ind_Buffer1,limit,DnBand_Period,shift, ma_method,i);

}

//----+ O SEGUNDO CICLO DE CÁLCULO DE INDICADORES

{

i=Bars-UpBand_Period;

if(counted_bars>UpBand_Period) i=Bars-counted_bars-1;

while(i>=0)

{

duplo máximo=-1000000;

k=i+UpBand_Period-1;

while(k>==i)

{

price=Resalt2[k];

if(max<preço) max=preço;

k--;

}

Ind_Buffer2=max;

i--;

}

}

//---- a linha de sinal é a média móvel simples

para(i=0; i<limite; i++)

{

// Aqui código da variável Cálculo Resalt0

// com base nos valores do buffer UpBand[]

// e variável externa0

Ind_Buffer4 =iMAOnArray(Ind_Buffer2,limit,UpBand_Period,shift, ma_method,i);

}

//----+ O PRINCIPAL CICLO DE CÁLCULO DE INDICADORES

//---- a linha de sinal é a média móvel simples

para(i=0; i<limite; i++)

{

// Aqui código da variável Cálculo Resalt0

// com base nos valores do buffer UpBand[]

// e variável externa0

Ind_Buffer0 =(Ind_Buffer2+Ind_Buffer1)/2;

}

retorno(0);

}

//+------------------------------------------------------------------+

 

...

Você pode postar como você está usando a chamada iCustom()?

kemal44:
AQUI está o código para a faixa ind.

EA call mid and up signal , mas a banda baixa é o problema para mim ,

//+------------------------------------------------------------------+

//| IndicatorPlan.mq4 |

//| Copyright © 2007, MetaQuotes Software Corp. |

//| MetaTrader 5 Trading Platform / MetaQuotes Software Corp. |

//+------------------------------------------------------------------+

#direitos autorais "Copyright © 2007, MetaQuotes Software Corp."

#link do proprietário "http://www.metaquotes.net/"

//---- desenhando o indicador na janela principal

#janela_do_cartão_indicador de propriedade

//---- número de buffers indicadores

#property indicator_buffers 3

//---- cor do indicador

#indicador de propriedade_cor1 Ouro

#indicador de propriedade_color2 Magenta

#indicador de propriedade_color3 BlueViolet

//---- PARÂMETROS DE ENTRADA DO INDICADOR

MBand_Period = 15;

Exterior int UpBand_Period = 15;

externo int DnBand_Period = 15; externo int DnBand_Period = 15;

ent externo ABand_Timeframe = 15; ent externo ABand_Timeframe = 15;

extern int shift =0;

//---- buffers indicadores

duplo Ind_Buffer0[];

duplo Ind_Buffer1[];

duplo Ind_Buffer2[];

duplo Ind_Buffer3[];

duplo Ind_Buffer4[];

//+------------------------------------------------------------------+

//| Função de inicialização do indicador personalizado |

//+------------------------------------------------------------------+

int init()

{

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));

IndicatorShortName("ABand "+ABand_Timeframe);

//---- definindo o estilo de execução gráfica

SetIndexStyle(0, DRAW_LINE);

SetIndexLabel(0, "MBand "+MBand_Period);

SetIndexStyle(2, DRAW_LINE);

SetIndexLabel(2, "UpBand "+UpBand_Period); SetIndexLabel(2, "UpBand "+UpBand_Period);

SetIndexStyle(1, DRAW_LINE);

SetIndexLabel(1, "DnBand "+DnBand_Period); SetIndexLabel(1, "DnBand "+DnBand_Period);

//---- 3 buffers indicadores são usados para o cálculo

IndicatorBuffers(5);

SetIndexBuffer(0, Ind_Buffer0);

SetIndexBuffer(1, Ind_Buffer1);

SetIndexBuffer(2, Ind_Buffer2);

SetIndexBuffer(3, Ind_Buffer3); SetIndexBuffer(3, Ind_Buffer3);

SetIndexBuffer(4, Ind_Buffer4);

//áàğà óñòàíîâêà íîìåğà ----, íà÷èíàÿ ñ êîòîğîãî áóäåò îòğèñîâûâàòüñÿ èíäèêàòîğ

//ôîğìàòà Óñòàíîâêà ---- òî÷íîñòè îòîáğàæåíèÿ èíäèêàòîğà

IndicadorDígitos(Dígitos);

//---- ğàçìåğ êàíàëà â ïóíêòàõ

//---- final da inicialização

retorno(0);

}

//+------------------------------------------------------------------+

//| Função de iteração de indicador personalizada |

//+------------------------------------------------------------------+

int start()

{

//---- Ïğîâåğêà êîëè÷åñòâà áàğîâ íà äîñòàòàòî÷íîñòü äëÿ äàëüíåéøåãî ğàñ÷¸òà

if(Bars < MBand_Period + UpBand_Period + DnBand_Period)

retorno(0);

//---- İÌÓËßÖÈß ÈÍÄÈÊÀÒÎĞÍÛÕ ÁÓÔÅĞÎÂ

if(ArraySize(Ind_Buffer0) < Barras)

{

ArraySetAsSeries(Ind_Buffer0, false);

ArraySetAsSeries(Ind_Buffer1, false);

ArraySetAsSeries(Ind_Buffer2, false);

ArraySetAsSeries(Ind_Buffer3, false);

ArraySetAsSeries(Ind_Buffer4, false);

//----

ArrayResize(Ind_Buffer0, Bars);

ArrayResize(Ind_Buffer1, Barras);

ArrayResize(Ind_Buffer2, Barras);

ArrayResize(Ind_Buffer3, Barras);

ArrayResize(Ind_Buffer4, Barras);

//----

ArraySetAsSeries(Ind_Buffer0, true);

ArraySetAsSeries(Ind_Buffer1, true);

ArraySetAsSeries(Ind_Buffer2, true);

ArraySetAsSeries(Ind_Buffer3, verdadeiro);

ArraySetAsSeries(Ind_Buffer4, verdadeiro);

}

//----+ ÂÂÅÄÅÍÈÅ ÑÒÀÒÈ×ÅÑÊÎÉ ÖÅËÎÉ ÏÅĞÅÌÅÍÍÎÉ ÏÀÌßÒÈ

estática em IndContado;

//----+ Inserção de variáveis com um ponto flutuante

duplo Resalt0, Resalt1, Resalt2;

dobro do preço;

//----+ Inserção de variáveis inteiras e obtenção de barras calculadas

int limit, MaxBar,bar, counted_bars = IndicatorCounted();

int i,k;

//---- verificação de possíveis erros

if(counted_bars < 0)

retorno(-1);

//---- a última barra calculada deve ser recalculada

if(counted_bars > 0)

barrinhas_contadas..;

//---- definindo o número da barra mais antiga,

// a partir do qual as novas barras serão recalculadas

limite = Barras - contadas_barras - 1;

//---- definindo o número da barra mais antiga,

// a partir do qual as novas barras serão recalculadas

MaxBar = Barras - 1 - (MBand_Period + UpBand_Period + DnBand_Period);

//---- inicialização de zero

if(limite > MaxBar)

{

limite = MaxBar;

for(bar = Barras - 1; bar >= MaxBar; bar--)

{

Ind_Buffer0 = 0,0;

Ind_Buffer1 = 0,0;

Ind_Buffer2 = 0,0;

Ind_Buffer3 = 0,0;

Ind_Buffer4 = 0,0;

}

}

//----+ O PRIMEIRO CICLO DE CÁLCULO DE INDICADORES

i=Bars-DnBand_Period;

if(counted_bars>DnBand_Period) i=Bars-counted_bars-1;

while(i>=0)

{

i=Bars-DnBand_Period;

if(counted_bars>DnBand_Period) i=Bars-counted_bars-1;

while(i>=0)

{

duplo min=1000000;

k=i+DnBand_Period-1;

while(k>==i)

{

price=Resalt1[k];

if(min>preço) min=preço;

k--;

}

Ind_Buffer1=min;

i--;

}

}

para(i=0; i<limite; i++)

{

// Aqui código da variável Cálculo Resalt0

// com base nos valores do buffer UpBand[]

// e variável externa0

Ind_Buffer3 =iMAOnArray(Ind_Buffer1,limit,DnBand_Period,shift, ma_method,i);

}

//----+ O SEGUNDO CICLO DE CÁLCULO DE INDICADORES

{

i=Bars-UpBand_Period;

if(counted_bars>UpBand_Period) i=Bars-counted_bars-1;

while(i>=0)

{

duplo máximo=-1000000;

k=i+UpBand_Period-1;

while(k>==i)

{

price=Resalt2[k];

if(max<preço) max=preço;

k--;

}

Ind_Buffer2=max;

i--;

}

}

//---- a linha de sinal é a média móvel simples

para(i=0; i<limite; i++)

{

// Aqui código da variável Cálculo Resalt0

// com base nos valores do buffer UpBand[]

// e variável externa0

Ind_Buffer4 =iMAOnArray(Ind_Buffer2,limit,UpBand_Period,shift, ma_method,i);

}

//----+ O PRINCIPAL CICLO DE CÁLCULO DE INDICADORES

//---- a linha de sinal é a média móvel simples

para(i=0; i<limite; i++)

{

// Aqui código da variável Cálculo Resalt0

// com base nos valores do buffer UpBand[]

// e variável externa0

Ind_Buffer0 =(Ind_Buffer2+Ind_Buffer1)/2;

}

retorno(0);

}

//+------------------------------------------------------------------+
Razão: