通貨の強弱の計算式を紹介する。
人によって呼び方は様々だが、最近、「通貨の強弱」という指標が相場分析でよく使われている印象がある。
昔、Ku-Chartと呼ばれる指標があったが、今の「通貨の強弱」はKu-Chart、あるいはその派生型なのではないだろうか。
当時、Ku-Chartの計算はやや複雑で、処理も重かった。
そこで私はもっと簡単に計算でき、処理も軽くなる方法を見つけた。
その計算式を通貨の強弱の計算式として、ここで紹介する。
仮定世界の通貨の価格
通貨の価格というのは他の通貨との交換価格なので、本来、通貨単体の価格というのは分からない。
だが、通貨をいくつか選択し、世界にはそれ以外の通貨は存在しないと仮定することによって、各通貨のその仮定世界での価格というのを表すことはできる。
そして、その価格の変化を比較することによって通貨の強弱を知ることができるというわけだ。
といってもよく分からないが、以下の計算式とそれを導出した過程を見れば理解できると思う。
通貨の強弱の計算式
今回は世界に
AUD:豪ドル CAD:カナダドル CHF:スイスフラン EUR:ユーロ GBP:ポンド JPY:日本円 NZD:ニュージーランドドル USD:米ドル
の8通貨しか存在しない世界を仮定する。
そして、この仮定世界での各通貨の価格を
A-AUD A-CAD A-CHF A-EUR A-GBP A-JPY A-NZD A-USD
のように頭に「A-」を加えて表すこととする。
では計算式を以下に示す。
a = (log(AUDUSD)+log(EURUSD)+log(GBPUSD)+log(NZDUSD)-log(USDCAD)-log(USDCHF)-log(USDJPY)) / 8 A-AUD = log(AUDUSD) - a A-EUR = log(EURUSD) - a A-GBP = log(GBPUSD) - a A-NZD = log(NZDUSD) - a A-CAD = -log(USDCAD) - a A-CHF = -log(USDCHF) - a A-JPY = -log(USDJPY) - a A-USD = -a
なお、logはここでは自然対数である。MQL5ならMathLog()で計算できる。Mathlog10()ではないので注意。
今回はUSDを含む通貨ペアを選び、計算したが、USDである必要はないし、8通貨である必要もない。
計算式のパターンに注目すれば、別の通貨ペアの組み合わせでも計算できるだろう。
計算式の解説
ではなぜ、このような計算式になるのかを説明しておく。興味のない人は読み飛ばしていただいて構わない。
かなりくどい書き方をしているが、順を追って見れば、数学が苦手な人でも分かりやすいかと思う。
ただし対数の知識は必要。
①ドルストレートの通貨ペアのみを材料として使い、通貨ペアを「ベース通貨 / クォート通貨」の形に変形する。
AUDUSD = AUD / USD EURUSD = EUR / USD GBPUSD = GBP / USD NZDUSD = NZD / USD USDCAD = USD / CAD USDCHF = USD / CHF USDJPY = USD / JPY USDUSD = USD / USD(このような通貨ペアはないが、あるとする)
②左辺と右辺を入れ替える。
AUD / USD = AUDUSD EUR / USD = EURUSD GBP / USD = GBPUSD NZD / USD = NZDUSD USD / CAD = USDCAD USD / CHF = USDCHF USD / JPY = USDJPY USD / USD = USDUSD
③クォート通貨をUSDに揃える。
AUD / USD = AUDUSD EUR / USD = EURUSD GBP / USD = GBPUSD NZD / USD = NZDUSD CAD / USD = 1 / USDCAD CHF / USD = 1 / USDCHF JPY / USD = 1 / USDJPY USD / USD = 1
④Ku-Chartでは自然対数を使っているので、自然対数に変換する。
log(AUD/USD) = log(AUDUSD) log(EUR/USD) = log(EURUSD) log(GBP/USD) = log(GBPUSD) log(NZD/USD) = log(NZDUSD) log(CAD/USD) = log(1/USDCAD) log(CHF/USD) = log(1/USDCHF) log(JPY/USD) = log(1/USDJPY) log(USD/USD) = log(1)
⑤除算を減算の形に変える。
log(AUD) - log(USD) = log(AUDUSD) log(EUR) - log(USD) = log(EURUSD) log(GBP) - log(USD) = log(GBPUSD) log(NZD) - log(USD) = log(NZDUSD) log(CAD) - log(USD) = log(1) - log(USDCAD) log(CHF) - log(USD) = log(1) - log(USDCHF) log(JPY) - log(USD) = log(1) - log(USDJPY) log(USD) - log(USD) = log(1)
⑥計算を進める。
log(AUD) - log(USD) = log(AUDUSD) log(EUR) - log(USD) = log(EURUSD) log(GBP) - log(USD) = log(GBPUSD) log(NZD) - log(USD) = log(NZDUSD) log(CAD) - log(USD) = 0 - log(USDCAD) log(CHF) - log(USD) = 0 - log(USDCHF) log(JPY) - log(USD) = 0 - log(USDJPY) log(USD) - log(USD) = 0
⑦更に進める。
log(AUD) - log(USD) = log(AUDUSD) log(EUR) - log(USD) = log(EURUSD) log(GBP) - log(USD) = log(GBPUSD) log(NZD) - log(USD) = log(NZDUSD) log(CAD) - log(USD) = -log(USDCAD) log(CHF) - log(USD) = -log(USDCHF) log(JPY) - log(USD) = -log(USDJPY) log(USD) - log(USD) = 0
⑧log(USD)を右辺に移項する。
log(AUD) = log(AUDUSD) + log(USD) log(EUR) = log(EURUSD) + log(USD) log(GBP) = log(GBPUSD) + log(USD) log(NZD) = log(NZDUSD) + log(USD) log(CAD) = -log(USDCAD) + log(USD) log(CHF) = -log(USDCHF) + log(USD) log(JPY) = -log(USDJPY) + log(USD) log(USD) = log(USD)
⑨Ku-Chartは平均を減じて全体の合計が0になるようにしている。そこで先ず平均を求める。
mean = (log(AUD)+log(EUR)+log(GBP)+log(NZD)+log(CAD)+log(CHF)+log(JPY)+log(USD)) / 8
⑩式を通貨ペアに置き換える
mean = (log(AUDUSD)+log(USD)+log(EURUSD)+log(USD)+log(GBPUSD)+log(USD)+log(NZDUSD)+log(USD)-log(USDCAD)+log(USD)-log(USDCHF)+log(USD)-log(USDJPY)+log(USD)+log(USD)) / 8
⑪計算を進める。
mean = (log(AUDUSD)+log(EURUSD)+log(GBPUSD)+log(NZDUSD)-log(USDCAD)-log(USDCHF)-log(USDJPY)+log(USD)*8) / 8
⑫更に進める。
mean = (log(AUDUSD)+log(EURUSD)+log(GBPUSD)+log(NZDUSD)-log(USDCAD)-log(USDCHF)-log(USDJPY)) / 8 + (log(USD)*8) / 8
⑬更に更に進める。
mean = (log(AUDUSD)+log(EURUSD)+log(GBPUSD)+log(NZDUSD)-log(USDCAD)-log(USDCHF)-log(USDJPY)) / 8 + log(USD)
⑭ここで「(log(AUDUSD)+log(EURUSD)+log(GBPUSD)+log(NZDUSD)-log(USDCAD)-log(USDCHF)-log(USDJPY)) / 8」を「a」として以下のように置き換える。
mean = a + log(usd)
⑮Ku-Chartは自然対数化した各通貨から上で計算した平均を減じたものであるので以下のようにする。
A-AUD = log(AUD) - mean A-EUR = log(EUR) - mean A-GBP = log(GBP) - mean A-NZD = log(NZD) - mean A-CAD = log(CAD) - mean A-CHF = log(CHF) - mean A-JPY = log(JPY) - mean A-USD = log(USD) - mean
⑯平均をa + log(USD)に置き換える。
A-AUD = log(AUD) - (a+log(USD)) A-EUR = log(EUR) - (a+log(USD)) A-GBP = log(GBP) - (a+log(USD)) A-NZD = log(NZD) - (a+log(USD)) A-CAD = log(CAD) - (a+log(USD)) A-CHF = log(CHF) - (a+log(USD)) A-JPY = log(JPY) - (a+log(USD)) A-USD = log(USD) - (a+log(USD))
⑰()を外す。
A-AUD = log(AUD) - a - log(USD) A-EUR = log(EUR) - a - log(USD) A-GBP = log(GBP) - a - log(USD) A-NZD = log(NZD) - a - log(USD) A-CAD = log(CAD) - a - log(USD) A-CHF = log(CHF) - a - log(USD) A-JPY = log(JPY) - a - log(USD) A-USD = log(USD) - a - log(USD)
⑱順番を入れ替える。
A-AUD = log(AUD) - log(USD) - a A-EUR = log(EUR) - log(USD) - a A-GBP = log(GBP) - log(USD) - a A-NZD = log(NZD) - log(USD) - a A-CAD = log(CAD) - log(USD) - a A-CHF = log(CHF) - log(USD) - a A-JPY = log(JPY) - log(USD) - a A-USD = log(USD) - log(USD) - a
⑲減算を除算の形に戻す。
A-AUD = log(AUD/USD) - a A-EUR = log(EUR/USD) - a A-GBP = log(GBP/USD) - a A-NZD = log(NZD/USD) - a A-CAD = log(CAD/USD) - a A-CHF = log(CHF/USD) - a A-JPY = log(JPY/USD) - a A-USD = log(USD/USD) - a
⑳計算を進める。
A-AUD = log(AUD/USD) - a A-EUR = log(EUR/USD) - a A-GBP = log(GBP/USD) - a A-NZD = log(NZD/USD) - a A-CAD = -log(USD/CAD) - a A-CHF = -log(USD/CHF) - a A-JPY = -log(USD/JPY) - a A-USD = log(1) - a
㉑更に進める。
A-AUD = log(AUD/USD) - a A-EUR = log(EUR/USD) - a A-GBP = log(GBP/USD) - a A-NZD = log(NZD/USD) - a A-CAD = -log(USD/CAD) - a A-CHF = -log(USD/CHF) - a A-JPY = -log(USD/JPY) - a A-USD = 0 - a
㉒更に更に進め、「ベース通貨 / クォート通貨」の形を通貨ペアに戻す。
A-AUD = log(AUDUSD) - a A-EUR = log(EURUSD) - a A-GBP = log(GBPUSD) - a A-NZD = log(NZDUSD) - a A-CAD = -log(USDCAD) - a A-CHF = -log(USDCHF) - a A-JPY = -log(USDJPY) - a A-USD = -a
これで計算式が求められた。
この計算で求められた価格は自然対数なので、価格が0.01増えれば大体1%増加したということになる。
平均を減じる理由
計算の途中でなぜ平均を減じるかというと、例えば、ある通貨が1%増加したら、その他の通貨全体で1%減少する。
何かが増えればその分だけ他のところで減り、プラスマイナス0になる。
それを分かりやすく示すために通貨の価格全体を合計すると0にしておくのだ。
そうすれば、どの通貨がどれだけ増えようと減ろうと全体を合計すると0のままとなる。
そして合計が0になるためには平均を減じておくというわけだ。