期货粘合--寻找缝隙

 

为了测试EA,我们需要摆脱期货胶水上的接缝,特别是在Si上。

我如何知道缝合的日期以消除它们?

这个想法就是到期日--但所有到期日的清单在哪里?也许有一种方法可以在不需要收集信息的情况下查出有效日期?


 

以下是由http://www.moex.com/ru/contract.aspx?code=Si-12.17 编辑的关于思的内容

年份/季度36912
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] );
  }
//+------------------------------------------------------------------+

是否有更聪明的方法?

 
Aleksey Vyazmikin:

为了测试EA,我们需要摆脱期货胶水上的接缝,特别是在Si上。

我如何知道缝合的日期以消除它们?

这个想法就是到期日--但所有到期日的清单在哪里?也许有一种程序化的方法可以找到这一点,所以我不需要收集信息。


为什么要猜?

从当前日期开始,你可以得到该工具的流动性最强的期货名称,以及接下来的期货。并比较胶水和这两个期货的条形图。这样你就会明白他们在哪里进行过渡,根据什么算法。

 
pivomoe:

为什么要猜?

从当前日期开始,你可以得到该工具上流动性最强的期货的名称,以及紧随其后的一个。并比较胶水和这两个期货的条形图。这样你就会明白他们在哪里发生了变化,以及通过什么算法。

我不明白你的逻辑。

我不建议猜测--我收集了斯的有效日期。


 
Aleksey Vyazmikin:

我不明白你的逻辑...

我不是在建议猜测--我已经收集了Si上的有效日期。


你从哪里得到的信息是,涂胶发生在流通的最后一天?我理解你认为(或知道),胶水是由一个期货组成的,然后是另一个。如果它不这样做呢?这些信息从何而来?
 
顺便说一下,在符号属性 中,有一个最后的流通日。它可以从顾问那里获得。
 
pivomoe:
顺便说一下,在该符号的属性 中,是流通的最后一天。这可以从EA获取。

有,但它对排除胶水接缝没有用。

例如,目前的Si-9.17是21.09.2017


而且最好不仅不包括第15条,而且也不包括第16条,我认为

 
Aleksey Vyazmikin:

以这种方式实施


也许有一个更合理的方法?


我想你可以把第3、第6、第9和第12个月的第14至第17天排除在外。

 
pivomoe:
哪里有信息说涂胶是在最后一天?据我了解,你认为(或知道)到某一时间点,胶水是由一种期货组成的,然后是另一种。如果它不这样做呢?这些信息从何而来?

堆栈由不同的期货组成。 关于最后一天--一个观察,包括图表显示。但这是在Otkritie经纪公司,其他人可能有所不同。

 
pivomoe:
顺便说一下,在符号属性 中,有一个最后的流通日。它可以从EA访问。

如何找到旧期货--它们不在工具中。