Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 492

 
Ihor Herasko:

Veja a função SymbolSelect.

Obrigado!

 
Aconselhe como deslocar o gráfico mais para a esquerda programmaticamente. Obrigado!
 

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Qualquer pergunta para iniciantes em MQL4, ajuda e discussão sobre algoritmos e códigos

labvic, 2018.03.12 14:43

Olá a todos, estou enfrentando um problema desses:

Abro um negócio sem perda de tempo e sem lucros:

OrderSend("EURUSD",OP_BUY,0.1,Ask,0,0,0,"",Magic,0,Red);

Quero fechar este pedido.

OrderClose(Magic,OrderOpenPrice(),Ask,0,Red);

Eu recebo este erro: OrderClose error 131

Se ao invés deOrderOpenPrice() I point 0.1 ou OrderLots() houver um erro: OrderClose error 138

Qual é o problema?

Julgando pela documentação, é muito difícil escrever um fechamento muito mais maluco.

bool  OrderClose(
   int        ticket,      // номер ордера
   double     lots,        // количество лотов
   double     price,       // цена закрытия
   int        slippage,    // максимальное проскальзывание
   color      arrow_color  // цвет
   );
Em vez de bilhete escrito magik, em vez de volume escrito preço aberto. Leia a documentação e sinta-se à vontade para examiná-la com mais freqüência ao escrever o código.


 
Nikolay Gaylis:
Por favor, aconselhe como mudar a tabela ainda mais para a esquerda programática. Obrigado!

Preciso desativar o autoscroll e o offset (propriedades do gráfico CHART_AUTOSCROLLL e CHART_SHIFT respectivamente) e depois usar o ChartNavigate().

 
Ihor Herasko:

Necessidade de desativar o autoscroll e o offset (propriedades do gráfico CHART_AUTOSCROLLL e CHART_SHIFT respectivamente) e depois usar ChartNavigate().

Obrigado!

 

Saudações a todos! Sou um novato, tentando criar uma EA. Eu escrevi uma simples para ver como funcionaria. Quando um sinal aparece, o alerta não funciona. Eu não sei qual é o erro. Eu não sei exatamente qual é o erro.

//+------------------------------------------------------------------+
//|                                             тенк больше кидж.mq4 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
 double tenkan=iIchimoku(NULL,0,9,26,52,MODE_TENKANSEN,1);       //ЗНАЧЕНИЕ ТЕНКАН
 double kijun=iIchimoku(NULL,0,9,26,52,MODE_KIJUNSEN,1);         // ЗНАЧЕНИЕ КИДЖУН
 //-------------------------------------------------------------------+
  if(tenkan>kijun)                                               //"ЗОЛОТОЙ КРЕСТ"
  Alert("ЗОЛОТОЙ КРЕСТ");                                       // ОПОВЕЩЕНИЕ
  return;
  }

Sinceramente Andrei.

Arquivos anexados:
 
Andrey Ilinykh:

Saudações a todos! Sou um novato, tentando criar uma EA. Eu escrevi uma simples para ver como funcionaria. Quando um sinal aparece, o alerta não funciona. Eu não sei qual é o erro. Eu não sei exatamente qual é o erro.

Cumprimentos ao Andrew.

Está funcionando! Você verifica isso no testador?

 
Nikolay Gaylis:

Está funcionando! Você confere com um testador?

Foi o que eu pensei, por alguma razão.

Não, eu ainda não descobri o testador.

Eu compilei o Expert Advisor e estou usando-o em um minucioso gráfico. A nuvem muda de cor, mas a janela de alerta não se abre. Poderia ser um erro de software?

Obrigado!

 
void Laguerr::  deleteOrders()   //  (int otype)
{
   int k = OrdersTotal();
   datetime mDateOrderOp; 
   
   
   for(int i=k-1;i>=0;i--)
   {
      if (OrderSelect(i,SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol()==nameSym && OrderMagicNumber()== Magic && OrderCloseTime()==0)  // && OrderType() == otype)
         {
            if(OrderType()== OP_BUYSTOP || OrderType()== OP_SELLSTOP) 
            {
               mDateOrderOp = OrderOpenTime();
               int  mTick = OrderTicket();
               //if (OrderType()== OP_BUYSTOP) mOpType = OP_SELL;
               bool flag= false;
               for(int pos=k-1;pos>=0;pos--)
               {
                  if (OrderSelect(pos,SELECT_BY_POS, MODE_TRADES))
                  {
                     if (OrderSymbol()==nameSym && OrderMagicNumber()== Magic && OrderCloseTime()==0)  // && OrderType() == otype)
                     {
                        if(OrderOpenTime() == mDateOrderOp && (OrderType()== OP_BUY || OrderType()== OP_SELL)  ) 
                        {
                            flag = true;   
                            break;
                        } 
                     }
                  }
               }
               if (!flag)
               {
                  if (!OrderDelete(mTick))
                  Print("Ошибка delete ордера . Код ошибки=",GetLastError()); 
                  break;
               }
             } 
         }
      }
   }
}
Olá a todos, aqui está a situação: eu abro um pedido com um certo TP e OD. mas OD aciona e um segundo pedido abre ao preço do OD do primeiro pedido na direção oposta (OD é igual ao número de pips perdidos no primeiro pedido). No caso de um SL secundário, a terceira ordem deve ser aberta na direção oposta à segunda ordem com o preço igual ao valor da segunda ordem (Stop Loss). Pergunta: Como fazer esta cascata de abertura destas três ordens?
 
Você pode me dizer se a função de fechar todas as ordens abertas pela EA no símbolo está correta?
void OrderCloseAll(double close_price)
{
   for(int i=OrdersTotal(); i>-1; i--)
      {
         OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) OrderClose(OrderTicket(),lot,close_price,slippage,clrWhite);
      }

}