Ajuda Inciante

 

Pessoal começei agora com programação, provavelmente essa é uma duvida basica, mas:


Quando tento compilar o meu codigo, ele me retorna que 'NivelA' - constant cannot be modified, porem para mim eu tinha setado o NivelA como uma variavel:


#include <Trade\Trade.mqh>

CTrade trade;

MqlRates          rates[];

double            openY,highY,lowY,closeY,last;

MqlDateTime       diaAtual;

string            tendencia;


input ulong                   magicNum = 123456;//Numero magico

input ulong                   desvPts = 5;//Desvio

input ENUM_ORDER_TYPE_FILLING preenchimento = ORDER_FILLING_RETURN;//preenchimento da ordem

input double                  lote = 5.0;//Volume

input double                  TrigerTS = 5;//Ativacao do Tralling Stop

input double                  StepTS = 2;//Passo do Tralling Stop

input double                  StopIni = 5;//Stop inicial

input int                     horaInicioAbertura = 10;//Hora de Inicio de Abertura de Posições

input int                     minutoInicioAbertura = 30;//Minuto de Inicio de Abertura de Pisoções

input int                     horaFimAbertura = 16;//Hora de Encerramento de Abertura de Posições

input int                     minutoFimAbertura = 45;//Minuto de Encerramento de Abertura de Posições

input int                     horaInicioFechamento = 17;//Hora de Inicio de Fechamento de Posições

input int                     minutoInicioFechamento = 20;//Minuto de Inicio de Fechamento de Posições

double                        PRC;//Preço normalizado

double                        STL;//StopLoss normalizado

double                        TKP;//TakeProfit normalizado

double                        smaArray[];

int                           smaHandle;

bool                          posAberta;

bool                          ordPendente;

bool                          beAtivo;

MqlTick                       ultimoTick;

MqlDateTime                   horaAtual;

input double                  NivelA = 1.005;

input double                  MNivelA = -0.995;

input double                  NivelB = 1.01;

input double                  MNivelB = -0.99;

input double                  NivelC = 1.015;

input double                  MNivelC = -0.985;

input double                  NivelD = 1.02;

input double                  MNivelD = -0.98;

input double                  NivelE = 1.025;

input double                  MNivelE = -0.975;


int OnInit()

  {

   

   trade.SetTypeFilling(preenchimento);

      trade.SetDeviationInPoints(desvPts);

      trade.SetExpertMagicNumber(magicNum);

  

  if(horaInicioAbertura > horaFimAbertura || horaFimAbertura > horaInicioFechamento)

         {  

            Alert("Inconsistência de Horários de Negociação!");

            return(INIT_FAILED);

         }

      if(horaInicioAbertura == horaFimAbertura && minutoInicioAbertura >= minutoFimAbertura)

         {

            Alert("Inconsistência de Horários de Negociação!");

            return(INIT_FAILED);

         }

      if(horaFimAbertura == horaInicioFechamento && minutoFimAbertura >= minutoInicioFechamento)

         {

            Alert("Inconsistência de Horários de Negociação!");

            return(INIT_FAILED);

         }

  

  

   ArraySetAsSeries(rates,true);

   return(INIT_SUCCEEDED);


  }

void OnTick()

  {

     

   TimeToStruct(TimeCurrent(), horaAtual);   

   Comment("Hora Atual: ", horaAtual.hour, "\nMinuto Atual: ", horaAtual.min);

                    

                  

   if(CopyRates(_Symbol,PERIOD_D1,0,3,rates)==3)

     {

      openY=rates[1].open;

      highY=rates[1].high;

      lowY=rates[1].low;

      closeY=rates[1].close;

     };

   last = SymbolInfoDouble(_Symbol, SYMBOL_LAST);

   

   if(rates[1].close>rates[2].close)

      {

         tendencia = "A";

         if(ultimoTick.last = (NivelA *= closeY))

         {

         Comment("ok");

         }

      }

   else if(rates[1].close<rates[2].close)

      {

         tendencia = "B";

      }   

      


          

  }

Se alguem puder ajudar e se tiverem material para ser estudado.


Grato,

 
Lucastrmendes:

.....


Quando for postar codigo use Alt+S para ficar melhor visivel seu codigo.


Variáveis declaradas no input são do tipo constantes e não pode sem alteradas no decorrer do programa. Alternativa crie uma variável que receba o valor desse input e use a variável ao invés do input. 

 
olá eu naõ estou conseguindo operar mini contratos indice e dolar na conta demo , no saudo demo eu naõ recebi nenhum dinheiro virtual e nestes contratos do mini dolar e mini indice, não aparece opção de comprar e nem de vender, nem com um clique, fui em ferramentas, negociação e abilitei negociação com um clique mais ainda esta do mesmo jeito. alguem pode me ajudar?  
 

Tente com o botão direito do mouse sobre o seu gráfico habilitar o Livro de Ofertas(Book).


Com a Seta para cima você compra com a seta para baixo você vende.

Ou pelos botões Vender ou Comprar.

Habilite o Volume de 1 para mini dólar e mini índice.

 
Jonathan Pereira:


Quando for postar codigo use Alt+S para ficar melhor visivel seu codigo.


Variáveis declaradas no input são do tipo constantes e não pode sem alteradas no decorrer do programa. Alternativa crie uma variável que receba o valor desse input e use a variável ao invés do input. 

Valeu pela, dica, na proxima vou usar o Alt+S e usar o topico correto, rsrsrs, my, bad, então acabei mudando algumas coisa para deixar o input sem precisar mudar.


Obrigado

 
Boa noite. Eu gostaria de saber se no MT5 existe a possibilidade de se colocar o stop gain fixado? Exemplo 25 pontos. 

Eu quero que esse stop gain seja inserido automaticamente após a execução da ordem. O meta trade 5 tem esse opção? Se sim, alguém pode me falar como configurar isso? Obrigado
 
antoniocarnss:
Boa noite. Eu gostaria de saber se no MT5 existe a possibilidade de se colocar o stop gain fixado? Exemplo 25 pontos. 

Eu quero que esse stop gain seja inserido automaticamente após a execução da ordem. O meta trade 5 tem esse opção? Se sim, alguém pode me falar como configurar isso? Obrigado

Antonio,

Você deve estar de sacanagem né? além de você postar em duplicidade em várias postagens a mesma coisa aqui no fórum ainda manda mensagem no privado para este tipo de assunto? 

Brincadeira viu...


Razão: