К содержимому
Форекс
на автомате

Свой критерий в OnTester: как не давать призы проходам с десятком сделок

y.bogdanovс 02.2024
Исследователь
9сообщений
Автор темы#1
Оптимизирую по встроенному максимуму прибыли или по PF, и наверх всегда вылезают проходы с 8-15 сделками и PF 4-5. Ставлю ограничение по минимальному числу сделок, но тогда в топе проходы ровно у порога. Хочу свой критерий в OnTester, который сам штрафует маленькие выборки. Кто что использует?
Malinka_K41с 02.2023
Автор разборов
29сообщений
#2
Я в своих проверках беру среднюю сделку, делю на стандартное отклонение и умножаю на корень из числа сделок. По сути t-статистика. Проход с 10 сделками и большим средним получает маленькое значение, потому что корень из 10 маленький, а разброс большой. Проход с 300 сделками и скромным средним выигрывает, если результат ровный. Это не панацея, но везение награждать перестаёт. Порог по числу сделок я всё равно держу, скажем 100, чтобы не считать статистику по трём точкам.
y.bogdanovс 02.2024
Исследователь
9сообщений
Автор темы#3
Сделал примерно так, как Malinka_K41 описала, по закрытым сделкам:
Код:
double OnTester() { HistorySelect(0, TimeCurrent()); double s = 0, s2 = 0; int n = 0; for(int i = 0; i < HistoryDealsTotal(); i++) { ulong t = HistoryDealGetTicket(i); if(HistoryDealGetInteger(t, DEAL_ENTRY) != DEAL_ENTRY_OUT) continue; double p = HistoryDealGetDouble(t, DEAL_PROFIT) + HistoryDealGetDouble(t, DEAL_SWAP); s += p; s2 += p * p; n++; } if(n < 100) return(0); double m = s / n, sd = MathSqrt(s2 / n - m * m); return(sd > 0 ? m / sd * MathSqrt(n) : 0); }
Прогнал генетику на том же диапазоне: в топе теперь проходы со 140-220 сделками и PF 1,3-1,45. Комиссию пока не учёл, она у меня в сделке входа, это доделаю.
Алексей 91с 03.2021
Первый прогон
3сообщения
#4
Только порог 100 и формулу ты выбрал, уже посмотрев на результаты. Зафиксируй их и больше не трогай, иначе критерий тоже подгонится
Продолжить обсуждение

Для ответа войдите в свой аккаунт.

Войти
← Предыдущая темаСледующая тема →