Discusión sobre el artículo "Investigando las características estacionales de las series temporales financieras con la ayuda de diagramas Boxplot" - página 15

 
Maxim Dmitrievsky:

¿Quieres mi aprobación? Puedes publicarlo si quieres, con una nota que diga: "Aquí es donde tenemos que investigar".

A veces es molesto ponerlo de forma que sea tu responsabilidad. Estoy dispuesto a delegar.

[Eliminado]  
fxsaber:

A veces es molesto decir que no eres responsable. Estoy dispuesto a delegar.

Déjamelo a mí, no tendrás que delegar.

Sólo que no a los ucranianos groseros sobrepujadores.

 
Maxim Dmitrievsky:

Escríbeme, no tendré que delegar.

Tengo un interés personal, por lo que sólo en público con un compromiso con la investigación en público.

[Eliminado]  
fxsaber:

Tengo un interés personal, así que sólo en público con un compromiso de investigación en público.

Adelante, voy a investigar mi propio bot.

 
Maxim Dmitrievsky:

Adelante.

¿Lo harás?

[Eliminado]  
fxsaber:

¿Lo harás?

Lo haré, siempre que sea investigación gratuita.

 
Maxim Dmitrievsky:

Lo tomaré, ya que es un estudio libre...

Asesor

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

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

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

input int inPeriod = 25; // Periodo Mashka
input int inLow = -2;    // Límite inferior de la diferencia entre el precio y el PAM - entrada
input int inHigh = 0;    // El límite superior de la diferencia entre el precio y el MAP es la salida

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; // Reducción máxima absoluta

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; // Número mínimo de operaciones (posiciones).

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


Optimización

; Подключиться к 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
[Eliminado]  
fxsaber:

Consejero


Optimización

No veo ninguna diferencia con el original, a excepción de las entradas.

mi bot funciona desde 2012 después de la optimización.

¿qué investigar? ¿algún otro intervalo de tiempo encontrado?

 
Maxim Dmitrievsky:

No veo ni una sola diferencia con el original, salvo las entradas.

¿Pensaste que estaba bromeando cuando dije eso?

Tengo mi bot funcionando después de la optimización desde 2012.

No entiendo.

Que investigar? algún otro intervalo de tiempo encontrado?

Walk-forward por lo menos. + análisis de clúster. Espero que @Stanislav Korotky se una a nosotros con su conjunto de herramientas.


Bueno, todo el mundo puede reproducirlo - en tres minutos Optimiser encuentra resultados no peores que el enfoque en el artículo.

[Eliminado]  
fxsaber:

¿Creías que estaba bromeando cuando dije eso?


No lo entiendo.

El bot del artículo estaba optimizado (sin cambios), funciona en OOS, nada nuevo.... No se incluyó en el artículo, ya que el artículo no trata de la optimización

fxsaber:

Walk-forward por lo menos. + análisis cluster. Espero que @Stanislav Korotky se conecte con su conjunto de herramientas.


Bueno, todo el mundo puede reproducirlo - en tres minutos el Optimizador encuentra resultados no peores que el enfoque en el artículo.

Bueno, que lo reproduzcan, pero los parámetros establecidos son inútiles, llevará mucho tiempo optimizarlo

Nunca lo habrían encontrado sin la investigación, aunque sólo fuera porque seguirían intentando vender.