EA im Chart ein/ausschalten
Hallo,
gibt es vielleicht bereits eine Lösung für folgendes "Problem"? Ich würde gern einen laufenden EA mit einem Klick (im Chart) stoppen und mit einem weiteren Klick wieder in starten. Dank im voraus. |
Einfach mal auf den Button "AutoTrading" auf Rot klicken.
traderdoc |
EA im Chart ein/ausschalten
Hallo Traderdoc,
das kenne ich bereits: -MT4/ obere Leiste "AutoTrading" schaltet generell alle EA´s ein oder aus -MT4/ F7 oder rechte Maustaste im Chart "Expert Advisors->Eigenschaften->bis zu Live Trading zulassen". Dort kann ich für jeden Chart einen EA ein/ausschalten. (Nachteil: mehrere Klicks / ich sehe nicht ob der EA nun ein- oder ausgeschaltet ist.) Sowas kenn ich noch nicht: Ich dachte an etwas noch einfacheres, ein "Start/Stop-Knopf" zum Klicken, in jedem Chart. |
Nun, dann muß der Programmierer ran. Inzwischen ist es zwar relativ einfach geworden, Buttons zu programmieren, aber immer noch nicht möglich für Jedermann.
traderdoc |
Wozu ein Programmierer Traderdoc?? :D
Man speichert es als Template ab und schmeißt den EA erstmal raus. Später Template wieder laden. Einfacher gehts nun wirklich nicht. |
Zitat:
Ne! Er wollte einen Button auf dem Chart haben und kein raus und wieder rein! traderdoc |
raus und wieder rein
Also ich mag es. Und so unelegant ist nun auch wieder nicht. |
Über das wir hier reden schon!
|
So in etwa sieht das dann aus:
string buttonID="Button"; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { CreateButton(); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { ObjectDelete(0,buttonID); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- Check the event by pressing a mouse button if(id==CHARTEVENT_OBJECT_CLICK) { string clickedChartObject=sparam; if(clickedChartObject==buttonID) { bool selected=ObjectGetInteger(0,buttonID,OBJPROP_STATE ); if(selected) { Alert("Button clicked"); } else { } } ObjectDelete(buttonID); CreateButton(); ChartRedraw(); } } void CreateButton() { ObjectCreate(0,buttonID,OBJ_BUTTON,0,100,100); ObjectSetInteger(0,buttonID,OBJPROP_COLOR,clrWhite ); ObjectSetInteger(0,buttonID,OBJPROP_BGCOLOR,clrGra y); ObjectSetInteger(0,buttonID,OBJPROP_XDISTANCE,100) ; ObjectSetInteger(0,buttonID,OBJPROP_YDISTANCE,100) ; ObjectSetInteger(0,buttonID,OBJPROP_XSIZE,200); ObjectSetInteger(0,buttonID,OBJPROP_YSIZE,50); ObjectSetString(0,buttonID,OBJPROP_FONT,"Arial"); ObjectSetString(0,buttonID,OBJPROP_TEXT,"Out1"); ObjectSetInteger(0,buttonID,OBJPROP_FONTSIZE,10); ObjectSetInteger(0,buttonID,OBJPROP_SELECTABLE,0); } |
Info
:) Hallo zusammen, habe von dem regen Austausch hier noch garnichts mitbekommen. Aber ich habe evtl. für alle Beteiligten etwas interessantes gefunden.
Gibt nur eigentlich nur zwei Möglichkeiten: 1.kennt keiner, 2.taugt nichts Es geht um die Seite MT4GUI Es lohnt sich bestimmt einmal aufmerksamer zu lesen. Ein Kommentar dazu würde mich freuen. Da werden jede Menge Möglichkeiten mit Button gezeigt und erklärt. Selbstverständlich habe ich auch nach Anleitung runtergeladen. Bekomme aber bisher kein Ding zum Laufen. Vielleicht schaut ihr Fachleute dort mal nach und helft mir damit evtl. weiter. Ich möchte einen Button mit "Start(grün) und Stop(rot)" (Farbwechsel) im Chart haben, mit dem ich einen EA steuern kann. Das hört sich so einfach an. Warum möchte ich auch erklären: Z.B. einen EA in 2 Stück 1min-Charts nutzen. Erkennbare Umschaltgrenzen die flattern(long/short/long/short) könnten, durch zeitweises abschalten ruhigstellen. Jetzt kommt vielleicht die Frage: Wer will schon so traden? Einfache Antwort: Ich. Was für mich erschwerend hinzu kommt. Ich habe zwei kleinere MT4-Livekonten und zwei MT4-Demokonten. Da ist die Zuordnung der Ordner unter Win7 schnell mal durcheinander (und funktioniert nicht) Allen MT4lern einen schönen Abend. :confused: PS: Der abgebildete Code sollte sicher nur ein Code-Beispiel sein, hat bei mir leider 3 Fehlermeldungen. |
Zitat:
Ich hänge nochmal eine korrigierte Version an, sogar mit zwei Buttons.# Code:
string button1ID="Button1"; traderdoc PS. Die Fehlermeldung im 1. Code kam aus clrGra y, welches aus irgendwelchen Gründen ein Freizeichnen bekommen hatte, wo keines hingehört. |
schnell, schneller, und noch schneller...
:D Hallo Traderdoc,
zunächst vielen Dank für Deine Mühe. Super Vorlage. Jetzt habe ich noch ein wenig daran herumgeschraubt und es optisch so gemacht wie ich es mir vorstellte. Die Änderungen sind technisch bestimmt nicht einwandfrei (bin halt kein Programmierer), aber so würde es - lt. Alerte - funktionieren. :cool: Wenn, ja wenn ich irgendwo ein Beispiel gefunden hätte, mit welchen Befehlen ich einen EA ein- und ausschalten könnte. Dürfte ich dafür noch um eine Lösung oder einen Lösungsansatz bitten? Schon mal Dank im voraus. :eek: Code:
string button1ID="Button1"; |
Damit solltest Du über nur einen Button wechselseitig Starten und Stoppen können.
Code:
string button1ID="Button1"; traderdoc |
Das war ja wieder sehr schnell umgesetzt.
Mein Ehrgeiz ist ja nun angestachelt und ich habe schon den ganzen morgen ein Beispiel zum starten und stoppen eines Programmes (EA) gesucht, aber leider nichts gefunden. OpenFile, CloseFile etc. scheinen dafür irgendwie nicht geeignet. Der Compiler hat immer was zu meckern. Ich verstehe nicht was der von mir will. :mad: Gibst Du mir bitte einen Tip? |
So geht das!
Code:
string button1ID="Button1"; traderdoc |
Ist mir das jetzt aber peinlich....
Hallo,
void OnTick() { if (!EAWorking) return; //hier soll er arbeiten WER soll hier nun arbeiten. Muß ich den EA nicht irgendwo angeben? Das sind doch beides Experten, dieses Button-Programm und mein EA. Aber es kann doch nur 1 EA installiert werden. Wie wird das denn nun gelöst? |
Der gesamte Code wird einfach in Deinen EA integriert.
Das EAWorking = false nach Drücken des Button mit dem Label Stop wird in der Funktion OnTick() verhindern, dass der EA arbeitet. traderdoc |
Problem gelöst, Ziel erreicht
Hallo,
hiermit möchte ich mich nochmals für die Hilfe bedanken. |
Hallo Traderdoc,
kann man ein Script schreiben, aus dem man einen offenen EA ausschaften kann? Ich möchte gerne über einen Hotkey einen EA ausschalten können. Es können auch alle offenen EAs geschlossen werden. Die offenen Indikatoren sollten aber bestehen bleiben. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:01 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum