Алгоритм автоматического обменного пункта
Как работает встроенный в Color Coins обменный пункт. Для того, чтобы было понятнее, нужно вспомнить историю. А история финансов такова, что с какого-то момента в качестве платежных средств использовались монеты из цветных металлов. Поскольку содержание тех или иных металлов в монетах являлось их самообеспечением этими металлами, то особых проблем не возникало (за исключением фальшивых монет). Но позднее появились казначейские обязательства в виде бумажных или тряпичных аналогов денег. Суть казначейского обязательства в том, что на бумаге указывается её обеспеченность цветными металлами. Тут и начались проблемы. Окончательно проблема выявилась во времена правления во Франции генерала Шарля де Голля. Проще говоря, этот генерал собрал американские баксы из всех доступных французских валютных резервов и предъявив их ФРС США, потребовал обменять на золото, которое было указано в казначейских обязательствах.
Давайте разбираться. Например, у вас есть килограмм золота. Вы выпускаете свои деньги под залог этого золота, например, одна купюра – 1 грамм, т.е. 1000 купюр. Пускаете свои деньги в оборот. В один прекрасный день к вам приходит какой-то француз, который собрал ваши деньги и требует обменять их на золото, согласно казначейским обязательствам. Вспомним что было в начале: у вас было и золото и макулатура. А что получилось в результате: у француза ваше золото, а у вас осталась только макулатура. Надеюсь, что бестолковость идеи фиксированного обеспечения макулатуры металлами или другими материальными ценностями теперь понятна?
Ещё большая бестолковость заключалась в идее полного отказа от казначейских обязательств – отмена золотого стандарта.
Теперь можно уже рассказать, как работает обменник в Color Coins. Предположим, что у вас есть килограмм золота и 1000 выпущенных вами электронных банкнот. В таком случае, мы можем утверждать, что каждая банкнота обеспечена 1 граммом золота, хотя на самом деле 1 банкнота = 1 грамм золота – это только справедливая цена в соответствии со спросом и предложением на данный момент. Но дело в том, что золото можно намайнить, а эмиссия банкнот фиксирована. Плюс ко всему ни у кого кроме вас этих банкнот пока ещё нет в наличии (нет ни спроса, ни предложения, а следовательно и ликвидности).
Предположим, что некто, узнав о том, что пользоваться банкнотами для торговли удобнее, нежели золотом, принес к вам некоторое количество золота, чтобы обменять его на банкноты.
Поскольку в соответствии со спросом и предложением в данном случае этот некто предлагает вам золото и спрашивает банкноты (спрос и предложение вычисляются относительно обменного пункта, а не населения), то в соответствии со здравым смыслом золото должно подешеветь, а банкноты подорожать. Не менее здравый смысл для любого обменника, когда курс предложения (offer) выше курса спроса (bid) для населения и наоборот для обменника (девиз спекулянта: покупай дешевле, продавай дороже).
Как вычислить курс продажи или покупки золота за банкноты? По тривиальной формуле:
Price = m / (g + 2 * dg)
Где:
Price – цена грамма золота в банкнотах
m – количество банкнот у вас в наличии (общий номинал)
g – количество золота в граммах у вас в наличии
dg – количество предлагаемого вам золота. Если с отрицательным знаком, то количество спрашиваемого золота.
Поскольку, количество предлагаемого золота после обмена у вас увеличится, а количество банкнот уменьшится, то цена покупки золота тоже уменьшится, что соответствует здравому смыслу, т.е. спрос на банкноты и предложение золота приведет к падению цены на золото.
Единственный вопрос, который может заинтересовать любителей математики, так это что делает двойка в формуле? И почему именно двойка, а не тройка или другая цифирь?
Давайте предположим, что некто принёс нам 10 грамм золота, чтобы обменять на наши электронные банкноты. В этом случае курс обмена будет:
Price = m / (g + 2 * dg) = 1000 / (1000 + 2 * 10) = 0.98039215686274509803921568627451
В таком случае за 10 грамм золота мы отдадим 9.8039215686274509803921568627451 банкнот
В результате, после обмена у нас останется 1010 грамм золота и 990.19607843137254901960784313726 банкнот.
Вычислим справедливую цену: 990.19607843137254901960784313726 / 1010 = 0.98039215686274509803921568627451
Т.е. теперь справедливая цена на золото точно равна цене последней сделки. Естественно, что следующая цена покупки золота будет ниже справедливой, а продажи – выше. Но тем не менее, согласно данной формуле, справедливая цена будет соответствовать цене последней сделки. Ведь если быть более точным, то формула справедлива для денежных средств с фиксированной эмиссией в трёх эквивалентных вариациях:
Price = m / (g + 2 * dg) = (m - 2 * dm) / g = (m - dm) / (g + dg)
Где:
signum(dm) = -signum(dg)
Итак, мы получили плавающий курс золота, выраженный в наших банкнотах в соответствии со спросом и предложением и в соответствии с совершаемыми сделками.
Дополнительное преимущество применения данной формулы в том, что если какой нибудь француз вдруг решит собрать у населения ваши банкноты и предъявить их в обмен на золото, то фокус, аналогичный историческому, ему уже не удастся, т.к. после того, как мы вычислим ему курс покупки золота, независимо от того, сколько у него на руках купюр, количество золота у нас после расплаты с французом в наличии обменника будет не меньше, чем было до первой совершенной сделки (данное утверждение справедливо лишь для валют с фиксированной эмиссией, по отношению к товарам с любой эмиссией). Проще говоря, формула достаточно оптимальна, чтобы обеспечивать и деньгами и золотом население в любой момент – 100% ликвидность и того и другого в соответствии со спросом и предложением и при этом в нашем обменнике всегда будет в наличии и золото и деньги. Также не стоит забывать, что эмиссия денег у нас строго фиксированная. Т.е. цены уже не зависят от количества напечатанных денег (инфляции), а только от реального спроса и предложения на деньги или золото. Поскольку обменник не предполагает принимать деривативы, а только либо золото, либо купюры, то манипуляции обменными курсами с помощью напечатанной кем-то макулатуры, как на современных биржах, исключены.
Однако в формуле есть одна заковыка, а именно если у нас собираются приобретать золото в количестве более или равном половине запаса, то в знаменателе формулы может получиться либо ноль либо отрицательное число. А цена ведь не может быть отрицательной. В таком случае, либо нужно за одну сделку продать не более половины золотого запаса, либо считать в числителе, количество купюр предлагаемых для обмена, т.к. их значение положительно по формуле:
Price = (m + 2 * dm) / g,
Вот такая, с одной стороны хитрая, а с другой примитивно-тривиальная, решающая проблемы обеспечения ликвидности для валют с фиксированной эмиссией.