Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Metatrader - One Click Trading

Geschrieben

Alex, wäre es möglich den MT4 so aufzubohren, dass man "aus dem Chart" heraus handel könnte?

 

Ich stelle mir das etwa so vor:

 

1. Es gibt eine *.ini (oder etwas Vergleichbares) in der ich meine Settings festlege -z.B. die auszuführende Stückzahl

2. Dann gibt es eine "Ampel" - in der rudimentärsten Stufe wären das 2 Buttons für

OPEN SELL (rot) = Verkaufe zum Marktkurs

OPEN LONG (grün) = Kaufe zum Marktkurs

 

Wie das Schliessen funktionieren könnte, dessen bin ich mir noch nicht sicher. Da ich sehr oft mehrere Positionen in verschiedenen Richtungen offen habe, will ich die nicht alle per Panic Button liquidieren.

 

Deshalb ist die Frage genereller Natur. Was denkst du, ginge das leidige 3-Step System auf einen Schritt abzukürzen?

  • Antworten 137
  • Aufrufe 1,2Tsd
  • Erstellt
  • Letzte Antwort

Top-Benutzer in diesem Thema

Veröffentlichte Bilder

Featured Replies

Geschrieben
  • Autor

Der DialogTest Smiley signalisiert erst einmal, dass soweit alles in Ordnung zu sein scheint.

 

Trotzdem öffnet sich das Fenster nicht,

ich vermute, dass ich aufgrund der NeuInstall irgendwas bei den Settings vergessen habe einzustellen.

Oder es liegt an der Wollmütze ;-)

 

http://img242.imageshack.us/img242/8241/wollmuetzecl4.png

Geschrieben
Der DialogTest Smiley signalisiert erst einmal, dass soweit alles in Ordnung zu sein scheint.

 

Trotzdem öffnet sich das Fenster nicht,

ich vermute, dass ich aufgrund der NeuInstall irgendwas bei den Settings vergessen habe einzustellen.

Oder es liegt an der Wollmütze ;-)

Du musst Dlls erlauben und auch die Abfrage am besten abstellen. Hmm, bei mir liegt DialogTest im Verzeichnis scripts und von da aus sage ich dann "Auf aktuellen Chart anwenden".

 

Ansonsten poste bitte mal die Expert-Fenster-Ausgabe.

Geschrieben
Oder es liegt an der Wollmütze ;-)

 

http://img242.imageshack.us/img242/8241/wollmuetzecl4.png

Na, bei dem Programm muss man sich einfach warm anziehen. :pfue:

 

PS: ich hasse Fehlersuche per Ferndiagnose.

Geschrieben
  • Autor
PS: ich hasse Fehlersuche per Ferndiagnose.

 

 

Klar, verstehe ich.

Wir sollten uns deswegen auf irgendwelche Standards einigen - also Informationen, die die Entwickler zur Beurteilung eines Fehlers benötigen.

 

Ich fang mal an

OS: XP/ SP3

Broker: AT

 

EA liegt in /experts/ und wird auch da im Navigator angezeigt.

 

=> Verschiebe den jetzt mal nach Scripts und teste nochmal

Geschrieben
  • Autor
Also, wenn Du unvollkommene Software magst, wirst Du DialogTest.mq4 lieben. :top:

 

Ich mag Bananaware ;-)

 

 

ähm, Verzeichnis Script :top:

Fenster öffnet sich via Doppelklick, prima! Order wurde aufgegeben - exzellent!

 

 

btw. mehr Technology bekommst du bei manchen Discountbroker auch nicht. Von daher, *megasuperzufrieden* - Macht Lust auf v.002 :pfue:

Geschrieben
btw. mehr Technology bekommst du bei manchen Discountbroker auch nicht. Von daher, *megasuperzufrieden* - Macht Lust auf v.002 :pfue:

*Hust* Na, dann beobachte mal den Wert auf dem Button ! Und Du wirst feststellen, dass sich der nicht ändert.

 

Schau ich mir nämlich auch grad an. Das liegt aber nicht daran, dass sich der Ask in Echt nicht ändert (kannst ja mal einfach statt Ask Bid reinschreiben und neukompilieren). Sondern die Metatrader-Funktion Ask (bzw. Bid) liefert keine neuen Werte bei mir. Es bleibt immer nur der Anfangswert stehen.

 

 

Ihr seht mich etwas ratlos. Muss ich Metatrader denn irgendwie animieren, sich neue Werte zu holen (mit nem UpdateValues- Befehl oder nem Tritt in den Allerwertesten z.B.) ? Ich kenn mich ja leider noch nicht gut aus mit den Funktionen, die mir MT so bietet.

Geschrieben
  • Autor
*Hust* Na, dann beobachte mal den Wert auf dem Button ! Und Du wirst feststellen, dass sich der nicht ändert.

 

Hab ich gesehen, ja- auch wegen deines Hinweises weiter oben.

Wäre natürlich stark, wenn sich ASK und BID Kurse auf den Orderbutton(s) anzeigen und aktualisieren ließen.

Aber das kommt ja vielleicht noch :pfue:

 

Ich sehe die aktuelle Entwicklung absolut positiv. Schließlich waren wir vor ein paar Tagen noch an dem Punkt, dass die Entwicklung ein "Custom GUI" praktisch nicht möglich gewesen wäre. Da sind wir jetzt einen großen Schritt weiter.

Geschrieben
  • Autor
Sondern die Metatrader-Funktion Ask (bzw. Bid) liefert keine neuen Werte bei mir. Es bleibt immer nur der Anfangswert stehen.

 

Möglich müsste es sein, normalerweise. Im Standard GUI werden die ASK | BID Kurse auch nur in Labels eingelesen (glaube ich zumindest). Ich will mich aber nicht zu sehr hervortun, mit meinen sehr limitierten :pfue: VB/ VBA Kenntnissen. Das Feld überlasse ich gerne Fachleuten.

Geschrieben
Wäre natürlich stark, wenn sich ASK und BID Kurse auf den Orderbutton(s) anzeigen und aktualisieren ließen.

Aber das kommt ja vielleicht noch :pfue:

Das sollte eigentlich so sein, wenn die Ask- bzw. Bid-Funktion von Metatrader das tun würde, was ich dachte, was sie täte - nämlich den jeweils AKTUELLEN Bid (der auch im Chart angezeigt wird) und Ask-Wert liefern. Dann würde das fast so aussehen wie die andere Ordermaske.

 

Den Sell-Button hab ich bislang noch weggelassen, da dessen Konstruktion analog zum Buy-Button ist, und somit Copy&Paste. Ich will erstmal, dass zumindest der Buy-Button das tut, was ich für ihn als Daseinsberechtigung definiert habe.

Geschrieben
  • Autor
Den Sell-Button hab ich bislang noch weggelassen, da dessen Konstruktion analog zum Buy-Button ist, und somit Copy&Paste. Ich will erstmal, dass zumindest der Buy-Button das tut, was ich für ihn als Daseinsberechtigung definiert habe.

 

Verstehe ich. Für die ' Erstmal-Wissen-Wie-Was-Funktioniert ' braucht man den nicht.

 

Ich such mal in der MT Codebase, ob sich irgendwas Verwertbares zu dem Update der Quotes finden lässt.

Geschrieben
Das hätte ich mir denken können, dass Begriffe wie 'Quotes' 'Price' 'Update' ....in 99,99999 % aller Artikel enthalten sind ;-(

Aber ich habe noch ein paar Trümpfe im Ärmel

Na, dann zauber mal, ich will endlich weitermachen ! bad0015.gif

 

Ich trade hier schon nebenher verzweifelt-gelangweilt Dax-CFDs bei Saxo, um die Wartezeit totzuschlagen.

Geschrieben
Hilft uns der Hinweis auf DDE weiter?

Hmm, schwierig zu sagen. Normalerweise nimmt man DDE zum Datenaustausch zwischen verschiedenen Applikationen, z.B. Interactive Brokers Java-TWS und Excel (für Leute, die sich Indikatoren in Excel berechnen).

 

Die Ask-Funktion, von der ich rede, ist ja eigentlich in Metatrader selbst enthalten, man braucht m.M. nach kein DDE, welches ja darauf basiert, dass sich Programme den Arbeitsspeicher teilen und somit auf die gleichen Informationen Zugriff haben.

Geschrieben
  • Autor
Hmm, schwierig zu sagen. Normalerweise nimmt man DDE zum Datenaustausch zwischen verschiedenen Applikationen, z.B. Interactive Brokers Java-TWS und Excel (für Leute, die sich Indikatoren in Excel berechnen).

 

yep, DDE steht für mich auch nur stellvertretend für die Kommunikation verschiedener RT Applikationen mit Excel.

 

Die Ask-Funktion, von der ich rede, ist ja eigentlich in Metatrader selbst enthalten, man braucht m.M. nach kein DDE, welches ja darauf basiert, dass sich Programme den Arbeitsspeicher teilen und somit auf die gleichen Informationen Zugriff haben.

 

Irgendwo müssen die Daten ja bereitgestellt werden. Es gibt verschieden Fenster im MT, die alle am gleichen Datenstream hängen. Mein Gedanke war, das diese (Kurse) "nur" in ein Label eingelesen werden brauchen. Bei VB ist das einfach, wenn die Quelle bekannt ist (textbox1 = textbox2).

 

nach kein DDE

 

So wie ich das verstehe, ist das die Umgehung der direkten Verbindung von A nach B in dem man noch schnell bei C vorbeischaut.

Aber wie gesagt, ich bin da absoluter Laie.

 

Wenn wir nicht weiterkommen, schreibe ich die Entwickler direkt an.

Geschrieben

Aber die ic.arrow.right.png Dokumentation war hilfreich:

Man muss tatsächlich ein Update der Daten in Ask und Bid anfordern, indem man RefreshRates() aufruft.

Dann gibts auch frische Daten auf dem Button.

 

Einfach in DialogTest.mq4 die untere while-Schleife austauschen.

 

 

 

 

while (fDone == FALSE)
{ 

  //Print("Bid=",Bid, ", Ask=",Ask ); 
 
  ShowWindow(hWnd, SW_SHOWDEFAULT); 
  UpdateWindow(hWnd); 
  
  //Schreibe neuen Kurs auf Orderbutton

  string text = "Buy" + Symbol() + " at Ask " + Ask ;   
  SetWindowTextA(order_button,text);
  Sleep(100);

  RefreshRates();

  //------------------------------
  //handle quit_button event
  fGotMessage = PeekMessageA(msg, quit_button ,  0, 0, PM_REMOVE); 
  if (fGotMessage == -1) 
  {
     //Error
     error=GetLastError();
     MessageBox("Error "+ error + ": " + ErrorDescription(error),"Error",MB_OK); 
     return (1);
  }
  if (fGotMessage != 0)  // we got a message
  {
        if(msg[1]==WM_LBUTTONDOWN) 
        {
                //MessageBox("Beenden","Info",MB_OK);
                //clean up ....
                //...
                return(0);
        }          
  } 
  
  
  

  //-----------------------------------
  //handle order-Button event
  
  fGotMessage = PeekMessageA(msg, order_button ,  0, 0, PM_REMOVE); 
  if (fGotMessage == -1) {
     //Error
     error=GetLastError();
     MessageBox("Error "+ error + ": " + ErrorDescription(error),"Error",MB_OK); 
     return (1);
  }
  if (fGotMessage != 0)  // we got a message
  {
        //Print("orderButton ", msg[0]," ",msg[1], " ",msg[2]);    
  
        //gewünschte Positionsgröße auslesen und auf Korrektheit überprüfen (lass ich mal weg)
        //geht momentan auch nur eine Ziffer auszulesen
        GetWindowTextA(edit,text2,GetWindowTextLengthA(edit)+1);
          
        if (msg[1]== WM_LBUTTONDOWN)
        {
               if(MessageBox("Do you really want to BUY " + CharToStr(text2[0])  +" " + Symbol()+" at ASK price "+ Ask + "?",
                    "Script",MB_YESNO|MB_ICONQUESTION)==IDYES) 
                 
               {
            
                 int ticket=OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,0,"expert comment",255,0,CLR_NONE);
                 if(ticket<1)
                 {
                     error=GetLastError();
                     MessageBox("Error "+ error + ": " + ErrorDescription(error),"Error",MB_OK); 
   
                 } else 
                    OrderPrint();
              } 
        }          
  } 
  
  
  //handle text edit events
   
  fGotMessage = PeekMessageA(msg, edit ,  0, 0, PM_REMOVE); 
  if (fGotMessage == -1) {
     //Error
     error=GetLastError();
     MessageBox("Error "+ error + ": " + ErrorDescription(error),"Error",MB_OK); 
     return (1);
  }
  if (fGotMessage != 0)  // we got a message, let the os do its job
  {
    //Print("edit ", msg[0]," ",msg[1], " ",msg[2]);        
    TranslateMessage(msg); 
    DispatchMessageA(msg); 
  } 

 
      
  fGotMessage = PeekMessageA(msg, hWnd ,  0, 0, PM_REMOVE); 
  if (fGotMessage == -1) {
     //Error
     error=GetLastError();
     MessageBox("Error "+ error + ": " + ErrorDescription(error),"Error",MB_OK); 
     return (1);
  }
  if (fGotMessage != 0)  // we got a message, let the os do its job
  {
    //Print("hWnd ", msg[0]," ",msg[1], " ",msg[2]);    
    if (msg[1]== WM_SIZE){
        Print("WM_SIZE received");
    }
    DispatchMessageA(msg); 
  } 


 
 
  //exit (Notexit)
  cnt ++;
  if (cnt == 10000)
     fDone = TRUE;
     
}

Geschrieben

So dann fehlt nur noch das Auslesen einer 2- und mehrstelligen Zahl aus dem Eingabefeld, das verschiebbare Fenster und das 1000%/Tag-Tradingsystem. :guitar:

Der Rest ist Routine.

Geschrieben

kurz mal Offline und soviel post hier zum Thema... :)

 

also des Problems Lösung ist RefreshRates() genau... hätte ich dir auch sagen können :guitar:

 

aber normal bei jedem neuem Tick wird die start() Funktion aufgerufen(und durchlaufen mit dem aktuellen Werten BID/ASK)

Geschrieben
also des Problems Lösung ist RefreshRates() genau... hätte ich dir auch sagen können :pfue:

Hast Du aber nicht :top:, aber egal *grummel*. Wenigstens Whipsaw hat Engagement gezeigt :guitar:.

Geschrieben

@all :guitar:

 

Ähem, was meinst Du ? Dieses C++-ähnliche Zeugs ? MQL4 ?

Nicht sonderlich schlimm. C++ war ja meine "erste" :pfue: Programmiersprache 1998.

 

 

@Krümel Mit welcher Programmiersprache wäre MQL4 am ehesten vergleichbar?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.