Парный трейдинг и мультивалютный арбитраж. Разборки. - страница 85

 
Roman Poshtar #:
Нарыл у себя все индюки по теме. Завтра запихаю туда же и посмотрим. Пока так

Объёмы ты как считал ?

нельзя торговать кросс и торгуя расхождения надо примерно так : https://www.mql5.com/ru/forum/448777/page84#comment_50303521

иначе шум. Точнее тогда торгуется не столько расхождение, сколько 1 пара из двух

Парный трейдинг и мультивалютный арбитраж. Разборки.
Парный трейдинг и мультивалютный арбитраж. Разборки.
  • 2023.11.02
  • www.mql5.com
Добрый день уважаемые форумчане. Немного почитав форум, наткнулся на несколько тем по арбитражу и парному трейдингу...
 
Maxim Kuznetsov #:


По моим расчетам в каждый момент времени, получаются коэффициенты в таком виде

0
0.3280
0.6720 

Причём нулевой коэффициент гуляет по треугольнику, в зависимости от знака доходности (+ -) того или иного инструмента

0.6316
0.3684
0


Пришёл к выводу, что ноль заменяем единицей.
Поэтому в разный момент времени у любого символа может быть лотность с коэффициентом 1

 

Сегодня взял тестовую раздвижку по одной паре.
Раздвижка ещё не схлопнулась, сижу наблюдаю ))
И это без применения формуле, так как не реализовал ещё расчёт.
Тупо по доходности двух инструментов.

te

В принципе кому сложно реализовать расчёт формуле, могут даже и без неё ловить раздвижки. 
Просто рассчитайте доходность, и сами всё увидите.
 
Maxim Kuznetsov #:

VolumeA=LgA/(LgA+LgB)

Скорость изменения цен ВП треугольника постоянно меняется. Вы, конечно, можете в момент входа подобрать лотность, аналогичную скорости изменения цены к моменту входа, но эта лотность будет актуальна только в момент входа. Через секунду все может, и, скорее всего, изменится.

 
Maxim Kuznetsov #:

что-то с расчётом объёмов для торговли расхождений получается странно:

торгуем две валюты, одна против другой. UsdA UsdB - их курсы в общей базе USD. LgA LgB - их логарифмы

первый вариант: 

VolumeA=LgA/(LgA+LgB)

второй вариант: с учётом колебаний

VolumeA=LgA^2/(LgA^2+LgB^2)

и наконец, учитывая курс доллар к доллару = 1, const LgU=Ln(1) 

VolumeA*=LgA^2/(LgA^2+LgB^2+LgU^2) ; (* ненормировано)

Поправьте, хотя вроде-бы верно

Конечно странно: строго до наоборот.. должно "объём обратно пропорционален логарифму цены"

а правильную формулу, как конкретно "обратно пропорционален" надо подумать, может кто подскажет :-)



 
Maxim Kuznetsov #:

что-то с расчётом объёмов для торговли расхождений получается странно:

...

Поправьте, хотя вроде-бы верно

По идее нужно еще волатильность инструментов учитывать, 
т.к. ходовые качества USDCHF почти в 2 раза ниже чем у GBPUSD.

 
Grigori.S.B #:

По идее нужно еще волатильность инструментов учитывать, 
т.к. ходовые качества USDCHF почти в 2 раза ниже чем у GBPUSD.

в перекладе на общую базу - одинаковые :-) USDCHF и USDGBP делают одни и те-же равные проценты

 
Maxim Kuznetsov #:

в перекладе на общую базу - одинаковые :-) USDCHF и USDGBP делают одни и те-же равные проценты

Если в % то да, согласен.

 
Roman #:

Посчитай доходность.
Потом примени формуле, найдя недостающую формуле.
Да, математика есть, но не сложная, причём одно и тоже решение доступно разными методами. 

математика в одно действие

но я пока не видел,

чтобы кто то понял - какое

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

;))))

 

вот что-такое получилось..покритикуйте

   double lgS=MathLog(priceS);   // это продаём
   double lgB=MathLog(priceB);   // это покупаем
   double lgU=MathLog(1.0);      // через USD торгуем (const 0)
   // если пивот не дали, считаем сами
   if (pivot==0) {
      // равновесие, приблизительно средне-квадратичное
      double lgMin=MathMin(lgS,MathMin(lgB,lgU));
      double pivot=lgMin+MathSqrt((MathPow(lgS-lgMin,2.0)+MathPow(lgB-lgMin,2.0)+MathPow(lgU-lgMin,2.0))/3.0);
   }
   // амплитуды, у металлов вдвое выше
   double ampS=(SymbolInfoString(symS,SYMBOL_CURRENCY_BASE)=="XAU"||SymbolInfoString(symS,SYMBOL_CURRENCY_BASE)=="XAG")?2.0:1.0;
   double ampB=(SymbolInfoString(symB,SYMBOL_CURRENCY_BASE)=="XAU"||SymbolInfoString(symB,SYMBOL_CURRENCY_BASE)=="XAG")?2.0:1.0;
   // весовые коэфф.
   double weightS=1.0/(MathSqrt(MathAbs(pivot-lgS))+ampS);   // ?? 1.0/MathAbs(pivot-lgS)*ampS)
   double weightB=1.0/(MathSqrt(MathAbs(pivot-lgB))+ampB);
   // нормированные веса
   double normS=weightS/(weightS+weightB);
   double normB=weightB/(weightS+weightB);
   // инвест в продажу/покупку
   double investS=invest*normS;
   double investB=invest*normB;

принцип объём обратно пропорционален лог.цены соблюдён и цифры получаются разумные

центро-стремление и амплитуды в наличии . Вот не вполне уверен что про sqrt() в weightS

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