Демонстрация кластерного подхода к рынку... - страница 4

 
ssd >>:

Условие для открытия позиции вверх:

if (Ind_0 > 0 && Ind_1 < 0)

Условие для закрытия открытой вверх позиции:

if (Ind_0 <= 0)

Условие для открытия позиции вниз:

if (Ind_0 < 0 && Ind_1 > 0)

Условие для закрытия открытой вниз позиции:

if (Ind_0 >= 0)

Условия спорны и не опираются на статистику: для открытия лонга не достаточно иметь просто положительный знак индекса первой валюты и отрицательный - второй валюты. Будет слишком много ложных входов.

Кроме того, непонятно, почему для закрытия открытой позы достаточно учитывать знак индекса только одной валюты.

И sab1uk тоже верно подметил, что синтетические кроссы на мелких ТФ будут серьезно отличаться от реальных.

P.S. Я еще не смотрел на код, но сам пытаюсь сделать нечто подобное. Кажется, подход Семеныча в корне другой, т.к. он предлагает открываться на отбой, а не на пробой, как здесь?

 

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


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

 
Mathemat >>:

Условия спорны и не опираются на статистику: для открытия лонга не достаточно иметь просто положительный знак индекса первой валюты и отрицательный - второй валюты. Будет слишком много ложных входов.

Кроме того, непонятно, почему для закрытия открытой позы достаточно учитывать знак индекса только одной валюты.

И sab1uk тоже верно подметил, что синтетические кроссы на мелких ТФ будут серьезно отличаться от реальных.

P.S. Я еще не смотрел на код, но сам пытаюсь сделать нечто подобное. Кажется, подход Семеныча в корне другой, т.к. он предлагает открываться на отбой, а не на пробой, как здесь?

CL1i - этот индикатор показывает разность между "кластерными ценами" базовой и котировочной валюты инструмента, на котором он запущен.

Таким образом,

Ind_0 - это разность между "кластерными ценами" базовой и котировочной валюты инструмента на баре номер 0 - текущий бар

Ind_1 - это разность между "кластерными ценами" базовой и котировочной валюты инструмента на баре номер 1 - первый прошедший бар


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


Уверяю ВАс, у Семен Семеныча такая же система открытия/закрытия поз.

 
sab1uk >>:

на минутных таймфреймах синтетические пары будут иметь расхождения с натуральными

Пробовал использовать все доступные "натуральные" инструменты (с моделирование через кроссы только отсутствующего инструмента GBPNZD),

однако, нагрузка на компьютер была такова, что практически работать было невозможно.

 

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

Аа, вон оно что. Спасибо, ssd.

однако, нагрузка на компьютер была такова, что практически работать было невозможно.

Ну почему же, работать можно. Фишка в объеме загруженной истории. Ее ж особо много-то и не требуется. А вычисления там совсем простенькие, даже одноядерник потянет. Ну, конечно, если не будешь на каждом тике вычислять.

Но у меня все-таки не настолько мутный критерий входа. Если интересно -- обращайся в личку, обсудим.

 
ssd писал(а) >>

Пробовал использовать все доступные "натуральные" инструменты (с моделирование через кроссы только отсутствующего инструмента GBPNZD),

однако, нагрузка на компьютер была такова, что практически работать было невозможно.

применение циклических буферов для расчетов сокращает нагрузку

 
Mathemat >>:

Аа, вон оно что. Спасибо, ssd.

Ну почему же, работать можно. Фишка в объеме загруженной истории. Ее ж особо много-то и не требуется. Куда тебе минутки за несколько лет с такой системой?

Все правильно, длинная история при таком подходе, вроде как, и не нужна.

Однако, частота появления "ошибки" - ERR_HISTORY_WILL_UPDATED 4066 была такова, что появлялась неуверенность в показаниях индикатора.

Иными словами, нагрузка на комп. собственно, небольшая, время ожидания подкачки инструментов тормозило всю работу.

Держать же открытыми все 28 инструментов очень неудобно.

 

Вот ветка, в которой разработчики дали рекомендации, как с ней бороться. И не надо все инструменты открытыми держать. Достаточно, чтобы они были в Market Watch.

Еще раз: не нужно считать все на каждом тике. Это избыточно для данной системы. Вполне достаточно обращаться к вычислениям, скажем, раз в минуту. Но при этом еще желательно почаще просто обращаться к каждому инструменту - скажем, просто по iClose().

 
Mathemat >>:

Вот ветка, в которой разработчики дали рекомендации, как с ней бороться.

Да, то что надо ! Спасибо, гляну.

 
ssd >>:

Пробовал использовать все доступные "натуральные" инструменты (с моделирование через кроссы только отсутствующего инструмента GBPNZD),

однако, нагрузка на компьютер была такова, что практически работать было невозможно.

Та же проблема была. Ушло три года на оптимизацию.

Теперь за 5 секунд считает то, что раньше 5 минут занимало.

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