Skip to content
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.

EA zeitgenau ausführen?

Wenn ich das richtig sehe wird ein Metatrader-EA oder ein Indicator immer pro Tick-Signal des Brokers ausgeführt - stimmt das?

Kann ich einen EA auch öfter ausführen - oder dazu zwingen - also z.B. 10 mal pro Sekunde?

 

 

 

(das ist vermutlich nun keien Einsteigerfrage mehr - aber leider kann ich in die anderen Chapters nicht posten. Darum versuch ich es hier mal:)

Featured Replies

Ja das ist richtig, die Start-Funktion wird immer nur dann aufgerufen, wenn der Chart auf dem der EA läuft neue Tickdaten bekommt. Es gibt keine Möglichkeit die start-Funktion öfter auszuführen, zumindest nicht auf normalen Weg. Mir fällt jetzt auch keine Möglichkeit ein, dass irgendwie durch Tricks dennoch hinzubekommen.
  • Author

... das habe ich befürchtet. Das ist dummerweise für den Handelsansatz, den ich gerade entwickle ein Killerkriterium. Weiss jemand, ob das in MT5 anders ist. Oder kennt jemand eine Software zum automatisierten Handel, die das anders handhabt. Amibroker?

 

grüsse Wingman

Weiss jemand, ob das in MT5 anders ist.

 

Wenn ich die Infos von FinGeR richtig deute dürfte es in gewisser Weise in MT5 einfach möglich sein, aber es ist auch in MT4 relativ einfach machbar:

 

Du musst den Code nur ein bissl erweitern: benenn deine bisherige start() Funktion um in mystart() und mach eine neue start():

int start()
{
//----
 int stop_counter=0;
 
 while(!IsStopped( ) && IsExpertEnabled() && IsConnected())
 {
   if(!IsTradeAllowed())
   {
     stop_counter++;
     if(stop_counter > 60*(1000.0/interval)) // assume Market to be closed
       break;
   }
   else
     stop_counter= 0;
   
   RefreshRates();
   mystart();
   
   Sleep(interval);
 }
 
//----
  return(0);
}

 

Damit wird mystart() alle intervall/1000 Sekunden aufgerufen (+die Zeit die die Funktion braucht), jedesmal mit aktuellen Daten (deswegen RefreshRates() ).

Damit du den EA auch noch anhalten kannst und nicht jedesmal crashen musst damit du was ändern kannst (zB Parameter ändern) ist das "!IsStopped && IsEnabled" eingebaut. Also zum ändern von Parametern: EAs disablen -> Parameter ändern -> wieder enablen

 

Zu "IsTradeAllowed": Während du eine Order sendest, gibt diese Funktion false zurück, dein EA würde also nach jeder gesendeten Order abbrechen und erst beim nächsten Tick wieder in die Schleife einsteigen, deswegen der Buffer. Ist das Trading für 1 Minute durchgehend nicht erlaubt, wird angenommen das was nicht passt und er steigt aus (startet aber beim nächsten Tick wieder in die Schleife).

 

Darf man fragen welche Strategie du ca. verfolgst das du so zeitkritisch bist? *G*

 

HTH

  • Author

Bingo!

Das ist natürlich die Idee! :ph34r:

Das probiere ich aus. Momentan mache ich bei meiner Strategie nach jedem Tick ein paar Berechnungen, die ich VOR dem nächsten Tick aber anzeigen möchte bzw. auswerten muss. Ausserdem muss ich wissen welche Zeit nach einem Tick vergangen ist und zwar VOR dem nächsten Tick. Daher meine Frage. Ausserdem möchte ich die "Latenz" unterschiedlicher Broker messen, die evtl. für meine Strategie entscheidend sein könnte.

 

 

danke für die Lösung!!!

 

Du musst den Code nur ein bissl erweitern:

Edited by ronner
Zitat gekürzt - bitte auf notwendige Länge achten.

Ausserdem muss ich wissen welche Zeit nach einem Tick vergangen ist und zwar VOR dem nächsten Tick.

Das wird MT intern eher schwierig da AFAIK nur Sekunden gemessen werden. Wenn die Ticks also in schnelleren Abständen als im Sekundentakt kommen, musst du dir eine externe (über dll) Zeitmessung überlegen ;)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

Account

Navigation

Search

Search

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.