Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3823
Beiträge: 36902
Benutzer: 6.071
Aktive Benutzer: 494
Links: 80
Wir begrüßen unseren neuesten Benutzer: Roerich
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 18 Stunden
- Roerich
vor 18 Stunden
- John_Liver...
vor 19 Stunden
- harry1001
vor einem Tag
- supadog
vor 2 Tagen
- POCJonah7

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 38
Gesamt: 39
Team: 0
Team:  
Benutzer:  Stier
Freunde anzeigen

Empfehlungen

Werbung

Like Tree3Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 23.01.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.873
traderdoc befindet sich auf einem aufstrebenden Ast
Standard Chart events im Strategietester

Wie ich bereits auch in einem anderen Forum geschrieben habe:
Chart events im Strategietester zu benutzen, wäre eine komfortable Angelegenheit.

Man könnte dann z.B. via Buttons verschiedenste Steuerungen vornehmen, ohne den Tester jedes mal zu beenden, um irgendwelche Parameter zu ändern und wieder neu zu starten.

Aber, was soll ich sagen - Metaquotes hat es verbockt!

Es ist nicht möglich, die Funktion OnChartEvent() im Strategietester anzuspringen.

Auch die OnTimer()-Funktion ist nicht im Tester benutzbar. Damit ist es nicht möglich, zeitgesteuerte Ereignisse auszulösen.

Das betrifft sowohl die Programmversion im MT4 als auch im MT5.
Sollte jemand eine Lösung haben, dann nichts wie raus damit.

I am very angry and just high pulse.

traderdoc
Ca$hDigger likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #2 (permalink)  
Alt 23.01.16
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 370
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Auch die OnTimer()-Funktion ist nicht im Tester benutzbar. Damit ist es nicht möglich, zeitgesteuerte Ereignisse auszulösen.
Ich kann dazu nur eine Kleinigkeit beitragen:

Ich behelfe mir im Tester damit, dass ich über die Barzählung vorübergehend einen Auslöser einbaue, bzw. über die normale Zeit:

PHP-Code:
extern int Wartezeiteingabe 300;
bool Wait0;
int warteZeit;

//kommt ins normale OnTick
{
...
normaler Ablauf...
if( 
warteZeit() ) { mache das was sonst der OnTimer macht }
}

bool warteZeit()
{
   if ( !
Wait0 ) { warteZeit TimeLocal() + WartezeiteingabeWait0 true; }
      if ( 
Wait0 && TimeLocal() >= warteZeit ) {
         
Wait0 false;
         return(
true);
      }
return(
0);

traderdoc and Ca$hDigger like this.
__________________

Tradertool
  #3 (permalink)  
Alt 24.01.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.873
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ja, danke, das geht sicherlich. Nur bei kleinen Timefrequenzen (< 1 Sekunde) die zuverlässig regelmäßig kommen sollen, wird das in tickschwachen Zeiten auf Dauer unbefriedigend.
Das funktioniert aber auf jeden Fall, je gößer die Timefrequenz wird und in marktfrequenten Tagenzeiten.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #4 (permalink)  
Alt 24.01.16
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 370
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

Wenn es in so kleinen Zeiten sein soll, hilft nur eine Berechnungsroutine, welche man auf den benötigten Zeitintervall einstellt.
Sprich CPU Auslastung.

Aber mal grundlegend, der MT4 hat im Tester doch keine Tickdaten, sondern das kleinste ist M1 mit Datum,Zeit,Open,Hoch,Tief,Close und Volumen, den Rest simuliert er innerhalb des M1 Bars. Was macht das für ein Sinn sich in solchen Feinheiten mit dem Tester zu beschäftigen?
__________________

Tradertool
  #5 (permalink)  
Alt 24.01.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.873
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Raul0 Beitrag anzeigen
Wenn es in so kleinen Zeiten sein soll, hilft nur eine Berechnungsroutine, welche man auf den benötigten Zeitintervall einstellt.
Sprich CPU Auslastung.
Diese Methode ist nun mal tickabhängig! Da würde es auch nichts nutzen das Zeitintervall z.B. auf 1 Sekunde zu verkleinern, wenn die Ticks nur alle 10 Sekunden kommen.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #6 (permalink)  
Alt 24.01.16
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 370
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

Ja, ich verstehe.

Eine Idee war eine Schleife mit der Verzögerung solange durchlaufen zu lassen, bis ein neues Tick kommt, jedoch bleibt diese unabhängig von Außen hängen.

Dann hilft nur Metaquotes anschreiben und eine OnTime Funktion für den Tester fordern.
__________________

Tradertool
  #7 (permalink)  
Alt 24.01.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.873
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Raul0 Beitrag anzeigen
Dann hilft nur Metaquotes anschreiben und eine OnTime Funktion für den Tester fordern.
Das ist bereits passiert.
Ich warte nun geduldig auf eine hoffentliche Antwort.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #8 (permalink)  
Alt 25.01.16
Mitglied
 
Registriert seit: Jun 2013
Beiträge: 220
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Sehr schön das du sie angeschrieben hast, die sollen das mal beim nächsten Update beheben.

Ich glaube die Sache mit den simulierten M1 Ticks werden sie allerdings nicht ändern. Also man muss damit leben das innherhalb einer M1 Kerze zB nur 12 Ticks erzeugt werden. Wenn man sekündlich ein Aufruf braucht dann müssten mindestens 60 Ticks pro Minute simuliert werden aber ich bezweifel, dass die ihre Ticksimulation für den OnTimer() auf den Kopf stellen. Allerdings! alles was > 1 Min ist sollten die möglich machen was OnTimer() betrifft zumindest sollte dann wenn OnTimer < eine Minute dann eben mindestens jeder simulierter Tick als Trigger genommen werden.

Und OnChartEvent() sollte definitiv im visu-modus funktionieren das ist sowieso kein Zustand!

C$D

ps: es macht manchmal Sinn für Backtest und Live getrennte Logiken zu schreiben. Für Live dann so wie man es will und bei Backtest dann eine Variante die eine möglichst gute Annäherung verspricht. Ich habe das so beim Aufruf Chartsfremder Währungspaare gemacht da hier keine Ticks simuliert werden. Beim Backtest wird so eine andere Logik aufgerufen als bei Live.
  #9 (permalink)  
Alt 26.01.16
Mitglied
 
Registriert seit: May 2015
Beiträge: 124
yytrader befindet sich auf einem aufstrebenden Ast
Standard

Hallo traderdoc,

eine Möglichkeit wäre eine Gui extern zu programmieren, deren Status könntest du dann in jedem Tick abfragen.

Vielleicht kannst du auch aus einer DLL den Status aus der Oberfläche auslesen, ich habe das aber noch nicht gemacht. Dies sollte auch im Tester funktionieren.

Gruß

yytrader
  #10 (permalink)  
Alt 28.01.16
Benutzerbild von Aktien Andy
Premium Mitglied
 
Registriert seit: Oct 2014
Beiträge: 436
Aktien Andy befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Raul0 Beitrag anzeigen

Aber mal grundlegend, der MT4 hat im Tester doch keine Tickdaten, sondern das kleinste ist M1 mit Datum,Zeit,Open,Hoch,Tief,Close und Volumen, den Rest simuliert er innerhalb des M1 Bars. Was macht das für ein Sinn sich in solchen Feinheiten mit dem Tester zu beschäftigen?
Wenn Du M1 Daten hast und den visuellen Modus im Backtest aktivierst, dann werden die Ticks innerhalb des M1 Balkens simuliert; das stimmt.
Wenn Du aber Tickdaten hast, dann nimmt er die auch.
__________________
Is there anybody out there?
Thema geschlossen

Lesezeichen

Stichworte
chart events strategietester, mql4, onchartevent(), ontimer(), programmierung, programmierung metatrader, strategietester, strategietester mql4, tester


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------