مدیریت ریسک
مقدمه
دغدغه اصلی مدیریت ریسک، ریسک اعتباری است. منظور از ریسک اعتباری این است که واسطهگر مسئول مالی معاملات مشتری است. برخی از نمایندگان صنعت در جلسه کمیته مقررات بازارهای ثانویه و کمیته مقررات واسطهگران بازار تأکید کردند که میزان ریسک اعتباری که اعضای بازار-که عضو پایاپای نیستند- متوجه اعضای پایاپای میکنند، مشابه مشتریان دسترسی الکترونیکی مستقیم واسطهگر است. تعدادی از واسطهگرانی که به پرسشنامه کمیته مقررات واسطهگران بازار پاسخ دادهاند نیز اظهارنظر مشابهای کردهاند.
به عنوان مثال، به نظر یک شرکت در آمریکای شمالی ریسک تطابق با مقررات، زمانی که مشتری غیرعضو بازار به طور مستقیم سفارش خود را به نام واسطهگر وارد بازار میکند، بیشتر است و ریسک اعتباری زمانی که مشتری استفاده کننده از دسترسی الکترونیکی مستقیم عضو پایاپای نیست، افزایش مییابد.
بنا به اظهار این شرکت در شرایطیکه واسطهگر تنها خدمات پایاپای به مشتری ارائه میکند، واسطهگر عضو پایاپای مسئول مالی معامله محسوب میشود. از این رو، اگر مشتری نتواند وجه نقد و یا اوراق بهادار کافی برای تسویه ارائه دهد، واسطهگر موظف است که نسبت به انجام امور تسویه اقدام کند.
باید توجه داشت واسطهگری که امور پایاپای خود را انجام نمیدهد در ارتباط با مشتری غیرعضو دسترسی الکترونیکی مستقیم با ریسکهای مالی نیز مواجه است، زیرا معامله به لحاظ فنی به واسطهگر وابسته است و بنابراین مسئولیت نهایی در قبال عضو پایاپای بر عهده واسطهگر است.
در بسیاری از کشورها، مسئولیت کنترل اعتبار کلی و مدیریت ریسک که شامل دسترسی الکترونیکی مستقیم نیز میشود، در درجه اول بر عهده عضو بازار و عضو پایاپای مرتبط با وی (که در مجموع "شرکتهای مسئول" خوانده میشوند) و نهاد تسویه و پایاپای است، نه بازار. هم چنین نهادهای تسویه و پایاپای تعهدات مدیریت ریسک واسطهگران به ویژه در ارتباط با دسترسی الکترونیکی مستقیم را تقبل نمیکنند، بلکه نقش پشتیبانیکننده را ایفا میکنند. بسیاری از کشورها در پاسخ به تحقیق کمیته مقررات بازارهای ثانویه بر اهمیت نقش نهادهای تسویه و پایاپای در قبال واسطهگری که عضو نهاد تسویه و پایاپای است و برای خود یا از طرف مشتریان امور پایاپای را انجام میدهد، تاکید کردهاند. نهاد تسویه و پایاپای سیستمهای مناسبی برای مدیریت ریسک دارند که از آن جمله میتوان به وضع محدودیتهای معاملاتی و موقعیتی، تنظیم الزامات ودیعه و همچنین کنترلهای وثیقهای و پایش سلامت اعضای پایاپای اشاره کرد.
در پیگیری خودکار سفارش که سفارشها از طریق زیرساختهای واسطهگر ارسال میشود، واسطهگر از فرصت و زمان کافی برای اجرای پروتکلهای مدیریت ریسک برخوردار است که شامل کنترلهای پیش از معامله نیز میشود. با این حال، سرعت اجرای الکترونیکی به چند میلی ثانیه محدود میشود و این زمانی است که میتواند صرف مدیریت ریسک سنتی و کشف معاملات خطا و واکنش به آن شود. در دسترسی تضمینی که سفارشها خارج از زیرساختهای واسطهگران به سیستم تطبیق بورس ارسال میشود، توانایی شرکت مسئول برای ارزیابی دقیق ریسک به ویژه پیش از انجام معامله، با نبود کارکردهای نرم افزاری مدیریت ریسک که برای مسیر اجرای بازار طراحی شده باشد، بسیار کمتر است. این امر باعث تشدید آثار منفی بالقوه اشتباهات صورت گرفته (به عنوان مثال الگوریتم نادرست) یا تجاوز از محدوده اعتبار مشتری میشود.
اگرچه رقابت باعث میشود بازارهای عمده، ابزارهای مدیریت ریسک موردنظر واسطهگران را تکمیل کنند، کارکردهای مدیریت ریسکی که بازارها و شرکتهای تسویه و پایاپای به عنوان بخشی از سیستمهای معاملاتی الکترونیکی خود فراهم کردهاند، هم چنان متفاوت خواهد بود. مسألهای که به لحاظ مقرراتی مطرح میشود، این است که آیا مقامات ناظر بازارها باید به طور خاص نوع کنترلهایی را که سیستمهای معاملاتی در راستای اهداف مدیریت ریسک فراهم میکنند (نظیر فیلترها)، مشخص کنند یا خیر.
تجارب کنونی: از منظر بازار
بر اساس نتایج تحقیق، بازارها اذعان دارند که به شرکتهای مسئول (اعضای بازار و اعضای پایاپای مرتبط با آنها) به دلیل برخورداری از کنترل و رویههای مدیریت ریسک نیاز دارند. در واقع بازارها با اتخاذ مجموعهای از سیاستها سعی در تسهیل راه اندازی سیستمهای موردنیاز دارند.
برخی از بازارها اصول پیشرفتهای را بنا نهادهاند که حاوی الزامات متعددی برای مدیریت ریسک است. بر این اساس، اعضایی که امکان دسترسی الکترونیکی مستقیم را برای مشتریان خود فراهم آوردهاند، موظفند رویههایی را که هدف آن دستیابی به آرمانهای مدیریت ریسک ویژهای است، اجرا کنند، اما این بازارها، پارامترهای خاص و مشروح برای دستیابی به این آرمانها تعریف نمیکنند. عدم ارائه تفصیل بیشتر در مورد الزامات کنترل داخلی/مدیریت ریسک از این باور سرچشمه میگیرد که شرکتهای مسئول باید از انعطافپذیری لازم برای اعتبارسنجی و اجرای کنترلهایی که با ساختار و فلسفه کسب و کار اعضای بازار یا شرکتهای عضو پایاپای همخوانی دارد، برخوردار باشند.
برخی از بازارها الزامات مفصلتری تنظیم کردهاند. برای مثال میتوان به فهرست کنترلهای لازم نظیر پایش قابلیتها و توانایی تنظیم پارامترهای کنترل اعتبار (نظیر محدودیتهای مربوط به حجم معاملات، تعداد موقعیتهای معاملاتی، افشا و محصولات و ابزارهای مجاز) و توانایی تنظیم ارزشها و پارامترهای کنترلی به صورت لحظهای و طی جلسه معاملاتی اشاره کرد.
اگرچه سیستمهای معاملاتی بسیاری از بازارها دارای کارکردهای متعددی نظیر کنترلهای پیش از معامله (برای مثال فیلترها، اعلامیه های "ارسال کپی" و کارکردهای "توقف معامله") که -1) { window.onscroll = function () { var articleElement = document.querySelector(".post-box"); var currentState = document.body.scrollTop || document.documentElement.scrollTop; var pageHeight = articleElement.scrollHeight; // var pageHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight; var scrollStatePercentage = (currentState / pageHeight) * 100; document.querySelector(".reading-progress").setAttribute("value", scrollStatePercentage); if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) { document.querySelector(".reading-progress").setAttribute("value", 100); } } } if (document.getElementById("total-label")) { if (/^\/\d{4}\/\d{2}\/\d{2}\/post-\d+.*/i.test(window.location.pathname)) { document.getElementById("total-label").innerHTML = "نظر"; } else if (window.location.pathname.indexOf("/dailylink") == 0) { document.getElementById("total-label").innerHTML = "لینک"; } else if (window.location.search.indexOf("?q=") > -1) { document.getElementById("total-label").innerHTML = "نتیجه"; } else if (window.location.pathname == "" || window.location.pathname == "/" || window.location.pathname.indexOf("/page/") == 0 || window.location.pathname.indexOf("/posts") == 0 || window.location.pathname.indexOf("/category/") == 0 || window.location.pathname.indexOf("/tag/") == 0 || window.location.pathname.indexOf("/author/") == 0 || /^\/\d{4}(\/\d{2})?(\/\d{2})?/i.test(window.location.pathname)) { document.getElementById("total-label").innerHTML = "یادداشت"; } else { document.getElementById("total-label").innerHTML = "نظر"; } } //more (function (global, factory) { typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global = global || self, global.shave = factory()); }(this, function () { "use strict"; function shave(target, maxHeight) { var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; if (!maxHeight) throw Error("maxHeight is required"); var els = typeof target === "string" ? document.querySelectorAll(target) : target; if (!els) return; var character = opts.character || "…"; var classname = opts.classname || "js-shave"; var spaces = typeof opts.spaces === "boolean" ? opts.spaces : true; var charHtml = "".concat(character, ""); if (!("length" in els)) els = [els]; for (var i = 0; i < els.length; i += 1) { var el = els[i]; var styles = el.style; var span = el.querySelector(".".concat(classname)); var textProp = el.textContent === undefined ? "innerText" : "textContent"; // If element text has already been shaved if (span) { el.removeChild(el.querySelector(".js-shave-char")); el[textProp] = el[textProp]; } var fullText = el[textProp]; var words = spaces ? fullText.split(" ") : fullText; if (words.length < 2) continue; var heightStyle = styles.height; styles.height = "auto"; var maxHeightStyle = styles.maxHeight; styles.maxHeight = "none"; if (el.offsetHeight <= maxHeight) { styles.height = heightStyle; styles.maxHeight = maxHeightStyle; continue; } var max = words.length - 1; var min = 0; var pivot = void 0; while (min < max) { pivot = min + max + 1 >> 1; el[textProp] = spaces ? words.slice(0, pivot).join(" ") : words.slice(0, pivot); el.insertAdjacentHTML("beforeend", charHtml); if (el.offsetHeight > maxHeight) max = spaces ? pivot - 1 : pivot - 2; else min = pivot; } el[textProp] = spaces ? words.slice(0, max).join(" ") : words.slice(0, max); el.insertAdjacentHTML("beforeend", charHtml); var diff = spaces ? " ".concat(words.slice(max).join(" ")) : words.slice(max); var shavedText = document.createTextNode(diff); var elWithShavedText = document.createElement("span"); elWithShavedText.classList.add(classname); elWithShavedText.style.display = "none"; elWithShavedText.appendChild(shavedText); el.insertAdjacentElement("beforeend", elWithShavedText); styles.height = heightStyle; styles.maxHeight = maxHeightStyle; } } return shave; })); shave(".collapsable", 25, { character: "" }); document.querySelector(".collapsable").addEventListener("click", function () { if (this.querySelector(".js-shave")) { this.querySelector(".js-shave-char").remove(); this.textContent += this.querySelector(".js-shave").textContent; } }); //Parallax (function (n, h) { "function" === typeof define && define.amd ? define([], h) : "object" === typeof module && module.exports ? module.exports = h() : n.Rellax = h() })("undefined" !== typeof window ? window : global, function () { var n = function (h, p) { var a = Object.create(n.prototype), l = 0, r = 0, k = 0, t = 0, c = [], u = !0, B = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame || window.oRequestAnimationFrame || function (a) { return setTimeout(a, 1E3 / 60) }, q = null, C = window.cancelAnimationFrame || window.mozCancelAnimationFrame || clearTimeout, D = window.transformProp || function () { var a = document.createElement("div"); if (null === a.style.transform) { var b = ["Webkit", "Moz", "ms"], e; for (e in b) if (void 0 !== a.style[b[e] + "Transform"]) return b[e] + "Transform" } return "transform" }(); a.options = { speed: -2, center: !1, wrapper: null, relativeToWrapper: !1, round: !0, vertical: !0, horizontal: !1, callback: function () { } }; p && Object.keys(p).forEach(function (d) { a.options[d] = p[d] }); h || (h = ".rellax"); var m = "string" === typeof h ? document.querySelectorAll(h) : [h]; if (0 < m.length) { a.elems = m; if (a.options.wrapper && !a.options.wrapper.nodeType) if (m = document.querySelector(a.options.wrapper)) a.options.wrapper = m; else { console.warn("Rellax: The wrapper you're trying to use doesn't exist."); return } var w = function () { for (var d = 0; d < c.length; d++)a.elems[d].style.cssText = c[d].style; c = []; r = window.innerHeight; t = window.innerWidth; x(); for (d = 0; d < a.elems.length; d++) { var b = a.elems[d], e = b.getAttribute("data-rellax-percentage"), g = b.getAttribute("data-rellax-speed"), h = b.getAttribute("data-rellax-zindex") || 0, l = b.getAttribute("data-rellax-min"), n = b.getAttribute("data-rellax-max"), v = a.options.wrapper ? a.options.wrapper.scrollTop : window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; a.options.relativeToWrapper && (v = (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop) - a.options.wrapper.offsetTop); var f = a.options.vertical ? e || a.options.center ? v : 0 : 0, k = a.options.horizontal ? e || a.options.center ? a.options.wrapper ? a.options.wrapper.scrollLeft : window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft : 0 : 0; v = f + b.getBoundingClientRect().top; var m = b.clientHeight || b.offsetHeight || b.scrollHeight, p = k + b.getBoundingClientRect().left, q = b.clientWidth || b.offsetWidth || b.scrollWidth; f = e ? e : (f - v + r) / (m + r); e = e ? e : (k - p + t) / (q + t); a.options.center && (f = e = .5); g = g ? g : a.options.speed; e = y(e, f, g); b = b.style.cssText; f = ""; 0 <= b.indexOf("transform") && (f = b.indexOf("transform"), f = b.slice(f), f = (k = f.indexOf(";")) ? " " + f.slice(11, k).replace(/\s/g, "") : " " + f.slice(11).replace(/\s/g, "")); c.push({ baseX: e.x, baseY: e.y, top: v, left: p, height: m, width: q, speed: g, style: b, transform: f, zindex: h, min: l, max: n }) } u && (window.addEventListener("resize", w), u = !1); z() }, x = function () { var d = l, b = k; l = a.options.wrapper ? a.options.wrapper.scrollTop : (document.documentElement || document.body.parentNode || document.body).scrollTop || window.pageYOffset; k = a.options.wrapper ? a.options.wrapper.scrollLeft : (document.documentElement || document.body.parentNode || document.body).scrollLeft || window.pageXOffset; a.options.relativeToWrapper && (l = ((document.documentElement || document.body.parentNode || document.body).scrollTop || window.pageYOffset) - a.options.wrapper.offsetTop); return d != l && a.options.vertical || b != k && a.options.horizontal ? !0 : !1 }, y = function (d, b, e) { var c = {}; d = 100 * e * (1 - d); b = 100 * e * (1 - b); c.x = a.options.round ? Math.round(d) : Math.round(100 * d) / 100; c.y = a.options.round ? Math.round(b) : Math.round(100 * b) / 100; return c }, A = function () { x() && !1 === u && z(); q = B(A) }, z = function () { for (var d, b = 0; b < a.elems.length; b++) { d = y((k - c[b].left + t) / (c[b].width + t), (l - c[b].top + r) / (c[b].height + r), c[b].speed); var e = d.y - c[b].baseY, g = d.x - c[b].baseX; null !== c[b].min && (a.options.vertical && !a.options.horizontal && (e = e <= c[b].min ? c[b].min : e), a.options.horizontal && !a.options.vertical && (g = g <= c[b].min ? c[b].min : g)); null !== c[b].max && (a.options.vertical && !a.options.horizontal && (e = e >= c[b].max ? c[b].max : e), a.options.horizontal && !a.options.vertical && (g = g >= c[b].max ? c[b].max : g)); a.elems[b].style[D] = "translate3d(" + (a.options.horizontal ? g : "0") + "px," + (a.options.vertical ? e : "0") + "px," + c[b].zindex + "px) " + c[b].transform } a.options.callback(d) }; a.destroy = function () { for (var d = 0; d < a.elems.length; d++)a.elems[d].style.cssText = c[d].style; u || (window.removeEventListener("resize", w), u = !0); C(q); q = null }; w(); A(); a.refresh = w; return a } console.warn("Rellax: The elements you're trying to select don't exist.") }; return n }); new Rellax(".rellax");