Abdul Manan: Ist es in MT4 möglich, den Indikator mit EA aus dem Chart zu entfernen? Einige Codes können in der Funktion OnDenit() geschrieben werden.
Entfernt einen Indikator mit einem bestimmten Namen aus dem angegebenen Diagrammfenster. Der Befehl wird der Warteschlange für Diagrammnachrichten hinzugefügt und erst ausgeführt, nachdem alle vorherigen Befehle abgearbeitet wurden.
boolChartIndicatorDelete( longchart_id,// Diagramm-ID intsub_window,// Nummer des Unterfensters const stringindicator_shortname// Kurzname des Indikators );
Parameter
chart_id
[in] Chart-ID. 0 bezeichnet den aktuellen Chart.
sub_window
[in] Nummer des Teilfensters des Diagramms. 0 bezeichnet das Subfenster des Hauptdiagramms.
Gibt true zurück, wenn der Befehl zur Chart-Warteschlange hinzugefügt wurde, andernfalls false. UmFehlerdetails zu erhalten, verwenden Sie denGetLastError()-Befehl.
Removes an indicator with a specified name from the specified chart window. The command is added to chart message queue and executed only after all previous commands have been processed. If the short name of an indicator is not set explicitly, then the name of the file containing the source code of the indicator will be specified during...
intOnInit()
{
//---// In my code where I launch the indicatorint hWnd=WindowHandle(Symbol(),0);
StartCustomIndicator(hWnd,INDICATOR_NAME);
return(INIT_SUCCEEDED);
}
This code work, but only in OnInit section. If i try transfer it to section CHARTEVENT_OBJECT_CLICK for launch with key, nothing happend. Can you help me ?
Dieser Thread war sehr hilfreich für mich, hat mich aber nicht ganz ans Ziel gebracht - siehe diesen Thread (https://www.forexfactory.com/showthread.php?p=12764287#), der dort anknüpft, wo der Dialog hier aufgehört hat.
Ich möchte Georgiy Liashchenko danken, und ich möchte meine aktualisierte Version seines Codes teilen, die den Indikator direkt in das Diagramm mitAutomaticallyAcceptDefaults (wenn es auf "true" ist) hinzufügen.
Ich hoffe, es wird einigen Leuten helfen, die Indikatoren aus dem Experten einfügen müssen.
Ich habe dieses Problem nicht (mit dem von mir geposteten Code).
Prüfen Sie, ob hWnd von 0 verschieden ist.
Sie können auch versuchen, den Sleep-Wert auf 50 oder 100 zu erhöhen.
Lieber Alain ,
Ich habe deinen Code verwendet, um einen Indikator zu allen geöffneten Charts hinzuzufügen, aber er wird nur zu dem Chart hinzugefügt, auf dem ich den EA ausführe.
Hier ist der Code, können Sie bitte Ihren Code ändern, um den gleichen Indikator zu allen geöffneten Charts hinzuzufügen?
Bitte um Hilfe
BTW ( Ich habe es als EA und auch als Skript versucht, beide fügten den Indikator nur zu einem Chart hinzu ) :)
Grüße,
#import "user32.dll"
int RegisterWindowMessageW(string MessageName);
int PostMessageW(int hwnd,int msg,int wparam,uchar &Name[]);
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
MQL4 Indikator zum Chart von EA hinzufügen
Alain Verleyen, 2016.02.13 11:39
Hallo alle zusammen
obiger Code funktioniert in einem Expert, wie verwende ich von obigen Codes in einem Indikator?
bitte helfen.
Ist es in MT4 möglich, den Indikator mit EA aus dem Chart zu entfernen? Einige Codes können in der Funktion OnDenit() geschrieben werden.
Entfernt einen Indikator mit einem bestimmten Namen aus dem angegebenen Diagrammfenster. Der Befehl wird der Warteschlange für Diagrammnachrichten hinzugefügt und erst ausgeführt, nachdem alle vorherigen Befehle abgearbeitet wurden.
boolChartIndicatorDelete(
longchart_id,// Diagramm-ID
intsub_window,// Nummer des Unterfensters
const stringindicator_shortname// Kurzname des Indikators
);
Parameter
chart_id
[in] Chart-ID. 0 bezeichnet den aktuellen Chart.
sub_window
[in] Nummer des Teilfensters des Diagramms. 0 bezeichnet das Subfenster des Hauptdiagramms.
const indicator_kurzname
[in] Der Kurzname des Indikators, der in derEigenschaft INDICATOR_SHORTNAME mit der FunktionIndicatorSetString() gesetzt wird. Um den Kurznamen eines Indikators zu erhalten, verwenden Sie die FunktionChartIndicatorName().
Rückgabewert
Gibt true zurück, wenn der Befehl zur Chart-Warteschlange hinzugefügt wurde, andernfalls false. UmFehlerdetails zu erhalten, verwenden Sie denGetLastError()-Befehl.
Hallo zusammen,
Ich möchte Georgiy Liashchenko danken, und ich möchte meine aktualisierte Version seines Codes teilen, die den Indikator direkt in das Diagramm mitAutomaticallyAcceptDefaults (wenn es auf "true" ist) hinzufügen.
Ich hoffe, es wird einigen Leuten helfen, die Indikatoren aus dem Experten einfügen müssen.
Hinweis : Es funktioniert für benutzerdefinierte Indikatoren, ansonsten ändern Sie den Fensternamen
Hinweis2: Verwenden Sie keine Indikatoren mit mehr als 15 Zeichen (vor dem ".ex4")
Hallo, ich habe folgendes Problem
Kann 'user32.dll::RegisterWindowMessageW' nicht aufrufen, 'user32.dll' ist nicht geladen
Kann mir jemand helfen?
Ich habe dieses Problem nicht (mit dem von mir geposteten Code).
Prüfen Sie, ob hWnd von 0 verschieden ist.
Sie können auch versuchen, den Sleep-Wert auf 50 oder 100 zu erhöhen.
Lieber Alain ,
Ich habe deinen Code verwendet, um einen Indikator zu allen geöffneten Charts hinzuzufügen, aber er wird nur zu dem Chart hinzugefügt, auf dem ich den EA ausführe.
Hier ist der Code, können Sie bitte Ihren Code ändern, um den gleichen Indikator zu allen geöffneten Charts hinzuzufügen?
Bitte um Hilfe
BTW ( Ich habe es als EA und auch als Skript versucht, beide fügten den Indikator nur zu einem Chart hinzu ) :)
Grüße,
#import "user32.dll"
int RegisterWindowMessageW(string MessageName);
int PostMessageW(int hwnd,int msg,int wparam,uchar &Name[]);
#import
#define INDICATOR_NAME "CCI_FILTER6C"
int NOS ;
string suffix="";
string symbol[30];
long chartid[30];
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int OnStart()
{
NOS=10;
Suffix="c";
symbol[0] = "AUDCAD" + suffix ;
symbol[1] = "AUDCHF" + suffix ;
symbol[2] = "AUDJPY" + suffix;
symbol[3] = "AUDNZD" + Suffix;
symbol[4] = "AUDUSD" + Suffix ;
symbol[5] = "CADJPY" + Nachsilbe; symbol[5] = "CADJPY" + Nachsilbe ;
symbol[6] = "CHFJPY" + Nachsilbe;
symbol[7] = "EURAUD" + Suffix ;
symbol[8] = "EURCAD" + Suffix ; symbol[8] = "EURCAD" + Suffix ;
symbol[9] = "EURCHF" + Suffix; symbol[9] = "EURCHF" + Suffix;
for(int is=0;is<NOS;is++)
{
int hWnd=WindowHandle(symbol[is],PERIOD_M30);
StartCustomIndicator(hWnd,INDICATOR_NAME);
}
return(0);
}
void StartCustomIndicator(int hWnd,string IndicatorName,bool AutomaticallyAcceptDefaults=true)
{
uchar name2[];
StringToCharArray(Anzeigername,name2,0,StringLen(Anzeigername));
int MessageNumber=RegisterWindowMessageW("MetaTrader4_Internal_Message");
int r=PostMessageW(hWnd,MessageNumber,15,name2);
Sleep(100);
}
Hallo, ich bin nicht in der Lage, 2 Indikatoren von 1 EA mit demselben Code zu laden.
auf der Suche nach diesem als auch - hat jemand herausgefunden, wie man mehrere Indikatoren aus dem gleichen EA hinzufügen?
Ich möchte 2https://docs.mql4.com/indicators/ima von demselben EA hinzufügen.
Danke