Торговля спредами в Meta Trader-е - страница 163

 

я при расчете отношения лотов поступаю так:

1. сначала двум внешним переменным (назовем их "коэффициенты волатильности" двух ФИ) присваиваются значения 1

2. от желаемого момента времени (задается во внешних переменных) - при этом просматриваю оба графика на отсутствие "левых" выбросов: как правило, на М5, М15 последний месяц более менее нормальный - строим в отдельном окне движения пары в тиках:

extern datetime start = D'2011.01.19 03:00'; //время начала отрисовки тиковых графиков
extern double K1=1.0; //коэффициенты пропорциональности (для волатильности) устанавливаем визуально
extern double K2=1.0;
extern double Y_shift=0; //смещение по вертикали тикового графика второго инструмента

TickSize_1=MarketInfo(Symbol(),MODE_TICKSIZE); 
TickSize_2=MarketInfo(Symbol_2,MODE_TICKSIZE);

int bar2_1=iBarShift(Symbol_2,0,Time[i],false); //для синхронизации
int bar2_2=iBarShift(Symbol_2,0,Time[i+1],false);
double Close2_1=iClose(Symbol_2,0,bar2_1);
double Close2_2=iClose(Symbol_2,0,bar2_2);

StartBar=iBarShift(NULL,0,start,false);


    if(i==StartBar)
      {
      TM_1[i]=K1*(Close[i]-Close[i+1])/TickSize_1;
      TM_2[i]=(K2*(Close2_1-Close2_2)/TickSize_2)+Y_shift;
      }
    else
      {
      if(i<StartBar)
        {
        TM_1[i]=K1*((Close[i]-Close[i+1])/TickSize_1)+TM_1[i+1];
        TM_2[i]=K2*((Close2_1-Close2_2)/TickSize_2)+TM_2[i+1];
        }
      }


вот это начало процесса:

предварительное значение лотов определено из (хотя это надо проверять - например валюта депо $, а тик FDAX = 12,5 EUR):

TV_Sym1=MarketInfo(Symbol(),MODE_TICKVALUE);
TV_Sym2=MarketInfo(Symbol_2,MODE_TICKVALUE);

далее выбираем 2 подобные фигуры и измеряем высоту каждой в тиках:

для нефти QM для нефти BRN

как видно, на данном участке графика, BRN совершил ход в 88 своих тиков, а QM - 56,5 (таким образом можно найти много подобных друг другу фигур /десяток будет достаточно вполне/ и составить таким образом отношение суммы ходов одного инструмента к сумме ходов другого) В данном примере не буду это делать, просто присвою коэффициенту К2 значение 88/56,6=1,56

результат этого телодвижения (параллельно измеряем разность графиков в данном месте по высоте - 43,8 тика):

теперь задаем внешней переменной Y_shift=43,8 и проверяем:

при этом расчет лотов происходит автоматически по такому коду:

//---- расчет соотношений объемов по паре (TICK_VALUE предварительно проверять!)
  double L1=1,L2=1; //предварительно для обоих инструментов установим объемы по 1 лоту
  
  if(K1>K2) L1=NormalizeDouble(K1/K2,2);
  else if(K1<K2) L2=NormalizeDouble(K2/K1,2);
  
  if(TV_Sym1>TV_Sym2) L2*=NormalizeDouble(TV_Sym1/TV_Sym2,2);
  else if(TV_Sym1<TV_Sym2) L1*=NormalizeDouble(TV_Sym2/TV_Sym1,2);
  
  if(L1>L2) {L1/=L2; L2=1;}
  else if(L1<L2) {L2/=L1; L1=1;}

как видим, результат изменился: т.е. 1,25 / 1 (ещё раз обращаю внимание, что 1 фигуры мало!)

должен отметить, что с Леонидом у меня расхождений не было (несколько пар проверил таким образом)

З.Ы. не обращайте внимания, что один из инструментов - склейка - для примера это несущественно

 
PPC:

предварительное значение лотов определено из (хотя это надо проверять - например валюта депо $, а тик FDAX = 12,5 EUR):

Подобную проблему решил так:

double TrueTickValue( string Symb )
{
  double TickValue = MarketInfo(Symb, MODE_TICKVALUE);
  double Tmp = MarketInfo(Symb, MODE_MARGININIT);
 
  if ((MarketInfo(Symb, MODE_MARGINCALCMODE) > 0) && (Tmp > 0))
    TickValue *=  MarketInfo(Symb, MODE_MARGINREQUIRED) / Tmp;
 
  return(TickValue);
}
Мой метод нахождения спреда основан на решении оптимизационной задачи и полностью автоматизирован для любого количества ФИ.
 
hrenfx:

Подобную проблему решил так:

Абсолютно согласен. 100% будет работать. Очень простая и логичная конструкция. (с Вашего позволения возьму в копилку)

 
hrenfx:
Мой метод нахождения спреда основан на решении оптимизационной задачи и полностью автоматизирован для любого количества ФИ.
ну а тут - no comments, ибо с Вашей идеей не удостоен чести быть ознакомленным :)
 
PPC:
ну а тут - no comments, ибо с Вашей идеей не удостоен чести быть ознакомленным :)

Здесь постановка задачи, а здесь - решение.
 
hrenfx:

Здесь постановка задачи, а здесь - решение.
спс за инфу - там надо поизучать материал, т.к. его немало.
 

Кстати, по нефти резоннее арбитражить спред CL (или WTI) - BRN

Размерность совпадает. Да и комменты аналитиков все делаются для размерности спреда BRN - CL

Кстати - любопытный сегодняшний коммент с утра. http://top.rbc.ru/finances/07/02/2011/539457.shtml

Вообще, многими "сырьевыми" аналитиками предполагается, что сейчас этот спред (BRN - CL) достиг 11-ти фигур, далее расти не будет и есть резон вставать долгосрочно на сужение.

 

Текущая ситуация BRNH1-CLH1=1^1, H1

 
leonid553:

Кстати, по нефти резоннее арбитражить спред CL (или WTI) - BRN

я просто пример самой техники расчета привел...
 

Ну, вот до кучи - небольшой подарочек присутствующим.

Календарный свиной спред HEJ1-HEK1 (апрель-май).

Многолетние сезонные тенденции . Без комментариев!

Впрочем, коммент все же будет. Позиции открывать по этому спреду - лучше в разгар торгов американской сессии после 18:30 мск. В это время аск-бид этих свиных инструментов существенно и значимо меньше - в десятки раз!

Причина обращения: