Gösterge, Metin arasındaki DISTANCE'ın otomatik yönetimi hakkında tavsiyeye ihtiyacınız var (MT-4)

 

Merhaba sevgili programcılar!
Lütfen danışın:

Bir gösterge şeklinde bir danışman yapmak! görevi, grafikte bir DESEN aramak ve çubukların üzerine metin yazmaktır (çok satırlı (!), ör.:

1. satır "sinyal adı"
2. satır "% olasılık"
satır #3 "simge" (ok)

Sorun şu ki, EĞER SABİT satır aralığını ayarladıysanız = örn. 25 pip, o zaman m5'te her şey güzel ... ve H1'de = çizgiler birbirine uyuyor (bu sabit metin sorunudur (!!!)


Lütfen söyleyin - TF'yi değiştirirken çizgiler arasındaki mesafenin "otomatik hesaplamasını" veya tablonun "yüksekliğini" NASIL yapabilirim, çizelge biraz sola kaydırıldığında veya yükseklikte (????! !!)

..... aklıma tek bir şey geliyor:

1) grafiğin mevcut yüksekliğini "alın" (min. ve maks. fiyatlar):


2) Maks fiyat - Min. fiyat = "pip cinsinden grafik yüksekliği" ve biz bunu her zaman %100 olarak alıyoruz

3) "satırlar arasındaki sabit mesafe (25 pip) yerine - mesafeyi YÜZDE OLARAK ayarlayın (örneğin, 2. paragraftaki tablonun yüksekliğinin %2'si)


..... bir programcıyla konuştu - diyor ki == NESNELERİ HAREKET ETMEYİN ... İYİ, MÜMKÜN DEĞİL ....... böylece grafikte gezindikten sonra = yeni konumda çok satırlı metin SO birbirine uymuyor-iyi-arkadaş == bu tabloyu çevirdikten sonra gereklidir == TÜM İŞARETLERİ SİL VE TABLOUN YENİ YÜKSEKLİĞİYLE TEKRAR YENİDEN ÇİZİN (madde 2) (!)


..... o zaman akıllı olmaya devam ediyorum == TAMAM, NE OLURSA = ÇİZİM GRAFİĞİN SADECE EKRAN KISMINDA YAPILIYOR ???!

= tamam diyor, YENİ sinyalleri DOĞRU yazacak ve kalanlar == VEYA tekrar birbirlerine uyacaklar VEYA tam tersi = daha da genişleyecekler (birbirinden yukarı ve aşağı) BERİ " ZATEN ÇİZİMLENDİRİLEN NESNELERİ HAREKET ETMEK MÜMKÜN DEĞİL" , ancak bunları silip yeniden çizmeniz yeterli (!)


Size soru = daha önce benzer bir durumla karşılaşan oldu mu ??????? bu sorunu nasıl çözdün??? )))
(böylece grafiğin herhangi bir ölçeğinde ve yüksekliğinde = çok satırlı metin satırlar arasındaki normal mesafeye döner (eğer bir cetvelle görsel olarak ölçerseniz == 3 mm gözle) ... yani satır aralığını DİNAMİK yapın) ?? ??? ))))))))))

Yazının tamamını TEK SATIRTA ve 45 * (!) açıyla yapmak İSTEMİYORSUNUZ, çünkü metin YATAY olduğunda ve 2-3 satırda GÖRSEL OLARAK UYGUN :)

Lütfen söyleyin (deneyiminizi paylaşın)


Sayesinde ))

 
Vitaliy Kostrubko :


Bu kısa kodu kontrol edin ve size yardımcı olabilir. Her şey Canvas üzerinde uygulanmaktadır.

Kanvastaki bir diğer artı, MT4 ve MT5 için kodun hemen hemen aynı olacağıdır.

Dosyalar:
 
Vitaliy Kostrubko :

Merhaba sevgili programcılar!
Lütfen danışın:

...


Sayesinde ))

Tuval üzerine çizin:

Документация по MQL5: Стандартная библиотека / Пользовательская графика / CCanvas
Документация по MQL5: Стандартная библиотека / Пользовательская графика / CCanvas
  • www.mql5.com
Стандартная библиотека / Пользовательская графика / CCanvas - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Ayy... Nikolay öne geçti...
 

Haklısın.

 //подсчитывает количество пунктов цены в одном пикселе
double GetPointsInPixel( long eChartId, int eWindow)
   {
   double eMin= EMPTY_VALUE ;
   ChartGetDouble (eChartId, CHART_PRICE_MIN ,eWindow,eMin);
   if (eMin== EMPTY_VALUE ) return ( 0 );
   double eMax= EMPTY_VALUE ;
   ChartGetDouble (eChartId, CHART_PRICE_MAX ,eWindow,eMax);
   if (eMax== EMPTY_VALUE ) return ( 0 );
   long ePixels=- 1 ;
   ChartGetInteger (eChartId, CHART_HEIGHT_IN_PIXELS ,eWindow,ePixels);
   if (ePixels<= 0 ) return ( 0 );
   return ( double (eMax-eMin)/ePixels);
   }

double eIndent=GetPointsInPixel(eChartId,eWindow);

Ardından, olaylar değiştiğinde bu değeri gerekli fiyata ekleyin/çıkarın:

-zaman çerçevesi değişiklikleri

- grafiği artır/azalt,

- fiyat skalasını sıkmak.

 
Nikolai Semko :

Bu kısa kodu kontrol edin ve size yardımcı olabilir. Her şey Canvas üzerinde uygulanmaktadır.

Kanvastaki bir diğer artı, MT4 ve MT5 için kodun hemen hemen aynı olacağıdır.

Tamam teşekkürler)

 
Artyom Trishkin :
Ayy... Nikolay öne geçti...

...)))))) Asıl mesele, düşüncelerin çakışmasıdır))))
Sayesinde )))))

 
Aleksei Stepanenko :

Haklısın.

double eIndent=GetPointsInPixel(eChartId,eWindow);

Ardından, olaylar değiştiğinde bu değeri gerekli fiyata ekleyin/çıkarın:

-zaman çerçevesi değişiklikleri

- grafiği artır/azalt,

- fiyat skalasını sıkmak.

Sayesinde ))))))))

 

Vitaliy Kostrubko :

Alexey Stepanenko :

Haklısın.

double eIndent=GetPointsInPixel(eChartId,eWindow);

Ardından, olaylar değiştiğinde bu değeri gerekli fiyata ekleyin/çıkarın:

-zaman çerçevesi değişiklikleri

- grafiği artır/azalt,

- fiyat skalasını sıkmak.

Sayesinde ))))))))

Ve o talihsiz danışmana, **** kodlayıcı örnekleri değil, dili öğrenmeye başlaması gerektiğini söyleyin.

 
Alexey Viktorov :

Ve o talihsiz danışmana, **** kodlayıcı örnekleri değil, dili öğrenmeye başlaması gerektiğini söyleyin.

Kabul edilmiş)))))
... Zaman, çeşitli danışmanların programlanmasında 10 yıllık deneyim için bile (farklı karmaşıklık seviyeleri) == bir incirin TÜM kodlama alanını bilmek için YETERLİ OLMADIĞINI göstermektedir)
çünkü bu 10 yılda - tüm programlama dilinin 2/3'ünde süper profesyonel olabilirsiniz ... ve 1/3'ü hiç bilmiyor))
bu nedenle, gücenmek gereksizdir))), ancak bu 1/3'ü ÇALIŞMAK == bireysel bir mesele))).

.... sadece "KÂR getiren TEMİZ ALGORİTMALAR ... ve" karikatürler " yazmakla daha çok ilgileniyor ...

Ama ona senin örneğini kesinlikle göstereceğim))
Sayesinde )))

 
Vitaliy Kostrubko :

Kabul edilmiş)))))
... Zaman, çeşitli danışmanların programlanmasında 10 yıllık deneyim için bile (farklı karmaşıklık seviyeleri) == bir incirin TÜM kodlama alanını bilmek için YETERLİ OLMADIĞINI göstermektedir)
çünkü bu 10 yılda - tüm programlama dilinin 2/3'ünde süper profesyonel olabilirsiniz ... ve 1/3'ü hiç bilmiyor))
bu nedenle, gücenmek gereksizdir))), ancak bu 1/3'ü ÇALIŞMAK == bireysel bir mesele))).

.... sadece "KÂR getiren TEMİZ ALGORİTMALAR ... ve" karikatürler " yazmakla daha çok ilgileniyor ...

Ama ona senin örneğini kesinlikle göstereceğim ))
Sayesinde )))

Bana atıfta bulunmak zorunda değilsin. Bu seçenek, kullanmama rağmen, tarafımdan dile getirilmedi. Ona göre sadece adaşı destekledim.

Ve eğer "programcı" bir grafik nesnesini hareket ettirmenin imkansızlığından bahsediyorsa, o zaman bu bir programcı değil, bir programcının parodisi bile değil, sadece bir **** kodlayıcı.