Diskussion zum Artikel "Mit Boxplot saisonale Muster von Finanzzeitreihen erforschen" - Seite 15

 
Maxim Dmitrievsky:

Wenn Sie meine Zustimmung wollen, können Sie es mit dem Vermerk "Hier müssen wir nachforschen" veröffentlichen, wenn Sie wollen.

Manchmal ist es ärgerlich, wenn man es auf eine Weise veröffentlicht, für die man selbst verantwortlich ist. Ich bin bereit zu delegieren.

[Gelöscht]  
fxsaber:

Manchmal ist es ärgerlich, wenn man sagt, dass man nicht verantwortlich ist. Ich bin bereit zu delegieren.

Geben Sie es mir, dann müssen Sie nicht delegieren.

nur nicht an ukrainische, rüpelhafte Überbietende.

 
Maxim Dmitrievsky:

Schreiben Sie mir eine Nachricht, dann muss ich nicht delegieren.

Ich habe ein ureigenes Interesse, also nur in der Öffentlichkeit mit einer Verpflichtung zur Forschung in der Öffentlichkeit.

[Gelöscht]  
fxsaber:

Ich habe ein ureigenes Interesse, also nur in der Öffentlichkeit mit einer Verpflichtung zur Forschung in der Öffentlichkeit.

Nur zu, ich werde meinen eigenen Bot recherchieren.

 
Maxim Dmitrievsky:

Fahren Sie fort.

Werden Sie es tun?

[Gelöscht]  
fxsaber:

Werden Sie es tun?

Ich tue es, solange es sich um kostenlose Forschung handelt.

 
Maxim Dmitrievsky:

Ich nehme es an, da es sich um eine Studie für alle handelt.

Berater

// https://www.mql5.com/de/articles/7038

#include <MT4Orders.mqh> // https://www.mql5.com/de/code/16006

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

input int inPeriod = 25; // Mashka Zeitraum
input int inLow = -2;    // Untere Grenze der Differenz zwischen dem Preis und dem MAP - Einstieg
input int inHigh = 0;    // Die Obergrenze der Differenz zwischen Preis und MAP ist die Ausgabe

const int hnd = iMA(NULL, 0, inPeriod, 0, MODE_SMA, PRICE_CLOSE); // https://www.mql5.com/ru/forum/170952/page152#comment_14131263

const double dLow = inLow * _Point;
const double dHigh = inHigh * _Point;

double maArr[], prArr[];

input int inStartHour = 0;
input int inCountHours = 23;

const int EndHour = inStartHour + inCountHours;

bool SystemON()
{
  int CurrentHour = (int)(TimeCurrent() / 3600) % 24;

  if ((EndHour >= 24) && (CurrentHour < inStartHour))
    CurrentHour += 24;
             
  return((inStartHour <= CurrentHour) && (CurrentHour <= EndHour));
}

sinput double inMaxAbsoluteDD = 0; // Maximale absolute Inanspruchnahme

const double StartBalance = AccountInfoDouble(ACCOUNT_BALANCE);

bool IsMaxAbsoluteDD()
{

  return(inMaxAbsoluteDD && ((StartBalance - AccountInfoDouble(ACCOUNT_EQUITY)) > inMaxAbsoluteDD));
}

void OnTick()
{
  static bool Position = false;

  if (!IsMaxAbsoluteDD())
  {
    CopyBuffer(hnd, 0, 0, 1, maArr);
    CopyClose(NULL, 0, 0, 1, prArr);
    
    const double pr = prArr[0] - maArr[0];
  
    Position = Position ? !((pr >= dHigh) && OrderSelect(0, SELECT_BY_POS) && OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0))
                        : (pr < dLow) && SystemON() && (OrderSend(_Symbol, OP_BUY, 1, Ask, 0, 0, 0) > 0);
  }
}

sinput int inMinTrades = 500; // Mindestanzahl von Geschäften (Positionen).

double OnTester()
{
  return(((TesterStatistics(STAT_TRADES) >= inMinTrades) ? TesterStatistics(STAT_PROFIT_FACTOR) : 0));
}


Optimierung

; Подключиться к MetaQuotes-Demo.
; Выбрать в Тестере советник по ссылке https://www.mql5.com/ru/forum/327812/page15#comment_14162754
; Этот текст скопировать в буфер обмена и сделать CTRL+V во вкладке Настроки Тестера.
; Запустить Оптимизацию, нажав Старт.
; Применить лучший проход.
; Отключить режим Оптимизации, выставить начало на 2015 год и запустить одиночный проход.
[Tester]
Symbol=EURUSD
Period=M15
Optimization=2
Model=2
FromDate=2017.01.01
ToDate=2019.12.09
ForwardMode=0
Deposit=100000
Currency=USD
ProfitInPips=1
Leverage=100
ExecutionMode=0
OptimizationCriterion=6
[TesterInputs]
inPeriod=20||5||5||250||Y
inLow=-40||-500||10||100||Y
inHigh=20||-100||10||500||Y
inStartHour=0||0||1||23||Y
inCountHours=3||2||1||23||Y
inMaxAbsoluteDD=2000
inMinTrades=500
[Gelöscht]  
fxsaber:

Beraterin


Optimierung

Ich sehe keinen Unterschied zum Original, außer bei den Eingaben.

mein Bot läuft seit 2012 nach der Optimierung.

Was ist zu untersuchen? Wurden andere Zeitintervalle gefunden?

 
Maxim Dmitrievsky:

Ich sehe keinen einzigen Unterschied zum Original, außer bei den Eingängen.

Dachten Sie, ich mache Witze, als ich das sagte?

Ich habe meinen Bot nach Optimierung seit 2012 am Laufen.

Ich verstehe das nicht.

Was ist zu untersuchen? irgendwelche anderen Zeitintervalle gefunden?

Zumindest Walk-forward. + Clusteranalyse. Ich hoffe, dass @Stanislav Korotky mit seinem Toolkit zu uns stoßen wird.


Nun, jeder kann es nachmachen - in drei Minuten findet Optimiser Ergebnisse, die nicht schlechter sind als der Ansatz im Artikel.

[Gelöscht]  
fxsaber:

Dachten Sie, ich mache Witze, als ich das sagte?


Ich verstehe das nicht.

Der Bot aus dem Artikel wurde optimiert (unverändert), er funktioniert auf OOS, nichts Neues.... Er wurde nicht in den Artikel aufgenommen, da es in dem Artikel nicht um Optimierung geht.

fxsaber:

Zumindest Walk-forward. + Cluster-Analyse. Ich hoffe, @Stanislav Korotky wird mit seinem Toolkit eine Verbindung herstellen.


Nun, jeder kann es nachmachen - in drei Minuten findet der Optimiser nicht schlechtere Ergebnisse als der Ansatz im Artikel.

Gut, sollen sie es doch nachmachen, aber die eingestellten Parameter sind unbrauchbar, es wird lange dauern, sie zu optimieren

Ohne Nachforschungen wären sie nie darauf gekommen, und sei es nur, weil sie immer noch versuchen würden, zu verkaufen.