Perguntas de Iniciantes MQL4 MT4 MetaTrader 4 - página 25

 
Viachaslau Baiko:

possível perda de dados devido à conversão do tipo

Experimente.

Arquivos anexados:
 
Renat Akhtyamov:
Mostre-me a linha a partir do código para o qual o compilador aponta

Há muitas linhas como essa, por isso pedi um módulo adaptado para os novos terminais. Mas obrigado por sua vontade de ajudar)

 
Alekseu Fedotov:
Obrigado, eu vou tentar!
 
Viachaslau Baiko:

Há muitas linhas como essa, por isso pedi um módulo adaptado para os novos terminais. Mas obrigado por sua vontade de ajudar)

Bem nesta linha :

" possível perda de dados devido à conversão do tipo".

deve ser o número da linha e a posição na linha de código com o erro.

Assim é fácil, você pode corrigir todos os erros, sabendo a localização exata no código

 
Renat Akhtyamov:

bem nesta linha :

" possível perda de dados devido à conversão do tipo".

deve haver um número de linha e uma posição na linha de código com o erro.

Essa é uma maneira fácil de corrigir todos os erros, sabendo a localização exata no código.

Peguei o Expert Advisor oferecidopor Alekseu Fedotov e tentei modificá-lo para adequá-lo às minhas necessidades.

Minhas necessidades são as seguintes: Em um cruzamento de varinhas, abrimos uma posição e a fechamos no cruzamento oposto. Se possível, transferimos a posição para o Breakeven.

Mas, no final, nada é aberto. Estou me arrasando. Qual pode ser o problema?

Arquivos anexados:
4Tester.mq4  20 kb
 
Viachaslau Baiko:

Peguei o EA oferecidopor Alekseu Fedotov e tentei modificá-lo de acordo com minhas necessidades.

Minhas necessidades são as seguintes: Se eles forem cruzados, abrimos uma posição. Se eles forem cruzados novamente, fechamos a posição. Se possível, transferimos a posição para o Breakeven.

Mas, no final, nada é aberto. Estou me arrasando. Qual pode ser o problema?

Não tenho certeza qual é o problema, mas gostaria de ver pela última vez uma linha de código com um erro da CMM.
 
Renat Akhtyamov:
mostrar a linha do código com o erro da CMM, pela última vez eu me ofereço para ajudar.
Houve um erro de minha parte. Eu fiz mal a lógica do programa. E para mim foi mais fácil refazê-lo. Não há erro no código da CMM.
 
Favor informar se é possível fazer o seguinte com mql4 ou mql5:

após o preço cruzar um nível vertical, para colorir parte do fundo outra cor, como indicado na figura.

Obrigado.
Arquivos anexados:
Immagine1.JPG  100 kb
 
Renat Akhtyamov:
mostrar um trecho de código sobre como você lê o sinal do indicador em sua EA
extern int     stoploss             = 200,
               takeprofit           = 400,
               slippage             = 10,
               Magic                = 777;          

extern double  Lot                  = 0.5,
               buy_level            = 15;      
            

void OnTick()
{
   for (int i=0; i<OrdersTotal(); i++)                        
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
   if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
  
   double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);
   double SL=0,TP=0;
  
   if (STO > buy_level)
  
  
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits);
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*  Point,Digits);    
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
      PlaySound("timeout.wav");
      Print("Ордер успешно размещен");
}
}
 
TimBerg:
extern int     stoploss             = 200,
               takeprofit           = 400,
               slippage             = 10,
               Magic                = 777;          

extern double  Lot                  = 0.5,
               buy_level            = 15;      
            

void OnTick()
{
   for (int i=0; i<OrdersTotal(); i++)                        
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
   if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
  
   double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);
   double SL=0,TP=0;
  
   if (STO > buy_level)
  
  
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits);
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*  Point,Digits);    
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
      PlaySound("timeout.wav");
      Print("Ордер успешно размещен");
}
}

Aqui mesmo:

iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);

período de mudança (cronograma) para 1,5,15,30,60,240,1440,10080,43200 //M1.M5.M30 ... etc.

ou digite Period() em vez de 15, então quando você trocar o TF manualmente, o atual será automaticamente definido