MQL4 EA'dan grafiğe gösterge ekle

 

merhaba insanlar,

Mevcut sorunu çözmeye çalışıyorum. mql4'te, mql5 ChartIndicatorAdd() 'daki gibi bir grafiğe gösterge ekleyecek bir komut yoktur. Gerçekten üzücü.

Ea'mın bir gösterge başlatmasını istiyorum. Forumları kaydırırken böyle bir çözümle karşılaştım ama düzgün çalışmıyor. Lütfen yardım et!

Bu kod, göstergeyi başlatmaya çalışır, ancak dosya adını düzgün okumaz. Yalnızca (gösterge adının ilk harfi) açmaya çalışır.ex4 veya I.ex4

Açıkça görülen çözüm chararray idi, ancak derleyici "parametre dönüştürmeye izin verilmiyor" hatası veriyor. Peki nasıl çözebiliriz?

 #import "user32.dll"
   int RegisterWindowMessageW( string MessageName);
   int PostMessageW( int hwnd, int msg, int wparam, string Name);
#import

void StartCustomIndicator( int hWnd, string IndicatorName, bool AutomaticallyAcceptDefaults = false )
{
 string name = "Indicator_name" ;
 char name2[];
 StringToCharArray (name,name2, 0 , StringLen (name));
 
 int MessageNumber = RegisterWindowMessageW( "MetaTrader4_Internal_Message" );
 int r = PostMessageW(hWnd, MessageNumber, 15 , name);
}
int OnInit ()
  {
//---

// In my code where I launch the indicator
int hWnd = WindowHandle( Symbol (), 0 );
StartCustomIndicator(hWnd, "Indicator_name" );

return ( INIT_SUCCEEDED );
}
 
#import "user32.dll"
int RegisterWindowMessageW(string MessageName);
int PostMessageW(int hwnd,int msg,int wparam,uchar &Name[]);
#import

#define INDICATOR_NAME "Indicator_name"
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void StartCustomIndicator(int hWnd,string IndicatorName,bool AutomaticallyAcceptDefaults=false)
  {
   uchar name2[];
   StringToCharArray(IndicatorName,name2,0,StringLen(IndicatorName));

   int MessageNumber=RegisterWindowMessageW("MetaTrader4_Internal_Message");
   int r=PostMessageW(hWnd,MessageNumber,15,name2);
   Sleep(10);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
// In my code where I launch the indicator
   int hWnd=WindowHandle(Symbol(),0);
   StartCustomIndicator(hWnd,INDICATOR_NAME);

   return(INIT_SUCCEEDED);
  }
 
Alain Verleyen :
Teşekkürler, şimdi çalıştı, ancak yalnızca ikinci denemeden itibaren çalışıyor. ea'yı başlatırsam, gösterge çağrısı / .ex4[123] açılamıyor hatası veriyor. Ea zaten bir grafiğe eklenmişse ve onu yeniden eklemeye çalışırsam çalışır. Bu nasıl çözülebilir?
 
Georgiy Liashchenko :

...mql4'te, mql5 ChartIndicatorAdd() 'daki gibi bir grafiğe gösterge ekleyecek bir komut yoktur. Gerçekten üzücü....

Emin misin?
 
Vasyl Nosal :
Emin misin?
Eh, biraz biliyorsanız, lütfen paylaşın... :)
 
Georgiy Liashchenko :
Eh, biraz biliyorsanız, lütfen paylaşın... :)

:))))))))))))))))))))))))))))))))))))))))) )

ChartIndicatorAdd()

Ah özür dilerim. Birkaç dakika.

Hmm. Ben mql4'te olduğunu sanıyordum.

Belki bu size yardımcı olur

ChartApplyTemplate()

 
Vasyl Nosal :

:))))))))))))))))))))))))))))))))))))))))) )

ChartIndicatorAdd()

Ah özür dilerim. Birkaç dakika.

Hmm. Ben mql4'te olduğunu sanıyordum.

Belki bu size yardımcı olur

ChartApplyTemplate()

Evet, ama bu bir durum değil, örneğin bir tane satıyorum ve bir müşteri onu kullanmak istiyor, aynı şablona sahip değil. Dosya ile versem de farklı bir görünüm tercih edebilir. Bu nedenle göstergeyi ea'dan başlatmak istiyorum.
 
Georgiy Liashchenko :
Evet, ama bu bir durum değil, örneğin bir tane satıyorum ve bir müşteri onu kullanmak istiyor, aynı şablona sahip değil. Dosya ile versem de farklı bir görünüm tercih edebilir. Bu nedenle göstergeyi ea'dan başlatmak istiyorum.

Hmm. Belki de "kaynak" kullanarak EA'ya gösterge eklemekten daha iyidir.

 #resource "\\Indicators\\SampleIndicator.ex4"


int OnInit ()
  {

   double value= iCustom ( _Symbol , _Period , "::Indicators\\SampleIndicator.ex4" , 0 , 0 );
 
Vasyl Nosal :

Hmm. Belki de "kaynak" kullanarak EA'ya gösterge eklemekten daha iyidir.

çalışmıyor, ea ele alıyor ama gösterge yok
 
Georgiy Liashchenko :
çalışmıyor, ea ele alıyor ama gösterge yok

Grafiğe gösterge eklemez . ind'yi ea ex.4 dosyasında derler.

 
Servis masasına yazıp mql5'teki gibi ChartIndicatorAdd() eklemelerini isteyebilir misiniz?