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

 
Vladimir Karputov:

ENUM_TRADE_REQUEST_ACTIONS

Identificador

Descrição

COMÉRCIO_AÇÃO_PROBLEMA

Colocar uma ordem comercial para uma execução imediata com os parâmetros especificados (ordem de mercado)

COMÉRCIO_ATIVO_DEPENDENTE

Colocar uma ordem comercial para a execução sob condições especificadas (ordem pendente)

Exemplo da operação TRADE_ACTION_PENDING para colocação de uma ordem pendente:

#property description "Example of placing pending orders"
#property script_show_inputs
#define  EXPERT_MAGIC 123456                             // MagicNumber of the expert
input ENUM_ORDER_TYPE orderType=ORDER_TYPE_BUY_LIMIT;   // order type
//+------------------------------------------------------------------+
//| Placing pending orders                                           |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- declare and initialize the trade request and result of trade request
   MqlTradeRequest request={0};
   MqlTradeResult  result={0};
//--- parameters to place a pending order
   request.action   =TRADE_ACTION_PENDING;                             // type of trade operation
   request.symbol   =Symbol();                                         // symbol
   request.volume   =0.1;                                              // volume of 0.1 lot
   request.deviation=2;                                                // allowed deviation from the price
   request.magic    =EXPERT_MAGIC;                                     // MagicNumber of the order
   int offset = 50;                                                    // offset from the current price to place the order, in points
   double price;                                                       // order triggering price
   double point=SymbolInfoDouble(_Symbol,SYMBOL_POINT);                // value of point
   int digits=SymbolInfoInteger(_Symbol,SYMBOL_DIGITS);                // number of decimal places (precision)
   //--- checking the type of operation
   if(orderType==ORDER_TYPE_BUY_LIMIT)
     {
      request.type     =ORDER_TYPE_BUY_LIMIT;                          // order type
      price=SymbolInfoDouble(Symbol(),SYMBOL_ASK)-offset*point;        // price for opening 
      request.price    =NormalizeDouble(price,digits);                 // normalized opening price 
     }
   else if(orderType==ORDER_TYPE_SELL_LIMIT)
     {
      request.type     =ORDER_TYPE_SELL_LIMIT;                          // order type
      price=SymbolInfoDouble(Symbol(),SYMBOL_ASK)+offset*point;         // price for opening 
      request.price    =NormalizeDouble(price,digits);                  // normalized opening price 
     }
   else if(orderType==ORDER_TYPE_BUY_STOP)
     {
      request.type =ORDER_TYPE_BUY_STOP;                                // order type
      price        =SymbolInfoDouble(Symbol(),SYMBOL_ASK)+offset*point; // price for opening 
      request.price=NormalizeDouble(price,digits);                      // normalized opening price 
     }
   else if(orderType==ORDER_TYPE_SELL_STOP)
     {
      request.type     =ORDER_TYPE_SELL_STOP;                           // order type
      price=SymbolInfoDouble(Symbol(),SYMBOL_ASK)-offset*point;         // price for opening 
      request.price    =NormalizeDouble(price,digits);                  // normalized opening price 
     }
   else Alert("This example is only for placing pending orders");   // if not pending order is selected
//--- send the request
   if(!OrderSend(request,result))
      PrintFormat("OrderSend error %d",GetLastError());                 // if unable to send the request, output the error code
//--- information about the operation
   PrintFormat("retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order);
  }
//+------------------------------------------------------------------+
 
Vladimir Karputov:

ENUM_TRADE_REQUEST_ACTIONS

Identificador

Descrição

COMÉRCIO_AÇÃO_PROBLEMA

Colocar uma ordem comercial para uma execução imediata com os parâmetros especificados (ordem de mercado)

COMÉRCIO_ATIVO_DEPENDENTE

Colocar uma ordem comercial para a execução sob condições especificadas (ordem pendente)

Obrigado!

 
Vladimir Karputov:

Exemplo da operação TRADE_ACTION_PENDING para colocação de uma ordem pendente:

Vladimir, você não pode escrevê-lo em russo?
 
Artyom Trishkin:
Vladimir, você não pode escrevê-lo em russo?

Você não pode. Porque eu citei na íntegra a partir da referência. Caso contrário, é um tiro no escuro: todos têm um 'bilhete' e alguns têm 'bilhetes'. É por isso que as funções, ajuda e citações da ajuda estão em inglês.

 
Vladimir Karputov:

Você não pode. Porque eu citei a referência completa. Caso contrário, é um tiro no escuro: todos têm um "bilhete" e alguns têm "bilhetes". Portanto, as funções, a referência e as citações da referência estão em inglês.

E eles têm "ingressos" só porque começam a traduzir com o google :)
Na ajuda oficial russa, há "ingressos".
Em florestamento, apenas a partir de traduções livres.
 

Olá a todos! Acho que a questão é principalmente para os profissionais (como acontece). Foi uma semana com uma pergunta sobre o código.

Por exemplo - sabemos que a vela M5 contém 5 velas M1 (por exemplo, 00:00, 00:01, 00:02, 00:03 e 00:04). Além disso, consideraremos apenas esta conjunção - ou seja, executamos o indicador no M1 e queremos ver as leituras do indicador a partir do M5.

Ou seja, para exibir corretamente os dados da parte inferior, eu deveria fazer um laço em todas as 5 barras da parte inferior à medida que elas aparecem. Isto é, a primeira barra aparece como 00:00, depois 00:01 etc. até 00:04 e depois disso aparece a próxima. Isto significa que o ciclo deve ser de 0 a 4 - este é o máximo, enquanto as lacunas na história não são consideradas. O problema é que eu recebo o ciclo de 0 a 5, e não tenho lógica suficiente para chegar a 4! Acredite em mim, há uma semana que estou lutando com isto e estou realmente pedindo sua ajuda. Abaixo está um código muito truncado onde o laço vai para 5 em vez de 4. Quero que seja 4!!!!!

#property copyright ""
#property link      ""
#property version   ""
#property indicator_chart_window

//+----------------------------------------------+
//| Входные параметры индикатора                 |
//+----------------------------------------------+
input ENUM_TIMEFRAMES TF=PERIOD_M5;
int LastCountBar;
datetime tt;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,    // количество истории в барах на текущем тике
                const int prev_calculated,// количество истории в барах на предыдущем тике
                const datetime &time[],
                const double &open[],
                const double& high[],     // ценовой массив максимумов цены для расчёта индикатора
                const double& low[],      // ценовой массив минимумов цены  для расчёта индикатора
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   datetime IndTime[1];
//--- объявления локальных переменных
   int limit,bar;
//--- индексация элементов в массивах как в таймсериях
   ArraySetAsSeries(time,true);
//--- расчёт стартового номера first для цикла пересчёта баров
   if(prev_calculated>rates_total || prev_calculated<=0) // проверка на первый старт расчёта индикатора
     {
      limit=100; // стартовый номер для расчёта всех баров
      LastCountBar=limit;
     }
   else
      limit=LastCountBar+rates_total-prev_calculated; // стартовый номер для расчёта новых баров

//--- основной цикл расчёта индикатора
   for(bar=limit; bar>=0; bar--)
     {
      //--- копируем вновь появившиеся данные в массив IndTime
      if(CopyTime(Symbol(),TF,time[bar],1,IndTime)<=0)
         return(0);
         
      if(time[bar]>=IndTime[0] && time[bar+1]<IndTime[0])
        {
         LastCountBar=bar;
         //--- Далее проводим вычисления индикатора МТФ ...............
         Print(bar," ",IndTime[0]);
         //---
        }
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+
 

Como posso adicionar uma janela de edição de visualização de lista?

https://www.mql5.com/en/docs/standardlibrary/controls/clistview

Eu tenho a biblioteca acima. Quero adicionar uma caixa de edição com uma etiqueta dentro desta lista. Você pode me dizer como eu posso fazer isso? Eu já tentei, mas não funciona.

Documentation on MQL5: Standard Library / Panels and Dialogs / CListView
Documentation on MQL5: Standard Library / Panels and Dialogs / CListView
  • www.mql5.com
//|                                             ControlsListView.mq5 | //|                        Copyright 2017, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| defines                                                          |  INDENT_LEFT                         (11)      ...
 
Artyom Trishkin:
E eles têm "ingressos" só porque começam a traduzir com o google :)
Na referência oficial russa "tickety-boo".
Para o bosque-da-drova apenas a partir de traduções livres.
OK, eu confesso: me pegou. Respondeu rapidamente e não trocou a linguagem de ajuda 😎
 
A questão é a seguinte. Posso abrir 2 (ou mais) gráficos ao toque de um botão para que sejam posicionados verticalmente, ocupando igualmente todo o monitor?
 
Vladimir Karputov:
OK, eu confesso: me pegou. Respondeu rapidamente e não trocou a linguagem de ajuda 😎

Copie isso ;)

Razão: