Hatalar, hatalar, sorular - sayfa 2194

 
Dmytro Zelenskyy :

ciddi yaklaşım

Peki, o zaman, tam olarak taramak istediğiniz şeyin üzerinde, üzerinde bir kez küçük bir komut dosyası çalıştırırsınız, bu da global değişkene kimliği verir (geçici bir global değişiklikten daha iyidir).

Ve komut dosyanız kimliğe göre görüntülenecektir.

Zor hareket!

Teşekkür ederim!
 
Dmytro Zelenskyy :

Ekranın genişliğini piksel cinsinden doğru bir şekilde hesaplasanız bile, ekran kısmen fiyat sütunu tarafından kapsanacaktır.

Ayrıca, farklı ekran çözünürlüklerinde farklıdır, benim için (1280x1024) 50'den 60'a kadar olan para birimi basamaklarının sayısına bağlıdır. Başka bir ekranda farklı olacaktır.

Bu pikselleri ekranın genişliğine eklemek için sütunun genişliğinin ne olduğunu nasıl bulacağınız aşağıda açıklanmıştır? (Sütunun ne kapattığını ekranda aç)


fxsaber'dan merhaba:

 //+------------------------------------------------------------------+
#define TOSTRING(A) #A + " = " + ( string )(A) + "\n"
// Ширина вертикальной шкалы графика
int GetWidthScale( const long chartID= 0 )
  {
   const string Name= __FUNCTION__ +( string ) MathRand ();

   ObjectCreate (chartID,Name, OBJ_CHART , 0 , 0 , 0 );
   ObjectSetInteger (chartID,Name, OBJPROP_XDISTANCE ,- 1 e3);

   const long chart= ObjectGetInteger (chartID,Name, OBJPROP_CHART_ID );

   const int Res=( int )( ChartGetInteger (chart, CHART_WIDTH_IN_PIXELS ) -
                  ( ChartSetInteger (chart, CHART_SHOW , false ) ? ChartGetInteger (chart, CHART_WIDTH_IN_PIXELS ) : 0 ));

   ObjectDelete (chartID,Name);

   return (-Res);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart ()
  {
   Print (TOSTRING(GetWidthScale()));
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin :

fxsaber'dan merhaba:

Ustanın işi korkar!!!

Güzel!

 
Artyom Trishkin :

fxsaber'dan merhaba:

Kod kesinlikle çok ilginç, ancak sorunun çözülmediği ortaya çıktı ...

 
Sorun, belirli bir çubuğa kadar olan piksel sayısını belirlemek için kullanılabilen evrensel bir işlevin (herhangi bir yakınlaştırma ve farklı ölçek genişlikleriyle çalışan) nasıl elde edileceğinin açık olmamasıdır.
 
Aleksey Vyazmikin :
Sorun, belirli bir çubuğa kadar olan piksel sayısını belirlemek için kullanılabilen evrensel bir işlevin (herhangi bir yakınlaştırma ve farklı ölçek genişlikleriyle çalışan) nasıl elde edileceğinin açık olmamasıdır.

Pekala, kes şunu. Tüm kilitler burada .
Çubuk genişliği yalnızca 1,2,4,8,16,32 değerlerini kabul eder

Garip, CHART_POINTS_PER_BAR Kimliği çalışmıyor.

Ancak piksel cinsinden çubuk genişliği kolayca hesaplanabilir:

 int WidthBar= int ( 1 << ChartGetInteger ( 0 , CHART_SCALE ));
Soldaki çubuk her zaman merkezden çizilir, sağdaki çubuk istediğiniz gibi çizilir. Bu nedenle, orijin sıfırdır (solda).
 
Nikolai Semko :

Pekala, kes şunu. Tüm kilitler burada .
Çubuk genişliği yalnızca 1,2,4,8,16,32 değerlerini kabul eder

Garip, CHART_POINTS_PER_BAR Kimliği çalışmıyor.

Ancak piksel cinsinden çubuk genişliği kolayca hesaplanabilir:

Soldaki çubuk her zaman merkezden çizilir, sağdaki çubuk istediğiniz gibi çizilir. Bu nedenle, orijin sıfırdır (solda).

Bu teoridir, ancak en iyi (daha doğru) seçenek şudur:

pp=( double ) ChartGetInteger (handle, CHART_WIDTH_IN_PIXELS )/( double ) ChartGetInteger (handle, CHART_WIDTH_IN_BARS )*((Shift_Start-Shift_Stop)*(- 1 )+ 2 )+Schkala+ 3 ;

ama aynı zamanda bir çift bocalıyor.

 
Aleksey Vyazmikin :

Bu teoridir, ancak en iyi (daha doğru) seçenek şudur:

ama aynı zamanda bir çift bocalıyor.

:))
Açık bir görev formüle edin. Hangi değeri almanız gerekiyor?
 
Nikolai Semko :
:))
Açık bir görev formüle edin. Hangi değeri almanız gerekiyor?

A tarihinden B tarihine kadar bir ekran görüntüsü almam gerekiyor. Bu durumda, işlevin gelişimi herhangi bir yakınlaştırmada doğru olmalıdır.

 

Ekran görüntüsüne dayanarak, sorunu tanımladığım ve sahip olduğum kodu yayınladığım ayrı bir dal oluşturdum - uzmanlardan yardım istiyorum!

https://www.mql5.com/ru/forum/237291

Организация пакетной обработки задачи по снятия изображений с экрана графика
Организация пакетной обработки задачи по снятия изображений с экрана графика
  • 2018.04.15
  • www.mql5.com
Встала у меня задача доработать скрипт https://www.mql5.com/ru/code/936 , который делает скрины...