Hatalar, hatalar, sorular - sayfa 648

 
sergeev :
ve test cihazı hata ayıklamada boşaltıldı mı?
Evet, boşaltılıyor.
 
MoneyJinn :

Evet, yanılıyorsunuz. ChartGetInteger gösteriminin çeşitli biçimlerine izin verilir.

Ancak ChartGetInteger gösteriminin biçiminden bağımsız olarak, CHART_BRING_TO_TOP özelliğinin geçerli değerini almak imkansızdır.

Bir örnek olmadan, ne ve nasıl olduğunu söylemek zor. Belgeleri kontrol edin ve yapı sürümlerini kontrol edin.

her şey olması gerektiği gibi çalışmıyorsa, SD'ye bir uygulama + bir örnekle bir kod yazıyoruz.

Ve herhangi bir ikinci varyantta mülkü döndürmek gerekir. burada dört parametre vardır.

 

bir fonksiyon prototipim var

#import "kernel32.dll"
BOOL WriteFile(
HANDLE hFile, // dosya tanıtıcısı
LPCVOID lpBuffer, // veri arabelleği
DWORD nNumberOfBytesToWrite, // yazılacak bayt sayısı
LPDWORD lpNumberOfBytesWritten, // yazılan bayt sayısı
LPOVERLAPPED lpOverlapped // asenkron tampon

);

Fonksiyon programda çağrılır

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

buff ve Writing'in referans yoluyla iletildiğini doğru bir şekilde nasıl belirleyebilirim?

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

bir fonksiyon prototipim var


buff ve Writing'in referans olarak iletildiğini doğru bir şekilde nasıl belirleyebilirim?

buff - dizi aracılığıyla, örneğin uchar &buff[]

yazılı - ayrıca bir dizi veya sadece bir değişken kullanabilirsiniz int &yazılı

 
Yedelkin :

Referansa göre, bu özellik basitçe desteklenmiyor:

Hata kodu da aynı şeyi söylüyor. CHART_BRING_TO_TOP grafik özelliğinin neden desteklenmediği sorusu geliştirici düzeyindedir ve özellik gerçekten destekleniyorsa soru yine onların düzeyindedir: Bu durumda ChartGetInteger işlevi neden false döndürür ?

Çünkü CHART_BRING_TO_TOP özelliğinin true olarak ayarlanması, terminale verilen grafiği o anda ön plana getirmesi talimatını verir . Bu, genel anlamda bir özellik değil, bir komuttur. İşte bir açıklama.
 

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

Yani, bizim durumumuzda, ChartGetInteger() işleviyle ilgili olarak "özellik" CHART_BRING_TO_TOP komutu desteklenmez ve ChartGetInteger() işlevi doğru şekilde false döndürür. Bu MoneyJinn'in cevabı

 
Rosh :
Çünkü CHART_BRING_TO_TOP özelliğinin true olarak ayarlanması, terminale verilen grafiği o anda ön plana getirmesi talimatını verir . Bu, genel anlamda bir özellik değil, bir komuttur. İşte bir açıklama.

Geliştiriciler, kullanıcının grafik penceresini görüp görmediğini ve ayrıca pencerelerin göreceli konumunun ne olduğunu belirleme olanağını bırakmadı.

Bu çok kötü. Yine kontrol kaybı ve yeni riskler.

 

Hemen, MQL'de programlama konusunda yeni olduğumu not ediyorum)

Problemin özü: Standardı yeniden yaparak seviyelerin (yatay çizgiler) çizimini uygulamak istiyorum.

fraktal gösterge. Yani oklar yerine yatay çizgiler çizin.

Bu bağlamda soru şu: gösterge çerçevesinde mümkün mü? Sonuçta, önceden belirtmek gerekir

hesaplamalardan önce bilmediğim göstergedeki satır sayısı . bir mülkte mümkün mü

#property Indicator_plots bir değişken belirtir. Yoksa imkansız mı?

Aşağıda biraz değiştirilmiş bir fraktal için kod verilmiştir. Üst ve alt fraktallar boyunca iki çizgi çizilir.

Ama her fraktal için bir tane olmak üzere yatay çizgilere ihtiyacım var.

Belki ObjectCreate kullanarak göstergede yatay çizgiler oluşturmak mümkündür?

 #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
 
dosya sorusu. µl5 cinsinden açılan dosyanın boyutundaki sınır nedir?
Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
Bana geçmişte ACCOUNT_BALANCE değerini nasıl alabileceğinizi söyleyin? İşlemlerin geçmişini görüntülerken, bakiyedeki değişikliği bilmeniz gerekir.