Реализация машины с памятью на основе k-ближайших соседей. Подробное описание Хайкин С. «Нейронные сети: полный курс»(Методы Обучения). Оставляйте свои отзывы!
Детальнее:
Функция Euclidean_Metric – представляет собой классификатор. Функция по имеющейся базе векторов описывающих либо сделки, либо ситуации на рынке определяет принадлежность входного вектора к какой-либо группе векторов из базы. Вектора на группы разделяются в этом примере просто: Если сделка закрылась с положительным результатом то это класс 1, если с отрицательным результатом то класс 0. Поиск ближайших соседей многомерного вектора производиться при помощи евклидова расстояния. Затем просчитываем сколько из этих k-векторов принадлежат к классу 1, после чего делим это число на общее количество соседей(т.е. на k) и получаем вероятность принадлежности данного вектора к классу 1. Из-за “плохих” выбранных координат векторов мы не можем доверять полностью( просто выше 0,5 или ниже 0,5) классификации, поэтому дополнительно введено пороговое значение, т.е. если вероятность прибыльности будущей сделки выше, допустим, 0,7 то входим в рынок. В качестве измерений(координат) векторов взяты отношения мувингов, предположив что отношения стационарны и раз расклассифицировав вектора(сделки) можно будет использовать такую классификацию и на форварде. Но не всё так просто :).
Настройки:
Base - true пишем файл с базой векторов, false торгуем с классификацией. Обязательно сначала нужно протестировать эксперта с Base = true, и только потом тестировать с Base = false.
buy_threshold=0.6 порог на все Buy позиции. Если вероятность покупки выше этого порога, то эксперт покупает. Этот параметр относится к тестированию с Base = false.
sell_threshold=0.6 аналогично параметру buy_threshold.
inverse_position_open_?=true - Если вероятность сделки на покупку очень мала то значит вероятность продажи очень велика. Этот параметр позволяет открывать сделки когда возникают такие ситуации.
invers_buy_threshold=0.3 порог, когда вероятность прибыльной Buy позиции меньше то входим на Sell
invers_sell_threshold=0.3 аналогично invers_buy_threshold.