Петля Мёбиуса - страница 475

 

индикатор EQ синяя кривая можно смотреть и торговать вокруг "0" линии в настройках ставите старт "0" уровень и всё!

торги при значимых отклонениях! 



эмпирическим путем можно подбирать весовые коэффициенты.... 

для особо не упоротых ) можно пользоваться индикатором рецикл 2 от хрена! 

https://www.mql5.com/ru/code/10096

Recycle2
Recycle2
  • 2011.01.26
  • www.mql5.com
Лишь вершина айсберга: Статистический арбитраж.
 
Roman Shiredchenko #:
эмпирическим путем можно подбирать весовые коэффициенты.... 

весовые коэфф по истории, такие чтобы общее эквити(сумма блджать, это СУММА), там, на протяжении той истории, удовлетворяло разным критериям подбирать не надо.

Они вычисляются и совсем несложно. На деревянных счётах можно посчитать.

 
Maxim Kuznetsov #:

весовые коэфф по истории, такие чтобы общее эквити(сумма блджать, это СУММА), там, на протяжении той истории, удовлетворяло разным критериям подбирать не надо.

Они вычисляются и совсем несложно. На деревянных счётах можно посчитать.

вот и надо считать,  там есть несколько ключевых факторов которые надо учитывать... это всё есть в ветке тут со ссылок размер тика и прочее для приведения данных символов спреда в единую систему счислений (масштаб).

 
Maxim Kuznetsov #:

весовые коэфф по истории, такие чтобы общее эквити(сумма блджать, это СУММА), там, на протяжении той истории, удовлетворяло разным критериям подбирать не надо.

Они вычисляются и совсем несложно. На деревянных счётах можно посчитать.

можно и на деревянных ) только долго

тут есть данные как в код переложить  балансовые коэффы (точнее отсюда)

у вас то все уже давно посчитано  )  просто для информации, кто делает или если надо как считать вариант есть:  вот данные тут есть и еще волатильность сюда! и баланс ок тогда!

подобным подходом к расчету можно через индикатор вывести коэффициенты на график и реал тайм наблюдать их значение и  кривую синуса!

Торговля спредами в Meta Trader-е - Торговля спредами, это наипростейший способ торговли портфелем.
Торговля спредами в Meta Trader-е - Торговля спредами, это наипростейший способ торговли портфелем.
  • 2010.07.17
  • www.mql5.com
что в течение нескольких последних недель - практически каждый день цена NG внутри дня идет по одному и тому-же сценарию - зигзагом. Последнюю неделю я торгую таким образом каждый день и пока замеченная закономерность не подводит
 
Roman Shiredchenko #:

можно и на деревянных ) только долго

тут есть данные как в код переложить  балансовые коэффы (точнее отсюда)

у вас то все уже давно посчитано  )  просто для информации, кто делает или если надо как считать вариант есть:  вот данные тут есть и еще волатильность сюда! и баланс ок тогда!

рука-лицо..

TickValue и TickSize

столько лет прошло, а мыши всё продолжают жрать тот-же кактус..

 
Maxim Kuznetsov #:

рука-лицо..

TickValue и TickSize

столько лет прошло, а мыши всё продолжают жрать тот-же кактус..

дак подключитесь  и разъясните и формулу ок выложите.... 

я её в код индикатора залью... ) у меня какие есть данные теми и пользуюсь.... еще гуглю и чатю... )

 
Roman Shiredchenko #:

дак подключитесь  и разъясните и формулу ок выложите.... 

я её в код индикатора залью... )

чего подключаться-то ?

это-же основа основ, "как посчитать сделку", что такое Bid,Ask маржа плечо..

ещё не хватало основные термины объяснять

 
Maxim Kuznetsov #:

чего подключаться-то ?

это-же основа основ, "как посчитать сделку", что такое Bid,Ask маржа плечо..

ещё не хватало основные термины объяснять

был там вариант типа сколько можно взять например на 5000 $  от этого и считать...

но потом обсудили и решили что это не лучшее решение...

там есть формула я ей пользуюсь с учетом волатильности.... по сути это ключевые вещи  в торговле спредами...

её эту формулу потом и прикрутили там в индикатор спреда 

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

 
Maxim Kuznetsov #:

рука-лицо..

TickValue и TickSize

столько лет прошло, а мыши всё продолжают жрать тот-же кактус..

Tick_Size    - Минимальное изменение цены
Tick_Value   - Стоимость одного тика в валюте депозита  
Point        - Размер пункта
Lot_Size     - Размер стандартного лота

period = 20   // Период для расчета волатильности

формула процентного изменения 

Формула: change_pct = MathAbs(close[j] - close[j-1]) / close[j-1] * 100.0


детальный расчет

// Для каждого бара в периоде:
for(int j = 1; j < copied; j++)
{
    if(closeArr[j] > 0 && closeArr[j-1] > 0)
    {
        // Абсолютное изменение цены
        double price_change = MathAbs(closeArr[j] - closeArr[j-1]);
        
        // Процентное изменение
        double change_pct = price_change / closeArr[j-1] * 100.0;
        
        sum_change += change_pct;
        valid_changes++;
    }
}

итоговая волатильность

Волатильность_сырая = sum_change / valid_changes

ф-ла нормализации с учетом стоимости

Формула: Нормализованная_волатильность = Волатильность_сырая × Tick_Value × Lot_Size / Tick_Size

расчет

// Получаем параметры символа
double tick_size = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE);
double tick_value = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE_LOT);
double point_size = SymbolInfoDouble(symbol, SYMBOL_POINT);

// Нормализация к стандартному лоту
double normalized_volatility = raw_volatility * tick_value * 1.0 / tick_size;

такой подход....

// Получаем параметры символа
double tick_size = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE);
double tick_value = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE_LOT);

// ИНВЕРСНЫЙ расчет веса
double weight = 1.0 / raw_volatility;
// EURUSD: низкая волатильность = большой вес
weight_eurusd = 1.0 / 0.15 = 6.67

// GBPUSD: высокая волатильность = маленький вес  
weight_gbpusd = 1.0 / 0.30 = 3.33


Сумма = 6.67 + 3.33 + 4.00 = 14.00

w1_normalized = 6.67 / 14.00 = 0.476  (47.6%)
w2_normalized = 3.33 / 14.00 = 0.238  (23.8%)  
w3_normalized = 4.00 / 14.00 = 0.286  (28.6%)


0.476 + 0.238 + 0.286 = 1.000 ✅


// Расчет лота с учетом ИНВЕРСНОГО веса
lot1 = BaseLots1 * martin_multiplier * g_current_weight1;
lot2 = BaseLots2 * martin_multiplier * g_current_weight2; 
lot3 = BaseLots3 * martin_multiplier * g_current_weight3;

ВЫСОКАЯ ВОЛАТИЛЬНОСТЬМАЛЕНЬКИЙ ВЕСМЕНЬШИЙ ОБЪЕМ

НИЗКАЯ ВОЛАТИЛЬНОСТЬБОЛЬШОЙ ВЕСБОЛЬШИЙ ОБЪЕМ


                     Σ(|close[i] - close[i-1]| / close[i-1] × 100%)
Волатильность = --------------------------------------------------------
                              Количество_изменений

                     1
Вес_сырой = ----------------------
             Волатильность


Объем_символа = Базовый_лот × Множитель_мартингейла × Вес_нормализованный


Система автоматически распределяет объемы так, чтобы более волатильные символы имели пропорционально МЕНЬШИЙ объем, а менее волатильные - БОЛЬШИЙ объем. Это выравнивает риск между компонентами спреда.

 
Maxim Kuznetsov #:

рука-лицо..

TickValue и TickSize

столько лет прошло, а мыши всё продолжают жрать тот-же кактус..

здесь как правильно? 

ПРАВИЛЬНЫЕ ЗАВИСИМОСТИ:

  • TickSize - ОБРАТНАЯ (меньше размер → больше вес)

  • TickValue - ОБРАТНАЯ (меньше стоимость → больше вес)

  • TickVolume - ПРЯМАЯ (больше объем → больше вес)

Финансовая интуиция: Мы хотим давать больший вес инструментам, которые:

  • Более точные (малый TickSize)

  • Менее рискованные в денежном выражении (малый TickValue)

  • Более ликвидные (большой Volume)

-----------------------------------------------------------------------------------------------------------------------------

// ДОБАВИТЬ ВОЛАТИЛЬНОСТЬ К ФОРМУЛЕ
double volatility_ratio = CalculateVolatility(s2, 20) / CalculateVolatility(s1, 20);

// УЛУЧШЕННАЯ ФОРМУЛА
double ynax_improved = (TickValue1/TickValue2) * 
                      (Price1/TickSize1) / (Price2/TickSize2) * 
                      volatility_ratio;


пример расчета

AUDJPY: Волатильность=0.8542%, Инверсный вес=1.1708
NZDCHF: Волатильность=0.6321%, Инверсный вес=1.5821
AUDJPY: TickSize=0.00100, TickValue=0.73200, Volume=1500000, Adjust=1.235
NZDCHF: TickSize=0.00010, TickValue=0.89300, Volume=1200000, Adjust=1.567
Веса нормализованы: Сумма=1.0000
ВЕСА ОБНОВЛЕНЫ: AUDJPY: W1=0.4283 (42.8%), NZDCHF: W2=0.5717 (57.2%)

  1. ПРАВИЛЬНАЯ ИНВЕРСНАЯ ВОЛАТИЛЬНОСТЬ - 1/volatility вместо прямой volatility

  2. КОМПЛЕКСНАЯ КОРРЕКЦИЯ - учет tickSize, tickValue, volume

  3. ЗАЩИТА ОТ ПЕРЕКОСОВ - ограничение корректировочных коэффициентов

  4. СТАБИЛЬНОСТЬ РАСЧЕТОВ - защита от NaN и бесконечных значений

СООТВЕТСТВИЕ ТЕОРИИ СПРЕДОВ

БАЛАНСИРОВКА РИСКА - волатильные инструменты получают меньший вес
УЧЕТ РЫНОЧНЫХ УСЛОВИЙ - ликвидность и стоимость тика
АДАПТИВНОСТЬ - регулярное обновление весов
ПРОЗРАЧНОСТЬ - детальное логирование всех расчетов


так считаю и для 3--х и более символов

//НОРМАЛИЗАЦИЯ ВЕСОВ К СУММЕ 1.0
if(NormalizeWeights)
{
    double sum = MathAbs(w1) + MathAbs(w2) + MathAbs(w3);
    if(sum > 0.001)
    {
        w1 /= sum; w2 /= sum; w3 /= sum;
    }
}



// ДОПОЛНЕНИЕ: КОРРЕКЦИЯ ВЕСОВ ЧЕРЕЗ TICK_SIZE И TICK_VOLUME
for(int i = 0; i < 3; i++)
{
    if(!SymbolActive[i]) continue;

    double tickSize   = SymbolInfoDouble(Symbols[i], SYMBOL_TRADE_TICK_SIZE);
    double tickValue  = SymbolInfoDouble(Symbols[i], SYMBOL_TRADE_TICK_VALUE);
    double tickVolume = SymbolInfoDouble(Symbols[i], SYMBOL_SESSION_VOLUME);

    // МАСШТАБИРОВАНИЕ ПО РЕАЛЬНОЙ СТОИМОСТИ ТИКА И АКТИВНОСТИ РЫНКА
    double liquidity_factor = MathSqrt(tickVolume) * tickValue / tickSize;

    // НОРМАЛИЗАЦИЯ В УМЕРЕННЫХ ПРЕДЕЛАХ
    double adjust = MathLog10(MathMax(1.0, liquidity_factor));
    if(adjust < 0.5) adjust = 0.5;
    if(adjust > 3.0) adjust = 3.0;

    // ПРИМЕНЯЕМ КОРРЕКТИРОВКУ К ВЕСАМ
    if(i == 0) base0 *= adjust;
    // ... для других символов
}