Скальпинг в классическом арбитраже - страница 6

 
Алексей Тарабанов #:

Нет, имеется в виду, что шорты запрещены. Новости читайте. 

В примере, который Вы комментируете я продавал своё (то что ранее купил).

 
Andrey Miguzov #:

В примере, который Вы комментируете я продавал своё (то что ранее купил).

Значит, под раздачу попали. 

 
Алексей Тарабанов #:

Значит, под раздачу попали. 

Я там чуть ниже расписал, в чем проблема была

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Скальпинг в классическом арбитраже

Andrey Miguzov, 2022.04.20 11:53


С ошибкой сам разобрался:

1) брокер по ночам синхронизирует счёт.

2) Вот в этот раз синхронизировалось криво - все позиции стали отображаться в терминале в объеме в ДВА раза больше реального (o_0)

3) Эксперт на старте начал проверять, что объемы по акции и фьючерсу равны - увидел, что не равны и отправил приказ на их закрытие. А т.к. объем закрытия был в 2 раза больше реального - сервер вернул ошибку, что у меня столько нет.

 
Andrey Miguzov #:

Я там чуть ниже расписал, в чем проблема была

Там не было проблемы. 

 

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

Я так понял поставили автоматическую синхронизацию на ~6:10. В логах выгядит как-то так.

То что выделено цветом - раньше происходило только по звонку в тех.поддержку. Если у кого-то не так - просите включить автоматическую синхронизацию по утрам.

 

Промежуточные интересные (и возможно для кого-то банальные :) ) результаты торговли и тестов.

1) Стратегия дает значительно(~20-30%) больший доход, если для входа и выхода учитывать не только значение базиса (цена фьючерса минус цена акции с учетом размера контракта) в момент прихода цен, но и добавить требование о необходимости нахождения базиса выше/ниже уровня входа/выхода на протяжении 2-5 сек (время задержки на вход/выход). Увеличение прибыли связано с ОЧЕНЬ сильным уменьшением проскальзывания по цене. При исполнении >100 мс - есть смысл вводить такую задержку. При меньшем времени исполнения (~10 мс) - прибыль больше без задержки, но детально границу по времени исполнения не выяснял.

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

2) Одновременное тестирование на 66 символах (33 пары) занимает очень продолжительное время. Но сама возможность штатно и практически достоверно протестировать по реальным тикам очень радует. Естественно, тестирование возможно только в том случае, если ТС сама не ставит свои лимитные ордера внутрь спреда, а работает с той ликвидностью, какая есть.

+ в ТС необходимо жестко (и лучше с запасом в пару сек.) задавать время торговли и время клиринга. Иначе сделки будут заключаться по виртуальным ценам.

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

+ к сожалению, в тестере нет истории стакана. Соответственно вход и выход осуществляется по ask и bid, на которых в реальности наблюдаются крайне малые объемы. Если входить не минимальными размерами контрактов - разница иногда критическая. К счастью по таким символам сделок не много.

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

3) На мало-ликвидных инструментах в онлайн наблюдается очень редкий поток тиков и событий "новый стакан". При наличии задержки на вход и выход (то, что описывал в п.1) приходится работать по таймеру.

4) Дивиденды пока прикручивать не стал, т.к. ситуация с ними сейчас очень сложная.

То, что происходило сегодня на рынке по сберу (п/а) -это практически 100% уверенность рынка, что дивов в мае не будет, хотя официальных новостей я пока не видел.

Соответственно, при учете дивов в стратегии, есть высокая вероятность во время входа думать, что мы в хорошем контанго, а по факту это получится  - бэквордация.

 

Вообще, данная стратегия не является безрисковой, как изначально я думал (наивный). Данная стратегия торгует неопределенность будущей % ставки и размеров/наличия дивидендов. Самый жир - это неопределенность по дивам. Если входить, когда базис (без учета дивидендов) близок к максимуму, а выходить внизу, это прям хороший +. Но можно и попасть - входил на максимуме базиса, а это был не максимум :) И придется сидеть почти до экспирации. Главное в таком случае - диверсификация. Я в итоге на 5 кусков поделил то, что есть. Вот 1 кусок по сберу походу завис :)

 
Andrey Miguzov #:


3) На мало-ликвидных инструментах в онлайн наблюдается очень редкий поток тиков и событий "новый стакан". При наличии задержки на вход и выход (то, что описывал в п.1) приходится работать по таймеру.


//+------------------------------------------------------------------+
//| Expert On book function                                          |
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
{
  if((symbol == fut_name) || (symbol == spot_name))
  {
    if(CheckTradingTime() == false) return;
    if(divs_val > 0.0)  CheckDivsData();
    ProcessTrade();
  }
}

Дарю.

Отрабатывается любое изменение обоих стаканов.

Если нет изменений, то и делать нечего :)

 
Andrey Miguzov #:

 

Вообще, данная стратегия не является безрисковой, как изначально я думал (наивный). Данная стратегия торгует неопределенность будущей % ставки и размеров/наличия дивидендов. Самый жир - это неопределенность по дивам. Если входить, когда базис (без учета дивидендов) близок к максимуму, а выходить внизу, это прям хороший +. Но можно и попасть - входил на максимуме базиса, а это был не максимум :) И придется сидеть почти до экспирации. Главное в таком случае - диверсификация. Я в итоге на 5 кусков поделил то, что есть. Вот 1 кусок по сберу походу завис :)

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

Заработок будет микромизерный, но будет.

Добавлено

Все станет на "свои места", когда Вы научитесь соизмерять базис с учетом комиссий, к процентной ставке ЦБ. 

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

 
prostotrader #:

Все станет на "свои места", когда Вы научитесь соизмерять базис с учетом комиссий, к процентной ставке ЦБ. 

Отсекать торговлю по инструментам с низкой текущей процентной ставкой, т.к. она может отрасти в результате отмены/переноса выплат по дивидендам?

Протестирую и этот вариант, но это сильно сократит список торгуемых пар. Прибыльность думаю упадет. Отпишусь потом... 

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

Где лучше дивиденды "смотреть"? Я вот этих ребят давно читаю (в телеграмме подписан). Но может что-то лучше есть?

 
prostotrader #:

Если нет изменений, то и делать нечего :)

Я тоже так думал, а сейчас переделал под таймер. 

Раньше в OnBookEvent:

1) пришли котировки

2) посчитали базис/ставку

3) Если условия по цене выполнены -  входим в позицию иначе завершаемся.

Как итог - из-за "лошадиного" времени открытия позиций (100-150 мс) имею сильные проскальзывания по цене.


Теперь в OnTimer c шагом 200-500 мс:

1) посмотрел котировки;

2) посчитали базис/ставку;

3) Если условия по цене выполнены - запоминаем время иначе время "обнуляем";

4) Если цена на протяжении 2-5 с (пока не определил сколько лучше) находится в нужной нам зоне -  входим в позицию.

Второй вариант тестируется сильно прибыльнее чем первый. Желтым выделил время задержки на вход и выход в с. Первая строка без задержек  - сразу вход. Вторая строка - задержка 2 с. Естественно - в тестере задано время исполнения 150 мс.


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