Перейти к содержанию

Тестирование советников - тема для программистов


Рекомендуемые сообщения

Тестирование советников - тема для программистов Опубликовано (изменено)

Помогите пожалуйста разобраться в следующем вопросе. Опираясь на источник статьи с tradelikeapro согласно инструкциям получил тиковую историю котировок, с целью достигнуть качество моделирования 99%, теперь терминал тестит в оффлайне, результата теста советника отличается от результата тестирования по базовым котировкам ДЦ, но тем не менее показывает n\a , при этом ошибок рассогласования графиков 0. В чем дело, почему не показывает 99%, это формальный недочет? Или возможна серьезная ошибка в моих действиях?

UPdate:
Вопрос снят, в моем случае дело было в том, что процесс формирования котировок происходил в выходные дни, ко всему прочему спред составил 40 пунктов, сегодня перезапустил скрипт CSV2FXT и все стало работать корректно, качество моделирования 99%.

Изменено пользователем Al.exe.in
Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 274
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Имхо виноват генетический алгоритм ! Но без него время теста увеличится на порядок... Я тестирую сначала быстро и грубо, но в широком диапазоне с широким шагом, потом смотрю на влияние переменных на

Перейти

Вы хорошие и правильные вопросы задаете, себе и нам. Первое самое Важное оптимизация кода советника, постарайтесь убрать все лишние, графические обьекты, функции комментариев и прочее не относящееся к

Перейти

Rever27 я, например, делаю так: double OnTester() { double ret=0.0; if (TesterStatistics(STAT_EQUITY_DD)>0) ret = TesterStatistics(STAT_PROFIT) / TesterStatistics(STAT_EQUITY_DD); else

Перейти
Тестирование советников - тема для программистов Опубликовано
Al.exe.in качество моделирования будет 99 если патчить терминал или запускать его через тикстори. Если делаете тесты для себя, то это не важно, главное смотрите в журнале надпись:
TestGenerator: file "C:\Users\...\tester\history\EURUSD5_0.fxt" is read-only
эта запись означает, что файл существует и он только для чтения, МТ не может его пересоздать - это нам и нужно.
Спред можно задать любой при генерации тиковой истории, но в последних билдах терминала, при тесте можно задать желаемый спред - тест будет идти со спредом, заданным в окошечке.
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано


Al.exe.in качество моделирования будет 99 если патчить терминал или запускать его через тикстори. Если делаете тесты для себя, то это не важно, главное смотрите в журнале надпись:
TestGenerator: file "C:Users... esterhistoryEURUSD5_0.fxt" is read-only
эта запись означает, что файл существует и он только для чтения, МТ не может его пересоздать - это нам и нужно.
Спред можно задать любой при генерации тиковой истории, но в последних билдах терминала, при тесте можно задать желаемый спред - тест будет идти со спредом, заданным в окошечке.


Это при условии, что человек пользуется TickStory, а не TickDataSuite.
Также показателем использования котировок 99% является полностью заполненная зеленая полоска в результатах тестирования, когда для 90% и ниже она не до конца полная и имеет вставки красного цвета
Спойлер



Кстати в 950 билде при тестировании спред вообще не учитывается. Нужно переключить модель тестирования "туда/сюда" (подробнее писал есть в тебе TickStory).
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано (изменено)

Спасибо за исчерпывающий ответ! Все действительно так как Вы говорите. Тем не мнее заметил существенное влияние спреда на результаты тестирования. Все сводится к тому что тестирование даже при качественной тиковой истории даст иной результат нежели в реальном времени, ведь моделирование задает статический спред, а в реальной ситуации спред зачастую плавает и иногда достигает внушительных размеров. Как таковой истории спредов нет, насколько мне известно, однако нетрудно реализовать собственный индикатор, который покажет все его "прелести". Если тестируемая система рассчитана на takeprofit малого размера или использует трейлинг, то имеет смысл добавлять условие проверки размера спреда, управляя допустимым значением через внешню переменную, но в таком случае ряд сигналов системы будут проигнорированы. Все сводится к тому что результат даже самого качественного моделирование может значительно отличаться от результата работы системы в реальном времени. Однако пагубное влияние спреда снижается, если система ориентирована на стопы и тейки больших размеров.

Rever27, А какой метод лучше? Готовить терминал к тестированию с помощью TickStory или TickDataSuite?

update:Почитал статью на tradelikeapro про альтернативный метод получения качества моделирования 99% с помощью TickStory и сделал беглый вывод, что основной минус TDS заключается в ее коротком триале и платной версии. Разумеется за неделю не натестируешся.

Изменено пользователем Al.exe.in
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано


Rever27, А какой метод лучше? Готовить терминал к тестированию с помощью TickStory или TickDataSuite?


TickDataSuite на форуме вроде бы вообще не разбирается, хотя программа тоже заслуживает внимания.
Скорее всего из-за ее ежемесячной доплаты к приобретенной покупке. А Русский народ не любит платить никогда ни за что.
По заявлению авторов они берут данные объемов и каким то "чудом дивным" вытаскивают из них показатели спреда, что был в тот период. Проверить это я не вижу возможности.
Так же у них есть свое "ноу хау" - стресс тест на преобразовании спреда и виртуального проскальзывания. Я давно изучал этот процесс, ставил на тест 30% вероятности изменения стандартных показателей рынка, но у меня получалась такая каша и куча сливов, что я сделал вывод - фишка сырая и использовать ее толку 0. (на тот момент).

По поводу котировок Дукастов - они качаются идентично у обоих программ обоими методами, если настройки пары указать одинаковые.
Сравнивал 1 месяц реальной торговли на ECN с тестом обоих программ на этом периоде - Результаты тестов немного отличаются, причину этому я не нашел. Но в сумме, общая картина на 90% отобразила все те сделки, что были на реале. Ибо это занимало просто уйму времени - более точные тесты я поленился делать - остановился на TickStory и радуюсь жизни.
  • Лайк 4
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано (изменено)

Уважаемые, Коллеги!

Все мы, и программисты и трейдеры, оставили годы жизни в ожидании результатов оптимизации.
Думаю пришло время предложить Разработчику MQL расширить возможности Тестера стратегий и
вырвать "души трейдеров из лап Тестера Стратегий" =))

Я открыл тему " Тестер стратегий, повторная оптимизация" на Форуме MQL5. Думаю, мнение
пользователей MT4\MT5 по этому вопросу должно быть учтено.


Добавлено: 05-03-2016 10:00:50

Суть моих предложений изложена в пока в двух постах, вот они:

1. Genry 2016.03.03 16:09 RU

Уважаемые разработчики!

Хочу предложить дополнительный функционал для Тестера Стратегий. Суть предложения такова: добавить возможность выбора повторной оптимизации

на ранее полученных результатах тестирования.

Т.е. последовательность подбора параметров такова:

1. определяем параметры оптимизации и интервал для оптимизации, например: с 1 января 2015 года по 31 декабря 2015 года;

2. проводим оптимизацию и получаем результаты которые видим в разделе "Результаты оптимизации" , например: 10 496 вариантов. Сохраняем

результаты тестирования в файл при необходимости.

3. устанавливаем флаг

4. выбираем новый интервал для тестирования, например: с 1 июня 2008 года по 3 марта 2016 года;

5. запускаем тестирование на новом интервале, но параметры для тестирования берутся из ранее полученных результатов, т.е. 10 496 вариантов.

При необходимости, загружаем параметры из ранее сохраненного файла.

Данный подход позволит достаточно быстро оценивать ранее полученные результаты оптимизации и существенно сократит человеко-часы затрачиваемые на этот процесс.

С уважением, Genry.
----------------------------------------------------------
Коллеги, спасибо за отклик!

Думаю что предложение "сделать проще" для начала будет оптимальным. Если разложить по этапам процесс тестирования, то он выглядит так:

1. Выбираем параметры оптимизации - здесь трейдер в меру своего понимания советника эти параметры отметит.

2. Далее выбор диапазона истории для оптимизации, это важный момент и на него влияет ряд факторов:

а) скорость работы советника, если алгоритм "тяжелый" - то трейдер будет уменьшать диапазон тестирования чтобы получить полезный результат за разумное время;

б) выбор диапазона графика, который содержит нужные варианты движения цены - различные комбинации тренда и флета. На глубину истории для выбора такого интервала обычно влияет пункт а)

По результатам мы получаем первичный список параметров. Вот этот список параметров мы повторно проверяем на других интервалах графика.
В данном случае "сделать проще"- это предоставить возможность выбирать для полученного списка параметров различные участки истории и, желательно, ТФ и инструмент.

В процессе повторных прогонов не меняется номер сета в списке параметров и сами параметры ( отмечены красным на скрине).

Т.е. по результатам повторных прогонов полученного списка на разных участках истории должен получится, условно говоря, номера ТОР-10 сетов, которые показывают стабильно приемлемый результат.

Таким образом мы отсеем подгон тестером результатов оптимизации. Это уже ОГРОМНЫЙ шаг вперед, который будет правильно понят любым трейдером.

Объяснение этого подхода на форуме сведется к такому диалогу:

Вопрос: - А как параметры после оптимизации выбрать? Какие лучше? Что сверху?
Ответ: - А ты оптимизацию прогони, потом флажок ХХХ поставь, выбери другой интервал и снова прогони.
Запоминай номера лучших результатов каждый раз. После нескольких прогонов сам поймешь какие результаты
повторяются в списке лучших. С ними и работай дальше.


При выставленном флажке ХХХ (условное название) отметки в списке параметров тестирования игнорируются.
Берутся только параметры из результатов оптимизации. Меняется Диапазон тестирования, Таймфрейм, Инструмент.

Если возможно сделать сохранение, загрузку и редактирование первичного списка - это будет второй ОГРОМНЫЙ шаг вперед.

PS. В обсуждении звучат интересные и полезные предложения, вопрос в сроках их реализации.
Я исходил из минимальных затрат Разработчика, так как все необходимые данные уже есть надо только расширить возможности их повторной обработки.

Флажок ХХХ можно обозначить как "Повторная проверка результатов оптимизации"

Как-то так...


Добавлено: 05-03-2016 11:52:45

elibrarius пишет(2016.03.05 10:48 ):

Genry:
Цитата

Если возможно сделать сохранение, загрузку и редактирование первичного списка - это будет второй ОГРОМНЫЙ шаг вперед.



Если сделают импорт из XML, то можно делать так:

1) делаем первичную оптимизацию

2) экспортируем в XML

3) отфильтровываем результаты, например с просадкой > 20...30, с количеством сделок
4) импортируем обратно в тестер. (можно из меню по правой кнопке, как сейчас сделан экспорт)

5) Далее делаем либо одиночные проходы (как я предложил ранее), либо групповые проходы, по всему списку. Инструмент, ТФ, даты мы вольны менять по своему усмотрению. Результаты можно опять экспортировать и опять их отфильтровать, и опять импортировать, и т.д. любое количество раз.

Короче, нужно сделать кнопку "перерасчет по списку", который мы импортировали, как дополнительный пункт к вариантам оптимизации.

Оптимизация.png

Изменено пользователем Genry_05
  • Лайк 4
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано

Можно чуть проще сделать - оптимизация не через генетический алгоритм или сплошной перебор параметров тестирования, а методом загрузки списка готовых сэтов (из того-же xml).
Для этого надо добавить чекбокс и адресную строку поиска файла на вкладке "Тестирование" (там где чек-бокс генетического алгоритма).
Таким образом после оптимизации выгружается файл сэтов в эксель (это и сейчас делается легко), там редактируется и запускается новая оптимизация, только по готовым сетам и на другом периоде.

  • Лайк 3
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано


[хрум]
Таким образом после оптимизации выгружается файл сэтов в эксель (это и сейчас делается легко), там редактируется и запускается новая оптимизация, только по готовым сетам и на другом периоде.


Спасибо :), я переместил этот пост на mql.
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано

Вот в МТ5 это все уже есть, но к сожалению это МТ5....


Цитата

"Форвард тестирование
Встроенная функция форвард-тестирования позволяет избавиться от коварной проблемы, которую принято называть "переоптимизация" или подгонка параметров. С включением этой опции, история котировок валют и акций делится на две части. Непосредственно оптимизация происходит на первом отрезке истории, а второй - используется только для подтверждения полученных результатов. Если на обоих отрезках эффективность тогового робота одинаково высока, значит, торговая система обладает наилучшими параметрами и подгонка параметров практически исключена.

Тестер Торговых Стратегий - это незаменимый инструмент для разработчиков экспертов. Без него практически невозможно написать эффективного и качественного торгового робота. Тестер экономит огромное количество времени и позволяет сделать торгового робота по-настоящему прибыльным."

В МТ5 есть свои приколы

http://tlap.com/forum/hardwaresoftware-dlya-treydera/27/mt5-metatrader-5-obschie-voprosy/3993/?do=findComment&comment=254370

и

http://tlap.com/forum/hardwaresoftware-dlya-treydera/27/mt5-metatrader-5-obschie-voprosy/3993/?do=findComment&comment=256051

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

  • 2 weeks later...
Тестирование советников - тема для программистов Опубликовано

Бесплатный скрипт для скачивания и формирования файла с новостями под МТ4
Calendar.txt

_https://www.mql5.com/ru/market/product/15121

 

 

 

Еще один, более комплексный пример кода советника с использованием Calendar.txt

_https://www.mql5.com/ru/code/15115

 

 

 

Похоже что с 1 апреля тестят

Forex Factory mobile (BETA)

Изменилась веб страница. Придется подстраивать скрипт под МТ4, который качает новости.

 

 

 

Обновил скрипт, теперь нормально качает новости в файл
_https://www.mql5.com/ru/market/product/15121

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано (изменено)

Подскажите куда написать или кто поможет исправить 2 ошибки в советнике '}' - unexpected end of program '{' - unbalanced parentheses TMA.mq4


Спойлер








extern int TakeProfit =100;

extern int StopLoss =50;

extern double Lots = 0.01;

extern int Slippage =5;

extern string comment ="Продажа";

extern int Megic = 123;

extern string Indi = "данные индикатора";

extern string TimeFrame = "current time frame";//текущее время кадра

extern int HalfLength = 56;

extern int Price = PRICE_CLOSE;

extern double ATRMultiplier = 2.0;

extern int ATRPeriod = 100;

extern bool Interpolate = true;



double PriceHigh, PriceLow, SL, TP;

int ticket;



int init()

{

if(Digits==3|| Digits==5)

{





TakeProfit*=10;

StopLoss*=10;

Slippage*=10;





}



return(0);



}



int start()



{

PriceHigh= iCustom(Symbol(),0,"TMA with Distancer",TimeFrame,HalfLength,Price, ATRMultiplier,ATRPeriod, Interpolate,1,0);

PriceLow= iCustom(Symbol(),0,"TMA with Distancer",TimeFrame,HalfLength,Price, ATRMultiplier,ATRPeriod, Interpolate,2,0);



if(Bid>=(PriceHigh);

{

SL=NormalizeDouble(Bid+StopLoss*Point,Digits);

TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);





ticket=OrderSend(Simbol(),OP_SELL,Lots,Bid,Slippage,0,0,comment,123,0,Maroon);









if(ticket>0);



{

if (OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)==true);



OrderModify(ticket,OrderOpenPrice,ST,TP,0);



}

}





if(Ask
{

ST=NormalizeDouble(Ask-StopLoss*Point,Digits);

TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);



ticket=OrderSend(Simbol(),OP_BUY,Lots,Ask,Slippage,0,0,comment,123,0,clrDarkBlue);







if(ticket>0);



{

if (OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)==true);



OrderModify(ticket,OrderOpenPrice,ST,TP,0);



}

return(0);



}



int CountSell()

{

int count=0;

for(int trede=OrdersTotal()-1;tred>=0;tread--)

{

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Megic)

{

if (OrderType()==OP_SELL)count==;

}

}

return(count);

}





int CountBuy()

{

int count=0;

for(int trede=OrdersTotal()-1;tred>=0;tread--)

{

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Megic)

{

if (OrderType()==OP_BUY)count==;

}

}

return(count);

}

Изменено пользователем Pavel888
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано
tchumachenkovlad внимательно посчитай скобки, сам. Это посильная задача, Вы справитесь. ;)
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано (изменено)

анкт' - необъявленный идентификатор test3.mq4 и 84 13
ST=NormalizeDouble(Ask-StopLoss*Point,Digits); и на той же строке
возможная потеря данных из-за преобразования типов test3.mq4
подскажите как исправить

Спойлер


extern string TMA="Параметры";
extern int TakeProfit =100;
extern int StopLoss =50;
extern int Megic = 123;
extern double Lots = 0.01;
extern int Slippage =5;
extern string TimeFrame = "current time frame";
extern int HalfLength = 56;
extern int Price = PRICE_CLOSE;
extern double ATRMultiplier = 2.0;
extern int ATRPeriod = 100;
extern bool Interpolate = true;

double PriceHigh,PriceLow,SL,TP;
int ticket;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{

if(Digits==3 || Digits==5)
{

TakeProfit*=10;
StopLoss*=10;
Slippage*=10;
}

return(INIT_SUCCEEDED);

}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+

//---

//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
PriceHigh=iCustom(NULL,0,"TMA_Fair",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,1,0);
PriceLow=iCustom(NULL,0,"TMA_Fair",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,2,0);

if(CountBuy()==0 && Ask
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"tma",Megic,0,Blue);
if(ticket>0)
{
TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
ST=NormalizeDouble(Ask-StopLoss*Point,Digits);

if(OrderSelect(ticket,SELECT_BY_TICKET))

if( OrderModify(ticket,OrderOpenPrice(),ST,TP,0))
Print("Ошибка");
}

}

if(CountSell()==0 && Bid>=PriceHigh)

{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"tma",Megic,0,Red);
if(ticket>0)
{
ST=NormalizeDouble(Bid+StopLoss*Point,Digits);
TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);

if(OrderSelect(ticket,SELECT_BY_TICKET))

if( OrderModify(ticket,OrderOpenPrice(),ST,TP,0))
Print("Ошибка");
}
}
}
//+------------------------------------------------------------------+
int CountSell()
{
int count=0;
for(int trede=OrdersTotal()-1;trede>=0;trede--)
{
if(OrderSelect(trede,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic && OrderType()==OP_SELL)

count++;

}
}
return(count);
}

int CountBuy()
{
int count=0;
for(int trede=OrdersTotal()-1;trede>=0;trede--)
{
if(OrderSelect(trede,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic && OrderType()==OP_BUY)

count++;

}
}

return(count);
}
//+------------------------------------------------------------------+

Изменено пользователем Pavel888
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано


анкт' - необъявленный идентификатор test3.mq4 и 84 13
ST=NormalizeDouble(Ask-StopLoss*Point,Digits); и на той же строке
возможная потеря данных из-за преобразования типов test3.mq4
подскажите как исправить

1. необъявленный идентификатор - удали или объяви. в 84 строке
2. ST=NormalizeDouble(Ask-StopLoss*Point,Digits); может не ST а SL?
3. не надо вставлять код в сообщения, прикрепи файлом. Не знаешь как? - почитай как пользоваться форумом.
4. эта тема о тестах, чужие коды разбирают в теме "Обучение языку", а здесь оффтоп.
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

  • 2 months later...
Тестирование советников - тема для программистов Опубликовано

Такс... Начнём по порядку...
1. Открываю MT4 (971-й билд), перехожу по ссылке для скачки скрипта, тот успешно скачивается. Далее я открываю график пары EURUSD H1, кидаю на него скрипт, и вижу "задницу" (см. "Error 1" во вложении). Пробовал откатывать на 950-й билд - тоже самое. Махинации с настройками тоже ни к чему не привели. В итоге я решил пойти по сложному пути, который расписан в нулевом посте темы.
2. Скачал заветный архив "Download_Calendar", распаковал, запускаю файл "EconomicEventsDownloader_v5.1.jar", и вижу "задницу 2.0" (см. "Error 2" во вложении).
До этого я данным скриптом / методом не пользовался. За сим хочу спросить: это у меня руки из одного места растут или всё-таки имеют место быть какие-то изменения со стороны ForexFactory / MetaQuotes ?

Error_1.png
Error_2.png

Ссылка на сообщение
Поделиться на другие сайты

  • 1 month later...
Тестирование советников - тема для программистов Опубликовано

как можно получить количество прибыльных сделок на каждый проход при оптимизации? например, общая прибыль и прибыльность - наибольшая, а при прогоне вручную - оказывается, что кол-во прибыльных сделок, предположим, 50%-60%, хотя проход с худшими показателями доходности - показывает 70%. и есть ли какой-нибудь баланс между прибыльностью и количеством прибыльных сделок, который стоит соблюдать?

Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано
Спойлер


Такс... Начнём по порядку...
1. Открываю MT4 (971-й билд), перехожу по ссылке для скачки скрипта, тот успешно скачивается. Далее я открываю график пары EURUSD H1, кидаю на него скрипт, и вижу "задницу" (см. "Error 1" во вложении). Пробовал откатывать на 950-й билд - тоже самое. Махинации с настройками тоже ни к чему не привели. В итоге я решил пойти по сложному пути, который расписан в нулевом посте темы.
2. Скачал заветный архив "Download_Calendar", распаковал, запускаю файл "EconomicEventsDownloader_v5.1.jar", и вижу "задницу 2.0" (см. "Error 2" во вложении).
До этого я данным скриптом / методом не пользовался. За сим хочу спросить: это у меня руки из одного места растут или всё-таки имеют место быть какие-то изменения со стороны ForexFactory / MetaQuotes ?



1. Сделайте в МТ4 настройки как на картинке. Эта картинка есть в описании скрипта на mql5 сайте.

2. Сайт forexfactory поменял свою структуру, поэтому старые парсинги качалки не работают.

forexfactory-download-news-in-file-screen-8968_1.png

Ссылка на сообщение
Поделиться на другие сайты

  • 1 month later...
Тестирование советников - тема для программистов Опубликовано

Здравствуйте!
Подскажите, а есть способы тестировать в тестере советники полуавтоматы которые подхватывают выставленные вручную ордера? Собственно можно ли руками выставлять ордера в тестере когда в тесте такой советник?

Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано


Здравствуйте!
Подскажите, а есть способы тестировать в тестере советники полуавтоматы которые подхватывают выставленные вручную ордера? Собственно можно ли руками выставлять ордера в тестере когда в тесте такой советник?


Ну вот как вариант можно это реализовать при помощи вспомогательного советника, который запущен на любом графике терминала. Этот советник в режиме реального времени собирает информацию об открываемых вручную ордерах, и сохраняет её в глобальных переменных терминала, либо в текстовый файл. А советник в тестере стратегий во время теста постоянно мониторит изменения в глобальных переменных терминала или в текстовом файле, и открывает соответствующие ордера как только там появляется информация об открытии ручной сделки.
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано

Спасибо конечно, но я, увы не программист. :(

Ссылка на сообщение
Поделиться на другие сайты

  • 2 weeks later...
Тестирование советников - тема для программистов Опубликовано

Здравствуйте.
Я так понимаю, разработчики ничего не будут прикручивать в МТ4 в части форвард-тестирования.
Я предлагаю трудоемкий (в смысле времязатратный), но механический способ:
Делаем первый прогон, допустим за год. Получаем условно 3 000 вариантов.
Результаты в таблицу, при этом фильтруем подходящие результаты. Осталось 300.
Делаем второй прогон на другом диапазоне с ТОЧНО ТАКИМИ ЖЕ вариантами оптимизируемых параметров.
Результаты в таблицу, при этом фильтруем подходящие результаты. Получаем те же 3000/300 вариантов.
Далее "скрещиваем" полученные фильтрованные таблицы (по совпадению величины оптимизируемых параметров)
Как правило, в зависимости от жесткости первичной фильтрации получается 20-50 конечных сетов, которые уже можно гонять вручную.
Во вложении пример результирующей таблицы по двум прогонам. Фильтровал по коэффициенту восстановления.
Минус подхода -это двойные затраты времени на оптимизацию. Зато не надо вручную гонять результаты первого прогона.
Прошу покритиковать...
п.с. сделал пока для себя "на коленке" на Access, попутные плюшки- хранение всех результатов, генерирование сет-файлов, можно много чего еще прикрутить. Если будет интересно, выложу.

Пример.xls

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано


Прошу покритиковать...
п.с. сделал пока для себя "на коленке" на Access, попутные плюшки- хранение всех результатов, генерирование сет-файлов, можно много чего еще прикрутить. Если будет интересно, выложу.


Зачем критиковать :) Мысль вполне рабочая и применимая, и применяемая ;;)

Дааа... трудозатраты :(
Хотя бы сохранение и загрузку параметров разработчики сделали, уж про редактирование
и не говорю, и то было бы дело.
Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано

Всем привет на днях мне прислали интересный советник из бугра, но накрылся комп не могли бы помочь провести тестирование и возможно подобрать сеты (два у меня есть).

Заранее спасибо.

TZ1.72.ex4
TZ2_EU.set
TZ2_GU.set

Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано

Всем привет на днях мне прислали интересный советник из бугра, но накрылся комп не могли бы помочь провести тестирование и возможно подобрать сеты (два у меня есть).

Заранее спасибо.

TZ1.72.ex4
TZ2_EU.set
TZ2_GU.set

Ссылка на сообщение
Поделиться на другие сайты

Тестирование советников - тема для программистов Опубликовано

какие инструменты тестировать?
на каких ТФ должен работать?
добавляйте уточняющую информацию, кроме советника...
в идеале еще и принцип работы

Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...