MQL Преобразование формулы - страница 2

 
Maxim Kuznetsov #:

Символьные пакеты Maxima или Wolfram не справляются ?

или вы просто не в курсе :-)

PS/ буквально "настольник" разработчика - если надо преобразовать, проверить, начертить, найти производную/интеграл etc

Они иногда выдают ответ в таком виде, что не всякий математик разберётся)

 
Aleksey Nikolayev #:

Нет, так

Что-то Вы поторопились с правильным ответом. Та ещё сто-о-оль-ко советов могли надавать!
 
prostotrader:

Добрый день!

Как на MQL преобразовать эту формулу

Чтобы получить 


double r_rub = MathPow(F*MathPow(1.0+r_doll,T)/E_0,1/T)-1.0;
 
Roman #:

А Т это точно степень?
Скорее всего это просто обозначение транспонирования.

Ну, вот я считаю по формуле и получаю цену форварда, при фиксированной ставке ЦБ и ФРС

double cur_fut = (p_data.spot_sell * (MathPow((1 + 9.5/100.0), p_data.exp_day/double(YEAR))/MathPow((1 + CbIno/100.0), p_data.exp_day/double(YEAR)))) * p_data.fut_contr_size;

Цена форварда получается такой

57756.96744778841821244

А вот посчитать обратно никак не получается (текущую ставку ЦБ из текущих цен)

Сейчас считаю ее по другому, но нашел эту формулу (более точную)

и хочу задействовать ее.

 
prostotrader #:

Ну, вот я считаю по формуле и получаю цену форварда, при фиксированной ставке ЦБ и ФРС

Цена форварда получается такой

А вот посчитать обратно никак не получается (текущую ставку ЦБ из текущих цен)

Сейчас считаю ее по другому, но нашел эту формулу (более точную)

и хочу задействовать ее.

Не, я пас. Возможно ребята помогут.

 
Andrey Miguzov #:

Не останавливайтесь, упростите большую скобку по формулам:

1) (a*b)^x=a^x*b^x

2) (a^x)^(1/x)=a

 
Aleksey Nikolayev #:

Не останавливайтесь, упростите большую скобку по формулам:

1) (a*b)^x=a^x*b^x

2) (a^x)^(1/x)=a

Дальше там уже и компилятор справится :)

 
Andrey Miguzov #:

Не правильно, получается

double r_rub = MathPow(p_data.fut_buy/p_data.fut_contr_size * MathPow(1.0 + CbIno/100.0, p_data.exp_day/double(YEAR))/p_data.spot_sell, 1.0/p_data.exp_day/double(YEAR)) - 1.0;
 
prostotrader #:

Не правильно, получается -1

А так?

double r_rub = MathPow((p_data.fut_buy/p_data.fut_contr_size) * MathPow(1.0 + CbIno/100.0, p_data.exp_day/double(YEAR))/p_data.spot_sell, 1.0/(p_data.exp_day/double(YEAR))) - 1.0;
 
Andrey Miguzov #:

А так?

Нет

результат 

0.095000000000000417

А должно быть от 25 до 35

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