Не Грааль, просто обычненький такой - Баблокос!!! - страница 216

 
grell:

Данный скрин это по состоянию на 1 час ночи. То есть индикатор со сдвигом на 17 часов.

 


Такой "портфель аналогичен:

Buy CADCHF 0.1*L

Buy EURCHF 0.9*L 

где L -  общий торгуемый объём.

 
Contender:


Такой "портфель аналогичен:

Buy CADCHF 0.1*L

Buy EURCHF 0.9*L 

где L -  общий торгуемый объём.


В принципе да. Нагрузка на депозит меньше.
 
Contender:


Такой "портфель аналогичен:

Buy CADCHF 0.1*L

Buy EURCHF 0.9*L 

где L -  общий торгуемый объём.


А между прочим это мысль.
 
_new-rena:

Баблокоса идея тут есть. Как вижу, никто правильно не начал. Т.е. сначала нужно выразить все пары через валюту депозита, затем соотнести их в равных долях (приравнять) по цене. ... Затем нанести на один график, затем посчитать лоты, затем составить портфель на основании и по стратегии "статистический арбитраж", затем посмотреть - что получается (портфельный индюк я здесь от Хирурга показывал), только затем ужо попробовать на демке....

Лучший вариант - написать все индикаторы - наложение пар, спреды, канал, ордера, эквити для тестирования на MQL4 или сразу писать на MQL5.


Тогда можно выкинуть из анализа USDJPY, и генерировать спред из шести валют (без USD и JPY). Сейчас попробую переписать генератор.
 

_

Да. Спреды отличаются. Теперь 2 версия нормализована по USD. Расчет лотов пока тот же.... а собственно, чего его менять? 

 
int init()
  {
//--- indicator buffers mapping
  ObjectCreate ("Start", OBJ_VLINE, 0, 0, 0);// ???????? ???.
  ObjectCreate ("Finish", OBJ_VLINE, 0, 0, 0);// ???????? ???.
  ObjectSet("Start",0,iTime(NULL,0,depth+shift));
  ObjectSet("Finish",0,iTime(NULL,0,shift));
  SetIndexBuffer(0,spread);
  double min=100000000;
  for(int i1=0;i1<6;i1++) 
    {
    for(int i2=0;i2<6;i2++) 
      {
      for(int i3=0;i3<6;i3++) 
        {
        if(i1!=i2&&i1!=i3)
          {
          delta1=iOpen(pair[i1]+prefix,0,shift)/iOpen(pair[6]+prefix,0,shift)-iOpen(pair[i1]+prefix,0,shift+depth)/iOpen(pair[6]+prefix,0,shift+depth);
          delta2=iOpen(pair[i2]+prefix,0,shift)/iOpen(pair[6]+prefix,0,shift)-iOpen(pair[i2]+prefix,0,shift+depth)/iOpen(pair[6]+prefix,0,shift+depth);
          delta3=iOpen(pair[i3]+prefix,0,shift)/iOpen(pair[6]+prefix,0,shift)-iOpen(pair[i3]+prefix,0,shift+depth)/iOpen(pair[6]+prefix,0,shift+depth);
          if(delta3-delta2!=0)
            {
            y=(delta1-delta2)/(delta3-delta2);
            x=1-y;
            if(MathAbs(x)+MathAbs(y)==1)
              {
              for(int i=shift;i<shift+depth;i++)spreadtemp[i]=1*iOpen(pair[i1]+prefix,0,i)/iOpen(pair[6]+prefix,0,i)
                                                           -x*iOpen(pair[i2]+prefix,0,i)/iOpen(pair[6]+prefix,0,i)
                                                           -y*iOpen(pair[i3]+prefix,0,i)/iOpen(pair[6]+prefix,0,i);
              double max=0;
              for(int i=shift;i<shift+depth;i++)if(MathAbs(spreadtemp[shift]-spreadtemp[i])>max)max=MathAbs(spreadtemp[shift]-spreadtemp[i]);
              if(max<min){min=max;pair1=i1;pair2=i2;pair3=i3;x_start=x;y_start=y;}
              }
            }
          }
        }
      }
    }
   return(0);
  }
Критерий отбора минимальное отклонения спреда от оси в заданном диапазоне. Можно переписать под себя.
 

_

Нормализовал, привел к валюте депозита, в знаменателе USD. Я думаю не сильно изменится расчет спреда по сравнению с ценами. А то и тоже самое получится. 

Линии соответственно AUDUSD CADUSD CHFUSD EURUSD GBPUSD NZDUSD. Добавлять линию (100*JPY)/USD не стал. 

 
15 графиков корелляции по итогу. осталось найти лотность.
 
Торговать нужно два спреда друг против друга. Усе понял, ушел баблокосить...
 
grell:
Торговать нужно два спреда друг против друга. Усе понял, ушел баблокосить...


В этом процессе главное - вовремя понять, что все эти "спреды" не более, чем "те же яйца, но вид с боку".

;) 

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