Skript über Expert Advisor ausführen - Seite 2

 
Shaun:

Wahre Geschichte, ich bin neu, auf der Website, um die Codierung als gut. Ich habe noch nie gecodet.
hier anfangen
 
qjol:
hier beginnen

Danke für diese Information.

Um ehrlich zu sein, bin ich in das Händler-/Codierungsforum gekommen, um eine Antwort von jemandem zu erhalten, der es bereits getan hat und mir möglicherweise helfen könnte, und nicht, um zu lernen, wie man alles von Grund auf selbst codiert.

 
Shaun:

Danke für diese Information.

Um ehrlich zu sein, kam ich zu den Händlern / Codierung Forum, um die Antwort von jemandem, der es bereits getan hat und könnte möglicherweise mir helfen, nicht lernen, wie man alles selbst von Grund auf zu codieren.

Zeigen Sie Ihr Skript, zeigen Sie Ihren EA, vielleicht hat jemand Mitleid mit Ihnen und kombiniert sie...
 
Shaun:

Danke für diese Information.

Um ehrlich zu sein, kam ich zu den Händlern / Codierung Forum, um die Antwort von jemandem, der es bereits getan hat und könnte möglicherweise mir helfen, nicht lernen, wie man alles selbst von Grund auf zu codieren.

Recht, zeigen Sie Ihren Code & wir werden versuchen, u zu helfen, aber natürlich bin ich sicher, u nicht erwarten, dass ich den gesamten Code für u tun
 

Danke, Leute!

Nach Ihrem Rat, ich schrieb smth wie diese innerhalb meiner EA:

if(MyCondition)
{
  PlaySound("my_alert.wav");
    if(MessageBox("Do you really want to run the script?", 0, MB_YESNO|MB_ICONQUESTION)!=IDNO)
     { 
      MyScript();
      DisableAllEA();
      Sleep(3000);    
     }
  }

In einer bestimmten Situation, die durch MyCondition definiert ist, wird mein Alert abgespielt, damit ich höre, dass ich prüfen muss, was los ist.

Ein Meldungsfenster erscheint, in dem ich gefragt werde, ob ich das Skript ausführen möchte, das ein Skript zum Schließen aller Positionen ist.

Wenn ich auf die Schaltfläche [JA] klicke, wird das Skript ausgeführt - alle Positionen werden geschlossen - und die Schaltfläche [Experten] in MT4 wird deaktiviert.

Natürlich brauchen Sie die Experten nicht zu deaktivieren, es sei denn, Sie haben einen Grund dazu.

Wenn Ihr EA in der nächsten Schleife die Bedingung nicht findet, wird er das Skript nicht auslösen.

Natürlich ist dies nur ein Workaround und keine perfekte Lösung, da der EA bei jedem Tick eine Schleife durchläuft.

Und Sie können die Experten nicht deaktivieren, bevor das Skript ausgeführt wurde, da das Skript innerhalb des EA und nicht eigenständig ist.

P.S..

Damit dies funktioniert, müssen Sie folgendes in den Anfang Ihres EAs einfügen:

#include <WinUser32.mqh>
 

Ich habe gerade eine andere Lösung gefunden!!!

Sie können Ihrem Skript ein Tastenkürzel (HOTKEY) zuweisen.

So können Sie das Tastaturereignis emulieren.

Also, besser:

if(MyCondition)
{
      EnableScript();
      DisableAllEA();
      Sleep(3000);
}

Sie können Ihre alert.wav in das eigenständige Skript einbinden, und auch in die Messagebox.

Und Sie können entscheiden, ob Sie die Experten aktivieren wollen oder nicht, nachdem Sie die Situation gemeistert haben.

Auf diese Weise riskieren Sie keine Überstapelung.

Natürlich müssen die Tastenereignisse genauer untersucht werden.

Die Funktion für das Tastaturereignis Strg+E ist:

void DisableAllEA() {
   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
}

Wenn Sie ein wenig googeln, können Sie Zahlencodes für jede Taste finden.

Oder Sie können diesen Link verwenden: https: //www.mql5.com/en/code

Natürlich ist keybd_event nicht Teil von mql4, deshalb braucht man es:

#include <WinUser32.mqh>
 

Und, nebenbei bemerkt!

Hat schon mal jemand versucht, einen EA auf dem Chart als Indikator zu implementieren?

Das sollte genauso gut funktionieren!

Und Sie können eine beliebige Anzahl von Indikatoren auf einem Chart laufen lassen!

Ich habe versucht, Skripte als Indikatoren zu implementieren, und das funktioniert hervorragend!

 
Dadas:

Und, nebenbei bemerkt!

Hat schon mal jemand versucht, einen EA auf dem Chart als Indikator zu implementieren?

Es sollte genauso gut funktionieren!


Sie können keine Trades von einem Indikator aus platzieren, nur von Skripten und EAs.
 
RaptorUK:

Sie können keine Trades von einem Indikator aus platzieren, nur von Skripten und EAs.


Ein EA könnte also als Skript laufen? In einer Schleife?

Nur, wenn in einer Endlosschleife, wird der Computer schließlich abstürzen.

Gibt es eine Möglichkeit, ein Skript in einer Schleife auszulösen , die von einem Ticker gesteuert wird, z.B. alle 50ms oder so?

Nicht durch MT4-Ticks?

 
RaptorUK:

Sie können keine Trades von einem Indikator aus platzieren, nur von Skripten und EAs.


Und noch ein Gedanke:

Sie können also die Tastaturereignisfunktion verwenden, um Bestellungen per Script aufzugeben.

1. Schreiben Sie ein Script, um Bestellungen automatisch zu platzieren.

2. Weisen Sie ihm einen HOTKEY zu.

3. Definieren Sie in dem EA, der als Indikator läuft, das Tastaturereignis.

Dann können Sie das Gleiche für die Schließung von Aufträgen tun.

Da haben Sie es! Ein EA, der als Indikator läuft und seine Arbeit macht!

Der einzige Nachteil dieser Methode ist, dass Sie einen Indikator nicht mit einem Tastaturereignis deaktivieren können - Sie können ihn nur manuell aus dem Chart entfernen.