Статистический арбитраж - страница 4

 

Вот вам пример возможности статистического квази-арбитража. КК практически единичный. Только величина спреда и стоп-левела не позволяет воспользоваться. Такие выбросы бывают достаточно часто.


 
ivandurak:
Есть два индекса ММВБ и РТС , понятно что они коррелируют близко к 1 , в один прекрасный момент стоимость фьючерсов на индексы разбегается до скажем 5% , хотя в средний показатель 0.5% . Один фьюч покупаем другой продаем , когда они опять сойдутся делаем обратную операцию фиксируем прибыль. Это простой пример который лежит на поверхности и вы не сможете вовремя зафиксировать и использоваь его в свое благо, потому как есть маркет мейкеры . С другой стороны вам никто не мешает формировать свой портфель (читай индекс). Теперь подсчитаем число возможных  портфелей состоящих из 5 инструментов из 36 возможных , навскидку около 300000 .Перебрать такое кол-во комбинаций вручную , я себе слабо представляю как . Я в этом направлении не копал возможно и есть рациональное зерно .

Да нет все ручками ручками делаем, ну разве доверить выбор стратегии роботу? )))

  А на счет ММВБ и РТС маркет мейкеры тут ни причем, их расхождение и схождение вроде как из-за укрепления или ослабления рубля происходит, РТС индекс считается в долларовом исчислении пипсов а ММВБ рублевом, аналитики говорят якобы их расхождение происходит именно из-за движения рубля,  ММВБ бывает то ниже а то и выше аж до 6 фигур, это происходит не одномоментно а за несколько дней, в связи с большой волотильностью РУБЛЯ и рынков это изменение происходит достаточно часто.    Прибыль надо брать автоматом там где можно установить на платформе закрытие по доходности в процентах или в валюте депозита, ну или ручками ручками.  Все работает.   А ЕВРОДОЛЛАР и БРЕНД есть у многих форекс диллингов ну или СФДи на них.    ПРИБЫЛЬ то можно и ручками собирать ).   

 

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

//+------------------------------------------------------------------+
//|                                                        Test7.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright   "2009, MetaQuotes Software Corp."
#property link        "http://www.mql5.com"
#property description "Test7"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrAqua
#property indicator_style1  STYLE_SOLID

//--- input parametrs

input string         Symbol1_Name = "EURUSD"; // Нога BUY
input string         Symbol2_Name = "GBPUSD"; // Нога SELL
input double         Symbol1_Vol  = 0.01;       
input double         Symbol2_Vol  = 0.02;        


//---- buffers
double         ExtStdDevBuffer[];

//--- global variables
double Symbol1_K, Symbol2_K;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
  //Определяем балансовые коэффициенты каждого инструмента
  Symbol1_K=SymbolInfoDouble(Symbol1_Name, SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(Symbol1_Name, SYMBOL_TRADE_TICK_SIZE);
  Symbol2_K=SymbolInfoDouble(Symbol2_Name, SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(Symbol2_Name, SYMBOL_TRADE_TICK_SIZE);
  
//---- define indicator buffers as indexes
   SetIndexBuffer(0,ExtStdDevBuffer,INDICATOR_DATA);
   ArraySetAsSeries(ExtStdDevBuffer,true);                             // индексация массива как таймсерия
   PlotIndexSetString(0,PLOT_LABEL,"SPREAD");

  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
  {
  //--- variables of indicator
  int i, limit;
  
   if(prev_calculated>0)
     {limit=1;}
   else
     {limit=prev_calculated;}
    
  //--- main cycle
  for(i=limit-1;i>=0;i--)
  {
      ExtStdDevBuffer[i] = (Symbol1_Vol*Symbol1_K*iClose(Symbol1_Name,i) -  Symbol2_Vol*Symbol2_K*iClose(Symbol2_Name,i));
  }
  
  Comment("Symbol1_K =",Symbol1_K,"\n",
          "Symbol2_K =",Symbol2_K,"\n",
          "close_1[1] =",iClose(Symbol1_Name,1),"\n",
          "close_2[1] =",iClose(Symbol2_Name,1),"\n",
          "close[1] =",close[rates_total-1]);
          
          
   
  return(rates_total);
}

//-----------------------------------------------------------------------------------------
//+------------------------------------------------------------------+
//|Возвращает значение цены закрытия указанного параметром shift     | 
//|бара с соответствующего графика (symbol, timeframe).              |
//|В случае ошибки функция возвращает 0.                             |
//+------------------------------------------------------------------+
double iClose(string Symb,int Shift)
  {
   double Array[1];
   int Copied=CopyClose(Symb,PERIOD_CURRENT,Shift,1,Array);
   if(Copied!=1) return(0);
   return(Array[0]);
  }

 

На рисунках, нижний индикатор спреда автора ветки. 

Файлы:
Test7.mq5  4 kb
 

Кхм, подниму ветку.

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

 

Если есть возражения - с радостью их выслушаю.

В этой связи на первое место выходит ММ. Давайте проведем мозговой штурм.

Кто какую тактику торговли считает лучшей для осцилляторов? 

 
Heroix:

Кхм, подниму ветку.

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

 

Если есть возражения - с радостью их выслушаю.

В этой связи на первое место выходит ММ. Давайте проведем мозговой штурм.

Кто какую тактику торговли считает лучшей для осцилляторов? 

Прокопал малость эту тему. Имхо надо анализировать не мажоры а их  совокупную эквити ( эквити портфеля) разница портфеля от кросса в разных весовых коэффициентах участия мажоров. В общем случае надо подобрать портфель инструментов с такими весовыми коэффициентами чтобы их совокупная эквити имела наименьшее среднеквадратичное отклонение, максимальное приближение к прямой. Что касается применение такого портфеля. То если линейная регрессия этой эквити горизонтальная  покупаем продаем от границ канала( в этом случае среднеквадратичное должно быть максимальным). Если эквити имеет угол наклона тренд, то это даже для меня понятно. Остается вопрос, как долго эквити портфеля сохраняет свои свойства после периода оптимизации.  Распедалюсь по работе, чуть попозже попробую индикатор нарисовать.
 
То то и оно, что синтетик почти сразу же вылетает из канала.. могу предположить, что с вероятностью 0.5. А это наводит на мысль, что преимуществ по сравнению с классической торговлей одним инструментом нет.
 
ivandurak:
В общем случае надо подобрать портфель инструментов с такими весовыми коэффициентами чтобы их совокупная эквити имела наименьшее среднеквадратичное отклонение, максимальное приближение к прямой.
Именно эта задача решена здесь.
Recycle2 - MQL4 Code Base
  • www.mql5.com
Recycle2 - MQL4 Code Base: технические индикаторы для МТ4
 
Heroix:

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

Отсюда:

hrenfx:

Верно только для EURUSD^k1 * GBPUSD^k2, где k1 = 0.5 и k2 = -0.5.

При других коэффициентах (|k1| + |k2| = 1) ваше утверждение неверно.

 
hrenfx:
Именно эта задача решена здесь.
Почти да. Только я хочу сделать с несколькими вариациями. Там к сожалению код не комментирован, поэтому лучше написать самому. То что видно из видео, суумарная эквити обладает некоторой инертностью по стационарности. Обратите внимание, на видео -  после того как находится канал синтетики дальше начинается тренд.  
 
Там не видео надо смотреть, а самому мышкой двигать интервал построения. Благо инструментарий сразу (без лагов) перестраивает синтетик, показывая его и за интервалом построения (красные треугольники - первое пересечение нуля синтетиком вне интервала построения).
Причина обращения: