Skript über Expert Advisor ausführen - Seite 9

 

Und ich habe meine Knöpfe!

Jetzt muss ich nur noch etwas stylen.

 
onewithzachy:

Hallo Dadas,

1. Versuchen Sie so gut es geht, der EA-Smiley ist nicht anklickbar.

2. Poste keinen dekompilierten Code. Kompilierte Codes sind urheberrechtlich geschütztes Material und gehören dem Besitzer. Wenn Sie ihn dekompilieren, verletzen Sie das Urheberrecht des Eigentümers. mql4-mql5 .com gehört zu MetaQuotes (MQ), und MQ unterstützt keine Urheberrechtsverletzungen.

1. Was soll das heißen?

Ich klicke auf den Smiley, wenn mein EA auf dem Chart ist und sich das EA-Kontrollfeld öffnet - immer, wenn ich einmal auf das "X", das FROWN oder den SMILE klicke.

2. OK, ich habe es gelöscht - aber es ist kostenlos, und auch mit Demo, also wozu der Ärger?

Und ich habe es nicht dekompiliert! Ich habe .ex4 gepostet, nicht .mq4! Ich habe kein .mq4 für das OneClickTrading-Skript.

3. und 4. irrelevant - ich habe gefunden, was ich brauche!

 
Dadas:

1. Was meinen Sie damit?

Ich klicke auf das Smiley-Gesicht, wenn mein EA auf dem Chart ist und sich das EA-Kontrollfeld öffnet - immer, wenn ich einmal auf das "X", das FROWN oder das SMILE klicke.

2. OK, ich habe es gelöscht - aber es ist kostenlos, und auch mit Demo, also wozu der Ärger?

Und ich habe es nicht dekompiliert! Ich habe .ex4 gepostet, nicht .mq4! Ich habe kein .mq4 für das OneClickTrading-Skript.

3. und 4. irrelevant - ich habe gefunden, was ich brauche!

Hallo Dadas,

1. Du hast Recht mit Nummer 1. Der Smiley ist fest in MT kodiert. Mein EA arbeitet in einer Schleife, so dass ein Klick darauf das Eigenschaftsfenster nicht öffnet.

2. Es kommt kostenlos ohne den Quellcode, und Sie sagten: "Ich habe versucht, einen kostenlosen Decompiler zu finden, konnte aber nicht. Hilfe erwünscht - vielleicht könnt ihr etwas mit dieser Datei machen?" .

3. Du hast das schon in ho ho gefunden und trotzdem fragst du weiter, also habe ich geantwortet.

 
onewithzachy:

Hallo Dadas,

3. Das hast du schon in ho ho gefunden und trotzdem fragst du weiter, also habe ich geantwortet.

Nein, ich habe es nicht in deinem ho ho gefunden!

Ich habe es hier gefunden: https://www.mql5.com/go?link=https://www.fx1.net/wiki/pmwiki.php/MT4GUI/MT4GUI

- Du musst meinen früheren Beitrag übersehen haben.

Und es funktioniert!!!

Vielleicht ist es in deinem HoHo dasselbe, ich weiß es nicht.

Was ich gefunden habe, ist klar erklärt, und das ist, was ich brauchte.

Nun, der EA ruft eine Reihe von verschiedenen Skripten auf, je nach Situation.

Er öffnet und schließt Aufträge automatisch oder manuell, je nach Wahl.

Es deaktiviert die Schaltfläche Experten, wenn nötig.

Ich werde weitere ON/OFF-Schaltflächen für die verschiedenen Funktionen einführen.

Dann ein Formularfeld zur Eingabe von Lots, wenn LotManagement AUS ist.

Dann, vielleicht, werde ich 3 verschiedene EAs in einem mit einer Schaltoption unterbringen.

Am Ende werde ich darüber nachdenken, dies zu einer eigenständigen Anwendung zu machen,

aber das ist ein langer Weg, weil ich die Fähigkeiten noch nicht habe.

P.S. Ich habe es überprüft - Ihr ho ho ist völlig anders als das, was ich gefunden habe. Übrigens, ich habe es in diesem Forum gefunden!

 

Hallo Leute,

mein EA sieht jetzt so aus:

Und ihr könnt sehen, dass es funktioniert.

Dennoch, nicht fertig.

 

Falls jemand nach dieser Information sucht,

Sie können sogar einen anderen EA von einem anderen EA wie diesem ausführen:

#include <WinUser32.mqh>
#define MT4_WMCMD_REMOVE_EXPERT   33050

int start() {
if(ConditionsForOpeningMySecondEA==true) 
{

DisableExperts(); // when Experts enabled - disables Experts
RemoveEA();
DisableExperts(); // when Experts disabled - enables Experts
RunMyEA();

{
           }

void DisableExperts() // Emulates keyboard event for Ctrl+E
   {
   keybd_event(17, 0, 0, 0); // CTRL down
   keybd_event(69, 0, 0, 0); // E down
   keybd_event(69, 0, 2, 0); // E up
   keybd_event(17, 0, 2, 0); // CTRL up
   }

void RemoveEA()
   {
   PostMessageA(hwnd,WM_COMMAND,33050,1);
   }


void RunMyEA() { // Runs another EA with HOTKEY assigned
   keybd_event(18, 0, 0, 0); // ALT down
   keybd_event(69, 0, 0, 0); // E down
   keybd_event(69, 0, 2, 0); // E up
   keybd_event(18, 0, 2, 0); // ALT up
}

Ich benutze dies, und es funktioniert.
 

BTW anstelle von

void DisableExperts() // Emulates keyboard event for Ctrl+E
   {
   keybd_event(17, 0, 0, 0); // CTRL down
   keybd_event(69, 0, 0, 0); // E down
   keybd_event(69, 0, 2, 0); // E up
   keybd_event(17, 0, 2, 0); // CTRL up
   }

verwenden.

#include <WinUser32.mqh>
#import "user32.dll"
  int GetAncestor(int hWnd, int gaFlags);
#import

void DisableExperts() // Emulates keyboard event for Ctrl+E
   {
   int hwnd = GetAncestor(WindowHandle(Symbol(),Period()),2);
   PostMessageA(hwnd,WM_COMMAND,33020,1);
   }

PS ALT + E bewirkt nichts

 
qjol:

Übrigens statt

verwenden.

PS ALT + E macht nichts


Alt+E ist standardmäßig nicht mit etwas belegt.

Sie müssen es zuerst etwas zuweisen.

Ich habe gerade bearbeitet, jetzt ist es richtig.

 
Ja, funktioniert prima, danke!
 

Hallo zusammen,

Vielen Dank für die Beiträge, die hier gemacht wurden.

Ich bin neu in der Programmierung und würde gerne einen EA erstellen, der Skripte verarbeitet, um meine Aufträge zu platzieren, aber ich möchte, dass die Skripte mit Hotkeys ausgeführt werden. Ich verwende MT4. Haben Sie Vorschläge, wie ich das bewerkstelligen kann? Zum jetzigen Zeitpunkt ist mir nicht ganz klar, wie ich die Verbindungen herstellen soll, damit dies Wirklichkeit werden kann.

Ihre Vorschläge sind sehr willkommen!


Vielen Dank im Voraus :).