Балансировка лотов - страница 3

 
alexx_v:

А для кого я выше всё ото расписывал спрашивается?

Вы чётко не указали для кого.
В вашем примере рассматривается вариант из 3-х пар. Если не затруднит, распишите для 4-х пожалуйста.

 
pocan1337:

Вы чётко не указали для кого.
В вашем примере рассматривается вариант из 3-х пар. Если не затруднит, распишите для 4-х пожалуйста.

И для 4-х и для 5-ти и для N-... аналогично.
 
PapaYozh:
И для 4-х и для 5-ти и для N-... аналогично.

Покажите, как аналогично будет для EURAUD / EURGBP VS GBPUSD / AUDUSD.

 Или до вас не доходит, что это до меня не доходит?

 
leonid553:

===========

Не пойму почему, но коммент у меня встает в верхнем окне! Хотя должен быть справа в окне индикатора! Загадка .... 


потому что закоментированы следующие строки:

  //wndNum=WindowFind(WindowExpertName());
  //wndName=WindowExpertName()+wndNum; 
 
leonid553:

===========

Всем привет! Возможно в тему будет вот такой индикатор для "балансировки плеч" статистических арбитражных входов:


Огромное вам спасибо!


Если в индикаторе поставить в последних двух инструментах одинаковые значения, он будет считать для 4-х лотность?

И как узнать, что продавать а что покупать?

 
pocan1337:

Покажите, как аналогично будет для EURAUD / EURGBP VS GBPUSD / AUDUSD.

 Или до вас не доходит, что это до меня не доходит?

Вы хотите понять или что б за Вас кто-то сделал?

В любом случае, в Вашем вопросе не хватает данных:

- блокируемый объём (пусть будет в валюте депозита);

- цены Ask и Bid по каждой паре;

- ну и направление первой сделки.

 

Допустим Вы хотите совершить покупку EURAUD, а по остальным инструментам совершить такие сделки, что б в итоге получить максимально сбалансорованное "кольцо".

Итак.

- выполнив BUY EURAUD, у Вас +ERU и -AUD 

теперь Вы должны продать EUR или купить AUD;

- после SELL EURGBP у Вас +GBP и -AUD, следовательно надо продать GBP или купить AUD;

- после SELL GBPUSD у Вас +USD и -AUD, следовательно надо продать USD или купить AUD;

- после BUY AUDUSD у Вас всё закрылось. 

 

Как расчитать объёмы расписал alexx_v, мне особо нечего добавить. 

 

Вот   пример индикатора для 3-х инструментов:

 

А что покупать/продавать - индикатор тоже сам определяет. Например, вчера вечером на самом максимуме расхождения -  синяя ценовая линия EURGBP ушла ниже средней сиреневой. А кр. и зел. линии евро и фунта - выше средней сиреневой. Т.е. в момент начала обратного схождения этих трех линий (треугольник повернулся острием вправо) индикатор дает вход:

BUY 2*EURGBP -1.22   - ( SELL GBPUSD-1.29 + SELL EURUSD - 1.00) = покупаем удвоенный размер еврофунта против продажи евро и фунта

Закрытие всех поз. предполагается в точке схождения!  

Более подробно устройство и работа индикатора описана в адресе: http://procapital.ru/showthread.php/28081-Квазиарбитраж-в-краткосрочной-торговле?p=818555&viewfull=1#post818555 (- В разделе КВАЗИАРБИТРАЖ В МТ4 в двух статьях представлены индикаторы спреда и ценовых линий для работы по тройным входам! Конкретно (с живыми примерами) описана специфика профитной торговли по тройному индексному спреду FDAX-FEST-FCE в мт4 )

Др. аналогичные индикаторы в глоссарии - в самом первом сообщении ветки: http://procapital.ru/showthread.php/28081-Квазиарбитраж-в-краткосрочной-торговле 

Файлы:
 

ПапаЕж, Леонид, большое вам спасибо. Теперь прояснились вопросы!

Очень признателен.

 

Могу предложить такую нехитрую функцию:

double   ContractSize2Lots(string Smbl, double ContractSize)
{
   // Smbl - валютная пара
   // ContractSize - размер контракта в валюте депозита
   //    если ContractSize > 0 - покупка,
   //    если ContractSize < 0 - продажа
   // Возвращаемый результат тоже будет иметь знак
   //    > 0 - покупка,
   //    < 0 - продажа
 
   double   res;
   double   opAsk,opBid,opTickValue,opTickSize;
   
   res   = 0.0;
   
   opAsk = MarketInfo( Smbl, MODE_ASK );
   opBid = MarketInfo( Smbl, MODE_BID );
   opTickValue = MarketInfo( Smbl, MODE_TICKVALUE );
   opTickSize  = MarketInfo( Smbl, MODE_TICKSIZE );
   
   if ( opAsk > 0.0 && opBid > 0.0
        && opTickValue > 0.0 && opTickSize > 0.0
      )
   {
      if ( ContractSize > 0.0 )
         res   = ContractSize / opTickValue * opTickSize / opAsk;
      else if ( ContractSize < 0.0 )
         res   = ContractSize / opTickValue * opTickSize / opBid;
      
   }
   
   return( res );
} // ContractSize2Lots()

Балансируйте

 
keekkenen:

по-моему это unreal.. т.к. такая эквивалентность подразумевает что общая в парах валюта является константой..

Да, это так и есть - доллар фактически выступает валютой-посредником в сделке: сначала продали фунты за доллары, потом на ту же сумму купили евро. В сухом остатке позиция по еврофунту. Если делать не так, то либо останется какое-то количество долларов, либо его не хватит. По-моему, элементарная арифметика.

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