Советники: Классификатор на основе k-ближайших соседей.

 

Классификатор на основе k-ближайших соседей.:

В данном эксперте рассмотрен пример использования классификатора. Может быть применён к любой другой стратегии.

Author: Артём

 

Hi StatBars, thanks for sharing this code. This is one of the most impressive EA that I've seen, you have done an excellent job. I've made some optimization after few hours. The results are here.

 

+) Интересный подход.

 
FION:

+) Интересный подход.

Да, мне тоже понравилось когда прочитал в книжке, кстати удивлён был почему у всех на слуху были сети, коды всевозможных сетей на мкл есть, а такой простой и в тоже время эфективной k-NN нету...

 

Оч. интересно. Неплох на Out-of-Sample, имеет неплохой начальный импульс после "обучения". Вообщем отличная пища для размышления и стапель для дальнейших эксперементов. Спасибо.

 
Galaxy:

Оч. интересно. Неплох на Out-of-Sample, имеет неплохой начальный импульс после "обучения". Вообщем отличная пища для размышления и стапель для дальнейших эксперементов. Спасибо.


Присоединяюсь!

После своих экспериментов отпишу, конечно,если лучше станет:-)

 
StatBars:

Да, мне тоже понравилось когда прочитал в книжке, кстати удивлён был почему у всех на слуху были сети, коды всевозможных сетей на мкл есть, а такой простой и в тоже время эфективной k-NN нету...

Структура весьма чуствительна к точности работы основного фильтра, имею введу MACD, схема формирования векторов для классификатора не совсем ясна. Можете дать ссылочку на литературу?

 

Присоеденяюсь...

...по сетям литературы завались..., а вот классификаторы..., может таки дадите ссылку на использованную литературу и поясните принцип формирования векторов.

 

...в инете кое что нарыл, но в основном теория http://www.intuit.ru/department/database/datamining/10/datamining_10.html

...так, для общего понимания.

 
FION:
StatBars:

Да, мне тоже понравилось когда прочитал в книжке, кстати удивлён был почему у всех на слуху были сети, коды всевозможных сетей на мкл есть, а такой простой и в тоже время эфективной k-NN нету...

Структура весьма чуствительна к точности работы основного фильтра, имею введу MACD, схема формирования векторов для классификатора не совсем ясна. Можете дать ссылочку на литературу?

Вот ссылка. Но основной источник, а точнее то что по ссылке я увидел позднее, это Хайкин С. «Нейронные сети: полный курс»(Методы Обучения).

Что неонятно в формировании векторов? Как именно это происходит в этом эксперте или общие принципы?

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

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

Теперь у нас есть база векторов, где все вектора помечены 0/1, координаты этого вектора отношения мувингов.

Теперь заново бежим по истории, уже когда флажок Base=false.

Как только MACD даёт сигнал на покупку заполняем вектор также как и раньше в том же порядке и т.д.

вот фрагмент

veсtor[0]=iMA(Symbol(),Period(),89,0,0,5,1)/iMA(Symbol(),Period(),144,0,0,5,1);
veсtor[1]=iMA(Symbol(),Period(),144,0,0,5,1)/iMA(Symbol(),Period(),233,0,0,5,1);
veсtor[2]=iMA(Symbol(),Period(),21,0,0,5,1)/iMA(Symbol(),Period(),89,0,0,5,1);
veсtor[3]=iMA(Symbol(),Period(),55,0,0,5,1)/iMA(Symbol(),Period(),89,0,0,5,1);
veсtor[4]=iMA(Symbol(),Period(),2,0,0,5,1)/iMA(Symbol(),Period(),55,0,0,5,1);

После чего Этот вектор который, как видите, не имеет метки 0/1 посылаем в базу для определения его метки(его класса).

Prob_win=Euclidean_Metric(base_buy,veсtor,numbers_of_vectors_buy);

base_buy - база векторов buy позиций, я специально разделил короткие и длинные позиции, нельзя мешать всё в кучу.

veсtor - текущий вектор

numbers_of_vectors_buy - количество векторов в базе

Функция возвращает вероятность принадлежности этого вектора к классу 1(выигрышной).

Есть одно но, т.к. базу составляем по истории сделок то в ближайших соседях всегда будет 1 вектор равный тому который мы сейчас подаём, но на OOS такого вектора не будет, отчасти поэтому внутри обучающей выборки хорошие результаты.

 

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

Просто данный брались однообразные( все координаты примерно в одном интервале) поэтому нет...

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