MQL4 EA의 차트에 지표 추가

 

안녕하세요 사람들,

현재의 문제를 해결하려고 합니다. mql4에는 mql5 ChartIndicatorAdd() 와 같이 차트에 표시기를 추가하는 명령이 없습니다. 정말 슬프다.

내 ea가 표시기를 시작하기를 원합니다. 스크롤링 포럼에서 이러한 솔루션을 찾았지만 제대로 작동하지 않습니다. 도와주세요!

이 코드는 표시기를 시작하려고 하지만 파일 이름을 제대로 읽지 않습니다. (지표 이름의 첫 글자).ex4 또는 I.ex4만 열려고 합니다.

명백한 솔루션은 chararray였지만 컴파일러는 "매개변수 변환이 허용되지 않음" 오류를 반환합니다. 어떻게 해결할 수 있습니까?

 #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 :
감사합니다. 지금은 작동했지만 두 번째 시도에서만 작동합니다. 내가 ea를 시작하면 표시기 호출 은 / .ex4[123] 열기 실패 오류를 반환합니다. ea가 이미 차트에 첨부되어 있고 다시 첨부하려고 하면 작동합니다. 어떻게 해결할 수 있습니까?
 
Georgiy Liashchenko :

...mql4에는 mql5 ChartIndicatorAdd() 와 같이 차트에 표시기를 추가하는 명령이 없습니다. 정말 안타깝다....

확실합니까?
 
Vasyl Nosal :
확실합니까?
혹시 아시는 분 계시면 공유 좀 부탁드립니다... :)
 
Georgiy Liashchenko :
혹시 아시는 분 계시면 공유 좀 부탁드립니다... :)

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

차트 표시기 추가()

아 죄송합니다. 몇 분.

흠. 나는 그것이 mql4에 있다고 생각했다.

아마도 이것이 당신을 도울 것입니다

ChartApplyTemplate()

 
Vasyl Nosal :

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

차트 표시기 추가()

아 죄송합니다. 몇 분.

흠. 나는 그것이 mql4에 있다고 생각했다.

아마도 이것이 당신을 도울 것입니다

ChartApplyTemplate()

예, 하지만 예를 들어 내가 ea를 판매하고 클라이언트가 그것을 사용하고 싶어하는 경우는 아닙니다. 그는 동일한 템플릿을 가지고 있지 않습니다. 파일로 줘도 다른 시각을 선호할 수 있습니다. 따라서 ea에서 표시기를 초기화하고 싶습니다.
 
Georgiy Liashchenko :
예, 하지만 예를 들어 내가 ea를 판매하고 클라이언트가 그것을 사용하고 싶어하는 경우는 아닙니다. 그는 동일한 템플릿을 가지고 있지 않습니다. 파일로 줘도 다른 시각을 선호할 수 있습니다. 따라서 ea에서 표시기를 초기화하고 싶습니다.

흠. 아마도 "리소스"를 사용하여 EA에 표시기를 추가하는 것보다.

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


int OnInit ()
  {

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

흠. 아마도 "리소스"를 사용하여 EA에 표시기를 추가하는 것보다.

작동하지 않음, ea가 핸들을 가져오지만 표시기가 없음
 
Georgiy Liashchenko :
작동하지 않음, ea가 핸들을 가져오지만 표시기가 없음

차트에 지표를 추가 하지 않습니다. ea ex.4 파일에서 ind를 컴파일합니다.

 
srvice 데스크에 글을 쓰고 mql5와 같이 ChartIndicatorAdd() 를 추가하도록 요청할 수 있습니까?
사유: