Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
string newFutures(conststring aSymbol, int month = 3) // Сюда можно вставить и 1 и 6
{
MqlDateTime mqlDateTime;
TimeToStruct(SymbolInfoInteger(aSymbol, SYMBOL_EXPIRATION_TIME)+month*PeriodSeconds(PERIOD_MN1), mqlDateTime);// Получилось время экспирации следующего фьючерса
string symb = StringSubstr(aSymbol, 0, StringFind(_Symbol, "-")+1);
return(symb+(string)(mqlDateTime.mon)+"."+(string)(mqlDateTime.year%1000));
}
Cкрипт с тремя независимыми функциями для определения текущего (ближайшего) фьючерса рынка FORTS. В параметрах вводится короткое наименование фьючерса, например br (можно мелким шрифтом). На выходе полное...
还有一个选项,是关于铜的(似乎有2和5)。
所有其他期货都是3个月或1个月。
你可以自动替代一个月。
好吧,如果是这样的话,也许最好是采取
并从该日期拉出一个年和月+3(1)。
或者把这个日期粘在一个结构中,然后从那里取月和年。然后把人物的名字 粘在一起。我现在要试试这个结构。
我喜欢它通过结构变成的方式...
我喜欢它通过结构工作的方式...
现在试着做期货 XXX-12.20
这应该算作XXXX-3.21
由以下人员添加
然后尝试一下,如果你想要的不是下一个期货,而是通过期货(NtxFutMonth = 6)。
现在试着做期货 XXX-12.20
你应该得到XXXX-3.21。
哦!对了。这是下一阶段的工作。我就完成它。
哦!对了。这是下一步的工作。我马上去办。
:)
这有什么意义?我给你的函数已经工作了多年...
现在试着做期货 XXX-12.20
这将是XXXX-3.21
添加
然后尝试一下,如果你想要的不是下一个期货,而是通过期货(NtxFutMonth = 6)。
有些东西出来得太容易了。请看一下。
我有。
newFutures("RTS-12.19")
带回了RTS-3.20:)
这有什么意义?我给你的函数已经工作了多年...
我问是因为我认为有一个简单的选择。我一点也不怀疑你的功能,但从我的角度来看,它比我做的要复杂一些。
好的,没问题。
看跌NtxFutMonth=6,期货XXXX-12.20
好的,没问题。
看跌NtxFutMonth=6,期货XXXX-12.20
把它放在RTS-12.19上。
并得到了RTS-6.20。
我只是担心我错过了一些微妙的东西。这就是为什么我要求你检查。
把它放在RTS-12.19上
并得到了RTS-6.20
我只是担心我错过了一些微妙的东西。这就是为什么我要求你检查。
试试 这个。