Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Сентября 13, 2024, 08:37:49 pm
Начало Помощь Поиск Войти Регистрация
Новости:

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Индикатор расчета размера позиции « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: Индикатор расчета размера позиции  (Прочитано 13715 раз)
Yegor Hi And
Full Member
***
Сообщений: 138


Просмотр профиля Email
« : Июня 03, 2011, 11:20:39 am »

Если кому надо, решил поделиться
Индикатор расчета размера позиции для фьючерсов и акций в зависимости от валотильности и риска:


#line 0 solid #800080

extern ATR_period = 14;// Период ATR
extern ATR_k = 3; // расстояние до SL в ATR
extern kapital_rub = 100000;
extern risk_percent = 1; // риск на сделку в процентах от капитала
extern lot_size = 1; //размер лота
extern price_in_pts = 0;//1 если цена в пунктах
extern step_price = 2.76678; // цена шага
extern step_in_pts = 5; // 5 шаг в пунктах


function init()
{
    var m = ATR_period;
    setInitCandles(m);
    setBounds(0, m, 0);
}

function calc()
{
    var price_enter = 0;
    var price_exit = 0;
    if (price_in_pts == 0)
    {
        price_enter = high[-1]; // если вход по хаю пред свечи
        price_exit = price_enter - IndRef("atr", ATR_period)[0][0] * ATR_k;
    }
    else
        {
          var point_price = step_price/    step_in_pts;
          price_enter = high[-1] * point_price;  // если вход по хаю пред свечи
          price_exit = price_enter - IndRef("atr", ATR_period)[0][0] * ATR_k * point_price;
        }
    var risk = abs(price_exit/price_enter-1)*100;
    var k_work_percent = risk_percent / risk * 100;
    var k_work_rub = kapital_rub/100* k_work_percent;
    var lots_buy = k_work_rub / price_enter - frac(k_work_rub / price_enter);

    line[0] = lots_buy / lot_size;
}

Записан

Предлагаю реализовать Ваши торговые идеи на ATF, пишите в личку
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #1 : Июня 06, 2011, 04:41:17 pm »

А что это за методика? Она где-то описана? Если это что-то стандартное, и вы не против, мы бы выложили на сайт в раздел примеров.
Записан
Yegor Hi And
Full Member
***
Сообщений: 138


Просмотр профиля Email
« Ответ #2 : Июня 08, 2011, 02:04:21 am »

По этой методике учили рассчитывать позицию на курсе по фьючерсам в Финаме. А оригинал формулы выведен кем-то из классиков.

Здесь вычисляется размер позиции при фиксированном риске в процентах от капитала, если при входе стоп будет стоять на расстоянии k * ATR.  Для ясности добавил больше комментариев :


#line 0 solid #800080

extern ATR_period = 14;// Период ATR
extern ATR_k = 3; // расстояние до SL в ATR
extern kapital_rub = 100000; // сумма капитала выделенная на этот инструмент
extern risk_percent = 1; // риск на сделку в процентах от капитала
extern lot_size = 1; //размер лота - количество акций в лоте (для рынка акций)
extern price_in_pts = 0;//1 если цена фьючерса в пунктах
extern step_price = 2.76678; // цена шага, здесь индекс РТС, инф.  сайта rts.ru
extern step_in_pts = 5; // 5 шаг в пунктах, здесь для индекс РТС, инф.  сайта rts.ru
//step_price меняется ежедневно


function init()
{
    var m = ATR_period;
    setInitCandles(m);
    setBounds(0, m, 0);
}

function calc()
{
    var price_enter = 0;
    var price_exit = 0;
    if (price_in_pts == 0)
    {
        // расчет цены входа и стопа для акций и фьчерсов, которые не пунктах
        price_enter = high[-1]; // расчет входа, если по ТС вход на пробое, high пред свечи
        price_exit = price_enter - IndRef("atr", ATR_period)[0][0] * ATR_k;
                          // вычисление стопа в соответствии текущим ATR
    }
    else
        {
           // расчет цены входа и стопа для фьчерсов, которые квотируются в пунктах
          var point_price = step_price/    step_in_pts; // вычисление цены пункта
          price_enter = high[-1] * point_price;  // расчет цены входа в деньгах
          price_exit = price_enter - IndRef("atr", ATR_period)[0][0] * ATR_k * point_price;
                             // вычисление стопа в соответствии текущим ATR в деньгах
        }
    var risk = abs(price_exit/price_enter-1)*100; // расчет общего риска в процентах берется по модулю

    var k_work_percent = risk_percent / risk * 100;// расчет сколько процентов капитала можно использовать, чтобы при стопе потери не составили более заложенного risk_percent

    var k_work_rub = kapital_rub/100* k_work_percent; //расчет "рабочего" капитала в деньгах

    var shares_buy = k_work_rub / price_enter - frac(k_work_rub / price_enter);// расчет количества бумаг, чтобы оно было целым откидывается дробная часть (без оркугления)

    line[0] = shares_buy / lot_size; // расчет размера позиции в лотах,
    // если размер позиции получается дробным, то можно эту стороку заменить на
    // line[0] = shares_buy  / lot_size - frac(shares_buy  / lot_size);
}

Из кода видно, что здесь идет расчет позиции для входа в лонг, но я его также использую для входа в шорт т.к. общий риск в процентах вычисляется по модулю. Цену входа надо ставить в соответствии с Вашей торговой системой (здесь для примера указана high[-1])

k_work_percent - размер капитала для входа в позицию может быть более 100 % это подразумевает использование плечей

Я не против если вы выложите на сайт, надеюсь это индикатор будет еще кому-то полезен.
« Последнее редактирование: Июня 08, 2011, 02:12:00 am от Yegor Hi And » Записан

Предлагаю реализовать Ваши торговые идеи на ATF, пишите в личку
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Индикатор расчета размера позиции « предыдущая тема следующая тема »
Перейти в:  


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.10 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!