Пятница, 26.04.2024, 03:32
Игрушки от Vinin
Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Советники и индикаторы » Игрушки » Свой критерий оптимизации (Попробуем его создать)
Свой критерий оптимизации
vininДата: Понедельник, 10.11.2008, 17:32 | Сообщение # 1
Admin
Группа: Администраторы
Сообщений: 299
Репутация: 12
Статус: Offline
Статьей на эту тему много.
Но MT нас ограничивает возможносями оптимизации.
Но возможность обойти это ограничение есть.
Но нужно для начала сформулировать требуемый критерий. Хотя критерий может быть и составным.
 
vininДата: Понедельник, 26.01.2009, 08:38 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 299
Репутация: 12
Статус: Offline
Свой критерий оптимизации конечно громко сказано. По большому счету можно просто делать дополнительный фильтр и выбирать более оптимальные занчения. Для этого достаточно в deinit() добавить небольшой код

int deinit() {

string filename="HMA_stat_"+Symbol()+"_"+Period()+".csv";
bool fex=CheckFile(filename); // Проверка существования файла-отчета
int handle=FileOpen(filename,FILE_READ|FILE_WRITE|FILE_CSV);
if (fex) // Если файла-отчета нет, то формируем шапку
FileWrite(handle,"CountTM","HourStart","HourStop","Паттерн","OP","profit","count","profitplus","countplus","profitminus","countminus","StopL oss_TM","StopLoss_Id","TakeProfit_TM","TakeProfit_Id");
for (int Magic=MagicMin;Magic<=MagicMax;Magic++) {
double profit=0;
double profitplus=0;
double profitminus=0;
int count=0;
int countplus=0;
int countminus=0;
for (int j=0;j<OrdersHistoryTotal();j++) {
if (!OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)) continue;
if (OrderMagicNumber()!=Magic) continue;
profit+=OrderProfit();
count++;
if (OrderProfit()>0) {
profitplus+=OrderProfit();
countplus++;
} else {
profitminus-=OrderProfit();
countminus++;
}
}
if (profitplus>profitminus && countplus>countminus) {
FileSeek(handle, 0, SEEK_END);
FileWrite(handle,CountTM,HourStart,HourStop,Magic,reversi,profit,count,profitplus,countplus,profitminus,countminus,StopLoss_TM,StopLoss_Id,T akeProfit_TM,TakeProfit_Id);

}
}
FileClose(handle);
return(0);
}

Это как вариант, в данном случае паттерны формируют уникальный магик. И мы получаем отчет по каждому магику отдельной строкой в отчете.
Но что попадет в отчет зависит только от этой строки
if (profitplus>profitminus && countplus>countminus)
Я взял случай когда прибыль больше убытков и количество прибыльных операций больше количества убыточных.

 
ivandurakДата: Пятница, 04.12.2009, 22:36 | Сообщение # 3
Рядовой
Группа: Проверенные
Сообщений: 17
Репутация: 2
Статус: Offline
Quote (vinin)
Но нужно для начала сформулировать требуемый критерий. Хотя критерий может быть и составным

представляем результаты сделок в виде кумуулятивной суммы . сд1 , сд1+сд2 , сд1+сд2+сд3 и тд . По полученному массиву строим линейную регрессию куда без нее . Далее массив сделок можно представить как N мерный вектор . Линию линейной регрессии также можно представить как N мерный вектор , соответственно cos угла между векторами выражает корреляцию между результатами торговли и прямой линией . Тут только надо подумать о нормировках советников .
 
vininДата: Воскресенье, 06.12.2009, 19:42 | Сообщение # 4
Admin
Группа: Администраторы
Сообщений: 299
Репутация: 12
Статус: Offline
Продолжу тему.
Библиотека для формирования своего отчета для анализа. Пример использования в советнике
Прикрепления: 4864175.rar (6.9 Kb)
 
ivandurakДата: Четверг, 07.01.2010, 23:19 | Сообщение # 5
Рядовой
Группа: Проверенные
Сообщений: 17
Репутация: 2
Статус: Offline
Можно здесь положить , а то на форуме MQL затерялось
Прикрепления: __-MQL4_.mht (319.8 Kb)
 
vininДата: Четверг, 28.01.2010, 18:16 | Сообщение # 6
Admin
Группа: Администраторы
Сообщений: 299
Репутация: 12
Статус: Offline
Quote (ivandurak)
представляем результаты сделок в виде кумуулятивной суммы . сд1 , сд1+сд2 , сд1+сд2+сд3 и тд . По полученному массиву строим линейную регрессию куда без нее . Далее массив сделок можно представить как N мерный вектор . Линию линейной регрессии также можно представить как N мерный вектор , соответственно cos угла между векторами выражает корреляцию между результатами торговли и прямой линией . Тут только надо подумать о нормировках советников .

Не думал об отношении коэффициента и СКО?
Оптимальный вариант должен быть больше 1.

 
russiansergДата: Воскресенье, 07.02.2010, 06:01 | Сообщение # 7
Рядовой
Группа: Проверенные
Сообщений: 5
Репутация: 0
Статус: Offline
Доброго времени суток! Увлекательные у Вас идеи! Оптимизация советника на истории. Но насколько понимаю Вы предполагаете оптимизацию параметров правил? Но есть ведь несоответствие закономерностей в разных точках истории... Может советнику искать другие правила?
 
vininДата: Воскресенье, 07.02.2010, 15:43 | Сообщение # 8
Admin
Группа: Администраторы
Сообщений: 299
Репутация: 12
Статус: Offline
Quote (russianserg)
Может советнику искать другие правила?

Сформулировать можешь - что значит искать другие правила?

 
russiansergДата: Понедельник, 08.02.2010, 04:59 | Сообщение # 9
Рядовой
Группа: Проверенные
Сообщений: 5
Репутация: 0
Статус: Offline
Quote
Сформулировать можешь - что значит искать другие правила?

ДРУГИЕ ПРАВИЛА значит в один день или в один период времени мы можем определить точку входа от одних скользящих, а в последующий - уже от других, т. е. одни значения параметров этих скользящих нам не помогут. (например, если скорость движения по тренду в 2 или 3 раза будет выше (ниже), чем в предыдущий раз.)

 
Форум » Советники и индикаторы » Игрушки » Свой критерий оптимизации (Попробуем его создать)
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024Бесплатный конструктор сайтов - uCoz