Erros, bugs, perguntas - página 648

 
sergeev:
O testador está a ser depurado?
Sim, é descarregado.
 
MoneyJinn:

Sim, está enganado. São permitidas várias formas de registo ChartGetInteger.

Mas independentemente do formulário de registo ChartGetInteger,não é possível obter o valor actual da propriedadeCHART_BRING_TO_TOP.

Sem um exemplo, é difícil dizer o quê e como. Por favor, verifique a documentação e a liberação da construção.

Se não funcionar como deve ser, escrever um pedido ao CA + código com um exemplo.

E a segunda variante deve devolver a propriedade de qualquer maneira. onde existem quatro parâmetros.

 

Existe uma função de protótipo

#importar "kernel32.dll"
BOOL WriteFile(
HANDLE hFile, // descritor de ficheiros
LPCVOID lpBuffer, // tampão de dados
DWORD nNumberOfBytesToWrite, // número de bytes a escrever
LPDWORD lpNumberOfBytesWritten, // número de bytes escritos
LPOVERLAPPED lpOverlapped // tampão assíncrono

);

A função é chamada no programa

op_err=WriteFile(h1,buff,LenPos, Writing,NULL);

como especificar correctamente que o buff e a escrita são passados por referência?

Документация по MQL5: Основы языка / Функции
Документация по MQL5: Основы языка / Функции
  • www.mql5.com
Основы языка / Функции - Документация по MQL5
 
tor30515:

Existe uma função de protótipo


Como posso especificar correctamente que o buff e a escrita são passados por referência?

buff - via array e.g. uchar &buff[]

escrito - também pode usar uma matriz ou apenas uma variável int &written

 
Yedelkin:

De acordo com o Manual, esta propriedade simplesmente não é suportada:

O código de erro diz a mesma coisa. A questão de saber por que razão a propriedade do gráfico CHART_BRING_TO_TOP não é suportada é a nível de desenvolvedor... E se a propriedade for realmente suportada, então a questão está novamente ao seu nível: porque é que nesse caso a função ChartGetInteger retorna falsa?

Porque a definição da propriedade CHART_BRING_TO_TOP como verdadeira dá ao terminal uma ordem para trazer a carta dada para o primeiro plano neste momento. Isto não é uma propriedade no sentido habitual, mas um comando. Essa é a explicação.
 

Rosh:
Потому что установка свойства CHART_BRING_TO_TOP в значение true дает терминалу приказ вывести данный чарт на передний план в данный момент. Это не свойство в обычном понимание, а команда. Вот такое объяснение.

Significa que no nosso caso o comando "propriedade" CHART_BRING_TO_TOP com referência à função ChartGetInteger() simplesmente não é suportado e ChartGetInteger() retorna falso correctamente. Esta é a resposta para MoneyJinn

 
Rosh:
Porque a definição da propriedade CHART_BRING_TO_TOP dá ao terminal uma ordem para trazer esta carta para o primeiro plano neste momento. Isto não é uma propriedade no seu entendimento habitual, mas um comando. Essa é a explicação.

Os programadores não deixaram maneira de determinar se a janela gráfica é visível ou não para o utilizador e qual é a posição relativa das janelas.

Isto é muito mau. Mais uma vez perda de controlo e novos riscos.

 

Quero salientar desde já que sou novo na programação em MQL)

A essência do problema: quero implementar o desenho de níveis (linhas horizontais) refazendo a norma

indicador para fractais. Isto é, desenhar linhas horizontais em vez de setas.

A questão é portanto: é possível no âmbito do indicador? Afinal de contas é necessário especificar

Não seio número de linhas no indicador antes do cálculo. É possível na propriedade

# indicadores de propriedade para especificar uma variável. Ou é impossível?

Abaixo está o código de um fractal ligeiramente modificado. Desenha duas linhas em fractal superior e inferior.

Mas eu preciso de linhas horizontais, uma linha por fractal.

Pode ser, as linhas horizontais podem ser criadas no indicador através do ObjectCreate?

#property copyright "2009, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
//---- indicator settings
#property indicator_chart_window 
//Для индикаторов расположение на графике цены (indicator_chart_window)
//или в отдельном окне (indicator_separate_window)
#property indicator_buffers 2
#property indicator_plots   2
#property indicator_type1   DRAW_LINE
#property indicator_type2   DRAW_LINE
#property indicator_color1  clrDeepPink
#property indicator_color2  clrRoyalBlue
#property indicator_label1  "Resistance lvl"
#property indicator_label2  "Support lvl"
#property indicator_style1  STYLE_SOLID
#property indicator_style2  STYLE_SOLID
#property indicator_width1  2
#property indicator_width2  2
//---- indicator buffers
double ExtUpperBuffer[];
double ExtLowerBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//---- indicator buffers mapping
   SetIndexBuffer(0,ExtUpperBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ExtLowerBuffer,INDICATOR_DATA);
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);// точность индикатора равна точности графика
//---- sets first bar from what index will be drawn
//  PlotIndexSetInteger(0,PLOT_ARROW,217);
//  PlotIndexSetInteger(1,PLOT_ARROW,218);
//---- arrow shifts when drawing
//  PlotIndexSetInteger(0,PLOT_ARROW_SHIFT,ExtArrowShift);
//  PlotIndexSetInteger(1,PLOT_ARROW_SHIFT,-ExtArrowShift);
//---- sets drawing line empty value--
//  PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE);
// PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,EMPTY_VALUE);
//---- initialization done
  }
//+------------------------------------------------------------------+
//|  Accelerator/Decelerator Oscillator                              |
//+------------------------------------------------------------------+
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 &TickVolume[],
                const long &Volume[],
                const int &Spread[])
  {
   int i,limit;
//---
   if(rates_total<5)
      return(0);
//---
   if(prev_calculated<7)
     {
      limit=2;
      //очистка буферов
      ArrayInitialize(ExtUpperBuffer,EMPTY_VALUE);
      ArrayInitialize(ExtLowerBuffer,EMPTY_VALUE);
     }
   else limit=rates_total-5;

   for(i=limit;i<rates_total-3 && !IsStopped();i++)//(?условие нач.цикла;усл.оконч.цикла;вычисление)
                                                   //i++ тоже самое что и i=i+1
     {
      //---- Upper Fractal
      if(High[i]>High[i+1] && High[i]>High[i+2] && High[i]>=High[i-1] && High[i]>=High[i-2])
         ExtUpperBuffer[i]=High[i];
      //else ExtBuffer[i]=EMPTY_VALUE;
      else ExtUpperBuffer[i]=ExtUpperBuffer[i-1];
      //else ExtUpperBuffer[i]=ExtUpperBuffer[1];

      //---- Lower Fractal
      if(Low[i]<Low[i+1] && Low[i]<Low[i+2] && Low[i]<=Low[i-1] && Low[i]<=Low[i-2])
         ExtLowerBuffer[i]=Low[i];
      //else ExtBuffer[i]=EMPTY_VALUE;
      else ExtLowerBuffer[i]=ExtLowerBuffer[i-1];
      //else ExtLowerBuffer[i]=ExtLowerBuffer[1];
      
     // ObjectCreate(0,Level_obj,OBJ_HLINE);

     }
//--- OnCalculate done. Return new prev_calculated.
   return(rates_total);
  }

//+------------------------------------------------------------------+
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
 
pergunta sobre ficheiros. qual é o limite do tamanho do ficheiro a ser aberto em µl5
Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
Como posso obter o valor ACCOUNT_BALANCE na história? Ao visualizar o histórico das transacções, é necessário conhecer a mudança no equilíbrio.
Razão: