Вот по Si собрал http://www.moex.com/ru/contract.aspx?code=Si-12.17
Год/Квартал | 3 | 6 | 9 | 12 |
---|---|---|---|---|
2012 | 15.03.2012 | 15.06.2012 | 17.09.2012 | 17.12.2012 |
2013 | 15.03.2013 | 17.06.2013 | 16.09.2013 | 16.12.2013 |
2014 | 17.03.2014 | 16.06.2014 | 15.09.2014 | 15.12.2014 |
2015 | 16.03.2015 | 15.06.2015 | 15.09.2015 | 15.12.2015 |
2016 | 15.03.2016 | 15.06.2016 | 15.09.2016 | 15.12.2016 |
2017 | 16.03.2017 | 15.06.2017 | 21.09.2017 | 21.12.2017 |
Как лучше исключать эти даты?
- www.moex.com
Реализовал так
void OnTick() { //--Исключаем экспирацию по Si if(Symbol()=="Si Splice") { datetime Open_timeExp=iTime(_Symbol,0,0); MqlDateTime strExp; TimeToStruct(Open_timeExp,strExp); strExp.hour=0; strExp.min=0; strExp.sec=0; for(int i=0;i<23; i++) { if(StructToTime(strExp)==StringToTime(ExpSi(i))) { BuyNow=false; SellNow=false; break; } } } } ////// //+------------------------------------------------------------------+ //|Массив с датами экспирации опциона Si | //+------------------------------------------------------------------+ string ExpSi(int i) { string Exp[24]= { "15.03.2012 0:00", "15.03.2013 0:00", "17.03.2014 0:00", "16.03.2015 0:00", "15.03.2016 0:00", "16.03.2017 0:00", "15.06.2012 0:00", "17.06.2013 0:00", "16.06.2014 0:00", "15.06.2015 0:00", "15.06.2016 0:00", "15.06.2017 0:00", "17.09.2012 0:00", "16.09.2013 0:00", "15.09.2014 0:00", "15.09.2015 0:00", "15.09.2016 0:00", "21.09.2017 0:00", "17.12.2012 0:00", "16.12.2013 0:00", "15.12.2014 0:00", "15.12.2015 0:00", "15.12.2016 0:00", "21.12.2017 0:00" }; return (Exp[i] ); } //+------------------------------------------------------------------+
Может есть более рациональный способ?
Для тестирования советника требуется избавиться от швов на склейках фьючерсов, в частности по Si.
Как узнать даты склеек, что б их исключить?
По идеи это день экспирации - но где есть список всех дней экспирации? Может можно это как то программно нащупать, что б руками не собирать информацию?
Зачем гадать?
Из текущей даты можно получить имя самого ликвидного фьючерса по инструменту и следующего за ним. И сравнить бары у склейки и этих двух фьючерсов. Так и поймешь где они переход делают и по какому алгоритму.
Зачем гадать?
Из текущей даты можно получить имя самого ликвидного фьючерса по инструменту и следующего за ним. И сравнить бары у склейки и этих двух фьючерсов. Так и поймешь где они переход делают и по какому алгоритму.
Что-то я не понял Вашей логики...
Гадать я не предлагаю - даты экспирации собрал по Si.
Что-то я не понял Вашей логики...
Гадать я не предлагаю - даты экспирации собрал по Si.
Кстати в свойствах символа есть последний день обращения. К нему можно получить доступ из советника.
есть, но она бесполезна для исключения склеечных спайков
например у текущего Si-9.17 это 21.09.2017
и исключать лучше не только 15-е число, но и 16-е, имхо
Реализовал так
Может есть более рациональный способ?
полагаю, можно просто исключать с 14-го по 17-е числа 3-го, 6-го, 9-го и 12-го месяцев
от куда информация о том, что склейка происходит в последний день обращения ? Насколько я понял ты думаешь(или знаешь ) , что до какого то момента времени склейка состоит из одного фьючерса, а потом из другого. А если нет ? Откуда такая информация?
Склейка состоит из разных фьючерсов. Про последний день - наблюдение, в том числе на графике это видно. Но это у брокера "Открытие" у других может быть иначе.
Кстати в свойствах символа есть последний день обращения. К нему можно получить доступ из советника.
Как найти старые фьючерсы - в инструментах их нет.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Для тестирования советника требуется избавиться от швов на склейках фьючерсов, в частности по Si.
Как узнать даты склеек, что б их исключить?
По идеи это день экспирации - но где есть список всех дней экспирации? Может можно это как то программно нащупать, что б руками не собирать информацию?