Обсуждение статьи "Пример разработки спредовой стратегии на фьючерсах Московской биржи" - страница 4

 

Не очень удачно выбран пример Si - RTS, так как RTS не пропорционально зависит от Si,

большое влияние на RTS может оказывать MIX(MXI), ведь RTS - отражение индекса ММВБ в валюте. 

Гораздо интереснее рассмотреть SBRF  - SBPR разные фьючерсы на один и тот же актив.

Добавлено

Или рассмотреть RTS VS MIX без учёта хеджированием Si, так как в клиринг пересчитывается не весь контракт RTS, а

только разница между ценой покупки и ценой клиринга. 

MIX = RTS * USD_INDEX * LOT_RTS = 10 * 0.02

Как раз скачки USD_INDEX могут являться причиной извлечения прибыли, а не наоборот.  

Добавлено

Замечание по реализации (Strategy4_SpreadDeltaPercent_EA.mq5)

Нужно работать не с барами, а со стаканами.

//+------------------------------------------------------------------+
//| Expert Book event function                                       |
//+------------------------------------------------------------------+  
void OnBookEvent(const string &symbol)
{
  if((symbol == Symbol()) || (symbol == sec_symbol))
  {
  }
}

Первую позицию нужно открывать не по рынку,

bool BuyAndSell(string sym1,string sym2,double lot1,double lot2)
  {
//--- покупаем и продаем
   trade.Buy(lot1,sym1);
   trade.Sell(lot2,sym2);
//---
   return true;
  }

 а лимитным ордером, если позиция открыта, то

ответную сделку открываем по рынку

 

Не понятно где и как рассчитывается lot1 и lot2 


 

 
prostotrader:

Первую позицию нужно открывать не по рынку,

bool BuyAndSell(string sym1,string sym2,double lot1,double lot2)
  {
//--- покупаем и продаем
   trade.Buy(lot1,sym1);
   trade.Sell(lot2,sym2);
//---
   return true;
  }

 а лимитным ордером, если позиция открыта, то

ответную сделку открываем по рынку

Интересно, а почему так - сначала лимиткой, потом маркетом?
 
Dennis Kirichenko:
Интересно, а почему так - сначала лимиткой, потом маркетом?

Потому что стакан может быть "разряжен"

Первый элемент стакана -  объём 1 с ценой 100, а за ним объём 99 с ценой 500,

Покупая по рынку мы заведомо "влетаем" в минус,

а покупая лимитником, мы или купим или не купим по НУЖНОЙ нам цене. 

 
prostotrader:

Потому что стакан может быть "разряжен"

Первый элемент стакана -  объём 1 с ценой 100, а за ним объём 99 с ценой 500,

Покупая по рынку мы заведомо "влетаем" в минус,

а покупая лимитником, мы или купим или не купим по НУЖНОЙ нам цене. 

Отличный пример! Так а зачем вообще маркетом, а не всегда лимитным?
 
Dennis Kirichenko:
Отличный пример! Так а зачем вообще маркетом, а не всегда лимитным?

Ответная сделка должна исполнится КАК МОЖНО скорее полностью всем объёмом, которым была открыта первая позиция.

Ответка лимиткой  - НЕ ГАРАЕТИРУЕТ объём, ни сам факт совершения сделки.

 
prostotrader:

Ответная сделка должна исполнится КАК МОЖНО скорее полностью всем объёмом, которым была открыта первая позиция.

Ответка лимиткой  - НЕ ГАРАЕТИРУЕТ объём. 

Ой, пардон, пропустил термин "ответная". Спасибо. Тогда очень дельное замечание "лимитный-маркет". Респект
 
prostotrader:

 Не понятно где и как рассчитывается lot1 и lot2

Нигде не рассчитывается, об ограничениях сказано в самой статье в отдельном разделе.
 
prostotrader:

Не очень удачно выбран пример Si - RTS, так как RTS не пропорционально зависит от Si,

большое влияние на RTS может оказывать MIX(MXI), ведь RTS - отражение индекса ММВБ в валюте. 

Гораздо интереснее рассмотреть SBRF  - SBPR разные фьючерсы на один и тот же актив.

Добавлено

Или рассмотреть RTS VS MIX без учёта хеджированием Si, так как в клиринг пересчитывается не весь контракт RTS, а

только разница между ценой покупки и ценой клиринга. 

MIX = RTS * USD_INDEX * LOT_RTS = 10 * 0.02

Как раз скачки USD_INDEX могут являться причиной извлечения прибыли, а не наоборот. 

Спасибо за замечания, это интересно всем.
 

Как можно получить F-statistic и p -value из построенной регр модели через алглиб, мб кто-то уже делал? Там есть только AVGerr и RMSerr

 
Maxim Dmitrievsky:

Как можно получить F-statistic и p -value из построенной регр модели через алглиб, мб кто-то уже делал? Там есть только AVGerr и RMSerr

В классе CAlglib есть статический метод для F теста:

//+------------------------------------------------------------------+
//| Two-sample F-test                                                |
//| This test checks three hypotheses about dispersions of the given |
//| samples.                                                         |
//| Input parameters:                                                |
//|     X   -   sample 1. Array whose index goes from 0 to N-1.      |
//|     N   -   sample size.                                         |
//|     Y   -   sample 2. Array whose index goes from 0 to M-1.      |
//|     M   -   sample size.                                         |
//| Output parameters:                                               |
//|     BothTails   -   p-value for two-tailed test.                 |
//|                     If BothTails is less than the given          |
//|                     significance level the null hypothesis is    |
//|                     rejected.                                    |
//|     LeftTail    -   p-value for left-tailed test.                |
//|                     If LeftTail is less than the given           |
//|                     significance level, the null hypothesis is   |
//|                     rejected.                                    |
//|     RightTail   -   p-value for right-tailed test.               |
//|                     If RightTail is less than the given          |
//|                     significance level the null hypothesis is    |
//|                     rejected.                                    |
//+------------------------------------------------------------------+
static void CAlglib::FTest(const double &x[],const int n,const double &y[],
                           const int m,double &bothTails,double &leftTail,
                           double &rightTail)
Причина обращения: