Обсуждение статьи "Исследование сезонных характеристик финансовых временных рядов при помощи диаграмм Boxplot" - страница 15

 
Maxim Dmitrievsky:

Вам мое одобрение нужно? выложили бы если хотели, с пометкой "вот здесь надо исследовать"

Иногда задалбывает выкладывать так, что несешь ответственность. Готов ее делегировать.

 
fxsaber:

Иногда задалбывает выкладывать так, что несешь ответственность. Готов ее делегировать.

Скиньте в личку, делегировать не придется

только не украинским хамам перекупам

 
Maxim Dmitrievsky:

Скиньте в личку, делегировать не придется

У меня шкурный интерес, поэтому только в паблик с обязательствами исследований в паблике.

 
fxsaber:

У меня шкурный интерес, поэтому только в паблик с обязательствами исследований в паблике.

Ну валяйте, я исследую своего же бота

 
Maxim Dmitrievsky:

Ну валяйте

Беретесь?

 
fxsaber:

Беретесь?

Берусь, раз исследование на свободную тему

 
Maxim Dmitrievsky:

Берусь, раз исследование на свободную тему

Советник

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

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

#define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

input int inPeriod = 25; // Период МАшки
input int inLow = -2;    // Нижняя граница разницы цены и МАшки - вход
input int inHigh = 0;    // Верхяя граница разницы цены и МАшки - выход

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; // Максимальная абсолютная просадка

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; // Минимальное количество трейдов (позиций).

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


Оптимизация

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

Советник


Оптимизация

не вижу ни одного отличия от оригинала, кроме вынесенных инпутов

у меня после оптимизации с 2012г. пашет мой бот

что исследовать? найдены какие-то другие интервалы времени?

 
Maxim Dmitrievsky:

не вижу ни одного отличия от оригинала, кроме вынесенных инпутов

А Вы думали, что прикалывался, когда это говорил?

у меня после оптимизации с 2012г. пашет мой бот

Не понял.

что исследовать? найдены какие-то другие интервалы времени?

Walk-forward хотя бы. + кластерный анализ. Надеюсь, @Stanislav Korotky подключится со своим инструментарием.


Ну а так каждый может воспроизвести - за три минуты Оптимизатор находит результат не хуже, чем подход в статье.

 
fxsaber:

А Вы думали, что прикалывался, когда это говорил?


Не понял.

Бота из статьи и так оптимизировал (неизмененного), на ООС работает, ничего нового.. Это не в ходило в статью, т.к. статья не об оптимизации

fxsaber:

Walk-forward хотя бы. + кластерный анализ. Надеюсь, @Stanislav Korotky подключится со своим инструментарием.


Ну а так каждый может воспроизвести - за три минуты Оптимизатор находит результат не хуже, чем подход в статье.

Ну пусть воспроизводят, только параметры заданы бестолковые, долго оптимизировать будет

Не нашли бы никогда без исследования, хотя бы потому что продавать бы еще пытались

Причина обращения: