function cnd(x) -- taylor series coefficients local a1, a2, a3, a4, a5 = 0.31938153, -0.356563782, 1.781477937,-1.821255978, 1.330274429 local l = math.abs(x) local k = 1.0 / (1.0 + 0.2316419 * l) local w = 1.0 - 1.0 / math.sqrt(2 * math.pi) * math.exp(-l * l / 2) * (a1 * k + a2 * k * k + a3 * (k^3) + a4 * (k^4) + a5 * (k^5)) if x < 0 then w = 1.0 - w end return w end -- The Black-Scholes option valuation function -- is_call: true for call, false for put -- s: current price -- x: strike price -- t: time -- r: interest rate -- v: volatility function black_scholes(is_call, s, x, t, r, v) local d1 = (math.log(s / x) + (r + v * v / 2.0) * t) / (v * math.sqrt(t)) local d2 = d1 - v * math.sqrt(t) if is_call then return s * cnd(d1) - x * math.exp(-r * t) * cnd(d2) else return x * math.exp(-r * t) * cnd(-d2) - s * cnd(-d1) end endПроверено вчера на путах сишки. Расчет совпал с табличными значениями «теор цена» на июньских, сентярьских, декабрьских досках опционов.
Создание на Lua своего индикатора в графике Quik: Часть 2. Пример работы нестандартных индикаторов: спред между инструментами, прогноз Highи Lowследующего интервала; ценовых уровней по объемам
В первой части (https://smart-lab.ru/blog/930907.php) были изложены основы принципа создания своего индикатора и некоторые нюансы работы с кодом индикатора графика в Qiuk (подразумевается использование языка программирования Lua).
В данной статье немного продолжу тему нюансов кодирования индикатора и для иллюстрации приведу простой код индикатора спреда. В конце текста прикреплю видео с демонстрацией работы индикатора спреда и моих собственных индикаторов.
Небольшое лирическое отступление. Суть данных статей — показать, что делать подобные индикаторы вполне реально и не столь сложно, как может показаться на первый взгляд. Но, безусловно, требует определенных знаний в программировании. Создавать индикаторы из стандартного набора торговой системы Qiuk смысла нет – ведь они уже реализованы.
while stopped==false do sig=1 --значение по умолчанию if условие and sig==1 then sig=2 --после транзакции изменяется на 2 отправка транзакции elseif условие and flag==2 then sig=1 --после транзакции меняется на исходную 1 отправка транзакции end end
Здравствуйте. Возможно ли написать скрипт на Lua, который бы создавал таблицу со значениями индикатора ATR.
Заголовками столбцов были бы даты(30 последних торговых сессий), заголовки строк — короткое наименование ТОП-20 фьючерсов по обороту.
Нужно, чтобы в ячейках таблицы были значения ATR за n-ный день в таком-то фьючерсе.
Спасибо.