Межбанковский клиринг

Белорусский государственный университет

Факультет прикладной математики и информатики

Кафедра математического моделирования и анализа данных

ЯКИМОВИЧ АЛЕКСЕЙ СЕРГЕЕВИЧ

МЕЖБАНКОВСКИЙ КЛИРИНГ

Дипломная работа

студента 5 курса

тАЬ Допустить к защите тАЬ                          Руководители

Зав. кафедрой ММАД               Змитрович Анатолий Иосифович -

доктор физ. тАУ мат. наук,                    профессор кафедры ММАД,

профессор Харин Ю.С.                кандидат экономических наук

__ ___________ 1998 г.                Рощупкин Владимир Васильевич -

начальник управления разработки                    платежных систем на основе пластиковых карточек ГП БМРЦ

                                                                         

                                                                Рецензент

Лобач Виктор Иванович -                                                                                             доцент кафедры ММАД,

кандидат физ. - мат. наук

Минск 1998

Введение

В соответствии с утвержденными планами модернизации платежной системы Республики Беларусь (РБ) в ближайшее время намечено внедрить пусковой комплекс нового проекта межбанковских расчетов в составе:

  • системы расчетов по срочным и крупным платежам на валовой основе в режиме реального времени с использованием электронных сообщений,
  • системы расчетов по прочим (мелким) платежам на клиринговой основе,
  • системы управления очередями платежных сообщений банков.

       Данный дипломный проект непосредственно связан с одной из наиболее перспективных и совершенно новой для нашей страны частью этого проекта, а именно, системе клиринговых расчетов. Рассматриваются общие механизмы функционирования реальных клиринговых систем и освещаются принципы создания и развития модели клиринговой системы Республики Беларусь в рамках создаваемой в стране автоматизированной системы межбанковских расчетов BIS. Решаются проблемы оптимизации и автоматизации построенной модели.

1. Межбанковский клиринг

  • Понятие клиринга и его назначение
  • Суть клиринговой формы расчетов состоит в следующем. Клиринг (англ. clearing) представляет собой систему регулярных безналичных расчетов, основанную на зачете взаимных требований и обязательств юридических и физических лиц за товары (услуги) и ценные бумаги.

           Клиринг представляет собой, в самом общем виде, систему безналичных расчетов за товары и услуги, основанную на зачете взаимных требований и обязательств и использующуюся банками в целях снижения потребности в оборотных средствах и упрощения обмена платежами. Место клиринговых операций в системе BIS показано на Рис. 1.1.

    Рис. 1.1. Структура АС МБР BIS.

           Как известно, расчеты по платежам могут производиться либо на валовой, либо на чистой основе. В первом случае расчеты по каждой сделке осуществляются отдельно, во втором тАУ банки, участвующие в производстве платежей, дают возможность требованиям и обязательствам накопиться на протяжении определенного периода времени тАУ лага клиринга (проблема оптимизации лага клиринга также исследуется в данном дипломном проекте). В конце данного периода производятся расчеты только по взаимно зачтенным обязательствам. Такой взаимозачет сумм кредиторской и дебиторской задолженности может иметь место между двумя сторонами (двусторонний взаимозачет) и между тремя и более сторонами (многосторонний взаимозачет).

           Когда два банка имеют большие объемы общих платежей, клиринг и урегулирование межбанковских расчетов часто осуществляется на основе двустороннего соглашения: банки договариваются о взаимозачете посланных и полученных платежных поручений (расчете чистой суммы) и об осуществлении в определенное время взаимных расчетов по чистой стоимости платежей. Этот процесс носит название двустороннего взаимозачета.

           Если в процессе взаимозачета участвуют три банка и более, то этот процесс называется многосторонним взаимозачетом. Агент группы, участвующей во взаимном погашении, подсчитывает чистую позицию каждого члена клиринговой системы в конце цикла, с учетом платежей, отправленных им другим банкам, и платежей, полученных от остальных участников системы. В результате каждый банк перечисляет лишь свой чистый остаток по счету со всеми другими участниками. После проведения взаимозачета сумма обязательств всех участников должна равняться нулю.

           Функции учета взаимных обязательств участников клиринговой системы выполняет клиринговая палата, которая является формальным или неформальным соглашением между банками об обмене платежными инструментами в определенном месте и в определенное время. Банки-члены клиринговой палаты имеют право и возможность обмениваться платежными инструментами, как в бумажном, так и в электронном виде. Остатки, образовавшиеся в результате такого обмена, должны быть оплачены.

           Расчетный агент приступает к окончательному расчету по клирингу. Роль данного учреждения состоит в том, чтобы в ходе взаимозачета получать платежи по расчетам от нетто-дебиторов и переводить средства на счета нетто-кредиторов. Кроме того, расчетный агент может выполнять и другие банковские операции, например, предоставлять кредиты для финансирования расчетов и хранить залог для обеспечения обязательств по расчетам. Расчетный агент назначается или избирается членами клиринговой палаты.

           Процесс взаимозачета обязательств сторон-участников клиринговой системы носит название клирингового сеанса. Он проводится клиринговой палатой несколько раз в течение дня в заранее установленное время и служит для исчисления промежуточного или итогового сальдо каждого члена палаты.

    К осуществлению клиринга участников вполне объективно побудил еще в XVII в. рост числа сделок и, соответственно, объема перерабатываемой информации. Затем клиринг получил широкое распространение за рубежом на товарном, фондовом рынках и особенно в банковской сфере.

           Концентрация платежей при клиринге позволяет значительно уменьшить баланс платежей и общую сумму, затрачиваемую оборачивающихся платежных средств, расширяет сферу безналичного оборота и облегчает управление им. Посредством клиринга упрощаются, удешевляются и ускоряются расчеты, сохраняется имеющаяся денежная (кассовая) наличность, и за счет этого повышается уровень прибыльности и ликвидности участников расчетов.

    Клиринг в банковской сфере может проводиться как внутри страны, так и между странами (международный валютный клиринг). Достоинством банковских клиринговых расчетов является и то, что в большинстве стран коммерческим банкам разрешено использовать свои клиринговые балансы в центральном банке для выполнения резервных требований, что, безусловно, выгодно коммерческим банкам.

    Организация межбанковского клиринга в каждой стране зависит от исторических особенностей развития банковской системы, модели ее построения, степени концентрации и централизации банковского дела, политики центрального банка в области денежно-кредитного регулирования экономики.

  • Зарубежный опыт
  • Таким образом, преимущества клиринговой системы расчетов очевидны.  Следовательно, без ее внедрения в структуру национальных межбанковских расчетов немыслима интеграция в систему международных финансовых операций. Однако, в силу того, что клиринговая система, в сущности, является совершенно новой для Республики Беларусь, имеет смысл досконально изучить зарубежный опыт становления и развития системы межбанковского клиринга.

           Широкие масштабы межбанковского клиринга за рубежом обусловлены практической невозможностью осуществить все возрастающий безналичный платежный оборот посредством индивидуальных расчетов между кредитно-финансовыми институтами. Например, в ФРГ безналичный платежный оборот составил в 1960г. 1.3 трлн. марок, в 1970г. тАУ 4.5 трлн. марок, а в 1980г. тАУ 11.7 трлн. марок (рост соответственно в 3.5 и 2.6 раза). В США этото показатель оценивается в 1970г. тАУ 12.3 трлн. долларов, в 1979г. тАУ 64.2 трлн. долларов, а в 1986г. тАУ 125 трлн. долларов.

           Организация межбанковского зачета различна в зависимости от того, являются ли банки, участвующие во взаимных зачетах, самостоятельными юридическими лицами или же они входят в систему одного и того же банка. В первом случае банки обычно обмениваются между собой чеками, векселями и другими долговыми обязательствами клиентов, доплачивая лишь разницу в специально создаваемых для расчетов организациях. Это и есть собственно межбанковский клиринг (клиринг в широком смысле). Во втором случае, т.е. при внутрибанковском клиринге (межбанковском клиринге в суженном его понимании) все расчеты, связанные с уплатой денег клиентом одного банковского филиала клиенту другого филиала того же банка при помощи различных расчетно-платежных документов (чеков, жиро-чеков и др.), производятся отнесением этих расчетов на правление (головную контору) данного банка. Обычно клиринговый отдел головной конторы и сводит все расчеты филиалов собственной системы. Соответственно разницы, подлежащие уплате или получению филиалами, не погашаются наличными деньгами, а отражаются в пассивной или активной части бухгалтерского баланса филиалов, либо как долг филиала правлению, либо как долг правления соответствующему филиалу. Проблема организации внутрибанковского клиринга особенно актуальна для крупных банковских монополий с широко разветвленной филиальной сетью.

           В зависимости от сферы применения межбанковский клиринг может быть: локальным  ВнтАУ между банками какого-либо региона, либо между банками определенной банковской группы и (или) между филиалами одного и того же банка; и общенациональным тАУ в пределах всей страны. В свою очередь специфика указанных видов межбанковского клиринга проявляется в способах их проведения. Исходя из последнего критерия, можно выделить совершаемые клиринги: через специальные межбанковские организации тАУ расчетные (клиринговые) палаты и жироцентрали; через учреждения центрального банка или крупнейшие коммерческие банки; а при внутрибанковском клиринге, при расчетах между отделениями (филиалами) тАУ через клиринговый отдел головной конторы банка. Все эти способы проведения межбанковских клиринговых расчетов тесно взаимосвязаны. Конечное сальдо расчетов в любом случае оплачивается с корреспондентских счетов коммерческих банков, открытых в центральном банке. Выбор способа для клиринга определяется соображениями быстроты и экономичности. Банки заинтересованы в скорейшем завершении расчетов, так как запаздывание с инкассированием ведет к потере доходов банка и в ряде случаев тАУ к неудобствам для вкладчиков.

           Широкое распространение за рубежом получили клиринговые палаты, основной функцией которых является зачет денежных требований и обязательств. К настоящему времени деятельность большинства расчетных палат автоматизирована. Прежде всего, нужно отметить осуществление этими палатами локального клиринга расчетно-платежных документов. Наибольшую роль расчетные палаты играют в Великобритании, США и других странах, где развито чековое обращение. Особое место среди них занимает Лондонская расчетная палата, через которую проходит ежедневно 7 млн. чеков более чем на 27 млн. фунтов стерлингов, а также 2,35 млн. других платежей на сумму 790 млн. фунтов стерлингов. К примеру, в США каждый федеральный резервный банк (их всего 12) является одновременно и расчетной палатой своего округа. Всего в США насчитывается 32 автоматические палаты ФРС (Федеральной Расчетной Сети) и, кроме того, расчетная палата Нью-Йорка. Помимо ФРС, подобные услуги оказывают и частные сети, такие, как Deluxe Data System, VISA, Chase Manhattan Bank. Услуги клиринговых палат избавляют коммерческие банки от необходимости проводки чеков через центральный банк или банк-корреспондент, что ускоряет процесс инкассирования. Ускорение, в свою очередь, способствует повышению степени доступности денежных средств. Данный фактор является главной причиной, по которой коммерческие банки пользуются услугами клиринговых палат. Помимо этого, использование клиринговых палат снижает издержки на осуществление расчетов, поскольку они обязаны регистрировать только либо активные, либо пассивные клиринговые балансы банков-участников палаты, о чем информируется центральный банк или банк-корреспондент.

           Сущность расчетов через клиринговую палату состоит в следующем. Каждый банк, член расчетной палаты, ежедневно составляет ведомости чеков и векселей, сданных ему на инкассо клиентами, отдельно по каждому такому банку. Указанные ведомости вместе с чеками и векселями направляются в клиринговую палату. Там на основании этого составляется общая расчетная ведомость, в которой определяется конечное сальдо обмена расчетно-платежными документами и выявляется, кто из банков должник и кто тАУ кредитор. Затем общая расчетная ведомость направляется в центральный банк, а чеки и векселя тАУ банкам, клиентам которых они выданы. Согласно данным полученной ведомости эмиссионный банк списывает соответствующие суммы с открытых у него корреспондентских счетов банков-корреспондентов. Не принятые расчетно-платежные документы вычеркиваются из расчетной ведомости и возвращаются непосредственно банку, представившему чеки и векселя вместе с мотивировкой отказа от оплаты.

           Если же банк не является членом клиринговой палаты, то составленные расчетные ведомости вместе с чеками и векселями представляются в эмиссионный банк, который в этом случае выполняет функции расчетной палаты. По получении ведомостей центральный банк производит соответствующие операции по корреспондентским счетам банков-должников и кредиторов. Сами же чеки и векселя направляются банкам-должникам для списания денег с текущих счетов клиентов, т.е. непосредственных должников, согласно расчетно-платежным документам.

           К локальному клирингу можно отнести и широко распространенные в ряде стран западной Европы (Австрии, Венгрии, Франции, ФРГ, Швейцарии) так называемые GIRO-системы (жироцентрали). Наиболее типичны они для ФРГ. Жироцентрали не только проводят безналичные расчеты, но осуществляют пассивные и активные операции. Так, в ФРГ они привлекают средства сберкасс и других кредитных учреждений, государства, земель и местных органов управления. Размещение же ресурсов жироцентралей производится путем предоставления долгосрочных кредитов сберкассам, государству, землям и местным органам в форме коммунальных и ипотечных займов. На практике жироцентрали нередко выполняют функции муниципальных сберегательных касс. Жтроцентрали создаются коммерческими банками обычно в форме акционерного общества открытого типа. Центральный банк страны также является, как правило, одним из учредителей GIRO-систем. Его доля участия в капитале жироцентрали пропорциональна объему информации, которую центробанк получает из такой системы от коммерческих банков в соответствии с законодательством ой или иной страны.

           Для совершения международных платежей ряд коммерческих банков прибегает к услугам международных автоматизированных систем. Наиболее крупной и известной среди них является СВИФТ (SWIFT тАУ Society for Worldwide Interbank Financial Telecommunications) тАУ Ассоциация международных межбанковских финансовых коммуникаций, которая  представляет собой автоматизированную систему осуществления международных платежей через сеть компьютеров. Эта система была создана в 1973г. представителями 240 банков и начала функционировать в 1977г. В настоящее время к данной системе подключены ведущие компании мира, на их долю приходится 90% всех мировых платежей. Через СВИФТ производятся такие виды банковских операций, как переводы денежных средств, информация о состоянии счетов в банках, подтверждение валютных сделок, расчеты по инкассо, аккредитивам, торговля ценными бумагами, согласование спорных финансовых вопросов, ведение электронных счетов клиентов и управление их средствами. Главные достоинства системы СВИФТ тАУ быстрота операций, защита от злоупотребления и ошибок с помощью шифров, удешевление стоимости банковских операций.

  • Деятельность клиринговых палат
  • Рассмотрим более детально все аспекты возникновения и существования основного элемента механизма многостороннего межбанковского взаимозачета тАУ клиринговой палаты.

    1.3.1. Категории клиринговых палат.

    В большинстве стран основным средством, используемым при урегулировании финансовых обязательств, а также приобретения товаров и услуг, являются наличные деньги. Однако в процентном отношении они составляют относительно небольшую часть от общей суммы платежей. На долю современных инструментов безналичного оборота приходится значительно меньшее количество платежей, но на значительно большие суммы. В результате широкого распространения таких инструментов финансовые круги столкнулись с серьезной проблемой, связанной с возникновением определенных трудностей при осуществлении расчетов. При использовании наличных денег окончательный расчет происходит незамедлительно. Безналичным же формам платежей свойственны задержки. Важнейшую роль в сокращении интервалов между платежами и расчетами стали играть клиринговые палаты. Их можно разделить на три категории:

    • местные
    • региональные
    • национальные

    В состав местных клиринговых палат входят учреждения, обслуживающие население данного района. Сюда относятся небольшие местные банки, сберегательные банки, ссудно-сберегательные ассоциации, кредитные союзы, местные отделения банковских групп, а также, возможно, небольшие независимые организации, обрабатывающие платежи от имени третьих сторон. Цель таких местных объединений заключается в том, чтобы облегчить расчеты при сведении к минимуму расходов для своих членов. Большая часть работы, связанной с операциями местных клиринговых палат, выполняется их членами на добровольной основе. Поэтому в данном случае не предусматривается плата за участие, хотя могут устанавливаться небольшие годовые взносы для покрытия накладных административных расходов. Местные клиринговые палаты, как правило, занимаются платежами, которые возникли и подлежат получению в пределах соответствующего района. Наиболее распространенный вид расчетов связан с обработкой платежных поручений, срок получения по которым может быть сведен до одного дня и менее. В зависимости от величины района число участников местных клиринговых палат может колебаться от двух до двадцати.

           В состав членов региональных клиринговых палат входят, в основном, крупные региональные банки, крупные независимые организации, обрабатывающие платежи третьих сторон, общенациональные банки, а также, в некоторых случаях, крупные местные или сберегательные банки. Количество членов и периодичность расчетов могут обуславливать необходимость использования сотрудников на основе полного рабочего дня и постоянной материальной базы для выполнения административных функций, связанных с расчетами. Расходы на функционирование таких систем покрываются за счет взимания платы с участников и ежегодных членских взносов.

           Членами национальных клиринговых палат, как правило, являются крупнейшие и наиболее передовые в техническом отношении банки. Обычно такие системы используются для осуществления платежей на крупные суммы. Деятельность национальных клиринговых палат сопряжена со значительными расходами по обеспечению гарантированного уровня обслуживания для членов палат, а также расходами на содержание необходимой материальной базы и персонала. Эти затраты обычно покрываются за счет определяемой на рыночной основе платы за участие и оказываемые услуги, в число которых может входить и обеспечение доступа к международным системам расчетов.

    1.3.2. Возникновение клиринговых палат.

           Большинство клиринговых механизмов возникает, когда два или несколько кредитных учреждений в одном и том же городе или районе считают выгодным обмениваться платежными инструментами. Затем образуется двусторонняя рабочая группа или комиссия, которая проводит предварительное  исследование с целью анализа жизнеспособности механизма клиринговой палаты. При этом основное внимание уделяется определению возможного количества платежных поручений, которые являются объектом взаимозачета. Если в результате такого исследования будет сделан вывод о выгодности работы клиринговой палаты, то организаторы приступают к опросу других учреждений относительно их заинтересованности в участии. Один из важнейших вопросов, возникающих в процессе организации клиринговой палаты, связан с составом ее членов. В зависимости от ряда факторов члены могут быть отнесены к одной или двум категориям. При единой категории членства все участники рассматриваются в качестве тАЬпостоянных членовтАЭ, имеющих право голосовать и вносить поправки в уставные нормы. В случае же распределения по двум категориям, ко второй категории относятся так называемые тАЬассоциированные членытАЭ, которые могут участвовать в процессе расчетов, но не имеют права голоса. Клиринговые палаты, занимающиеся расчетами только по платежным поручениям, обычно относят всех участников к категории членов с правом голоса. Это объясняется тем, что изменение правил или уставных норм затрагивает всех членов клиринговой палаты, в связи с чем каждый из них должен иметь возможность представлять свои интересы.

    Необходимость введения категории ассоциированных членов возникает в тех случаях, когда некоторым участникам клиринговой системы потребовалось осуществить вложения в материально-технические ценности, имеющие жизненно важное значение для деятельности клиринговой палаты, или когда такие ценности находятся в их собственности. В качестве примера можно привести межбанковскую телекоммуникационную коммутационную сеть. Для ее создания и функционирования могут потребоваться капиталовложения нескольких банков. Банки, осуществившие капиталовложения, будут отнесены к категории членов с правом голоса, а для других пользователей данной сети может быть установлен статус ассоциированных членов. Такое присвоение членам клиринговой палаты определенного статуса обеспечивает защиту капитала, принадлежащего банкам-учредителям. На начальных стадиях образования клиринговой палаты чрезвычайно важно разработать правила принятия в состав ее членов учреждений, деятельность которых связана с повышенным риском. Существует несколько путей решения данной проблемы.

    В зависимости от уровня платежеспособности таких учреждений для них устанавливаются максимально допустимые лимиты на сумму платежей, расчеты по которым производятся в рамках одного расчетного цикла. Это хотя и не устраняет риск полностью, но снижает уровень потенциальных потерь, которые могут возникать в любой момент времени.

    Механизм минимизации рисков предусматривает также обязательное внесение залога участниками системы взаимозачета на счет какой-либо третьей стороны или надежного в финансовом отношении члена клиринговой палаты. При этом разрешается лишь расчеты на сумму, не превышающую размера внесенного залога.

           Последний и наименее желательный вариант тАУ отказ в допуске к работе клиринговой палаты для тех учреждений, с которыми связан повышенный риск.

    1.3.3. Клиринговые расчеты.

           Клиринговые палаты проводят расчеты по операциям как на основе дебетования, так и на основе кредитования. По мере развития альтернативных форм платежей доля платежей на основе кредитования (особенно электронных) резко возросла. Сюда относятся такие операции, как выплата заработной платы, процентные платежи по долговым обязательствам, платежи за услуги и т.п. При использовании в операциях документов на бумажных носителях клиринговыми палатами обычно проводится разграничение дебетовых и кредитовых платежных инструментов. Однако при осуществлении платежей на электронной основе дебетовые и кредитовые платежные инструменты нередко не разграничиваются и расчеты по ним осуществляются одновременно.

           Возможны два варианта окончательного расчета по счетам при многостороннем чистом клиринге:

    • классический вариант
    • вариант, основанный на методе тАЬ авансирования тАЭ

    Классический вариант предусматривает урегулирование рассчитанного клиринговой палатой итогового сальдо каждого из ее членов по книгам Центрального банка. В этом случае каждому банку-участнику системы взаимозачета в клиринговой палате открывают транзитные счета-позиции, деньги на которых фактически отсутствуют. Остатки на таких счетах всегда равны нулю. Транзитный счет существует для учета обязательств и ведется по каждому банку на основании поступающих и обрабатываемых документов. По данным этого счета выводится итоговое сальдо банка (оно может быть как дебетовым, так и кредитовым), которое затем передается на основные корсчета членов клиринговой палаты, находящиеся в Центральном банке. У этой системы есть ряд преимуществ. Прежде всего, она значительно упрощает процесс расчетов. Кроме того, Центральный банк может способствовать снижению риска для клиринговой палаты, обеспечив достаточные остатки на счетах участников, положение которых является нестабильным или участников, чья деятельность связана с высоким уровнем риска.

    Второй вариант окончательного расчета по счетам основывается на методе тАЬавансированиятАЭ. Клиринговая палата создается в форме акционерного общества банками данного региона и действует как специальный клиринговый банк. Банки-участники системы взаимозачета открывают в клиринговой палате корреспондентские счета, на которые переводят часть своих средств, образующих первоначальный капитал клиринговой палаты. В свою очередь клиринговая палата открывает свой корреспондентский счет в Центральном банке. Кроме того, банки-участники клиринговой системы создают в клиринговой палате страховой (резервный) фонд для непрерывного осуществления взаимных расчетов. Клиринговая палата имеет право в случае образования дебетового сальдо у кого-либо из своих членов выдать ему краткосрочный кредит за счет указанного фонда. На основе взаимозачета кредитовых и дебетовых оборотов клиринговая палата ежедневно вносит соответствующие изменения в баланс каждого банка-участника. Информация об изменениях остатков средств клиринговой палаты по итогам работы за день поступает в Центральный банк и относится на корреспондентский счет клиринговой палаты, а сведения по корреспондентским счетам банков передаются членам клиринговой системы. Таким образом, в данном случае функции клиринговой палаты и расчетного агента осуществляются в рамках одного учреждения. Недостаток такого метода заключается в том, что расчеты по книгам коммерческого банка сопряжены с большим риском, чем расчеты по книгам Центрального банка.

    1.4. Виды финансового риска

    Участники клиринговых систем подвергаются нескольким видам финансового  риска:

    • кредитный риск
    • риск неликвидности
    • системный риск

    Рассмотрим каждый из видов риска.

           По наступлению срока погашения задолженности партнер по сделке может не выполнить своего обязательства и никогда не будет в состоянии выполнить его в полном объеме (пассивы превышают активы). Нередко такие проблемы связаны с банкротством партнера, но могут существовать и другие причины. Кредитный риск, связанный с особенностями функционирования клиринговой системы, возникает в результате разрыва во времени между обмена платежными поручениями и осуществлением окончательных расчетов по ним в конце клирингового цикла. В результате появляется так называемый скрытый кредит, предоставляемый любым из банков в течение операционного дня своим клиентам до того, как произведены окончательные расчеты с банком, пославшим платежное поручение. Центральный банк, будучи расчетным учреждением, подвергается кредитному риску, если он позволяет участникам, имеющим чистое кредитовое сальдо в конце клирингового цикла, снимать средства со счетов до того, как все участники, имеющие чистое дебетовое сальдо, произвели свои расчеты. Для уменьшения потенциальной опасности от кредитного риска рекомендуется постоянно отслеживать динамику следующих показателей банков-участников: коэффициент покрытия основных средств (КПОС), где:

                           (1.1),

    а также коэффициент краткосрочной задолженности (ККЗ) и коэффициент покрытия общей задолженности (КПОЗ):

                   (1.2)

                   (1.3)

           Еще одним видом финансового риска является риск неликвидности. По наступлении срока платежей по расчетам они могут быть не произведены, даже, если в конечном счете один или большее число партнеров будут обладать достаточными активами и собственным капиталом для того, чтобы произвести такие платежи (несоответствие структур пассивов и активов). Например, временная неспособность превратить активы в наличные средства, различные операционные затруднения или неспособность банков-корреспондентов выполнить свои функции по расчетам тАУ все это создает проблемы ликвидности. Несмотря на то, что многосторонняя система взаимозачета уменьшает общую нуждаемость участников в ликвидности, она концентрирует давление, связанное с ликвидностью, в конце цикла обработки, когда участники, имеющие задолженность, должны одновременно произвести расчеты. Для контроля за этим видом риска наиболее часто исследуются такие показатели, как коэффициент ликвидности (КЛ), где

                   (1.4)

    (оптимальное значение тАУ 2 и выше) и так называемый тАЬкислотный тесттАЭ или коэффициент лакмусовой бумажки (КЛБ, оптимальное значение 1), где

                   (1.5)

           Использование платежных систем и участие в финансовых рынках могут быть также сопряжены и с системным риском, связанным с неспособностью одного из участников выполнить свои обязательства, что приводит к нарушению функционирования других участников, начиная цепную реакцию (так называемый тАЬэффект доминотАЭ). Системный риск может стать причиной общего финансового кризиса, когда неплатеж или проблемы кредитного учреждения, связанные с недостатком ликвидности, вызывают подобные же затруднения и у других участников финансового рынка. В зависимости от факторов, способствующих возникновению данного риска, различают системный риск ликвидности и системный кредитный риск. Помочь ослабить влияние системного риска позволяет исследование так называемых показателей погашения долга: коэффициент денежного потока (КДП) и коэффициент процентных выплат (КПВ), где

                   (1.6)

                   (1.7)

    Значения этих показателей должны быть 1,5 и выше.

    1.5. Взаимозачеты и связанные с ними риски

           

           В зависимости от характеристик риска различные системы взаимозачета можно разделить на четыре вида, которые отличаются друг от друга правовой природой подлежащих уплате чистых сумм и наличием основного партнера. К числу этих видов относятся:

    • двусторонний зачет позиций
    • двусторонний взаимозачет путем новации
    • многосторонний зачет позиций
    • многосторонний взаимозачет позиций путем новации и замещения.

    1.5.1 Двусторонний зачет позиций.

           В некоторых финансовых центрах традиционно используются различные неофициальные формы валютного взаимозачета. К этим формам, которые обычно применяются в целях снижения числа осуществляемых партнерами взаимных платежей, относится и двусторонний зачет позиций. Например, в день зачисления средств по какой-нибудь группе валютных контрактов пары банков-партнеров могут определить чистые суммы, подлежащие уплате друг другу, и осуществить двустороннее урегулирование обязательств по контрактам путем оплаты чистых сумм. Однако правовые последствия такого взаимозачета обычно четко не определены, поэтому возникает большая неопределенность относительно юридического обязательства выплатить валютные или чистые суммы в том случае, если партнер испытывает финансовые трудности. В связи с этим, как правило, принимается условие, что в случае возникновения таких трудностей, стороны продолжают нести ответственность за уплату валовых сумм.

           Урегулирование чистых позиций сокращает число платежей по расчетам, которые должны быть произведены партнерами (а следовательно, и число возможных ошибок), и тем самым уменьшает расходы, но лишь в том случае, если стоимость услуг не превышает экономию, достигнутую благодаря его применению. Теоретически, при взаимозачете позиций кредитный риск остается таким же, как и при отсутствии взаимозачета, поскольку валовые обязательства, на основе которых определяется чистая сумма, не погашаются. Однако на практике существует опасность того, что сальдированные суммы будут рассматриваться как представляющие собой фактическую кредитовую позицию партнеров в рамках дилинговых и иных кредитных линий. Если подобное происходит, партнеры берут на себя риск существования очень крупных валовых позиций, даже если суммы чистых обязательств не превышают разумных пределов. Двусторонний взаимозачет позиций существенно снижает риск неликвидности. Это происходит в результате того, что при осуществлении партнерами взаимного зачета платежей пропадает необходимость обмениваться отдельными платежами по расчетам при большом числе валовых обязательств.

    1.5.2. Двусторонний взаимозачет путем новации.

           Двусторонний взаимозачет путем новации (двусторонний взаимозачет обязательств) осуществляется на основе заключенного между двумя банками соглашения, согласно которому в будущем о истечению каждого срока зачисления средств один из этих банков должен будет перевести другому сумму одну текущую сумму в той валюте, в которой они проводят операции. Это достигается путем зачета обязательств по второй и каждой последующей сделок с обязательствами по первой сделке для данного срока зачисления средств и данной валюты, в результате чего заключается новый контракт на чистые суммы. Такой процесс новации может быть осуществлен автоматически в течение операционного дня в тот момент, когда банки обмениваются соответствующими подтверждениями: в двустороннем соглашении может быть предусмотрено, что в момент сверки таких подтверждений обязательства по всем предыдущим контрактам погашаются путем новации, и эти контракты заменяются новым контрактом. Такой процесс может повторяться неограниченное число раз до наступления определенного расчетного дня.

           В двустороннем соглашении о взаимозачете путем новации можно также предусмотреть формирование из новых чистых сумм, подлежащих уплате в каждую отдельную будущую дату в каждой валюте, единого потока платежей, которые должны быть уплачены согласно основному контракту между двумя банками. В случае, если такое соглашение будет подтверждено, ни один из ликвидаторов какого-либо из этих банков не сможет выбирать валюты или платежи, подлежащие получению или переводу в отдельные будущие даты.

           Услуги по двустороннему взаимозачету путем новации могут ограничиваться заключением типовых контрактов на осуществление взаимозачета или предоставлением линий связи и систем бухгалтерского учета, которые дают возможность участникам подбирать соответствующие сделки; подтверждать, их и регистрировать новые суммы чистых обязательств.

    Применение систем двустороннего взаимозачета путем новации обеспечивает такие же выгоды, как и использование систем двустороннего взаимозачета позиций. Однако двусторонний взаимозачет обязательств сопряжен со значительно меньшим кредитным риском, чем взаимозачет позиций, так как дает возможность снизить кредитный риск, связанный с партнером, с валовой суммы до чистой суммы для каждой отдельной будущей даты.

    Как правило, двусторонний взаимозачет путем новации также приводит к снижению риска ликвидности, поскольку из подлежащих уплате чистых сумм нельзя восстановить отдельные обязательства на валовой основе. Однако фактическое уменьшение кредитного риска целиком и полностью зависит от юридической исполнимости нового контракта на чистые суммы, заменившего собой первоначальные контракты на валовые суммы, которая является гарантией того, что, в случае прекращения деятельности одного из партнеров, первоначальные контракты не будут избирательно возобновлены ликвидатором.

    1.5.3. Многосторонний взаимозачет позиций.

    В рамках многосторонней системы, в которой обеспечивается специальная связь, и используются специальные формы бухгалтерского учета, обычно осуществляется многосторонний взаимозачет позиций. В учреждении, являющемся агентом по клирингу или расчетам, могут открываться "клиринговые счета" для участников, этот агент хранит средства участников и может предоставлять им кредиты для облегчения расчетов по сделкам. В данном случае возможным является также использование единого основного клирингового счета и других механизмов для производства расчетов. Осуществление многостороннего взаимозачета позиций происходит в несколько этапов: сначала подсчитываются чистые суммы, которые должен получить каждый участник от всех остальных членов клиринговой группы и которые он должен им уплатить, а затем производятся расчеты путем перевода соответствующих денежных средств нетто-дебиторами нетто-кредиторам.

    Если возникают неразрешимые проблемы с урегулированием обязательств по сделке в связи с тем, что банк, являющийся нетто-должником, не в состоянии оплатить свои платежи, правила системы нередко требуют или позволяют аннулировать платежи участнику (участникам), испытывающему (испытывающим) такие затруднения, и платежи, причитающиеся с этого участника (участников), с тем, чтобы определить многосторонние сальдо для остальных участников, по которым можно в конечном счете рассчитаться на следующий операционный день после первоначально запланированного расчетного дня.

    В абстрактном случае многостороннего взаимозачета позиций все финансовые обязательства на валовой основе или платежные поручения остаются невыполненными до производства окончательного расчета. Поэтому в рамках данной организационно-правовой формы взаимозачета существует такой же кредитный риск, как и при отсутствии взаимозачета. В системах многостороннего взаимозачета позиций одну из наиболее серьезных проблем представляет риск неликвидности. Причины этого объясняются методом, использующимся для вычисления многостороннего чистого обязательства каждого участника. В случае, если после осуществления зачета двусторонних кредитовых и дебетовых сальдо с получением единой чистой суммы многостороннего обязательства, какой-то участник не в состоянии урегулировать свое сальдо, обычно производится пересчет многосторонних позиций, восстанавливающий платежи или обязательства. После этого в рамках системы многостороннего взаимозачета уже невозможно компенсировать двусторонние "дебетовые сальдо" двусторонними "кредитовыми сальдо", причитающимися остальным участникам со стороны неплательщика. В результате чего значительно возрастают многосторонние чистые обязательства, и, следовательно, потребности в ликвидных средствах у тех участников системы, которым неплательщик должен какие-то чистые суммы.

    В системах многостороннего взаимозачета позиций могут также возникать и более общие проблемы с ликвидностью, причиной которых становятся чаще всего операционные затруднения. Например, учреждение, обслуживающее участников системы многостороннего взаимозачета позиций в качестве расчетного агента, может не желать или быть не в состоянии производить ежедневные платежи по расчетам участникам, которые являются нетто-кредиторами, до тех пор, пока оно не получит все платежи от нетто-дебиторов. Любая задержка с производством платежа каким-либо нетто-дебитором может вызвать проблемы у всех нетто-кредиторов и, возможно, неблагоприятно сказаться на их способности урегулировать свои платежи на других рынках или в рамках других систем.

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

    1.5.4. Многосторонний взаимозачет путем новации и

    замещения.

    Хотя в принципе взаимозачет путем новации представляет собой двусторонний процесс, его можно использовать и для многосторонних расчетов между членами более крупной группы банков. В этом случае должна быть использована третья сторона (например, своего рода клиринговая палата) для принятия на себя нового чистого обязательства в качестве партнера каждого банка-участника. Такой процесс называется новацией и замещением.

    В качестве примера многостороннего взаимозачета путем новации и замещения можно привести гипотетическую клиринговую палату или компанию, занимающуюся расчетами по валютным операциям. В роли такого учреждения, предоставляющего услуги по взаимозачету, могла бы выступать национальная клиринговая палата, осуществляющая для своих членов имеющий юридическую силу многосторонний зачет обязательств по всем их валютным контрактам с другими участниками. При представлении такого контракта парой участников в клиринговую палату эта палата будет выступать в качестве партнера по отношению к каждому из этих своих членов и будет погашать их взаимные обязательства. Более того, у клиринговой палаты будет существовать текущая чистая позиция по соответствующим валютам и по датам зачисления средств по отношению к каждому участнику. В результате, для данной группы контрактов, переданных для взаимных расчетов, будет определен ряд чистых сумм (равных многостороннему сальдо каждого участника по отношению к группе участников взаимозачета в целом), причитающихся клиринговой палате от каждого участника им наоборот. В качестве основного партнера клиринговая палата возьмет на себя как кредитный риск, так и риск неликвидности. В то же самое время ее члены будут нести кредитный риск и риск неликвидности по отношению к клиринговой палате, а не к своим партнерам по операциям. Таким образом, клиринговой палате придется управлять своей кредитовой позицией по отношению к каждому члену, а также риском неликвидности, связанным с расчетами.

    Важнейшим элементом, способствующим тому, чтобы кредитный риск, существующий при использовании клиринговой палаты, был меньше кредитного риска, возникающего при двустороннем взаимозачете путем новации, является ряд соглашений, касающихся многостороннего взаимозачета путем новации и замещения. При юридической исполнимости договоренностей о многостороннем взаимозачете такое снижение риска для отдельного участника будет иметь место потому, что данная система взаимозачета даст возможность использовать двусторонние дебетовые сальдо каждого участника по отношению к другим для компенсации двусторонних кредитовых сальдо по той же валюте, в результате чего уменьшится чистая кредитовая позиция. Однако многосторонний взаимозачет не изменит кредитовую позицию участников, не имеющих двусторонних дебетовых сальдо.

    Многосторонний взаимозачет путем новации и замещения обладает потенциальной возможностью большего снижения риска неликвидности по сравнению с любой другой формой взаимозачета. При такой системе взаимозачета на данную дату зачисления средств чистые суммы задолженности по сравнению с двусторонним взаимозачетом снижаются или остаются неизменными для некоторых участников. Это снижает риск неликвидности для отдельных участников, для участников клиринга в целом и, возможно, для других финансовых рынков.

    С другой стороны, при использовании клиринговых палат требуется централизация платежей по расчетам: все такие платежи производятся между клиринговой палатой и отдельными участниками. В подобном случае неспособность одного члена урегулировать свою позицию может привести к нехватке наличности в одной или нескольких валютах, необходимых для производства расчетов. Риск неликвидности для остальных участников зависит в этом случае от способности клиринговой палаты мобилизовать наличность, необходимую для завершения расчетов.

    Таким образом, многосторонний характер деятельности клиринговой палаты не дает гарантии снижения риска неликвидности по сравнению с двусторонним взаимозачетом путем новации. На практике риск неликвидности, в том числе и системный, в данном случае может оказаться более высоким.

    1.6. Управление рисками в системах взаимозачета

    Риск, возникающий в связи с осуществлением взаимозачета, может быть урегулирован несколькими путями. Центральный банк, выступая в роли учреждения, осуществляющего контроль за бесперебойным функционированием системы платежей, представляет собой одного из основных кредиторов и является расчетным агентом при проведении большей части клиринговых операций, что обуславливает и его решающую роль в определении принципов управления факторами риска и обеспечении того, чтобы каждый из участников клиринговой системы следовал этим принципам. Кроме того, немаловажную роль в управлении рисками играют и сами клиринговые палаты, определяющие порядок обслуживания кредитных учреждений, деятельность которых сопряжена с высокой степенью риска, а также осуществляющие урегулирование других проблем, связанных с различными видами финансового риска. Для управления рисками клиринговых платежей обычно используются следующие методы:

    • сокращение расчетного периода
    • двусторонние и многосторонние лимиты
    • механизмы распределения убытков
    • неокончательный характер расчетов в рамках клиринговых систем и аннулирование результатов клирингового сеанса.

    Сокращение расчетного периода

    Чем короче расчетный период, тем меньше риск неуплаты по расчетам и связанный с ним системный риск. В качестве дополнительного механизма применяются средства контроля в масштабе реального времени, которые помогают выявлять на ранней стадии потенциальные проблемы и облегчают управление ликвидными средствами, особенно в тех случаях, когда возможен централизованный контроль сальдо всех участников.

    Двусторонние и многосторонние лимиты

    Одним из методов управления рисками в клиринговых системах является использование двусторонних или многосторонних верхних лимитов сальдо участников, которые автоматически ограничивают потенциальный риск межбанковских расчетов в рамках системы. Такие верхние лимиты часто определяются как сумма, кратная величине первичного капитала банков, а также основываются на оценке каждым учреждением своей кредитоспособности. Помимо лимитов на дебетовое сальдо каждого участника по отношению к другим участникам, некоторые клиринговые палаты дополнительно требуют от каждого члена установить лимит на свое кредитовое сальдо по отношению к другим членам системы. Главным недостатком таких лимитов является то, что их можно обходить с помощью посылаемых через другие системы платежных поручений и что они могут приводить к замедлению выполнения поручений клиентов или отказу от их выполнения.

    Механизмы распределения убытков

    Наиболее твердой гарантией от связанных с осуществлением взаимозачета рисков являются механизмы, призванные обеспечить возможность проведения расчетов в рамках клиринговой системы даже в том случае, когда ее отдельные участники не в состоянии урегулировать свои обязательства. Обычно такие механизмы предусматривают объединение риска неликввдности и распределение неурегулированных сальдо в соответствии с заранее установленным порядком. При этом, как правило, выдвигается требование о предварительном внесении обеспечения и/или о гарантированном выделении ликвидных средств Центральным банком. В некоторых системах Центральный банк выражает готовность осуществить расчет лишь при условии, что превышающие обеспечение убытки будут впоследствии покрыты не обанкротившимися участниками.

    Неокончательный характер расчетов в рамках клиринговых систем и аннулирование результатов клирингового сеанса

    Своевременность расчетов в рамках клиринговых систем зависит от способности каждого из участников выполнить свои многосторонние обязательства, принятые в результате операций, проведенных в определенный период (в течение операционного дня). Типичной процедурой, применяемой при возникновении просрочек и неплатежей в процессе проведения расчетов, является использование положения о неокончательном характере расчетов и возможности отзыва платежей участнику, испытывающему подобные затруднения, и платежей, причитающихся с этого участника. В этом случае некоторые или все платежные операции, произведенные в рамках системы за данный период времени, аннулируются, а многостороннее сальдо для остальных участников пересчитывается. Эта процедура перемещает давление, связанное с недостатком ликвидности и потенциальными убытками, с одного на всех участников системы взаимозачета.

    2. Оптимизация лага клиринга

  • Постановка задачи
  • Республика Беларусь сейчас модернизирует автоматизированную систему межбанковских расчетов. Это ставит вопрос четВнкого выделения возможных их форм и оптимальных паВнраметров. Ясность в формах расчетов достигнута, а в параметрах тАУ нет. Проблема выбора оптимальных параметров расчетов не решена в системе, и данная часть дипломной работы посвящена выбору одного из них тАУ лага клиринга.

    В зависимости от скорости обработки платежного доВнкумента есть два полюса форм оплаты, поступающих в банк платежных документов:  валовая оплата и клиринг.

    При валовой оплате платежные документы оплачиваВнются индивидуально по мере их поступления. Идеал ваВнловой оплаты тАУ оплата в темпе поступления документов или, выражаясь по другому, в реальном времени (имеется в виду время поступления). Такая форма называется RTSG (Real Time Gross Settlement тАУ Система крупных платежей в реальном времени). В режиме RTGS должны оплачиваться крупные или срочные платежи. Решение о срочности - это решение плательщика. Ясно, что за срочность нужно платить. Параметр ВлкрупностиВ» определяется Центробанком.

    Цель валовой оплаты тАУ скорость оплаты. Модуль авВнтоматизированной системы межбанковских расчетов, отвечающий за валовую оплату в реальном времени - это модуль BIS (Belarus Interbank Settlement).

    При клиринге оплата поступившего документа специВнально откладывается и формируется множество неоплаВнченных платежных документов (платежный пакет). Затем оплата сформированного пакета платежных документов делается не по каждому документу последовательно, а итоговыми расчетными документами с учетом погашения встречных платежей. После реализации итоговых платеВнжей, платежи исходного пакета считаются оплаченными без реального индивидуального оформления бухгалтерВнских проводок по каждому документу. Цель клиринга тАУ уменьшение ликвидных средств, требуемых для поддержаВнния расчетов. За клиринг будет отвечать самостоятельный модуль системы межбанковских расчетов.

    Лаг клиринга тАУ отрезок времени, в течение которого формируется пакет платежных документов, и после истеВнчения которого выносится решение о клиринговой оплате. Фактор лага проявляется двояко и в противоположных тенденциях:

    1. Чем больше лаг клиринга, тем больше стоят в неподВнвижности деньги клирингового пакета. Значит, имеем отвлеченные средства и, следовательно, имеем потенциВнальные потери банка-получателя этих средств. Ясно, что отвлечение прямо пропорционально лагу клиринга.

    2. Чем меньше лаг клиринга, тем больше требуется ликвидных средств для проведения совокупных расчетов. Значит, имеем отвлечение средств и, следовательно, имеВнем потенциальные потери банка-плательщика. Ясно, что при стремлении лага к нулю отвлечение достигает какоВнго-то максимума V, а при стремлении лага к бесконечноВнсти отвлечение достигает какого-то минимума I.

    Итак, происходит конкуренция двух факторов: 

    1) потенциальная потеря от замораживания средств в клиринге, которая пропорциВнональна времени замораживания и 

    2) потенциальный доход от уменьшения средств обеспечения расчетов, коВнторое растет с ростом лага клиринга.

    Интегральный эфВнфект клиринга есть разность этих двух величин. Значит, и слишком малый лаг клиринга плох, и слишком большой лаг клиринга плох. Следовательно, есть оптимальный лаг и его нужно определить.

    Задача состоит в том, чтобы определить лаг клирингового цикла, при котором интегральный эффект клиринга будет максимальным.

    2.2. Формализация задачи

    Формула расчета убытка от применения клиринга вследствие простаивания денег клирингового пакета имеет следующий вид:

    ,

    где тАУ интенсивность оборота, скольВнко средств проходит в валовых расчетах за единицу вреВнмени тАУ за день. Эта формула показывает отвлечение вследствие клиринговой неподвижности средств платежного пакета, как следствие клиринга Средства были бы пущены в оборот и принесли бы выгоду банкам-получателям средств. Итак, имеем здесь дело с потенциальным убытком. Предполагая равномерное поступление платежей, имеем простой средств в размере   в течение времени , т.е. .

    Теперь подсчитаем доход: на оплату требуется меньше средств, чем при валовой оплате, а сэкономленные средства пускаются в оборот и приносят доход.

    Таким образом имеется возможность построить математическую модель:

    Пусть, - средства, необходимые для поддерВнжания клиринга, тАУ лаг клиринга. Накладываются следующие естественные условия:

    1. При                                                (2.1),

           где тАУ средства, обслуживающие валовые расчеты.

    1. При                                                (2.2),

    где тАУ средства, обслуживающие Влэкспорт-импортВ» клиВнринговой системы;

    1. есть функция от .

    Найдем вид функции , основываясь, как говорят в физике, на феноменологическом подходе. Т.е. мы не привлекаем никаких ВлмикродеталейВ» типа статистиВнки потоков между участниками и т.д., а основываемся только на самых общих ВлвнешнихВ» соображениях. ВнутВнренний причинный механизм денежных потоков остается черным ящиком. Воспользуемся однородностью времени. Все возможные лаги клиринга обраВнзуют ось тАУ ось лага клиринга. Очевидно, что ни один момент времени не должен быть выделен: если у нас был лаг клиринга и мы переходим к , то все равно, как мы считаем тАУ или отталкиваясь от 0, беря за основу , или отталкиваясь от , беря за основу . Графическая интерпретация изложенного дана на Рис. 3.1.

    Итак, однородно и, значит, имеем своего рода принВнцип относительности: закон не должен зависеть от сиВнстемы координат. В применении к нашему случаю это означает, что формула О должна давать ковариантную (не изменяющую вида) зависимость от :  сдвиг по оси не должен менять вида формулы, если пересчитать все к новому началу координат тАУ переход от к = - а и от к должен удовлетворять условию . Или, по другому, . Такое функциональное уравнение характерно только для экспоненты.

    Рис.2.1. Графическая интерпретация ВлоднородностиВ» времени.

    В дифференциальном виде экспонента характеризуется соотношением:

                                                   (2.3),

    где v тАУ какой-то коэффициент пропорциональности. Условия (1) - (3) дают единственное решение:

                                           (2.4)

    Проверяем выполнение свойства :

    , что и нужно.

    Данная математическая модель подсчета средств, необходимых для поддержания клиринга, была разработана и протестирована на адекватность и устойчивость в американской клиринговой системе CHIPS, кроме того, адекватность данной модели подтверждена проверкой на отечественных статистических данных по межбанковским расчетам в информационно-аналитическом управлении Белорусского Межбанковского Расчетного Центра Национального Банка Республики Беларусь.

           Используя этот результат, подсчитаем экономию вследствие клиринговости.

    Итак, тАУ реальное отвлечение вследствие ВлваловостиВ» (об этом говорит инВндекс параметра О), т. е. расчетов через конечный отрезок времени , а не бесконечный, что было бы идеальным для клиринга. Параметр тАУ это максимум средств, для подВндержки расчетов, достигаемый при чистом вале, когда клиринга нет: . Параметр тАУ это минимум средств для поддержки расчетов, достигаемый при чистом клиринге, когда валовой оплаты нет: . Параметр тАУ это мера спада потребности в средствах для расчетов. Его можно определить эмпирически по результатам клиВнринга с циклом в один день. Пусть, в этом случае, требуВнются для обеспечения расчетов средства в размере . Тогда

                                                   (2.5)

    Параметр характеризует импортную незамкнутость системы: если бы пользователи клиринга были тесно связаны только между собой, то . Для страны в целом тАУ это средства оплаты экспорта-импорта и, значит, можно определить из данных статистики, если клиринг охватывает всю республику. Для группы банков тАУ это обслуживание входа-выхода средств вне этой группы. Экономия вследствие клиринговости равна:

    Доход от такой экономии пропорционален рыночной процентной ставке и времени .

    Подсчитаем интегральный эффект от клиринга.  Эффект - разность дохода и убытка:

                                                   (2.6)

    Оптимизация этой функции равносильна оптимизации следующей функции:

                                                   (2.7)

    2.3. Решение задачи и его анализ

    При каком-то значении экономия достигает максимума. Для определения этого значения возьмем производную функции по и приравняем ее к нулю. Вычисляем производную:

           Теперь решаем уравнение:

           Для того, чтобы убедиться, что найденная точка является точкой глобального максимума функции интегрального эффекта от применения клиринга , покажем, что эта функция является вогнутой (выпуклой вверх), для чего исследуем знак второй производной функции :

    Окончательно получим:

                                           (2.8)

    или с учетом (5):

                           (2.9)

    Модифицируем вид решения:

    Пусть: k = K/V, т. е. k тАУ дневная оборачиваемость средств в расчетах, определяющая, сколько рублей дневВнного оборота обслуживает один рубль сальдо.

    е = O(l)/V, т.е. е тАУ доля клиринговых отвлечений от валовых отвлечений при однодневном цикле.

    n = 1/е тАУ уменьшение средств, обусловленное клиринВнгом тАУ эффективность клиринга.

    i = l/V, т.е. i тАУ доля средств, обслуживающих в расчетах экспорт-импорт системы. Тогда

                                           (2.10)

    Итак, выражена через:

    1. k тАУ дневную оборачиваемость средств в расчетах,
    2. е тАУ долю клиринговых отвлечений от валовых отвлечений при однодневном цикле,
    3. i тАУ долю обслуживания импорта в расчетах.

    Область возможного положительного эффекта от клиВнринга задается отрезком времени от 0 до Т. Т есть корень уравнения или

    Далее ясно, что при заданной модели существует нижняя граница для , выше которой клиринг не дает никакого эффекта. Эту границу определяет касательная к в начале координат. Прямые , лежащие выше касаВнтельной, не пересекаются с нигде, кроме начала коорВндинат. Значит, для них кривая не имеет максимума не в начале координат. Указанная граница для определится из условия

    ,

    отсюда

                                           (2.11)

    Рассмотрим также графическую интерпретацию решения (см. Рис 2.2.)

    Рис.2.2. Графическая интерпретация решения.

    И, наконец, подсчитаем потери от применения неоптимального лага:

    Пусть dt - отклонение от . Возникающие потери, измеряемые в сальдовых единицах, есть разность:

    .

           Все рассуждения, приведенные выше касались одного отдельно взятого банка, однако лаг клиринга устанавливается клиринговой палатой, составленной из представителей всех банков-участников. Поэтому, лаг, являющий оптимальным для одного банка, может быть далеким от такового для остальных банков. Поэтому для учета интересов всех участников системы предлагается следующая модель.

           Пусть в клиринговой системе участвует n банков. Обозначим, как и ранее тАУ эффект от применения клиринга с лагом для i-го банка, вычисляемый по формуле (2.6), тАУ средства i-го банка, необходимые ему для валовых взаиморасчетов (т.е. без клиринга). Тогда наиболее приемлемый для всех участников лаг клиринга рекомендуется искать, решив следующую задачу оптимизации:

                                           (2.12)

    т.е. максимизируется наименьший из удельных эффектов от применения клиринга для всех банков-участников.

           2.4. Статистическая оценка оптимального лага.

           На основе статистической выборки, включающей в себя ежедневные данные за четыре месяца, были получены следующие оценки вышеописанных параметров: i*=0.05, k*=v*=0.42. Подставив оценочные значения в формулу (2.9), получим следующую оценку оптимального лага клиринга t* =1,538372. Таким образом, на основе вышеизложенной модели оптимизации лага клиринга можно утверждать, что оптимальным в текущих условиях является лаг в полтора дня, т.е. 36 часов.

    3. ППП ВлСистема межбанковского клирингаВ»

    3.1. Назначение и структура пакета

           ППП ВлСистема межбанковского клирингаВ» является практической реализацией идеи автоматизации клирингового процесса. Пакет охватывает автоматизацию как работы самой клиринговой палаты, так и работы банков-участников клирингового сеанса. ППП содержит два функционально различных программных модуля: ВлАРМ оператора клиринговой палатыВ» и ВлАРМ оператора банкаВ» и представляет собой программный продукт, построенный по схеме Влклиент-серверВ». Сервером является модуль  ВлАРМ оператора клиринговой палатыВ», а клиентом тАУ модуль ВлАРМ оператора банкаВ». В системе всегда действует один сервер и неограниченное количество клиентов. Модуль ВлАРМ оператора клиринговой палатыВ» устанавливается на сервере клиринговой палаты, а экземпляры модуля ВлАРМ оператора банкаВ» тАУ на серверах или рабочих станциях банков-участников клирингового процесса, по одному на каждый банк. ППП обеспечивает всю необходимую функциональность для работы клиринговой палаты, однако для реального внедрения необходима существенная доработка в области сохранения целостности данных и контроля доступа к ним. Однако эта доработка может производиться независимо от существующего кода стандартными средствами СУБД. Система взаимосвязанных таблиц данных сервера реализована на базе СУБД Oracle 7.3.3 Server. Рекомендуемыми операционными системами для этой СУБД являются SCO Unix версии 5.2 и выше либо Windows NT Server версии 4.0 и выше. Клиентская часть реализована на базе СУБД Personal Oracle 7.3.3. Удаленный доступ к серверу БД реализован с помощью стандартного средства СУБД Oracle 7.3.3 тАУ Oracle SQL* Net. Графический пользовательский интерфейс обоих модулей реализован в RAD-среде разработки приложений Borland Delphi 3.0 Client/Server для операционной системы Windows 95 или Windows NT Workstation. Полный текст исходного кода ППП ВлСистема межбанковского клирингаВ» приведен в Приложении 1.

    3.2. Модуль Вл АРМ оператора клиринговой палатыВ»

           Модуль ВлАРМ оператора клиринговой палатыВ» устанавливается на сервере клиринговой палаты и обеспечивает добавление и удаление банков-участников клиринговой системы, прием, обработку платежных документов, проверку их на наличие ошибок и проведение окончательных взаиморасчетов между банками-членами клиринговой палаты. Кроме того, данный модуль инициирует начало клирингового сеанса, ведет статистику платежей и закрывает сеанс по истечению заданного срока. Работой модуля управляет один человек тАУ оператор клиринговой палаты, наделенный особыми полномочиями.

           Главное окно модуля ВлАРМ оператора клиринговой палатыВ» выглядит следующим образом:

    Рис.3.1. Главное окно модуля ВлАРМ оператора клиринговой палатыВ».

           Пункт меню ВлБанкиВ» содержит подпункты ВлПросмотретьВ» для просмотра списка текущих участников системы и удаления любого из них и ВлЗарегистрировать нового участникаВ» для добавления новых банков. Список банков выглядит, как на Рис.3.2.

    Рис.3.2. Окно со списком банков-членов клиринговой палаты.

           При выборе подпункта ВлРегистрация нового участникаВ» на экран выводится диалоговое окно для ввода необходимой информации об участнике. Его вид приведен на Рис.3.3.

    Рис.3.3. Окно регистрации нового банка.

           После выполнения регистрации на сервере новый банк-участник может запускать на своей рабочей станции модуль ВлАРМ оператора банкаВ» и входить в систему указав необходимые имя пользователя и пароль.

           Пункт меню ВлСообщенияВ» содержит один элемент тАУ подпункт ВлПросмотретьВ». При выборе этого подпункта на экран выводится диалоговое окно следующего вида:

    Рис. 3.4. Окно со списком полученных сообщений.

           Основными функциями данного окна являются просмотр списка полученных сообщений и подтверждение тех из них, которые удовлетворяют требованиям клиринговой палаты.

           Меню главного окна ВлСеансВ» содержит три подпункта ВлНачать сеансВ», ВлЗавершить сеансВ» и ВлПоказать текущие позицииВ» для инициализации клирингового сеанса, его завершения и для просмотра текущих чистых позиций соответственно.

    3.2. Модуль Вл АРМ оператора банкаВ»

           Модуль ВлАРМ оператора клиринговой палатыВ» устанавливается на рабочих станциях банков-участников системы взаимозачета и обеспечивает следующие функции: подключение банка к текущему клиринговому сеансу, выход от сеанса, отсылку платежных сообщений, а также подсчет и просмотр окончательной чистой позиции банка. Работой модуля также управляет один человек тАУ оператор банка.

           Главное окно модуля ВлАРМ оператора клиринговой палатыВ» выглядит следующим образом:

    Рис. 3.5. Главное окно модуля ВлАРМ оператора банкаВ».

           Данное окно содержит два основных пункта меню ВлКлиринговый сеансВ» и ВлСообщенияВ». Первый из них имеет два подпункта для входа в клиринговый сеанс и выхода из него соответственно. Наиболее важным является пункт меню ВлСообщенияВ». Он имеет подпункты ВлОтправить сообщениеВ» и ВлПоказать сообщенияВ». При выборе подпункта ВлОтправить сообщениеВ» на экран выводится диалоговое окно для ввода параметров сообщения. Его вид показан на Рис. 3.6.

    Рис. 3.6. Диалоговое окно отправки платежного сообщения.

           Выбор подпункта ВлПоказать сообщенияВ» приводит к выводу на экран диалогового окна со списком сообщений, которые относятся к банку-владельцу запущенной копии модуля. Можно выбрать для показа входящие платежи, исходящие платежи или оба типа одновременно. Показываются лишь те сообщения, которые были подтверждены клиринговой палатой в модуле ВлАРМ оператора клиринговой палатыВ». Вид этого окна приведен на Рис. 3.7.

    Рис 3.7. Окно со списком подтвержденных сообщений.

    ЗАКЛЮЧЕНИЕ

           В данном дипломном проекте освещены проблемы межбанковского клиринга и методы их решения, приведены реальные модели клиринговых систем. Кроме того, поставлена, математически сформулирована и решена проблема оптимизации важнейшего параметра клирингового цикла тАУ лага клиринга. На основе реальных статистических данных получена статистическая оценка искомого параметра. Также приводится математическая модель обобщения полученных результатов для максимизации прибыли каждого из участников клиринговой системы.

           Существенной частью работы в дипломном проекте является разработка пакета программных продуктов ВлСистема межбанковского клирингаВ». Этот программный продукт является попыткой комплексной автоматизации клирингового процесса. Пакет полностью готов для тестового использования и сбора статистической информации, планируется его доработка  в областях сохранности целостности данных, управления доступом и оптимизации производительности до уровня реальной системы.

    СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

    1. Березина М.П., Крупнов Ю.С. Межбанковские расчеты. тАУ М.: АО тАЬФинстатинформтАЭ, 1993.-142с.
    2. Тосунян Г.А. Клиринг и межбанковские финансовые операции: основные понятия и финансовые инструменты. тАУ М.: тАЬДелотАЭ, 1994.-56с.
    3. Тосунян Г.А. Операционные технологии межбанковского финансового рынка. тАУ М.: тАЬДелотАЭ, 1994.-122с.
    4. Усоскин В.М. Современный коммерческий банк: управление и операции. тАУ М.: ИПЦ тАЬВазар-ФерротАЭ, 1994.-320с.
    5. Каллаур П.В. Осуществление межбанковских расчетов по прочим платежам // БанкаСЮскi веснiк тАУ 1998. №1.
    6. Жуков В.В. Модернизация платежной системы Беларуси // БанкаСЮскi веснiк тАУ 1997. №9. тАУ С.3-6.

    ПРИЛОЖЕНИЕ 1.

    SQL-КОД ППП ВлСИСТЕМА МЕЖБАНКОВСКОГО КЛИРИНГАВ»

    ----------------------------------------------------

    -- Модуль Banks

    -- Содержимое :

    --      1. Sequence BankID_Seq

    --      2. Table Banks

    ----------------------------------------------------

    PROMPT Creating sequence BankID_Seq..

    -- Последовательность уникальных идентификаторов для банков-участников

    CREATE SEQUENCE BankID_Seq

      INCREMENT BY 1

      START WITH 1

      MAXVALUE 99999999

      MINVALUE 1

      NOCACHE

      CYCLE;

    PROMPT Creating table Banks..

    -- Таблица банков, зарегистрированных в клиринговой палате

    CREATE TABLE Banks

    (

      BankID   Number(8)                      --  Индентификационный № банка

        CONSTRAINT bankno_pk PRIMARY KEY,

      BankName VARCHAR2(100) NOT NULL         --  Наименование банка

        CONSTRAINT bankname UNIQUE,

      UserName VARCHAR(20) NOT NULL           --  Имя пользователя для входа

        CONSTRAINT username UNIQUE

    );

    -----------------------------------------------

    -- Модуль BankState

    -- Таблица состояния банков-участников в текущем сеансе

    -----------------------------------------------

    PROMPT Creating table BankState..

    CREATE TABLE BankState

    (

      BankID        NUMBER(8)             -- Идентификатор банка

        CONSTRAINT sessionbankid_fk REFERENCES Banks ON DELETE CASCADE,

      BankStatus    NUMBER(3) NOT NULL    -- Статус банка в текущем сеансе

    );

    -----------------------------------------------

    -- Пакет ClientUtils

    -- Интерфейс модуля "АРМ оператора банка"

    -----------------------------------------------

    PROMPT Creating package ClientUtils..

    CREATE OR REPLACE PACKAGE ClientUtils

    AS

    -- Возвращает флаг состояния текущей сессии

    FUNCTION GetSessionStatus RETURN INT;

    -- Процедура начала клирингового сеанса для банка-участника

    FUNCTION StartBankSession(aBankID IN INT) RETURN INT;

    -- Процедура завершения клирингового сеанса для банка-участника

    PROCEDURE StopBankSession(aBankID IN INT);

    -- Возвращает уникальный номер вызвавшего банка

    FUNCTION GetOurID RETURN INT;

    -- Возвращает окончательног сальдо банка

    FUNCTION GetFinalSaldo(aBankID IN INT) RETURN INT;

    -- Процедура отсылки в клиринговую палату платежа в "электронном" виде

    PROCEDURE SendMessage(aSourceBankID IN INT,

                          aDebitBankID  IN INT,

                          aCreditBankID IN INT,

                          aAmount IN INT);

    END ClientUtils;

    /

    SHOW ERROR;

    -----------------------------------------------

    -- Пакет процедур для работы банков-клиентов клиринговой палаты

    -----------------------------------------------

    PROMPT Creating package body ClientUtils..

    CREATE OR REPLACE PACKAGE BODY ClientUtils

    AS

    -- Функция возвращает флаг состояния текущей сессии

    FUNCTION GetSessionStatus RETURN INT

    IS

    BEGIN

      RETURN ServerUtils.SessionState;

    END GetSessionStatus;

    -- Процедура подключения банка к очередной сессии клиринговой палаты

    -- Выполняется каждый рабочий день в определенное время после выполнения

    -- на сервере КП процедуры инициализации клирингового сеанса

    FUNCTION StartBankSession(aBankID IN INT) RETURN INT

    IS

    BEGIN

      IF ServerUtils.SessionState = GlobalConst.cSessionActive THEN

        UPDATE BankState

          SET   BankStatus = GlobalConst.cBankWork

          WHERE BankID = aBankID;

      END IF;

      RETURN ServerUtils.SessionState;

    END StartBankSession;

    -- Процедура выхода банка из текущего клирингового сеанса

    -- Выполняется кажый день в определенное время до закрытия сеанса

    -- на сервере КП

    PROCEDURE StopBankSession(aBankID IN INT)

    IS

    BEGIN

      UPDATE BankState

        SET   BankStatus = GlobalConst.cBankStopWork

        WHERE BankId = aBankID;

    END StopBankSession;

    -- Функция возвращает уникальный номер вызывающего банка

    FUNCTION GetOurID RETURN INT

    IS

      Res INT;

    BEGIN

      SELECT BankID INTO Res FROM Banks

        WHERE UserName = USER;

    END GetOurID;

    -- Функция возвращает чистую позицию банка по окончанию сеанса

    FUNCTION GetFinalSaldo(aBankID IN INT) RETURN INT

    IS

            aSaldo INT;

    BEGIN

      BEGIN

      SELECT DebitPos-CreditPos INTO aSaldo FROM Results

        WHERE BankID = aBankID;

      EXCEPTION

        WHEN No_Data_Found THEN aSaldo := NULL;

      END;

      RETURN aSaldo;

    END GetFinalSaldo;

    -- Процедура отсылки на сервер КП "электронного" платежа

    PROCEDURE SendMessage(aSourceBankID IN INT,

                          aDebitBankID  IN INT,

                          aCreditBankID IN INT,

                          aAmount IN INT)

    IS

            aMsgID INT;

    BEGIN

      SELECT Msg_Seq.NextVal INTO aMsgID FROM Dual;

      INSERT INTO Messages

        VALUES (aMsgID, aSourceBankID, aDebitBankID,

                aCreditBankID, aAmount, GlobalConst.cMsgNotProcessed);

    END SendMessage;

    END ClientUtils;

    /

    SHOW ERROR;

    -----------------------------------------------

    -- Пакет CommonUtils

    -- Интерфейс общих подпрограмм

    -----------------------------------------------

    PROMPT Creating package CommonUtils..

    CREATE OR REPLACE PACKAGE CommonUtils

    AS

    -- Возвращает уникальный номер банка по его имени

    FUNCTION  GetBankID(aBankName IN VARCHAR2) RETURN INT;

    -- Возвращает текущее дебетовое сальдо

    FUNCTION GetCurrentDebitSaldo(aBankID IN INT) RETURN INT;

    -- Возвращает текущее кредитовое сальдо

    FUNCTION GetCurrentCreditSaldo(aBankID IN INT) RETURN INT;

    END CommonUtils;

    /

    SHOW ERROR;

    -----------------------------------------------

    -- Процедуры и функции общего пользования

    -----------------------------------------------

    PROMPT Creating package CommonUtils..

    CREATE OR REPLACE PACKAGE BODY CommonUtils

    AS

    -- Возвращает уникальный идентификатор банка-участника по его имени

    FUNCTION  GetBankID(aBankName IN VARCHAR2) RETURN INT

    IS

            Res INT;

    BEGIN

      BEGIN

        SELECT BankID INTO Res FROM Banks

          WHERE BankName = aBankName;

      EXCEPTION

        WHEN No_Data_Found THEN Res := NULL;

      END;

      RETURN Res;

    END GetBankID;

    -- Возвращает текущее дебетовое сальдо банка-участника

    FUNCTION GetCurrentDebitSaldo(aBankID IN INT) RETURN INT

    IS

       Res INT;

    BEGIN

      BEGIN

      SELECT DebitPos INTO Res FROM TmpRes

        WHERE BankID = aBankID;

      EXCEPTION

        WHEN No_Data_Found THEN

          Res := 0;

      END;

     

      RETURN Res;

    END GetCurrentDebitSaldo;

    -- Возвращает текущее кредитовое сальдо банка-участника

    FUNCTION GetCurrentCreditSaldo(aBankID IN INT) RETURN INT

    IS

       Res INT;

    BEGIN

      BEGIN

      SELECT CreditPos INTO Res FROM TmpRes

        WHERE BankID = aBankID;

      EXCEPTION

        WHEN No_Data_Found THEN

          Res := 0;

      END;

     

      RETURN Res;

    END GetCurrentCreditSaldo;

    END CommonUtils;

    /

    SHOW ERROR;

    --------------------------------------------------------

    -- Модуль содержит глобальные константы

    --------------------------------------------------------

    PROMPT Creating package GlobalConst

    CREATE OR REPLACE PACKAGE GlobalConst

    AS

    cStatusClass     CONSTANT INT := -1;

    cBankWork        CONSTANT INT := 1;

    cBankStopWork    CONSTANT INT := 2;

    cBankNotWork     CONSTANT INT := 3;

    cMsgNotProcessed CONSTANT INT := 1;

    cMsgAccepted     CONSTANT INT := 2;

    cMsgSourceError  CONSTANT INT := 3;

    cMsgDebitError   CONSTANT INT := 4;

    cMsgCreditError  CONSTANT INT := 5;

    cMsgProcessed    CONSTANT INT := 6;

    cSessionUnActive CONSTANT INT := 1;

    cSessionActive   CONSTANT INT := 2;

    END GlobalConst;

    /

    SHOW ERROR;

    ------------------------------------------------------

    -- Модуль инициализации системы в СУБД Oracle 7.3.3

    ------------------------------------------------------

    CONNECT INTERNAL

    SPOOL createdb.log

    SET ECHO ON

    CREATE TABLESPACE "CLEARING" DATAFILE  'C:\ORAWIN95\DATABASE\clearing.dbf'

      SIZE 5M REUSE DEFAULT STORAGE (INITIAL 10K NEXT 10K MINEXTENTS 1

      MAXEXTENTS 120 PCTINCREASE 0);

    CREATE USER "ALEX" IDENTIFIED BY "ALEX"

      DEFAULT TABLESPACE "CLEARING";

    GRANT "DBA" TO "ALEX" WITH ADMIN OPTION;

    GRANT UNLIMITED TABLESPACE to "ALEX"  WITH ADMIN OPTION;

    GRANT SELECT ANY TABLE to "ALEX"  WITH ADMIN OPTION;

    GRANT GRANT ANY ROLE to "ALEX"  WITH ADMIN OPTION;

    GRANT CREATE ANY SYNONYM to "ALEX"  WITH ADMIN OPTION;

    GRANT DROP ANY SYNONYM to "ALEX"  WITH ADMIN OPTION;

    GRANT EXECUTE ANY PROCEDURE to "ALEX";

    GRANT CREATE USER to "ALEX";

    GRANT ALTER USER to "ALEX";

    GRANT DROP USER to "ALEX";

    GRANT GRANT ANY PRIVILEGE to "ALEX";

    SPOOL OFF

    EXIT

    --------------------------------------------------

    -- Начальное создание объектов системы

    --------------------------------------------------

    PROMPT Creating databases and sequences..

    @@consts.pkg

    @@banks

    @@messages

    @@status

    @@statinit

    @@bnkstate

    @@results

    @@tmpres

    @@statist

    PROMPT Creating packages..

    @@srvrutil.pkg

    @@srvrutil.bdy

    @@clntutil.pkg

    @@clntutil.bdy

    @@commutil.pkg

    @@commutil.bdy

    -------------------------------------------------------------

    -- Таблица и последовательность для обработки сообщений

    -------------------------------------------------------------

    PROMPT Creating sequence Msg_Seq..

    CREATE SEQUENCE Msg_Seq

      INCREMENT BY 1

      START WITH 1

      MAXVALUE 99999999

      MINVALUE 1

      NOCACHE

      CYCLE;

    PROMPT Creating table Messages..

    CREATE TABLE Messages

    (

      MessageID     NUMBER(8)                        --         Номер сообщения

        CONSTRAINT message_pk PRIMARY KEY,

      SourceBankID  NUMBER(8)                        -- Банк-источник сообщения

        CONSTRAINT sourcebank_fk REFERENCES Banks ON DELETE CASCADE,

      DebitBankID   NUMBER(8)                        --         Банк-получатель

        CONSTRAINT debitbank_fk REFERENCES Banks ON DELETE CASCADE,

      CreditBankID  NUMBER(8)                        --         Банк-плательщик

        CONSTRAINT creditbank_fk REFERENCES Banks ON DELETE CASCADE,

      Amount        INT NOT NULL,                    --                   Сумма

      MsgStatus     INT NOT NULL                     --        Статус сообщения

    );

    --------------------------------------------------------------

    -- Таблица окончательных результатов клирингового сеанса

    --------------------------------------------------------------

    PROMPT Creating table Results..

    CREATE TABLE RESULTS

    (

      BankID  NUMBER(8)

        CONSTRAINT resultbankid_fk REFERENCES Banks ON DELETE CASCADE,

      DebitPos   INT,

      CreditPos  INT

    );

    -------------------------------------------------------

    -- Интерфейс модуля "АРМ оператора клиринговой палаты"

    -------------------------------------------------------

    PROMPT Creating package ServerUtils..

    CREATE OR REPLACE PACKAGE ServerUtils

    AS

      SessionState INT DEFAULT GlobalConst.cSessionUnActive;

    PROCEDURE StartClearingSession;

    PROCEDURE StopClearingSession;

    FUNCTION  GetActiveBanksCountInSession RETURN INT;

    -- Процедура регистрации банка-участника клиринговой системы

    FUNCTION RegisterBank(aBankName IN VARCHAR2,

                          aUserName IN VARCHAR2,

                          aPassword IN VARCHAR2) RETURN INT;

    PROCEDURE UnRegisterBank(aBankName IN VARCHAR2);

    -- Процедура выхода банка из клиринговой системы

    PROCEDURE UnRegisterBank(aBankID IN INT);

    FUNCTION CheckMessage(aMessageID   IN INT) RETURN INT;

    PROCEDURE ConfirmMessage(aMessageID   IN INT);

    END ServerUtils;

    /

    SHOW ERROR;

    -----------------------------------------------

    -- Процедуры и функции сервера КП

    -----------------------------------------------

    PROMPT Creating package body ServerUtils..

    CREATE OR REPLACE PACKAGE BODY ServerUtils

    AS

    -- Процедура инициализации клирингового сенса в клиринговой палате

    -- Выполняется каждый день в определенное время

    PROCEDURE StartClearingSession

    IS

    BEGIN

      DELETE FROM Messages;

      DELETE FROM BankState;

      DELETE FROM Results;

      DELETE FROM TmpRes;

      FOR x IN

       (

        SELECT BankID

          FROM Banks

       )

      LOOP

        INSERT INTO BankState (BankID, BankStatus)

          VALUES (x.BankID, GlobalConst.cBankNotWork);

      END LOOP;

      SessionState := GlobalConst.cSessionActive;

    END StartClearingSession;

    -- Процедура завершения клирингового сеанса

    -- Выполняется каждый день

    PROCEDURE StopClearingSession

    IS

      aDebitSum   INT;

      aCreditSum  INT;

    BEGIN

      SessionState := GlobalConst.cSessionUnActive;

      UPDATE BankState

        SET   BankStatus = GlobalConst.cBankStopWork

        WHERE BankStatus = GlobalConst.cBankWork;

      FOR x IN

        (

          SELECT BankID

            FROM  BankState

            WHERE BankStatus = GlobalConst.cBankStopWork

        )

      LOOP

        BEGIN

          SELECT Sum(Amount) INTO aDebitSum

            FROM  Messages

            WHERE MsgStatus = GlobalConst.cMsgAccepted AND DebitBankID = x.BankID;

        EXCEPTION

          WHEN No_Data_Found THEN

            aDebitSum := 0;

        END;

        BEGIN

          SELECT Sum(Amount) INTO aCreditSum

            FROM  Messages

            WHERE MsgStatus = GlobalConst.cMsgAccepted AND CreditBankID = x.BankID;

        EXCEPTION

          WHEN No_Data_Found THEN

            aCreditSum := 0;

        END;

        INSERT INTO Results(BankID, DebitPos, CreditPos)

          VALUES(x.BankID, aDebitSum, aCreditSum);

      END LOOP;

      INSERT INTO Statistics(ItemNo, WorkDay, BankID, DebitPos, CreditPos)

        SELECT Stat_Seq.NextVal, SYSDATE, BankID, DebitPos, CreditPos

          FROM Results;

      DELETE FROM Messages;

      DELETE FROM BankState;

      DELETE FROM Results;

      DELETE FROM TmpRes;

    END StopClearingSession;

    -- Возвращает количество активных участников текущего сеанса

    FUNCTION  GetActiveBanksCountInSession RETURN INT

    IS

            Res INT;

    BEGIN

      BEGIN

        SELECT Count(*) INTO Res FROM BankState

          WHERE BankStatus = GlobalConst.cBankWork;

      EXCEPTION

        WHEN No_Data_Found THEN

          Res :=0;

      END;

      RETURN Res;

    END GetActiveBanksCountInSession;

    -- Регистрирует новый банк в клиринговой системе

    FUNCTION RegisterBank(aBankName IN VARCHAR2,

                          aUserName IN VARCHAR2,

                          aPassword IN VARCHAR2) RETURN INT

    IS

            Res INT;

            Cur INT;

            Col INT;

    BEGIN

       BEGIN

         SELECT BankID INTO Res FROM Banks

           WHERE BankName = aBankName;

       EXCEPTION

         WHEN No_Data_Found THEN

           SELECT BankID_Seq.NextVal INTO Res FROM Dual;

           INSERT INTO Banks(BankID, BankName, UserName)

             VALUES (Res, aBankName, aUserName);

           cur:=dbms_sql.open_cursor;

           dbms_sql.parse(cur,

              'CREATE USER '||aUserName||' IDENTIFIED BY '||aPassword,

              dbms_sql.v7);

           Col := dbms_sql.execute(Cur);

           dbms_sql.parse(cur,

              'GRANT CREATE SESSION to '||aUserName,

              dbms_sql.v7);

           Col := dbms_sql.execute(Cur);

           dbms_sql.close_cursor(cur);

       END;

       RETURN Res;

    END RegisterBank;

    -- Удаляет банк из числа участников по его номеру

    PROCEDURE UnRegisterBank(aBankID IN INT)

    IS

    BEGIN

      DELETE FROM Banks

        WHERE BankID = aBankID;

    END UnRegisterBank;

    -- Удаляет банк из числа участников по его имени

    PROCEDURE UnRegisterBank(aBankName IN VARCHAR2)

    IS

    BEGIN

      DELETE FROM Banks

        WHERE BankName = aBankName;

    END UnRegisterBank;

    -- Проверяет допустимость поступившего платежного документа

    FUNCTION CheckMessage(aMessageID IN INT) RETURN INT

    IS

      aMsgStatus    INT;

      aBankStatus   INT;

      aSourceBank   INT;

      aDebitBank    INT;

      aCreditBank   INT;

    BEGIN

      SELECT SourceBankID INTO aSourceBank FROM Messages

        WHERE MessageID = aMessageID;

      SELECT DebitBankID INTO aDebitBank FROM Messages

        WHERE MessageID = aMessageID;

      SELECT CreditBankID INTO aCreditBank FROM Messages

        WHERE MessageID = aMessageID;

      BEGIN

        SELECT BankStatus INTO aBankStatus FROM BankState

          WHERE BankID = aSourceBank;

      EXCEPTION

        WHEN No_Data_Found THEN

          UPDATE Messages

            SET MsgStatus = GlobalConst.cMsgSourceError

            WHERE MessageID = aMessageID;

          RETURN GlobalConst.cMsgSourceError;

      END;

      IF aBankStatus = GlobalConst.cBankNotWork THEN

        UPDATE Messages

          SET MsgStatus = GlobalConst.cMsgSourceError

          WHERE MessageID = aMessageID;

        RETURN GlobalConst.cMsgSourceError;

      END IF;

      BEGIN

        SELECT BankStatus INTO aBankStatus FROM BankState

          WHERE BankID = aDebitBank;

      EXCEPTION

        WHEN No_Data_Found THEN

          UPDATE Messages

            SET MsgStatus = GlobalConst.cMsgDebitError

            WHERE MessageID = aMessageID;

          RETURN GlobalConst.cMsgDebitError;

      END;

      IF aBankStatus = GlobalConst.cBankNotWork THEN

        UPDATE Messages

          SET MsgStatus = GlobalConst.cMsgDebitError

          WHERE MessageID = aMessageID;

        RETURN GlobalConst.cMsgDebitError;

      END IF;

      BEGIN

        SELECT BankStatus INTO aBankStatus FROM BankState

          WHERE BankID = aCreditBank;

      EXCEPTION

        WHEN No_Data_Found THEN

          UPDATE Messages

            SET MsgStatus = GlobalConst.cMsgCreditError

            WHERE MessageID = aMessageID;

          RETURN GlobalConst.cMsgCreditError;

      END;

      IF aBankStatus = GlobalConst.cBankNotWork THEN

        UPDATE Messages

          SET MsgStatus = GlobalConst.cMsgCreditError

          WHERE MessageID = aMessageID;

        RETURN GlobalConst.cMsgCreditError;

      END IF;

      UPDATE Messages

        SET MsgStatus = GlobalConst.cMsgProcessed

        WHERE MessageID = aMessageID;

      RETURN GlobalConst.cMsgProcessed;

    END CheckMessage;

    -- Подтверждает платежный документ, вызывается при наличии необходимых

    -- документов

    PROCEDURE ConfirmMessage(aMessageID   IN INT)

    IS

           aMsgStatus        INT;

          aTmpID        INT;

             aAmount           INT;

          aDebitBank        INT;

          aCreditBank        INT;

    BEGIN

      SELECT MsgStatus,  DebitBankID, CreditBankID

        INTO aMsgStatus, aDebitBank,  aCreditBank

        FROM Messages

        WHERE MessageID = aMessageID;

      IF aMessageID = GlobalConst.cMsgProcessed THEN

        UPDATE Messages

          SET MsgStatus = GlobalConst.cMsgAccepted

          WHERE MessageID = aMessageID;

        SELECT Amount INTO aAmount FROM Messages

          WHERE MessageID = aMessageID;

        BEGIN

      

          SELECT BankID INTO aTmpID FROM TmpRes

            WHERE BankID = aDebitBank;

          EXCEPTION

            WHEN No_Data_Found THEN

            INSERT INTO TmpRes (BankID, DebitPos, CreditPos)

              VALUES (aDebitBank, 0, 0);

        END;

        UPDATE TmpRes

          SET DebitPos = DebitPos + aAmount

          WHERE BankID = aDebitBank;

        BEGIN

          SELECT BankID INTO aTmpID FROM TmpRes

            WHERE BankID = aCreditBank;

        EXCEPTION

         WHEN No_Data_Found THEN

           INSERT INTO TmpRes (BankID, DebitPos, CreditPos)

             VALUES (aCreditBank, 0, 0);

        END;

        UPDATE TmpRes

          SET CreditPos = CreditPos - aAmount

          WHERE BankID = aCreditBank;

      END IF;

    END ConfirmMessage;

    END ServerUtils;

    /

    SHOW ERROR;

    ---------------------------------------------------------

    -- Таблица и последовательность для ведения статистики

    ---------------------------------------------------------

    PROMPT Create table Statistics..

    PROMPT Creating sequence Stat_Seq..

    CREATE SEQUENCE Stat_Seq

      INCREMENT BY 1

      START WITH 1

      MAXVALUE 99999999

      MINVALUE 1

      NOCACHE

      CYCLE;

    CREATE TABLE Statistics

    (

      ItemNo    NUMBER(8)                     --         Номер элемента выборки

        CONSTRAINT itemno_pk PRIMARY KEY,

      WorkDay   DATE,                         --           Дата и время платежа

      BankID    NUMBER(8)                     --                    Номер банка

      DebitPos  INT,                          --              Дебетовая позиция

      CreditPos INT                           --             Кредитовая позиция

    );

    -----------------------------------------------

    -- Заполнение таблицы классификаторов

    -----------------------------------------------

    PROMPT Inserting data into table Status ..

    BEGIN

    DELETE FROM Status WHERE StatusClass = 1;

    INSERT INTO Status VALUES (1, GlobalConst.cStatusClass,

    'Статус банка в текущем сеансе');

    INSERT INTO Status VALUES (1, GlobalConst.cBankWork,

    'Банк участвует в текущем сеансе');

    INSERT INTO Status VALUES (1, GlobalConst.cBankStopWork,

    'Банк закончил текущий сенс');

    INSERT INTO Status VALUES (1, GlobalConst.cBankNotWork,

    'Банк не участвует в текущем сенсе');

    COMMIT;

    DELETE FROM Status WHERE StatusClass = 2;

    INSERT INTO Status VALUES (2, GlobalConst.cStatusClass,

    'Статус сообщения о платеже');

    INSERT INTO Status VALUES (2, GlobalConst.cMsgNotProcessed,

    'Сообщение не обработано');

    INSERT INTO Status VALUES (2, GlobalConst.cMsgSourceError,

    'Банк-источник не работает');

    INSERT INTO Status VALUES (2, GlobalConst.cMsgDebitError,

    'Банк по дебету счета не работает');

    INSERT INTO Status VALUES (2, GlobalConst.cMsgCreditError,

    'Банк по кредиту счета не работает');

    INSERT INTO Status VALUES (2, GlobalConst.cMsgProcessed,

    'Сообщение обработано и требует документального подтверждения');

    INSERT INTO Status VALUES (2, GlobalConst.cMsgAccepted,

    'Сообщение обработано и принято в систему взаимозачета');

    COMMIT;

    END;

    /

    -----------------------------------------------

    -- Таблица классификаторов

    -----------------------------------------------

    PROMPT Create table Status ..

    CREATE TABLE Status

    (

       StatusClass    NUMBER(3),

       StatusNo       NUMBER(3),

       StatusText     VARCHAR2(70) NOT NULL,

         CONSTRAINT status_pk PRIMARY KEY (StatusClass, StatusNo)

    );

    -------------------------------------------------------

    -- Таблица текущих результатов клирингового сеанса

    -------------------------------------------------------

    PROMPT Creating table TmpRes..

    CREATE TABLE TmpRes

    (

      BankID  NUMBER(8)

        CONSTRAINT tmpresbankid_fk REFERENCES Banks ON DELETE CASCADE,

      DebitPos   INT,

      CreditPos  INT

    );

    ---------------------------------------------------

    -- Удаление объектов системы

    ---------------------------------------------------

    PROMPT Deleting databases..

    SET ECHO ON;

    DROP SEQUENCE Stat_Seq;

    DROP TABLE Statistics;

    DROP TABLE BankState;

    DROP TABLE Status;

    DROP SEQUENCE Msg_Seq;

    DROP TABLE Messages;

    DROP TABLE Results;

    DROP TABLE TmpRes;

    DROP SEQUENCE BankID_Seq;

    DROP TABLE Banks;

    PROMPT Deleting packages..

    DROP PACKAGE BODY ServerUtils;

    DROP PACKAGE ServerUtils;

    DROP PACKAGE BODY ClientUtils;

    DROP PACKAGE ClientUtils;

    DROP PACKAGE BODY CommonUtils;

    DROP PACKAGE CommonUtils;

    SET ECHO OFF;

    ----------------------------------------------------------------

    Вместе с этим смотрят:

    Международные расчеты и валютные операции
    Международные финансовые организации
    Менеджмент и маркетинг в банковской сфере
    Мировой валютный рынок Forex