Errori, bug, domande - pagina 648

 
sergeev:
Il tester è in fase di debug?
Sì, è scarico.
 
MoneyJinn:

Sì, vi sbagliate. Sono ammesse forme multiple di record ChartGetInteger.

Ma indipendentemente dalla forma del record ChartGetInteger,non è possibile ottenere il valore attuale della proprietàCHART_BRING_TO_TOP.

Senza un esempio, è difficile dire cosa e come. Si prega di controllare la documentazione e il rilascio della build.

Se non funziona come dovrebbe, scrivete una richiesta a CA + codice con un esempio.

E la seconda variante dovrebbe restituire comunque la proprietà. dove ci sono quattro parametri.

 

C'è una funzione prototipo

#importare "kernel32.dll"
BOOL WriteFile(
HANDLE hFile, /descrittore di file
LPCVOID lpBuffer, // buffer di dati
DWORD nNumberOfBytesToWrite, // numero di byte da scrivere
LPDWORD lpNumberOfBytesWritten, // numero di byte scritti
LPOVERLAPPED lpOverlapped // buffer asincrono

);

La funzione è chiamata nel programma

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

come faccio a specificare correttamente che buff e Writing sono passati per riferimento?

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

C'è una funzione prototipo


Come faccio a specificare correttamente che buff e Writing sono passati per riferimento?

buff - tramite array, ad esempio uchar &buff[]

scritto - si può anche usare un array o una sola variabile int &scritto

 
Yedelkin:

Secondo il manuale, questa proprietà semplicemente non è supportata:

Il codice di errore dice la stessa cosa. La domanda sul perché la proprietà CHART_BRING_TO_TOP del grafico non è supportata è a livello di sviluppatore... E se la proprietà è effettivamente supportata, allora la domanda è di nuovo al loro livello: perché in quel caso la funzione ChartGetInteger restituisce false?

Perché l'impostazione della proprietà CHART_BRING_TO_TOP a true dà al terminale l'ordine di portare il grafico dato in primo piano al momento. Questa non è una proprietà nel senso usuale, ma un comando. Questa è la spiegazione.
 

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

Significa che nel nostro caso il comando "proprietà" CHART_BRING_TO_TOP con riferimento alla funzione ChartGetInteger () semplicemente non è supportato e ChartGetInteger() restituisce correttamente false. Questa è la risposta per MoneyJinn

 
Rosh:
Perché l'impostazione della proprietà CHART_BRING_TO_TOP a true dà al terminale l'ordine di portare questo grafico in primo piano in questo momento. Questa non è una proprietà nel suo significato abituale, ma un comando. Questa è la spiegazione.

Gli sviluppatori non hanno lasciato alcun modo per determinare se la finestra del grafico è visibile o meno all'utente e qual è la posizione relativa delle finestre.

Questo è molto brutto. Ancora una volta perdita di controllo e nuovi rischi.

 

Voglio precisare subito che sono nuovo della programmazione in MQL)

L'essenza del problema: voglio implementare il disegno dei livelli (linee orizzontali) rifacendo lo standard

indicatore per i frattali. Cioè disegnare linee orizzontali invece di frecce.

La domanda è dunque: è possibile nel quadro dell'indicatore? Dopo tutto è necessario specificare

Non conoscoil numero di linee dell'indicatore prima del calcolo. È possibile nella proprietà

#proprietà indicator_plots per specificare una variabile. O è impossibile?

Qui sotto c'è il codice di un frattale leggermente modificato. Disegna due linee sui frattali superiori e inferiori.

Ma ho bisogno di linee orizzontali, una linea per frattale.

Forse le linee orizzontali possono essere create nell'indicatore attraverso 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
 
domanda sui file. qual è il limite della dimensione del file da aprire in µl5
Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
Come posso ottenere il valore di ACCOUNT_BALANCE nella storia? Quando si visualizza la storia delle transazioni, è necessario conoscere il cambiamento del saldo.
Motivazione: