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

 
Artyom Trishkin:

Experimente.

Experimentando-o. A primeira impressão é que 3 ou 4 ferramentas são carregadas, enquanto 10 são necessárias
As histórias são carregadas para todas elas.
 
Valeriy Yastremskiy:
Experimentando-o. A primeira impressão é que 3 ou 4 ferramentas estão carregando, mas eu preciso de 10
As histórias estão carregadas em todas elas.

Não sei então - já faz muito tempo que não abro um quad

 

Eu abri o mt4 para verificar o algoritmo rapidamente.

É muito estranho que funcione corretamente no testador, mas depois de instalá-lo em uma conta real, ele inverte os negócios. O código é simples, apenas 2 buffers indicadores


 
MakarFX:
Muito obrigado por sua ajuda. Eu redesenhei esta parte do código e com o filtro de preço ativado, as ordens pendentes são agora definidas sem erros. Somente esses sinais são pulados quando a ordem pendente ainda está pendurada. Como previsto. Muito obrigado mais uma vez)))) Tenho apenas uma pergunta - há alguns lugares onde havia um sinal, mas o pendente não foi definido e não houve erros. Portanto, não havia condições adequadas neste lugar e está tudo bem, você pode viver com confiança?))) E também não havia ordens pendentes neste lugar...
 
DanilaMactep:
Muito obrigado por sua ajuda. Eu redesenhei esta parte do código e com o filtro de preço ativado, as ordens pendentes são agora definidas sem erros. Somente esses sinais são pulados, quando a ordem pendente ainda está pairando. Como previsto. Muito obrigado mais uma vez)))) Tenho apenas uma pergunta - há alguns lugares onde havia um sinal, mas o pendente não foi definido e não houve erros. Então, não havia condições adequadas neste lugar e tudo bem, você pode viver sem preocupação?)))) E também não havia ordens pendentes neste lugar...
Se não houvesse condições adequadas e for normal, você pode viver com isso.
 
Artyom Trishkin:

Então eu não sei - faz muito tempo desde que eu abri um quad

Errado, os dados dos outros instrumentos que o testador pega são atuais. Só daqui (de outros instrumentos) você pode calcular a diferença a partir do momento atual. Se estiver perto da hora atual, e o histórico estiver carregado, você pode fazer uma mudança para a hora do testador. É uma muleta).

 

Pergunta: um painel é criado com um tamanho de 370, como eu redimensiono para 200 ao comprimir o gráfico ?

#property strict

#property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots   0

#include "PanelDialog.mqh"
//+------------------------------------------------------------------+
//| Global Variables                                                 |
//+------------------------------------------------------------------+
CPanelDialog ExtDialog;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(void)
  {
//--- create application dialog
   if(!ExtDialog.Create(0,"Spread",0,12,12,250,370))
     return(INIT_FAILED);
//--- run application
   if(!ExtDialog.Run())
     return(INIT_FAILED);
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy application dialog
   ExtDialog.Destroy(reason);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
//---
 
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   ExtDialog.ChartEvent(id,lparam,dparam,sparam);
  }
//+------------------------------------------------------------------+
 
Vitaly Muzichenko:

Pergunta: um painel é criado com um tamanho de 370, como eu redimensiono para 200 ao comprimir o gráfico ?

E como você define compressão gráfica?
 
MakarFX:
E como você define compressão gráfica?
   if(id==CHARTEVENT_CHART_CHANGE) {
      // ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS); // Высота графика
   }
 
Vitaly Muzichenko:

Se a compressão em altura

   int ChartHigh=(ChartGetDouble(0,CHART_PRICE_MAX,0)-ChartGetDouble(0,CHART_PRICE_MIN,0))/Point; //высота графика в пунктах
   if(ChartHigh>500)  
      ExtDialog.Create(0,"Spread",0,12,12,250,200)
   else
      ExtDialog.Create(0,"Spread",0,12,12,250,370)

se a compressão em toda a largura

   if(ChartGetInteger(0,CHART_SCALE,0)>2) 
      ExtDialog.Create(0,"Spread",0,12,12,250,200)
   else
      ExtDialog.Create(0,"Spread",0,12,12,250,370)
em largura você também pode CHART_VISIBLE_BARS
Razão: