Vinculación de los futuros: encontrar las costuras

 

Para probar el EA, tenemos que deshacernos de las costuras de las colas de los futuros, sobre todo en el Si.

¿Cómo puedo saber las fechas de los puntos para eliminarlos?

La idea es el día de vencimiento, pero ¿dónde está la lista de todos los días de vencimiento? ¿Tal vez haya una forma de averiguar la fecha de caducidad sin tener que recopilar información?


 

Aquí está el Si recopilado por http://www.moex.com/ru/contract.aspx?code=Si-12.17

Año/trimestre36912
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


¿Cuál es la mejor manera de excluir estas fechas?

Московская Биржа - Основные параметры срочного контракта
  • www.moex.com
Код контракта Цена Изменение, % Объем, ₽ Объем, контр. Откр. позиции Изменение Расчетная цена Исполнение Открытые позиции * Физические лица Юридические лица Итого Длинные Короткие Длинные Короткие Итоги торгов
 

Implementado de esta manera


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] );
  }
//+------------------------------------------------------------------+

¿Hay una forma más inteligente?

 
Aleksey Vyazmikin:

Para probar el EA, tenemos que deshacernos de las costuras de las colas de los futuros, sobre todo en el Si.

¿Cómo puedo saber las fechas de los puntos para eliminarlos?

La idea es el día de vencimiento, pero ¿dónde está la lista de todos los días de vencimiento? Tal vez haya una forma programática de encontrar esto, de modo que no tenga que reunir información.


¿Por qué adivinar?

A partir de la fecha actual, puede obtener el nombre de los futuros más líquidos para el instrumento y el siguiente. Y compara las barras de la cola y estos dos futuros. De este modo, entenderás dónde hacen la transición y según qué algoritmo.

 
pivomoe:

¿Por qué adivinar?

A partir de la fecha actual, puede obtener el nombre de los futuros más líquidos del instrumento y del que le sigue. Y compara las barras de la cola y estos dos futuros. De este modo, entenderás dónde hacen la transición y según qué algoritmo.

No entiendo su lógica.

No estoy sugiriendo que se adivine - recogí las fechas de caducidad en Si.


 
Aleksey Vyazmikin:

No entiendo su lógica...

No estoy sugiriendo que se adivine - he recogido las fechas de caducidad en Si.


¿De dónde sacas la información de que el encolado se produce el último día de la circulación? Entiendo que usted piensa (o sabe) que el pegamento se compone de un futuro y luego del otro. ¿Y si no es así? ¿De dónde procede esta información?
 
Por cierto, hay un último día de circulación en las propiedades de los símbolos. Se puede acceder a él desde el asesor.
 
pivomoe:
Por cierto, en las propiedades del símbolo está el último día de circulación. Se puede acceder a ella desde la EA.

lo hay, pero es inútil para descartar los empalmes de cola

Por ejemplo, el Si-9.17 actual es el 21.09.2017


y es mejor excluir no sólo el 15, sino también el 16, imho

 
Aleksey Vyazmikin:

Implementado de esta manera


¿Quizás haya una forma más racional?


Supongo que podría excluir los días 14 a 17 de los meses 3, 6, 9 y 12

 
pivomoe:
¿Dónde está la información de que el encolado es el último día? Por lo que tengo entendido piensas (o sabes) que hasta cierto punto la cola se compone de unos futuros y luego de otros. ¿Y si no es así? ¿De dónde procede esta información?

La pila consiste en diferentes futuros. Sobre el último día - una observación, incluyendo el gráfico lo muestra. Pero esto es en Otkritie broker, otros pueden ser diferentes.

 
pivomoe:
Por cierto, hay un último día de circulación en las propiedades de los símbolos. Se puede acceder a él desde la EA.

Cómo encontrar futuros antiguos - no están en las herramientas.
Razón de la queja: