Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2468

 
Artyom Trishkin #:
Не нужно вообще открывать графики. 

А если хочется, аж зубы сводит?

 
Alexey Viktorov #:

А если хочется, аж зубы сводит?

Зубы вырвать
 
Artyom Trishkin #:
Не нужно вообще открывать графики для торговли. 
Alexey Viktorov #:

Да что-то у меня лень пропала…

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

 

Подскажите, пожалуйста, как выровнять лотность в портфеле, чтобы одна из валютных пар не шатала баланс сильнее остальных?

На ум приходит использовать волатильность и цену пункта. И, дальше что-то не придумаю, как создать механизм 



UPD

Пробовал с чатом, но он какую-то дичь выдаёт, у одной пары в итоге лот 5758349.85, у другой чуть меньше

 
Ivan Butko #:
как выровнять лотность в портфеле, чтобы одна из валютных пар не шатала баланс сильнее остальных?

ну это ты спросил так спросил :-) не в бровь а в глаз..

"... и ключи от квартиры" ;-)

 
Ivan Butko #:

Подскажите, пожалуйста, как выровнять лотность в портфеле, чтобы одна из валютных пар не шатала баланс сильнее остальных?

На ум приходит использовать волатильность и цену пункта. И, дальше что-то не придумаю, как создать механизм 



UPD

Пробовал с чатом, но он какую-то дичь выдаёт, у одной пары в итоге лот 5758349.85, у другой чуть меньше

Не помню где скопипастил, но теперь так уравновешиваю

//+------------------------------------------------------------------+
void Volum(string symbLong, string symbShort, double priceLong, double priceShort, double & volSell, double & volBuy)
  {
   double kVol1 = SymbolInfoDouble(symbShort, SYMBOL_TRADE_TICK_VALUE) / SymbolInfoDouble(symbShort, SYMBOL_TRADE_TICK_SIZE);
   double kVol2 = SymbolInfoDouble(symbLong, SYMBOL_TRADE_TICK_VALUE) / SymbolInfoDouble(symbLong, SYMBOL_TRADE_TICK_SIZE);

   double atr1 = Atr(symbShort);
   double atr2 = Atr(symbLong);

   double Lot_1 = volSell;
   double Lot_2 = volBuy = 0;
   double var = 0;

   var  = Lot_1 * kVol1 * atr1;
   if(kVol2 != 0 && atr2 != 0)
      Lot_2 = var / kVol2 / atr2;
   else
      return;

   volBuy = NormaliseVolume(symbLong, Lot_2);
  }
//+------------------------------------------------------------------+

ATR можно хэндлом, а можно и посчитать для каждой свечи отдельно, не намного дороже выйдет.

//+------------------------------------------------------------------+
double Atr(string symb)
  {
   MqlRates rates[];
   int sizeR = CopyRates(symb, ATRtimeframe, 1, ATRperiod, rates);
   if(sizeR <= 0)
      return -1;

   double ATR = 0;
   for(int i = 1; i < sizeR && !IsStopped(); i++)
      ATR += MathMax(rates[i].high, rates[i - 1].close) - MathMin(rates[i].low, rates[i].close);

   ATR /= ATRperiod;
   return ATR;
  }
//+------------------------------------------------------------------+

Это для пары, а вот для портфеля хз. Но можно попытаться оттолкнуться от этого кода, а там как получится)

Например брать какой то один символ и остальные уравновешивать относительно него. 

 
Maxim Kuznetsov #:

ну это ты спросил так спросил :-) не в бровь а в глаз..

"... и ключи от квартиры" ;-)

просто поясню, почему :

- это один из камней преткновения почти всей ветки про мат.обуч. : найти такую совокупность пар и объёмов чтобы грести деньги лопатой. Коинтеграция и стационарность это про это

- если сумеешь сбалансировать пары, скажи как - купим мир на двоих :-)

- можно сбалансировать объёмы в 0 (почти в ноль, да и то будет дрейф по котировочным валютам). см.всякие забавные треугольники и темы Рената

- любое отклонение от 0-вого варианта ведёт к тому что одна пара точно сразу выпирает, а потом и все разваливаются

- есть математика и алгоритмы портфелей но там в основном "как и когда пора перебалансировать портфель". В основном мимо :-) Столь-же глобальная тема как и прибыльно торговать

то есть ответа НЕТ. Его физически НЕТ

 
Ivan Butko #:

Подскажите, пожалуйста, как выровнять лотность в портфеле, чтобы одна из валютных пар не шатала баланс сильнее остальных?

Это знал только великий Рена. Но сейчас он уже на Канарах. Поэтому

А если серьезно, то имхо надежных способов нет. Можно конечно взять некоторое скользящее окно, например в месяц и посчитать исходя из волатильности за период и стоимости пункта.
Но никто не застрахован от неожиданностей, вспомни например как 10 лет тому назад франк рухнул. Его мгновенная волатильность выросла в тысячи раз и никаким расчетам это не поддается.

 
Maxim Kuznetsov #:

ну это ты спросил так спросил :-) не в бровь а в глаз..

"... и ключи от квартиры" ;-)

Aleksandr Slavskii #:

Не помню где скопипастил, но теперь так уравновешиваю

ATR можно хэндлом, а можно и посчитать для каждой свечи отдельно, не намного дороже выйдет.

Это для пары, а вот для портфеля хз. Но можно попытаться оттолкнуться от этого кода, а там как получится)

Например брать какой то один символ и остальные уравновешивать относительно него. 

Maxim Kuznetsov #:

просто поясню, почему :

- это один из камней преткновения почти всей ветки про мат.обуч. : найти такую совокупность пар и объёмов чтобы грести деньги лопатой. Коинтеграция и стационарность это про это

- если сумеешь сбалансировать пары, скажи как - купим мир на двоих :-)

- можно сбалансировать объёмы в 0 (почти в ноль, да и то будет дрейф по котировочным валютам). см.всякие забавные треугольники и темы Рената

- любое отклонение от 0-вого варианта ведёт к тому что одна пара точно сразу выпирает, а потом и все разваливаются

- есть математика и алгоритмы портфелей но там в основном "как и когда пора перебалансировать портфель". В основном мимо :-) Столь-же глобальная тема как и прибыльно торговать

то есть ответа НЕТ. Его физически НЕТ

Grigori.S.B #:

Это знал только великий Рена. Но сейчас он уже на Канарах. Поэтому

А если серьезно, то имхо надежных способов нет. Можно конечно взять некоторое скользящее окно, например в месяц и посчитать исходя из волатильности за период и стоимости пункта.
Но никто не застрахован от неожиданностей, вспомни например как 10 лет тому назад франк рухнул. Его мгновенная волатильность выросла в тысячи раз и никаким расчетам это не поддается.


Я благодарю вас за ответы. Александру спасибо за код. 

Насчёт грааля:

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

Например, пересечение машек. Вот если EURUSD с помощью пересечений наколотила 10 долларов, то одно движение XAUUSD просто выносит весь профит. И наоборот, евро сливает-сливает, потом фунт ФИГАЦ! - и вытянул одним пересечением машек весь депозит в +. И с таким же успехом потом сольёт. 

Все работают стандартным лотом 0.01. 

И вот в этом вопрос, во сколько раз увеличить все остальные валюты, чтобы их поровнять по влиянию не депозит с золотом и фунтом. И другими "дорогими" валютами. Чтобы баланс не колбасило из стороны в сторону одной из пар. 


Вот в этом смысле я интересовался. 

А Рена - это несерьёзно. Клуб рена-синус-никитин-багард-улад-кто-то-там-ещё-человек-пять - это же троллинг-клаб. 


 
Ещё вопрос:

А как в индикаторе делают так, чтобы он был одновременно и подвальным и на графике?

Например, стрелки на графике, а осциллятор в подвале