Jep, ich bin mit dem Teil, der für meinen EA wichtig war fertig. Kannst ja mal schaun, ob die Vereinfachungen in meinem Include-File für deinen Anwendungsfall ausreichen.
Verwendung sieht so aus:
Zitat:
#include <HitRate.mqh>
extern string tradesFile; // .csv
extern string hitsFile; // bei mir .txt (.csv sollte auch gehn)
int init()
{
// int num = Anzahl der zu betrachtenden Trades, auf dessen Basis die Trefferquote berechnet wird
clearHitsFile(hitsFile, num);
clearTradesFile(tradesFile);
...
}
int start()
{
...
double hitRate = hitRate(tradesFile,hitsFile);
...
OrderSend(...);
// nach jedem OrderSend einen neuen Eintrag hinzufügen!
// loserValue = Wert (Preis), bei dem der Trade als Verlierer gewertet wird
// winnerValue analog
newTradeEntry(tradesFile,TimeCurrent(), cmd, openPrice, loserValue, winnerValue);
...
}
|
Dabei wird der Trades (egal, ob tatsächlich ausgeführt oder nicht) als Gewinner oder Verlierer gewertet, wenn loserValue (z.b. ein StopLoss) oder winnerValue (z.B. Wert, bei dem der StopLoss über BreakEven gesetzt wird) getriggert wird.
Sinn macht HitRate.mqh nur für den diskretionären Handel und wenn loser- und winnerValue weit genug von openPrice entfernt sind, dass diese nicht innerhalb eines Bars auftreten. Für den Handel auf Tickbasis müsstest du es daher noch anpassen. Wäre nett, wenn du dann auch deine Lösung posten würdest.
Bisher ist die Trefferquote auch nur für Market Orders implementiert (ohne Berücksichtigung von Slippage).