Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 16

 
Andrey Dik :
"Backtest" sekmesindeki " Grafik aç " komutu ile test edildikten sonra Expert Advisor'da kullanılan tüm göstergelerin uygun parametrelerle açılan grafiğe otomatik olarak eklenmesi mümkün müdür?

Henüz değil.

Şimdilik görsel test şablonunu‌ kaydedebilir ve istemci terminalinde uygulayabilirsiniz.

 
Slava :

Henüz değil.

Şimdilik görsel test şablonunu‌ kaydedebilir ve istemci terminalinde uygulayabilirsiniz.

ve OnDeinit'teki Expert Advisor'da ise

ChartSaveTemplate()


‌tester.tpl ismiyle, " Grafik Aç " komutuyla grafiği açtıktan sonra ihtiyacınız olanı elde edecek misiniz?

 
Andrey Dik :

ve OnDeinit'teki Expert Advisor'da ise

ChartSaveTemplate()


‌tester.tpl ismiyle, " Grafik Aç " komutuyla grafiği açtıktan sonra ihtiyacınız olanı elde edecek misiniz?

Numara. ChartSaveTemplate, şablonu test aracısının yerel Dosyalar klasörüne kaydeder

Bu, şablonun görselleştiriciden ana menü‌ aracılığıyla manuel olarak kaydedilmesi anlamına geliyordu.

Tester.tpl yalnızca tek yönde çalışır - istemci terminalinden görselleştiriciye‌

 
Slava :

Numara. ChartSaveTemplate, şablonu test aracısının yerel Dosyalar klasörüne kaydeder

Bu, şablonun görselleştiriciden ana menü‌ aracılığıyla manuel olarak kaydedilmesi anlamına geliyordu.

Tester.tpl yalnızca tek yönde çalışır - istemci terminalinden görselleştiriciye‌

hayır, çok hantal, çok fazla vücut hareketi gerektirecek ve her seferinde sadece şablonu kaydetmek için görsel testler yapmak genellikle çok pahalı, özellikle de sık sık yapmanız gerektiğinde...

bu, göstergelerle hemen test ettikten sonra bir grafiği açmak için düzenli bir yeteneğe ihtiyacınız olduğu anlamına gelir.‌

not. Test cihazında çalışmıyor. Bunu seviyorum:

//——————————————————————————————————————————————————————————————————————————————
void OnDeinit ( const int reason)
{
   if ( ChartSaveTemplate ( 0 , "testersdfsdfsdfsdf" ))
     Print ( __FUNCTION__ + ": Шаблон сохранён" );
   else
     Print ( __FUNCTION__ + ": Шаблон НЕ сохранён" );
    
   EventKillTimer ();
}
//——————————————————————————————————————————————————————————————————————————————

//——————————————————————————————————————————————————————————————————————————————
double OnTester ()
{
   if ( ChartSaveTemplate ( 0 , "testersdfsdfsdfsdf" ))
     Print ( __FUNCTION__ + ": Шаблон сохранён" );
   else
     Print ( __FUNCTION__ + ": Шаблон НЕ сохранён" );
   return (- DBL_MAX );
}
//——————————————————————————————————————————————————————————————————————————————

sonuç:

2017.03.07 12:22:15.422 Çekirdek 1 2017.03.06 23:58:59 OnTester: Şablon KAYDEDİLMEDİ
2017.03.07 12:22:15.422 Core 1 final bakiyesi 1129.18 USD
2017.03.07 12:22:15.422 Core 1 OnTester sonucu -1.797693134862316e+308
2017.03.07 12:22:15.422 Core 1 2017.03.06 23:58:59 OnDeinit: Şablon KAYDEDİLMEDİ

 
void OnStart ()
  {
   int indic = iCustom ( Symbol (), Period (), "Examples\\ATR" , 7 , PRICE_CLOSE , clrGreen );
   ChartIndicatorAdd ( 0 , 1 , indic);  
   Sleep ( 10000 );
  }

Göstergenin rengi bu şekilde ayarlanamaz.

Peki neden bazı insanlar "bu bir bug değil, bir özellik" diyor?‌

Ancak, resmi cevap beni tamamen tatmin etti:

Bir MQL5 programından bir göstergenin rengini ve stilini nasıl değiştireceğimizi düşüneceğiz.

Bu arada, göstergenin rengini ayarlamak için color türündeki giriş değişkenlerini kullanın.

 
Roffield :
void OnStart ()
  {
   int indic = iCustom ( Symbol (), Period (), "Examples\\ATR" , 7 , PRICE_CLOSE , clrGreen );
   ChartIndicatorAdd ( 0 , 1 , indic);  
   Sleep ( 10000 );
  }

Göstergenin rengi bu şekilde ayarlanamaz.

Peki neden bazı insanlar "bu bir bug değil, bir özellik" diyor?‌

Ancak, resmi cevap beni tamamen tatmin etti:

Çünkü gösterge tutamacı aracılığıyla (hesaplama bölümü aracılığıyla) görüntü özelliklerini (çizim kısmı) ayarlamak mümkün değildir. Hata, bir şeyin bir şekilde yazılması, ancak tamamen farklı bir şekilde çalışmasıdır.

Burada farklı bir yaklaşıma ihtiyaç var. ChartIndicatorXXX işlev grubunda olduğu gibi göstergeye kısa adıyla erişin. ChartIndicatorSetInteger (chart_id,sub_window,indicator_name,PROP_COLOR,mod,value) gibi bir şey

Bunu zaten düşündük ama şimdiye kadar eller ulaşmadı‌

 

Bir tutamaç aracılığıyla bir şey ayarlamak için ne var? Renk, PLOT_LINE_COLOR özelliği aracılığıyla göstergenin kendisinde ayarlanır.

gösterge_renkN yalnızca ‌ PLOT_LINE_COLOR ile değiştirilen ilk rengi belirtir.

gösterge_renkN, PLOT_LINE_COLOR aracılığıyla sonraki ayar ile göstergeyi çağırırken girişten farklı değildir.

Bu tür özelliklerin tutamaç yoluyla değiştirilmesine izin vermek genellikle imkansızdır.

Ve gösterge_tamponlarının dinamik olarak ayarlanmasına izin vermenin zamanı geldi.‌

 
Roffield :

Bir tutamaç aracılığıyla bir şey ayarlamak için ne var? Renk, PLOT_LINE_COLOR özelliği aracılığıyla göstergenin kendisinde ayarlanır.

gösterge_renkN yalnızca ‌ PLOT_LINE_COLOR ile değiştirilen ilk rengi belirtir.

gösterge_renkN, PLOT_LINE_COLOR aracılığıyla sonraki ayar ile göstergeyi çağırırken girişten farklı değildir.

Bu tür özellikleri tutamaç yoluyla değiştirmenize kesinlikle izin verilmemelidir.

Ve gösterge_tamponlarının dinamik olarak ayarlanmasına izin vermenin zamanı geldi.‌

‌Koldan bahsetmemek mümkün değil. Ben de çizim özelliklerini tutamaçtan ayarlamanın imkansız olduğunu söyledim. Ve nedenini açıkladı

Özel göstergelere ek olarak, çizelgeye programlı olarak eklendikten sonra rengini değiştirmesi gereken yerleşik göstergelerin de olduğunu unutmayın.

 

Yalnızca gösterge çağrı işlevlerini genişletmenizi öneririm:

 iCustom (... inputs, PRICE_CLOSE ,
         [ color color1, int width1, int style1]... );

iAlligator (... params, PRICE_CLOSE ,
         [ color color1, int width1, int style1]... );
Daha fazla bir şey eklenmesine gerek yok.

 
Ee, zaten göremiyorsan neden?
Neden: