MQL4 EAからチャートにインジケータを追加する。 - ページ 6

 

Alain Verleyen:

#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);
  }


こんにちは。


私はこのコードをSCRIPTで使おうとしていますが、時々私のメタトレーダーは不規則に閉じます。


あなたは何が問題であるかを知っていますか?

 

Chart.mqhはかなりわかりやすいですね............。


//+------------------------------------------------------------------+
//|                                                       Chart.mqh  |
//|                   Copyright 2009-2016, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#include <Object.mqh>
//---
#ifdef __MQL4__
bool ChartIndicatorAdd(long chart_id,int subwin,int handle) { return(false); }
#endif
 
Alain Verleyen コードを追加 すればいいのです。

うまくいきません。インジケーターからインジケーターの追加コードを実行する必要があります。多くの解決策を試しましたが、結果が出ません。追加したいインジケータは追加されますが、インジケータの設定ウィンドウが表示されたまま、手動で確認するのを待ちます。
MT4 Build 1353でやっています。

はっきり言って、これらのコードはスクリプトから問題なく動作しますし、キーボードエミュレーションもスクリプトから動作します。
インジケーターからはダメです...。
 
Nicolas Baptista カスタム・インジケータの場合、Windowsの名前を変更する必要があります。

注2:15文字以上のインジケータは使用しないでください(".ex4 "の前)。

素晴らしい
理由: