<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Расчет теоретической цены опциона по методике Московской Биржи]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Расчет теоретической цены опциона по методике Московской Биржи форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Mon, 20 Apr 2026 02:32:12 +0300</pubDate>
		<item>
			<title>Расчет теоретической цены опциона по методике Московской Биржи</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message75952/topic1500/">Расчет теоретической цены опциона по методике Московской Биржи</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Скопировал функции Black_Scholes из этой темы, но где-то делаю ошибку, так как функция выдаёт 0.<br />Помогите, пожалуйста, найти ошибку в коде:<br />
====code====
<pre>-- F: Текущая цена фьючерса
-- S: Страйк
-- V: Волатильность
-- T: Время в долях года до окончания срока действия опциона (30 / 365)
function Black_Scholes(F, S, V, T)
&nbsp;&nbsp;&nbsp;&nbsp;d1 = (math.log(F / S) + V * V * (T / 366) / 2) / (V * math.sqrt(T / 366))
&nbsp;&nbsp;&nbsp;&nbsp;d2 = d1 - V * math.sqrt(T / 366)

&nbsp;&nbsp;&nbsp;&nbsp;Call = F * N(d1) - S * N(d2)
&nbsp;&nbsp;&nbsp;&nbsp;Put = Call + S - F
&nbsp;&nbsp;&nbsp;&nbsp;return Call
end

function N(x) -- Функция стандартного нормального распределения
&nbsp;&nbsp;&nbsp;&nbsp;if x &#62; 10 then return 1 end
&nbsp;&nbsp;&nbsp;&nbsp;if x &#60; -10 then return 0 end
&nbsp;&nbsp;&nbsp;&nbsp;ax = math.abs(x)
&nbsp;&nbsp;&nbsp;&nbsp;t = 1 / (1 + 0.2316419 * ax)
&nbsp;&nbsp;&nbsp;&nbsp;d = 1 / math.sqrt(2 * math.pi) * math.exp(-x * x / 2)
&nbsp;&nbsp;&nbsp;&nbsp;p = d * t * ((((1.330274429 * t - 1.821255978) * t + 1.781477937) * t - 0.356563782) * t + 0.31938153)
&nbsp;&nbsp;&nbsp;&nbsp;if x &#62; 0 then return 1 - p else return p end
end

function GetOptionTheorprices()
&nbsp;&nbsp;&nbsp;&nbsp;ClassCode = "SPBOPT";
&nbsp;&nbsp;&nbsp;&nbsp;SecCode = "RI120000BH4";
&nbsp;&nbsp;&nbsp;&nbsp;BaseClassCode = "SPBFUT";
&nbsp;&nbsp;&nbsp;&nbsp;--заказ данных
&nbsp;&nbsp;&nbsp;&nbsp;ParamRequest(ClassCode, SecCode, "volatility");
&nbsp;&nbsp;&nbsp;&nbsp;ParamRequest(ClassCode, SecCode, "theorprice");
&nbsp;&nbsp;&nbsp;&nbsp;ParamRequest(ClassCode, SecCode, "DAYS_TO_MAT_DATE");
&nbsp;&nbsp;&nbsp;&nbsp;ParamRequest(ClassCode, SecCode, "strike");
&nbsp;&nbsp;&nbsp;&nbsp;ParamRequest(ClassCode, SecCode, "optiontype");
&nbsp;&nbsp;&nbsp;&nbsp;ParamRequest(ClassCode, SecCode, "optionbase");
&nbsp;&nbsp;&nbsp;&nbsp;Optionbase = getParamEx(ClassCode, SecCode, "optionbase").param_image;
&nbsp;&nbsp;&nbsp;&nbsp;ParamRequest(BaseClassCode, Optionbase, "settleprice");
&nbsp;&nbsp;&nbsp;&nbsp;Optiontype = getParamEx(ClassCode, SecCode, "optiontype").param_image;
&nbsp;&nbsp;&nbsp;&nbsp;DAYS_TO_MAT_DATE = getParamEx(ClassCode, SecCode, "DAYS_TO_MAT_DATE").param_value + 0;
&nbsp;&nbsp;&nbsp;&nbsp;option_base_settleprice = getParamEx("SPBFUT", Optionbase, "settleprice").param_value + 0;
&nbsp;&nbsp;&nbsp;&nbsp;strike = getParamEx(ClassCode, SecCode, "strike").param_value + 0;
&nbsp;&nbsp;&nbsp;&nbsp;volatility = getParamEx(ClassCode, SecCode, "volatility").param_value + 0;
&nbsp;&nbsp;&nbsp;&nbsp;theorprice = getParamEx(ClassCode, SecCode, "theorprice").param_value + 0;
&nbsp;&nbsp;&nbsp;&nbsp;Black_Scholes_Price = Black_Scholes(option_base_settleprice, strike, volatility / 100.0, DAYS_TO_MAT_DATE / 365.0);
&nbsp;&nbsp;&nbsp;&nbsp;message(
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"QLua: _____________________________________" ..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&#92;n" .. YYYYMMDD() ..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&#92;nClassCode=" .. tostring(ClassCode) ..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&#92;nSecCode=" .. tostring(SecCode) ..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&#92;nOption Base ClassCode=" .. tostring(BaseClassCode) ..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&#92;nOptionbase=" .. tostring(Optionbase) ..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&#92;nOptiontype=" .. tostring(Optiontype) ..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&#92;nDAYS_TO_MAT_DATE=" .. tostring(DAYS_TO_MAT_DATE) ..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&#92;nOption Base settleprice=" .. tostring(option_base_settleprice) ..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&#92;nstrike=" .. tostring(strike) ..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&#92;nvolatility=" .. tostring(volatility) ..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&#92;ntheorprice=" .. tostring(theorprice) ..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&#92;nBlack_Scholes_Price=" .. tostring(Black_Scholes_Price) ..
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&#92;nQLua: _____________________________________",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1);
&nbsp;&nbsp;&nbsp;&nbsp;--&#91;&#91;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Результат:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QLua: _____________________________________
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2024.06.29
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ClassCode=SPBOPT
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SecCode=RI120000BH4
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Option Base ClassCode=SPBFUT
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optionbase=RIU4
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optiontype=Call
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DAYS_TO_MAT_DATE=48.0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Option Base settleprice=115200.0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strike=120000.0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;volatility=18.318
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theorprice=1280.0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Black_Scholes_Price=0.0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QLua: _____________________________________
&nbsp;&nbsp;&nbsp;&nbsp;&#93;&#93;
end

function main()
&nbsp;&nbsp;&nbsp;&nbsp;do_it = true;
&nbsp;&nbsp;&nbsp;&nbsp;while (do_it) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetOptionTheorprices();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _ = 1, 20 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(500);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not do_it then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;end
end

function OnStop()
&nbsp;&nbsp;&nbsp;&nbsp;do_it = false;
end

function YYYYMMDD(datetime)
&nbsp;&nbsp;&nbsp;&nbsp;if not datetime then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;datetime = os.date("*t");
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;local DD = datetime.day
&nbsp;&nbsp;&nbsp;&nbsp;if DD &#60; 10 then DD = "0" .. DD end

&nbsp;&nbsp;&nbsp;&nbsp;local MM = datetime.month
&nbsp;&nbsp;&nbsp;&nbsp;if MM &#60; 10 then MM = "0" .. MM end

&nbsp;&nbsp;&nbsp;&nbsp;local YYYY = datetime.year
&nbsp;&nbsp;&nbsp;&nbsp;return table.concat({ YYYY, MM, DD }, ".");
end

</pre>
============= <br />
			<i>29.06.2024 13:37:30, Meganerd.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message75952/topic1500/</link>
			<guid>http://forum.quik.ru/messages/forum10/message75952/topic1500/</guid>
			<pubDate>Sat, 29 Jun 2024 13:37:30 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Расчет теоретической цены опциона по методике Московской Биржи</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message18512/topic1500/">Расчет теоретической цены опциона по методике Московской Биржи</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_X0ZthySU" href="/user/2231/" bx-tooltip-user-id="2231">Женя</a> написал:<br />И еще такой момент, значение волатильности тоже &quot;запаздывает&quot;? Его тоже необходимо рассчитывать самому и использовать в формуле Б.-Ш.? Или на доске актуальное значение?<br />=============<br />Значение волатильности тоже запаздывает. Правда, вред от его запаздывания сильно меньше, чем вред от резкого изменения цена базового актива. Волатильность потому и придумывали/используют, что она меняется заметно медленнее, чем цены опционов и базового актива. <br />
			<i>15.09.2016 05:57:27, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message18512/topic1500/</link>
			<guid>http://forum.quik.ru/messages/forum10/message18512/topic1500/</guid>
			<pubDate>Thu, 15 Sep 2016 05:57:27 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Расчет теоретической цены опциона по методике Московской Биржи</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message18478/topic1500/">Расчет теоретической цены опциона по методике Московской Биржи</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			И еще такой момент, значение волатильности тоже &quot;запаздывает&quot;? Его тоже необходимо рассчитывать самому и использовать в формуле Б.-Ш.? Или на доске актуальное значение? <br />
			<i>14.09.2016 15:22:10, Женя.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message18478/topic1500/</link>
			<guid>http://forum.quik.ru/messages/forum10/message18478/topic1500/</guid>
			<pubDate>Wed, 14 Sep 2016 15:22:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Расчет теоретической цены опциона по методике Московской Биржи</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message18475/topic1500/">Расчет теоретической цены опциона по методике Московской Биржи</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_SVDjENAO" href="/user/115/" bx-tooltip-user-id="115">_sk_</a> написал:<br />Биржа рассчитывает волатильность и теоретическую цену не реал-тайм, а с некоторой периодичностью. Методика расчёта тут: <noindex><a href="http://fs.moex.com/files/4720" target="_blank" rel="nofollow">http://fs.moex.com/files/4720</a></noindex><br /><br />=============<br />Спасибо, я этот документ и читал, просто подумал, что не актуальный, т.к. идет разница.<br />====quote====<br /><a class="blog-p-user-name" id="bp_FhNyio2L" href="/user/115/" bx-tooltip-user-id="115">_sk_</a> написал:<br />Для простых вариантов можно брать волатильность опциона из QUIK и оценивать теоретическую цену по формуле Б.-Ш. с использованием текущей цены.<br />=============<br />Я так и делаю. Вывел себе все данные для формулы для наглядности в момент изменения теоретической цены на доске опционов, и вот именно в момент обновления по формуле Б.-Ш. расчет совпадает с сайтом <noindex><a href="http://www.option.ru/analysis/option#calculator" target="_blank" rel="nofollow">option.ru</a></noindex>, а теоретическая цена на доске другая. Вот и возник вопрос: кто считает верно? <br />
			<i>14.09.2016 14:57:39, Женя.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message18475/topic1500/</link>
			<guid>http://forum.quik.ru/messages/forum10/message18475/topic1500/</guid>
			<pubDate>Wed, 14 Sep 2016 14:57:39 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Расчет теоретической цены опциона по методике Московской Биржи</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message18474/topic1500/">Расчет теоретической цены опциона по методике Московской Биржи</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br />Подскажите, где узнать, по какому принципу идет расчет на бирже? &nbsp;Используется ли для расчета крайнее или все же предыдущее значение &nbsp;волатильности?<br />=============<br /><br />Биржа рассчитывает волатильность и теоретическую цену не реал-тайм, а с некоторой периодичностью. Методика расчёта тут: <noindex><a href="http://fs.moex.com/files/4720" target="_blank" rel="nofollow">http://fs.moex.com/files/4720</a></noindex><br /><br />Для простых вариантов можно брать волатильность опциона из QUIK и оценивать теоретическую цену по формуле Б.-Ш. с использованием текущей цены. Для более сложных вариантов придётся самому брать биды/офера по страйкам и вычислять свою улыбку волатильности. <br />
			<i>14.09.2016 14:51:35, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message18474/topic1500/</link>
			<guid>http://forum.quik.ru/messages/forum10/message18474/topic1500/</guid>
			<pubDate>Wed, 14 Sep 2016 14:51:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Расчет теоретической цены опциона по методике Московской Биржи</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message18473/topic1500/">Расчет теоретической цены опциона по методике Московской Биржи</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день. Прошу помощи у опытных опционщиков, помогите понять, как идет расчет теоретической цены опциона. Если использовать приведенный в теме код, то он совпадает с расчетами опционного калькулятора с сайта <noindex><a href="http://www.option.ru/analysis/option#calculator" target="_blank" rel="nofollow">option.ru</a></noindex>.<br />Однако в таблице опционов Quik цифра совсем иная, практически всегда бОльшая, хотя бывает, что и расчет кодом выдает значение большее, чем теоретическая цена в момент обновления на доске опционов в Quik.<br /><br />Подскажите, где узнать, по какому принципу идет расчет на бирже? Используется ли для расчета крайнее или все же предыдущее значение волатильности?<br />Или все же можно просто смотреть расчет по коду и не переживать? <br />
			<i>14.09.2016 14:32:49, Женя.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message18473/topic1500/</link>
			<guid>http://forum.quik.ru/messages/forum10/message18473/topic1500/</guid>
			<pubDate>Wed, 14 Sep 2016 14:32:49 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Расчет теоретической цены опциона по методике Московской Биржи</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message13782/topic1500/">Расчет теоретической цены опциона по методике Московской Биржи</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Спасибо разобрался. Волатильность была в процентах &nbsp; <br />
			<i>09.03.2016 14:05:38, Константин Рейм.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message13782/topic1500/</link>
			<guid>http://forum.quik.ru/messages/forum10/message13782/topic1500/</guid>
			<pubDate>Wed, 09 Mar 2016 14:05:38 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Расчет теоретической цены опциона по методике Московской Биржи</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message13775/topic1500/">Расчет теоретической цены опциона по методике Московской Биржи</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Проверьте следующие пункты:<br />1) Время в долях года надо подставлять. Для RIH6 в данный момент (2016-03-09) это что-то типа 0.017.<br />2) Волатильность должна быть в долях, а не процентах. Для RIH6 на страйке 80 000 это что-то типа 0.385 сейчас.<br />
====code====
<pre>/**
 * Цена опциона колл.
 *
 * @param underlying значение базового актива
 * @param strike&nbsp;&nbsp;&nbsp;&nbsp; страйк
 * @param t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;время до экспирации
 * @param sigma&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;волатильность
 * @return цена опциона колл
 */
public static double callPrice(final double underlying, final double strike, final double t, final double sigma) {
&nbsp;&nbsp;&nbsp;&nbsp;if (t &#60;= 0) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return Math.max(underlying - strike, 0);
&nbsp;&nbsp;&nbsp;&nbsp;} else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final double d0 = Math.log(underlying / strike);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final double a = sigma * sigma * t / 2;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final double b = sigma * Math.sqrt(t);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final double d1 = (d0 + a) / b;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final double d2 = (d0 - a) / b;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return underlying * n(d1) - strike * n(d2);
&nbsp;&nbsp;&nbsp;&nbsp;}
}</pre>
============= <br />
			<i>09.03.2016 12:19:21, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message13775/topic1500/</link>
			<guid>http://forum.quik.ru/messages/forum10/message13775/topic1500/</guid>
			<pubDate>Wed, 09 Mar 2016 12:19:21 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Расчет теоретической цены опциона по методике Московской Биржи</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message13774/topic1500/">Расчет теоретической цены опциона по методике Московской Биржи</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			====code====
<pre>-- F: Текущая цена фьючерса
-- S: Страйк
-- V: Волатильность
-- T: Время в долях года до окончания срока действия опциона (30 / 365)
function Black_Scholes(F, S, V, T)
&nbsp;&nbsp; d1 = (math.log(F / S) + V * V * (T / 366) / 2) / (V * math.sqrt(T / 366))
&nbsp;&nbsp; d2 = d1 - V * math.sqrt(T / 366)
&nbsp;&nbsp; 
&nbsp;&nbsp; Call = F * N(d1) - S * N(d2)
&nbsp;&nbsp; Put = Call + S - F
&nbsp;&nbsp; return Call
end

function N(x) -- Функция стандартного нормального распределения
&nbsp;&nbsp; if x &#62; 10 then return 1 end
&nbsp;&nbsp; if x &#60; -10 then return 0 end
&nbsp;&nbsp; local ax = math.abs(x)
&nbsp;&nbsp; local t = 1 / (1 + 0.2316419 * ax)
&nbsp;&nbsp; local d = 1 / math.sqrt(2 * math.pi) * math.exp(-x * x / 2)
&nbsp;&nbsp; local p = d * t * ((((1.330274429 * t - 1.821255978) * t + 1.781477937) * t - 0.356563782) * t + 0.31938153)
&nbsp;&nbsp; if x &#62; 0 then return 1 - p else return p end
end
</pre>
=============
<br /><br />Функция стандартного нормального распределения - взял Вашу, &nbsp;Black_Scholes - по методике МБ, но все равно не получается получить теор. цену <br />
			<i>09.03.2016 11:56:10, Константин Рейм.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message13774/topic1500/</link>
			<guid>http://forum.quik.ru/messages/forum10/message13774/topic1500/</guid>
			<pubDate>Wed, 09 Mar 2016 11:56:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Расчет теоретической цены опциона по методике Московской Биржи</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message13750/topic1500/">Расчет теоретической цены опциона по методике Московской Биржи</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			====code====
<pre>--- Функция распределения стандартного нормального закона.
-- @param x аргумент
-- @return значение
function n(x)
&nbsp;&nbsp;&nbsp;&nbsp;if x &#62; 10 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 1.0
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;if x &#60; -10 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0.0
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;local ax = math.abs(x)
&nbsp;&nbsp;&nbsp;&nbsp;local t = 1.0 / (1.0 + 0.2316419 * ax)
&nbsp;&nbsp;&nbsp;&nbsp;local d = 1.0 / math.sqrt(2 * math.pi) * math.exp(-x * x / 2)
&nbsp;&nbsp;&nbsp;&nbsp;local p = d * t * ((((1.330274429 * t - 1.821255978) * t + 1.781477937) * t - 0.356563782) * t + 0.31938153)
&nbsp;&nbsp;&nbsp;&nbsp;if x &#62; 0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 1.0 - p
&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return p
&nbsp;&nbsp;&nbsp;&nbsp;end
end

--- Плотность нормального распределения.
-- @param x аргумент
-- @return значение
function phi(x)
&nbsp;&nbsp;&nbsp;&nbsp;return 1.0 / math.sqrt(2.0 * math.pi) * math.exp(-x * x / 2.0)
end</pre>
============= <br />
			<i>09.03.2016 06:27:24, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message13750/topic1500/</link>
			<guid>http://forum.quik.ru/messages/forum10/message13750/topic1500/</guid>
			<pubDate>Wed, 09 Mar 2016 06:27:24 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Расчет теоретической цены опциона по методике Московской Биржи</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message13721/topic1500/">Расчет теоретической цены опциона по методике Московской Биржи</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Функция стандартного нормального распределения - как это написать в коде Lua? <br />
			<i>08.03.2016 02:21:57, Константин Рейм.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message13721/topic1500/</link>
			<guid>http://forum.quik.ru/messages/forum10/message13721/topic1500/</guid>
			<pubDate>Tue, 08 Mar 2016 02:21:57 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
