Hatalar, hatalar, sorular - sayfa 973

 
voix_kas :

...

Ne söyleyebilirim? Bir Bitmap, 26 normal etiketten çok daha yavaş çalışır (!). Şablonu çalışma tuvaline (uint 250*410 dizisi) kopyalama işlemini OnTick() işlevinden dışlamaya çalıştım, yani. tek bir tuval üzerinde çalışın. Kazanç sadece gerçek zamanlı olarak hissedilir. Test cihazında her şey aynı - performansta mutlak bir düşüş. COLOR_FORMAT_ARGB_NORMALIZE modu kullanıldı, çünkü geri kalanı daha az estetik bir görünüm verir. İleriye baktığımızda, önceki yazıtların (temiz alanlar) örtüşmesini izlemeniz gerektiğinden, tek bir tuval üzerinde çalışmanın zor olduğunu söylemeliyim.

...

OBJ_BITMAP_LABEL türündeki nesneleri test cihazında görselleştirme modunda görüntülüyor musunuz?
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
tol64 :

Teşekkürler, biliyorum. vdv2001'in bununla ilgili bir sorunu var:

//---

Kendisinde bir hata bulmak için bunu nasıl yaptığını görmek istedim.


Sonra yardımdan başka bir alıntı

CHART_MOUSE_SCROLL

Grafiği sol fare tuşu ile yatay olarak kaydırma. Üç özellikten herhangi biri true olarak ayarlanırsa dikey kaydırma da kullanılabilir: CHART_SCALEFIX, CHART_SCALEFIX_11 veya CHART_SCALE_PT_PER_BAR

bool

 
Ah, neler olduğunu anlıyorum. ))
vdv2001 :

Evet, nesne seçili ancak fare ile hareket ettirilemiyor (4. terminalde olduğu gibi).

Ya da artık uzman tarafından oluşturulan tüm nesnelerin hareketi olaylar üzerinden ele alınmalıdır.

MT5'te, nesne seçildiğinde fare imlecini tam olarak bağlantı noktasına hedeflemeniz gerekir. MT4'te bu otomatik olarak gerçekleşir. Ama kişisel olarak, nesneleri seçmeden olaylar arasında taşımayı seviyorum. Yukarıda, Rosh , hareketli nesnelere müdahale etmemesi için grafik kaydırmayı etkinleştiren/devre dışı bırakan bir özellik gösterdi.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5
 
tol64 :
Ah, neler olduğunu anlıyorum. )) MT5'te, nesne seçildiğinde fare imlecini tam olarak bağlantı noktasına hedeflemeniz gerekir. MT4'te bu otomatik olarak gerçekleşir. Ama kişisel olarak, olayları seçmeden nesneleri hareket ettirmeyi seviyorum. Yukarıda, Rosh , hareketli nesnelere müdahale etmemesi için grafik kaydırmayı etkinleştiren/devre dışı bırakan bir özellik gösterdi.

Grafiği maksimuma çıkardım, fareyi seçilen nesnenin bağlantı noktasına ayarladım, sol fare düğmesine zemine "bastım", maksimum çabayı uyguladım ve ...

Nesne yerinde kalır

Bu işlemi tekrarlamak, bir CChartObjectTrend nesnesi oluşturmak, özellikleri ayarlamak ve onu taşımaya çalışmak hiç de zor değil. Alamadım.

CHART_MOUSE_SCROLL denendi teşekkürler, grafiğin hareketi duruyor ama nesne taşınamıyor.

not

Olaylar aracılığıyla bir nesnenin hareketini işleseniz de, bu doğrudur (eski koordinat bilinir). Olaylar üzerinden yapacağım. Teşekkürler konu kapanmıştır.

 
vdv2001 :

Grafiği maksimuma çıkardım, fareyi seçilen nesnenin bağlantı noktasına ayarladım, sol fare düğmesine zemine "bastım", maksimum çabayı uyguladım ve ...

Nesne yerinde kalır

Bu işlemi tekrarlamak, bir CChartObjectTrend nesnesi oluşturmak, özellikleri ayarlamak ve onu taşımaya çalışmak hiç de zor değil. Alamadım.

...

Bu, aşağıdaki durumlarda gerçekleşir:

 void OnStart ()
  {
   double low[];
   datetime time[];
   string name_object= "Trend_Test" ;
//---
   ArraySetAsSeries (low, true );
   ArraySetAsSeries (time, true );
//---
   CopyLow ( _Symbol , _Period , 0 , 50 ,low);
   CopyTime ( _Symbol , _Period , 0 , 50 ,time);
//---
   if (ObjectCreate( 0 ,name_object, OBJ_TREND , 0 ,time[ 0 ],low[ 0 ],time[ 49 ],low[ 49 ]))
       ObjectSetInteger ( 0 ,name_object, OBJPROP_SELECTABLE , true );
  }
 

voix_kas'ın başarısını tekrarlamayı başaran var mı?

voix_kas :
...
Что могу сказать? Один Bitmap работает (!)на порядок медленнее, чем 26 обычных меток. Пробывал исключить из OnTick() операцию копирования шаблона в рабочую канву (массив uint 250*410), т.е. работа на одной канве. Выигрыш чувствуется только в реал-тайме. В тестере всё также - абсолютная просадка по производительности. Использовался режим COLOR_FORMAT_ARGB_NORMALIZE, т.к. остальные дают менее эстетический вид. Забегая вперед, надо сказать, что работать на одной канве сложно, так как придётся отслеживать наложение предыдущих надписей (очищать области).

...


OBJ_BITMAP_LABEL türündeki nesneleri test cihazında görselleştirme modunda görüntülüyor musunuz?

//---

Yoksa bir yazım hatası mı? )))

 
Bitmaplerin performansını hesaplayarak, koda bakmak istenir. Belki ekstra yeniden çizim işlemleri vardır.
 
tol64 :

Bu, aşağıdaki durumlarda gerçekleşir:

Tam olarak, neden hareket etmediğimi anladım, OBJPROP_TIMEFRAMES nesne özelliğini ayarladım, ardından nesne hareket etmeyi durdurdu.

Onlar. dakika grafiği için özelliği belirtiyorum

obj.Timeframes( OBJ_PERIOD_M1 );

ve nesne hareket etmeyi durdurur, bu bir aksaklık gibidir.

Türün grafiğinin periyodunu değiştirdikten sonra her şey normal çalışmaya başlıyor, M2'ye geçiyoruz ve ardından M1 ve her şey yolunda.

 

voix_kas :

Ne söyleyebilirim? Bir Bitmap, 26 normal etiketten çok daha yavaş çalışır (!). Şablonu çalışma tuvaline (uint 250*410 dizisi) kopyalama işlemini OnTick() işlevinden dışlamaya çalıştım, yani. tek bir tuval üzerinde çalışın. Kazanç sadece gerçek zamanlı olarak hissedilir. Test cihazında her şey aynı - performansta mutlak bir düşüş. COLOR_FORMAT_ARGB_NORMALIZE modu kullanıldı, çünkü geri kalanı daha az estetik bir görünüm verir. İleriye baktığımızda, önceki yazıtların (temiz alanlar) örtüşmesini izlemeniz gerektiğinden, tek bir tuval üzerinde çalışmanın zor olduğunu söylemeliyim.


1. Hızı nasıl ölçersiniz?

2. Kaynağı ekleyebilir misiniz (kişisel veya SD olarak)?

 
alexvd :


1. Hızı nasıl ölçersiniz?

2. Kaynağı ekleyebilir misiniz (kişisel veya SD olarak)?

Ne yazık ki, ilgi eksikliği nedeniyle kod kaydedilmedi. Genel anlamda ise:

OnInit():

1. Grafikte bir Bitmap oluşturulur.

2. İki tuval ( uint 250*410) oluşturulur : bir şablon ve bir çalışan. Şablon uygulanır (TextOut) 13 etiket ile istatistiksel parametrelerin adı.

OnTick():

1. Şablon, çalışma tuvaline kopyalanır .

2. Çalışma tuvaline (TextOut) istatistiksel parametrelerin karşılık gelen değerleriyle 13 işaret uygulanır.

3. Bir kaynak oluşturulur .

4. Grafik güncellenir.

Özel olarak zaman tutma yapmadım, çünkü. ve gözle bakıldığında hızın bir büyüklük sırasına göre azaldığı açıktır. Test cihazında ne var, gerçek zamanlı ne var (grafiği kaydırırken oldukça belirgin donmalar / seğirmeler var).

OnTick () öğesinden 1. öğeyi kaldırma olasılığı. Gerçek zamanlı olarak katlanılabilir hale geliyor, ancak test cihazı zorlukla sürünüyor. Yine, çalışma tuvalinde daha önce uygulanan işaretlerin yerlerinde temizlik yapılmadığı için bu gerçek hayatta yapılamaz.

Tekrar ediyorum, COLOR_FORMAT_ARGB_NORMALIZE modunu kullandım çünkü alfa kanalı olmadan etiketler (TextOut) estetik görünmez .