Aqui está em Si compilado por http://www.moex.com/ru/contract.aspx?code=Si-12.17
Ano/Quarto | 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 |
Qual é a melhor maneira de excluir essas datas?
- www.moex.com
Implementado desta forma
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] ); } //+------------------------------------------------------------------+
Existe uma maneira mais inteligente?
Para testar a EA, precisamos nos livrar das costuras nas colas de futuros, particularmente nas de Si.
Como posso saber as datas dos pontos para eliminá-los?
A idéia é o dia de expiração - mas onde está a lista de todos os dias de expiração? Talvez haja uma maneira programática de encontrar isto, portanto não preciso coletar informações.
Por que adivinhar?
A partir da data atual, você pode obter o nome dos futuros mais líquidos para o instrumento e o próximo seguinte. E comparar as barras da cola e estes dois futuros. Assim, você entenderá onde fazem a transição e de acordo com que algoritmo.
Por que adivinhar?
A partir da data atual, você pode obter o nome dos futuros mais líquidos no instrumento e aquele que o segue. E comparar as barras da cola e estes dois futuros. Desta forma, você entenderá onde eles estão mudando e por qual algoritmo.
Eu não entendo sua lógica.
Não estou sugerindo adivinhar - eu coletei as datas de validade no Si.
Eu não entendo sua lógica...
Não estou sugerindo adivinhar - recolhi as datas de validade no Si.
A propósito, nas propriedades do símbolo está o último dia de circulação. Isto pode ser acessado a partir da EA.
existe, mas é inútil para descartar emendas de cola
Por exemplo, o atual Si-9.17 é 21.09.2017
e é melhor excluir não apenas o 15º, mas também o 16º, imho
Implementado desta forma
Talvez haja uma maneira mais racional?
Suponho que você poderia simplesmente excluir o 14º ao 17º do 3º, 6º, 9º e 12º mês
Onde estão as informações de que a colagem está no último dia? Até onde eu entendo você pensa (ou sabe) que até certo ponto no tempo a cola é composta de um futuro e depois de outro. E se não for o caso? De onde vem esta informação?
A pilha consiste em diferentes futuros. Sobre o último dia - uma observação, incluindo o gráfico, mostra-o. Mas isto é na Otkritie broker, outros podem ser diferentes.
A propósito, há um último dia de circulação nas propriedades dos símbolos. Ele pode ser acessado a partir da EA.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Para testar a EA, precisamos nos livrar das costuras nas colas de futuros, particularmente nas de Si.
Como posso saber as datas dos pontos para eliminá-los?
A idéia é o dia de expiração - mas onde está a lista de todos os dias de expiração? Talvez haja uma maneira de descobrir a data de expiração sem ter que coletar informações?