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

 

EA com base na faixa percentual Williams. O código compila sem problemas, mas a EA não negocia, muito provavelmente os parâmetros para a wpr não estão corretos. Os Gurus esperam ouvir de você

//+------------------------------------------------------------------+
//|                                                          WRP.mq4 |
//|                                                                  |
//+------------------------------------------------------------------+

//--------------------------------------------------------------------
extern int     period_WPRur          = 6,
               stoploss             = 100,
               takeprofit           = 200,
               slippage             = 10,
               buy_level            = -80,
               sell_level           = -20,
               Magic                = 21;
extern double  Lot                  = 0.1;
//--------------------------------------------------------------------
void OnTick()
{
   for (int i=0; i<OrdersTotal(); i++)
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber()) return;
   double WPRur0  = iWPR(Symbol(),period_WPRur,PRICE_OPEN,1);
   double WPRur1  = iWPR(Symbol(),period_WPRur,PRICE_OPEN,1);
   double SL=0,TP=0;
   if (WPRur0 > buy_level && WPRur1 < 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());
   }
   if (WPRur0 < sell_level && WPRur1 > sell_level)
   {
      if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits);
      if (stoploss!=0)   SL = NormalizeDouble(Bid + stoploss*  Point,Digits);            
      if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
   }
}
//--------------------------------------------------------------------
 
Saudações a todos, sou um novato, aconselho o que fazer, tenho quedevolvera quantia de300,26$ (conta real)ou não, quero parar de usar o ECN Pool MT4 por um tempo?
Arquivos anexados:
354355.png  5 kb
 
Logic:
Saudações a todos, sou um novato, me diga o que fazer, tenho quereembolsar a quantia de300,26$ (conta real)ou não, quero parar de usar o ECN Pool MT4 por um tempo?

Leia o acordo de usuário de seu corretor.
Você deve ler o acordo de seu corretor e ele normalmente diz que se a conta ficar no vermelho, o cliente não lhe deve nada.
É para isso que a margem chama e pára.

 
Aleksandr SHablevskiy:

EA com base na faixa percentual Williams. O código compila sem problemas, mas a EA não negocia, muito provavelmente os parâmetros para a wpr não estão corretos. Gurus espera por sua ajuda

  double WPRur0  = iWPR(Symbol(),period_WPRur,PRICE_OPEN,1);
  double WPRur1  = iWPR(Symbol(),period_WPRur,PRICE_OPEN,2);
Coloque 2 no final da segunda linha, como eu fiz.
 
Nikolay Khrushchev:

Leia o acordo de usuário de seu corretor.
Eles normalmente declaram que se a conta entrar em déficit, o cliente não deve nada.
É para isso que a margem chama e pára.

a coisa é que o corretor acabou se tornando um golpista, nem o site nem a comunicação estão disponíveis com ele
 
Nikolay Khrushchev:
colocar 2 no final da segunda linha, como eu fiz.
parece ser outra coisa, sem acordos!!!
 
Olá a todos! acabo de começar a aprender programação mql4, estou assistindo a um curso de vídeo no youtube, mas acontece que o material é antigo, encontrei um erro quando tentei criar um programa pela primeira vez, me ajude.Eis o erro. O autor do vídeo não responde.
 
Olá a todos,por favor, ajudem-me,como escrever uma função que faria o robô se virar sobre a perda. Por exemplo, eu perdi 20 pips e virei, depois virei novamente.
 
turser89:
Olá a todos! acabei de começar a aprender programação mql4, estou assistindo ao curso de vídeo no youtube, mas acontece que o material é antigo, encontrei um erro na primeira vez que tentei criar um programa, por favor, ajude-me.

Start() começou com um "s" minúsculo em vez de um maiúsculo.

Mas agora é melhor não usar funções desatualizadas.

OnTick() para especialistas, OnStart() para scripts, etc. Leia mais: https://docs.mql4.com/ru/mql4changes

 

Boa tarde.

1       16:15:33.627    2019.02.04 16:00:00  CandleStrategy EURUSD,M30: out of memory
3       16:15:33.627    2019.02.04 16:00:00  Testing pass stopped due to a critical error in the EA

Como posso diagnosticar o que está causando o erro de memória? Não tenho mais nenhum objeto não removido. Eu inicio o teste, paro o teste e não há erros sobre objetos não selecionados nos registros. Também não há erros sobre objetos não apagados com este erro fora da memória.

Como posso descobrir o que exatamente leva a este erro de memória?