[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 280

 
drknn:

Você repetiu o erro várias vezes:

Você coloca uma condição, depois escreve algo entre parênteses, depois coloca um ponto-e-vírgula após o parêntese de fechamento. assim:

Isso não está certo. Isto é correto:

Entendo, vou tentar agora - mas na verdade era um modelo no qual eu tinha que substituir as condições de compra e venda - e, portanto, sou um principiante.
 
drknn:

Você repetiu o erro várias vezes:

Você coloca uma condição, depois escreve algo entre parênteses, depois coloca um ponto-e-vírgula atrás do parêntese de fechamento. assim:

Isso não está certo. Isto é correto:

Nada de bom vem à tona :(
 

Em resumo, tive paciência para exatamente uma centena de linhas. Não está absolutamente claro onde em sua idéia a condição deveria ser fechada. Por exemplo, if(total<1){ mas é difícil entender onde fechá-lo. Bem, aqui está um arquivo com uma centena de linhas de código fixas. Veja como está formatado e não seja preguiçoso para colocar parênteses encaracolados...

O arquivo é anexado ao correio. Esta centena de linhas é suficiente para ver a diferença entre o uso de formatação de código normal e anormal.

Arquivos anexados:
newx2.mq4  6 kb
 
drknn:

Em resumo, tive paciência para exatamente uma centena de linhas. Não está absolutamente claro onde em sua idéia a condição deveria ser fechada. Por exemplo, if(total<1){ mas é difícil entender onde fechá-lo. Bem, aqui está um arquivo com uma centena de linhas de código fixas. Veja como está formatado e não seja preguiçoso para colocar parênteses encaracolados...

O arquivo é anexado ao correio.

Dá dois erros - geralmente não funciona. (Erro no final do programa)
 
E haverá erros - não está claro onde o aparelho encaracolado deve ser colocado. Eu o faria se entendesse a intenção.
 
LeksusMt4:
Produz dois erros - não funciona em absoluto. (Erro nos programas finais)
A essência do robô comercial é comprar e vender seguindo o indicador Sar - talvez eu não tenha estabelecido as condições corretamente?
 
Você não colocou os aparelhos corretamente e colocou os ponto-e-vírgulas onde eles não pertencem. Formate o código!!!
 
LeksusMt4:
A essência do robô comercial é comprar e vender seguindo o indicador Sar - talvez eu não tenha definido as condições corretamente?


Aqui está o editor de código: http://depositfiles.com/files/2ippj8zao - baixar, descompactar, executar (a instalação não é necessária). Abra neste editor o arquivo que coloquei para você antes e veja o seu código - para onde vão as linhas tracejadas verticais.

A compra e venda seguindo qualquer indicador pode ser executada de forma diferente. Sua intenção não é totalmente clara.

P.S.

O editor já foi afiado para a MQL4 e os trabalhos de destaque de parênteses nela contidos.

 
drknn:


Aqui está o editor de código para você: http://depositfiles.com/files/2ippj8zao - baixar, descompactar, executar (a instalação não é necessária). Abra neste editor o arquivo que coloquei para você antes e veja o seu código - para onde vão as linhas tracejadas verticais.

A compra e venda seguindo qualquer indicador pode ser executada de forma diferente. Sua intenção não é totalmente clara.

P.S.

O editor já está personalizado para a linguagem MQL4 e funciona com destaque de parênteses.

Muito obrigado!!!!
 
#property  indicator_separate_window

#property  indicator_buffers 2
#property  indicator_color1  DarkGray
#property  indicator_width1  5
#property  indicator_color2  Red
#property  indicator_width2  2



extern int    Show_For_Last_N_Days   = 100;
extern string _                      = "";
extern int    MA1_Period             = 12;
extern int    MA2_Period             = 26;
extern int    MA3_Period             = 9;

double        MacdBuffer[];
double        SignalBuffer[];


int init() {
   IndicatorBuffers(2);
   IndicatorShortName("MACD("+MA1_Period+","+MA2_Period+","+MA3_Period+")");
   IndicatorDigits(Digits+1);

   SetIndexLabel(    0,"MACD");
   SetIndexBuffer(   0,MacdBuffer);
   SetIndexStyle(    0,DRAW_HISTOGRAM);
   SetIndexDrawBegin(0,MA2_Period);

   SetIndexLabel(    1,"Signal");
   SetIndexBuffer(   1,SignalBuffer);
   SetIndexStyle(    1,DRAW_LINE);
   SetIndexDrawBegin(1,MA2_Period);

   return(0);
}




int start() {
   int i                       = Bars - IndicatorCounted() - 1;

   while(i>=0) {

      if(Time[i]>=iTime(NULL,PERIOD_D1,Show_For_Last_N_Days)) {
         MacdBuffer[i+1]       = iMA(NULL,0,MA1_Period,0,MODE_EMA,PRICE_CLOSE,i+1) - iMA(NULL,0,MA2_Period,0,MODE_EMA,PRICE_CLOSE,i+1);

         for(int k=0; k<=MA3_Period; k++) {                                  //---- signal line counted in the 2-nd buffer
            SignalBuffer[k+1]  = iMAOnArray(MacdBuffer,0,MA3_Period,0,MODE_SMA,k+1);
         }
      }

      i--;
   } // while(i>=0) {

   return(0);
}



- Por que o iMAOnArray não funciona neste exemplo (e como conseqüência a linha de sinal não é exibida)?
Obrigado!