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

 
gyulnara.kosareva:
Olá, posso instalar um EA sem arquivo mql4 se eu tiver apenas o arquivo ex do EA?

Sim, é para isso que serve o arquivo .ex

 
Olá a todos.
Eu tinha o aplicativo MT4 versão 400.1129 instalado no meu andróide, até 29.10.2019 o aplicativo estava funcionando como um relógio. Na sexta-feira comecei a abri-lo no meu telefone, a tela de respingo piscou que eu estava abrindo uma nova conta demo e imediatamente o aplicativo fechou. E acabei ficando na área de trabalho. A próxima dúzia de tentativas terminou com o mesmo resultado. Tirei o terminal, baixei o novo terminal da lista de reprodução, instalei-o, executei-o com o mesmo resultado - a aplicação falhou. Fiz o download da Rojo MT4 do mercado, instalei e lancei e ela funciona como um relógio. Também baixei a versão MT5 500.1780 do Market, instalei e executei, abri uma conta demo, tudo está funcionando bem.
Por favor, informe o que fazer se eu quiser que o MT4 volte a funcionar no meu telefone! Por favor.
 

Olá a todos, vocês podem me dizer o que está errado? O Testador de Estratégia no Mercado reclama de solicitação -NEW_ORDER(): lote=0,20; POSITION_TYPE_BUY(EURUSD); err: 4756/Failed tosend trade request; retcode: 10004/Requote;

Onde posso ler mais sobre este erro e como corrigi-lo?

 
Nikolai Konstantinov:

Olá a todos, vocês podem me dizer o que está errado? O Testador de Estratégia no Mercado reclama de solicitação -NEW_ORDER(): lote=0,20; POSITION_TYPE_BUY(EURUSD); err: 4756/Failed tosend trade request; retcode: 10004/Requote;

Onde posso ler mais sobre este erro e como corrigi-lo?


Isto não é um erro, mas uma situação de mercado.
1. atualizar os preços antes de enviar uma negociação para execução.
2. Reabrir após reparo
3. Aumentar o escorregamento
 
Vladislav Andruschenko:

Não é um erro, é uma situação de mercado.
1. Atualizar os preços antes de enviar uma negociação para execução.
2. Reabrir após o conserto.
3. Aumentar o escorregamento

Obrigado, mas tudo o que você escreveu já está contabilizado. Há algo mais a considerar?

 

Olá! Por favor, ajudem!

De repente, o MT4 começou a ser enforcado. Todos de diferentes empresas de corretagem.

Ao iniciar o terminal fica pendurado. Em Manager diz em frente "não responde". Não responde a nada, Na parte inferior do painel MT está marcado que não há conexão.

Reiniciar os terminais, trocá-los de diferentes corretores, remover e reinstalar, limpar os dados com o programa Limpar, desligar e ligar o computador - não deu resultado.

Resta reinstalar o sistema operacional, mas tão relutante.

Talvez alguém já tenha tido algo assim?

Algum conselho?

 
odyn:

Permanece para reinstalar o SO, mas tão relutante.

Alternativamente, em uma máquina virtual, instalei o SO e o terminal, instalei o Oracle VM VirtualBox sem problemas MT4/MT5

se for um problema com o sistema operacional, você precisa reinstalá-lo.


Eu mesmo o verifiquei. Funciona com MT4 e MT5 sem problemas.

 
odyn:

Olá! Por favor, ajudem!

De repente, o MT4 começou a ser enforcado. Todos de diferentes empresas de corretagem.

Ao iniciar o terminal fica pendurado. Em Manager diz em frente "não responde". Não responde a nada, Na parte inferior do painel MT está marcado que não há conexão.

Reiniciar os terminais, trocá-los de diferentes corretores, remover e reinstalar, limpar os dados com o programa Limpar, desligar e ligar o computador - não deu resultado.

Resta reinstalar o sistema operacional, mas tão relutante.

Talvez alguém já tenha tido algo assim?

Favor informar quem pode.

O Internet Explorer pode ser a raiz do problema

das circunstâncias - tem que ser atualizado ou revolvido :-) E de forma alguma permitem todo tipo de complementos, plugins e extensões.

Os autores decidiram que o componente explorador regulava a exibição do mercado/sinais/novos/chat, mas o explorador em si é um beta perpétuo. E seus problemas "interferem" com o terminal

 

Bom dia a todos.

Podemos mudar a condição no código: "Expert Advisor abre uma posição dependendo do fechamento da última posição". Se não havia posição, ela se abre dependendo da direção do castiçal anterior" e devemosmudá-la para apossibilidade de colocar 2 pedidos pendentes a uma certa distância do preço atual, e, quando um deles aciona, o 2º pedido será apagado. O resto do algoritmo permanece inalterado.

Eu mesmo o afinei, mas não consegui chegar a uma versão funcional.

#property description "Советник открывает позицию в зависимости от закрытия прошлой позиции. Если позиции не было то в зависимости от направления прошлой свечи"
#property description "При достижение Т/P следующий ордер открывается в эту же сторону"
#property description "При достижение S/L следующий открывается в противоположную сторону"
//+------------------------------------------------------------------
#property  show_inputs
//+------------------------------------------------------------------
enum TT {BUY, SELL, BUYLIMIT, SELLLIMIT, BUYSTOP, SELLSTOP};
enum YN {No,Yes};
//+------------------------------------------------------------------
extern TT     Type         = BUY;
extern double Price        = 0; 
extern int    Distance     = 0;
extern int    stoploss     = 300,
              takeprofit   = 300;
extern double risk         = 0.01; //процент от депозита для рассчета объема первой позиции
extern double KoeffMartin  = 2.0;
extern int    OkrLOT       = 2;//округление лота
extern int    slippage     = 3;//Максимально допустимое отклонение цены для рыночных ордеров
extern int    MagicNumb    = 77;//Magic

double MINLOT,MAXLOT;                                  
//+------------------------------------------------------------------+
int OnInit()
{
   MAXLOT = MarketInfo(Symbol(),MODE_MAXLOT);
   MINLOT = MarketInfo(Symbol(),MODE_MINLOT);
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnTick()
{
   double OSL,OTP,OOP,SL,TP;
   int tip;
   double STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
   for (int i=0; i
   {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumb)
         {
            tip = OrderType(); 
            OSL = NormalizeDouble(OrderStopLoss(),Digits);
            OTP = NormalizeDouble(OrderTakeProfit(),Digits);
            OOP = NormalizeDouble(OrderOpenPrice(),Digits);
            SL=OSL;TP=OTP;
            if (tip==OP_BUY)             
            {  
               if (OSL==0 && stoploss>=STOPLEVEL && stoploss!=0)
               {
                  SL = NormalizeDouble(OOP - stoploss   * Point,Digits);
               } 
               if (OTP==0 && takeprofit>=STOPLEVEL && takeprofit!=0)
               {
                  TP = NormalizeDouble(OOP + takeprofit * Point,Digits);
               } 
               if (SL != OSL || TP != OTP)
               {  
                  if (!OrderModify(OrderTicket(),OOP,SL,TP,0,White)) Print("Error OrderModify <<",GetLastError(),">> ");
               }
            }                                         
            if (tip==OP_SELL)        
            {
               if (OSL==0 && stoploss>=STOPLEVEL && stoploss!=0)
               {
                  SL = NormalizeDouble(OOP + stoploss   * Point,Digits);
               }
               if (OTP==0 && takeprofit>=STOPLEVEL && takeprofit!=0)
               {
                  TP = NormalizeDouble(OOP - takeprofit * Point,Digits);
               }
               if (SL != OSL || TP != OTP)
               {  
                  if (!OrderModify(OrderTicket(),OOP,SL,TP,0,White)) Print("Error OrderModify <<",GetLastError(),">> ");
               }
            } 
            return;
         }
      }
   }
   tip=-1;
   double Lot=0;
    for (i=OrdersHistoryTotal()-1; i>=0; i--)
   {
      if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
      {
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumb)
         {
            if (OrderProfit()<0) 
            {
               Lot=lot(OrderLots(),KoeffMartin);
               tip=OrderType();
            }
            else 
            {
               Lot=lot(0,1);
               if (OrderType()==OP_BUY)  tip=OP_SELL;
               if (OrderType()==OP_SELL) tip=OP_BUY;
            }
            break;
         }
      }
   }

   if (tip==-1)
   {
      Lot=lot(0,1);
      if (Open[1]>Close[1]) tip=OP_BUY;
      else tip=OP_SELL;
   }
   if (tip==OP_BUY) if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi  d,Digits),slippage,0,0,NULL,MagicNumb,Blue)!=-1) Comment("Open Sell");
   if (tip==OP_SELL) if (OrderSend(Symbol(),OP_BUY ,Lot,NormalizeDouble(Ask,Digits),slippage,0,0,NULL  ,MagicNumb,Blue)!=-1) Comment("Open Buy");                               
}
//--------------------------------------------------------------------

double lot(double l,double k)

{

   double ML = AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED);

   if (k==1) l = ML*risk/100;
   else l = NormalizeDouble(l*k,OkrLOT);
   if (l>ML) l = ML;
   if (l>MAXLOT) l = MAXLOT;
   if (l
   return(l);
}
//-----------------------------------------------------------------
            {
               Lot=lot(0,1);
               if (OrderType()==OP_BUY)  tip=OP_SELL;
               if (OrderType()==OP_SELL) tip=OP_BUY;
            }
            break;
         }
      }
   }

   if (tip==-1)
   {
      Lot=lot(0,1);
      if (Open[1]>Close[1]) tip=OP_BUY;
      else tip=OP_SELL;
   }
   
   if (tip==OP_BUY) if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi  d,Digits),slippage,0,0,NULL,MagicNumb,Blue)!=-1) Comment("Open Sell");
   if (tip==OP_SELL) if (OrderSend(Symbol(),OP_BUY ,Lot,NormalizeDouble(Ask,Digits),slippage,0,0,NULL  ,MagicNumb,Blue)!=-1) Comment("Open Buy");                                 
}
//--------------------------------------------------------------------
double lot(double l,double k)
{
   double ML = AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED);
   if (k==1) l = ML*risk/100;
   else l = NormalizeDouble(l*k,OkrLOT);
   if (l>ML) l = ML;
   if (l>MAXLOT) l = MAXLOT;
   if (l
   return(l);
}
//-----------------------------------------------------------------
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
Arquivos anexados:
SSSR_v.1.mq4  11 kb
 
Vou tentar reformular o último posto:

//--------------------------------------
De acordo com o algoritmo, o Expert Advisor abre uma posição, dependendo do fechamento de uma posição anterior.
Se não havia posição, ela se abre dependendo da direção da última vela.

Este algoritmo deve ser mudado para:

Comprar:

Coloque 2 pedidos pendentes BuyStop ao preço especificado nas configurações e SellStop ao preço especificado nas configurações.
Assim que o preço atinge uma das ordens de parada, ele passa para uma posição de mercado com o conjunto ТР e SL. A ordem que não acionou é apagada.

O resto do algoritmo permanece inalterado, ou seja "Quando o TP/P é alcançado, o próximo pedido é aberto na mesma direção".
"Quando S/L é alcançado, a próxima ordem é aberta na direção oposta".
//---------------------------------------------------
Razão: