Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1222

 
Aleksey Mavrin:

Necessário )

Alexey, obrigado!

Por favor, diga a uma pessoa inexperiente:
que papel a pasta MQL5/Sounds deve (pode) desempenhar nas nossas vidas? (a minha pergunta está no topo da página 1221)

 

Pode dizer-me porque é que a barra só muda de posição no gráfico quando chega um novo tick? MT5, Just2Trade construído em 5 de Junho

#include <Controls\Dialog.mqh>
#include <Controls\Button.mqh>
CAppDialog Main;
CBmpButton nadpr, nadlos, nadot;
CBmpButton podpr, podlos, podot;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,true);
   Main.Create(0,"Main",0,50,50,260,130);
   Main.Run();
      
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Main.Destroy(reason);
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // идентификатор события   
                  const long& lparam,   // параметр события типа long 
                  const double& dparam, // параметр события типа double 
                  const string& sparam)  // параметр события типа string
{
  Main.OnEvent(id,lparam,dparam,sparam);
}
 
Nikita Chernyshov:

Pode dizer-me porque é que a barra só muda de posição no gráfico quando chega um novo tick? MT5, Just2Trade construído em 5 de Junho

Compare o seu código e o exemplo do painel da pasta de dados padrão [pasta de dados]MQL5Experts\Examples\Controls\Controls.mq5

 

Boa tarde, uma pergunta para os conhecedores:

Estou a tentar construir tal construção - uma função, quatro variáveis são alimentadas por ligações como parâmetros e uma matriz a partir da qual serão obtidos dados dentro da função para calcular estas quatro variáveis. Existem duas arrays deste tipo (a passar para a função) no programa - os extremos superior e inferior do ziguezague. A função deve calcular pontos para desenhar a TrendLine.

A questão - como verificar qual das duas matrizes é utilizada numa determinada iteração, para aplicar + ou - ao cálculo?

Se formulado de forma embaraçosa, por favor pergunte novamente, explicarei com prazer. Em anexo, encontra-se um esboço de construção.

//+------------------------------------------------------------------+ 
//| Вычисляем значения точек привязки трендовых линий                | 
//+------------------------------------------------------------------+ 
void CalculateTrendPoints(datetime &time_1, double &price_1, 
                          datetime &time_2, double &price_2, double &zigbuf[])  
{
   int ind_time_1, ind_time_2;
   int size_zigbuf = ArraySize(zigbuf);
   for(int i = 0; i < size_zigbuf; i++){if(zigbuf[i] != EMPTY_VALUE)break;}
      price_1    = zigbuf[i];
      ind_time_1 = i;
   for(int i = ind_time_1 + 1; i < size_zigbuf; i++){if(zigbuf[i] != EMPTY_VALUE)break;}
      price_2    = zigbuf[i];
      ind_time_2 = i;

   //Дальше будут расчеты, в которых в зависимости от того для чего используется функция
   //(построение ТрЛайн для верхних пиков или для нижних)будет применяться 
+ или - , < или >. 
   //Думаю что легче всего понять данное конкретное применение по тому, какой массив зашел в параметрах (&zigbuf[]), 
   //Вопрос не сложный - как это написать???   
} 

Isto significa que o parâmetrozigbuf[] terá apenas duas opções a substituir - ou ZigzagPeakBuffer[] ouZigzagBottomBuffer[]. Como posso verificar dentro da função, qual das opções está actualmente definida?


 

Até agora, inventei para determinar qual dos conjuntos está envolvido - comparando o valor encontrado, qual corresponde, que é o nosso. Mas certamente que existe uma solução mais agradável e mais curta.

Conhecedor - diga-nos por favor!!!

//+------------------------------------------------------------------+ 
//| Вычисляем значения точек привязки трендовых линий                | 
//+------------------------------------------------------------------+ 
void CalculateTrendPoints(datetime &time_1, double &price_1, 
                          datetime &time_2, double &price_2, double &zigbuf[])  
{
   int ind_time_1 = 0;
   int ind_time_2 = 0;
   int size_zigbuf = ArraySize(zigbuf);
   for(int i = 0; i < size_zigbuf; i++)
      {
         if(zigbuf[i] != EMPTY_VALUE)
            price_1    = zigbuf[i];
            ind_time_1 = i;
            break;
      }
   for(int i = ind_time_1 + 1; i < size_zigbuf; i++)
      {
         if(zigbuf[i] != EMPTY_VALUE)
            {
               if(zigbuf[i] == ZigzagPeakBuffer[i] && zigbuf[i] > price_1)
                  {
                     price_2    = zigbuf[i];
                     ind_time_2 = i;
                     break;
                  }
               if(zigbuf[i] == ZigzagBottomBuffer[i] && zigbuf[i] < price_1)
                  {
                     price_2    = zigbuf[i];
                     ind_time_2 = i;
                     break;
                  }
            }
      }
   //Дальше будут расчеты, в которых в зависимости от того для чего используется функция
   //(построение ТрЛайн для верхних пиков или для нижних)будет применяться + или - , < или >.
   //Думаю что легче всего понять данное конкретное применение по тому, какой массив зашел в параметрах (&zigbuf[]), 
   // Вопрос не сложный - как это написать???   
}
 

Olá a todos))


Pergunta: OBJ_FIBO não dá uma janela pop-up no gráfico (OBJPROP_TOOLTIP) ao plotar. Tudo é organizado graficamente através de OBJPOP_TXT/ Como pode e é mesmo possível fazer uma janela pop-up na FIBO através da ponta de ferramentas?

Objectivo: ao passar o rato sobre o nível Fibo, para abrir uma janela como no HLINE (como exemplo).

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
 
kopeyka2:

Olá a todos))


Pergunta: OBJ_FIBO não dá uma janela pop-up no gráfico (OBJPROP_TOOLTIP) ao plotar. Tudo é organizado graficamente através de OBJPOP_TXT/ Como pode e é mesmo possível fazer uma janela pop-up na FIBO através da ponta de ferramentas?

Objectivo : ao passar o rato sobre o nível Fibo, para abrir uma janela como a HLINE (como exemplo).

Utilizar a propriedade OBJPROP_TEXT

ObjectSetString(chart_ID,name,OBJPROP_TEXT,"Это всплывающая подсказка");
 
Como é que me livro de produtos de demonstração que não uso? Continuo a receber mensagens do sistema "Nova versão ........".
 
Sergey Voytsekhovsky:

Até agora, inventei para determinar qual dos conjuntos está envolvido - comparando o valor encontrado, qual corresponde, que é o nosso. Mas certamente que existe uma solução mais agradável e mais curta.

Pessoas que sabem - por favor, digam-me!!!

Porque é que inventam os vossos próprios problemas? Serão suficientes como estão.

Basta fazer duas funções separadas.

 
Pode dizer-me como obter uma matrizMqlParam a partir de um ficheiro de conjunto?
Razão: