Help us understand the problem. What is going on with this article?

Ku-Chartの簡単な計算方法

Ku-Chartの簡単な計算方法

Ku-Chartの簡単な計算方法について以下に説明する。Ku-Chartを計算するコードを書く場合、この方法に基づいて計算すれば一定の高速化ができると思う。

USDを含む5通貨モデルの計算式

例としてAUD、EUR、GBP、JPY、USDの5通貨モデルの計算式を以下に示す。

a = (log(AUDUSD)+log(EURUSD)+log(GBPUSD)-log(USDJPY)) / 5
Ku-AUD = log(AUDUSD) - a
Ku-EUR = log(EURUSD) - a
Ku-GBP = log(GBPUSD) - a
Ku-JPY = -log(USDJPY) - a
Ku-USD = -a

計算式の解説

なぜ、このような式になるのかを説明しておく。興味のない人は読み飛ばしていただいて構わない。

①ドルストレートの通貨ペアのみを材料として使い、通貨ペアを「ベース通貨 / クォート通貨」の形に変形する。

AUDUSD = AUD / USD
EURUSD = EUR / USD
GBPUSD = AUD / USD
USDJPY = USD / JPY

②左辺と右辺を入れ替える。

AUD / USD = AUDUSD
EUR / USD = EURUSD
GBP / USD = GBPUSD
USD / JPY = USDJPY
USD / USD = 1

③クォート通貨をUSDに揃える。

AUD / USD = AUDUSD
EUR / USD = EURUSD
GBP / USD = GBPUSD
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(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(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(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(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(JPY) = -log(USDJPY) + log(USD)
log(USD) = log(USD)

⑨Ku-Chartは平均を減じて全体の合計が0になるようにしている。そこで先ず平均を求める。

mean = (log(AUD)+log(EUR)+log(GBP)+log(JPY)+log(USD)) / 5

⑩計算を進める。

mean = (log(AUDUSD)+log(USD)+log(EURUSD)+log(USD)+log(GBPUSD)+log(USD)-log(USDJPY)+log(USD)+log(USD)) / 5

⑪更に進める。

mean = (log(AUDUSD)+log(EURUSD)+log(GBPUSD)-log(USDJPY)+5*log(USD)) / 5

⑫更に更に進める。

mean = (log(AUDUSD)+log(EURUSD)+log(GBPUSD)-log(USDJPY)) / 5 + (5*log(USD)) / 5

⑬更に更に更に進める。

mean = (log(AUDUSD)+log(EURUSD)+log(GBPUSD)-log(USDJPY)) / 5 + log(USD)

⑭ここで「(log(AUDUSD)+log(EURUSD)+log(GBPUSD)-log(USDJPY)) / 5」を「a」として以下のように置き換える。

mean = a + log(usd)

⑮Ku-Chartは対数化した各通貨から上で計算した平均を減じたものであるので以下のようにする。

Ku-AUD = log(AUD) - mean
Ku-EUR = log(EUR) - mean
Ku-GBP = log(GBP) - mean
Ku-JPY = log(JPY) - mean
Ku-USD = log(USD) - mean

⑯平均をa + log(USD)に置き換える。

Ku-AUD = log(AUD) - (a+log(USD))
Ku-EUR = log(EUR) - (a+log(USD))
Ku-GBP = log(GBP) - (a+log(USD))
Ku-JPY = log(JPY) - (a+log(USD))
Ku-USD = log(USD) - (a+log(USD))

⑰()を外す。

Ku-AUD = log(AUD) - a - log(USD)
Ku-EUR = log(EUR) - a - log(USD)
Ku-GBP = log(GBP) - a - log(USD)
Ku-JPY = log(JPY) - a - log(USD)
Ku-USD = log(USD) - a - log(USD)

⑱順番を入れ替える。

Ku-AUD = log(AUD) - log(USD) - a
Ku-EUR = log(EUR) - log(USD) - a
Ku-GBP = log(GBP) - log(USD) - a
Ku-JPY = log(JPY) - log(USD) - a
Ku-USD = log(USD) - log(USD) - a

⑲減算を除算の形に戻す。

Ku-AUD = log(AUD/USD) - a
Ku-EUR = log(EUR/USD) - a
Ku-GBP = log(GBP/USD) - a
Ku-JPY = log(JPY/USD) - a
Ku-USD = log(USD/USD) - a

⑳計算を進める。

Ku-AUD = log(AUD/USD) - a
Ku-EUR = log(EUR/USD) - a
Ku-GBP = log(GBP/USD) - a
Ku-JPY = -log(USD/JPY) - a
Ku-USD = log(1) - a

㉑更に進める。

Ku-AUD = log(AUD/USD) - a
Ku-EUR = log(EUR/USD) - a
Ku-GBP = log(GBP/USD) - a
Ku-JPY = -log(USD/JPY) - a
Ku-USD = 0 - a

㉒更に更に進める。

Ku-AUD = log(AUDUSD) - a
Ku-EUR = log(EURUSD) - a
Ku-GBP = log(GBPUSD) - a
Ku-JPY = -log(USDJPY) - a
Ku-USD = -a

これで計算式が求められた。

USDを含まない4通貨モデルの計算式

ドルストレートを材料にする場合でもUSDを除くことはできる。

例としてAUD、EUR、GBP、JPYの4通貨モデルの計算式を以下に示す。

a = (log(AUDUSD) + log(EURUSD) + log(GBPUSD) - log(USDJPY)) / 4
Ku-AUD = log(AUDUSD) - a
Ku-EUR = log(EURUSD) - a
Ku-GBP = log(GBPUSD) - a
Ku-JPY = -log(USDJPY) - a

再び計算式の解説

やはり興味のない人は読み飛ばしていただいて構わない。

①ドルストレートの通貨ペアのみを材料として使い、通貨ペアを「ベース通貨 / クォート通貨」の形に変形する。

AUDUSD = AUD / USD
EURUSD = EUR / USD
GBPUSD = AUD / USD
USDJPY = USD / JPY

②左辺と右辺を入れ替える。

AUD / USD = AUDUSD
EUR / USD = EURUSD
GBP / USD = GBPUSD
USD / JPY = USDJPY
USD / USD = 1

③クォート通貨をUSDに揃える。

AUD / USD = AUDUSD
EUR / USD = EURUSD
GBP / USD = GBPUSD
JPY / USD = 1 / USDJPY

④Ku-Chartは対数を使っているので、これを対数に変換する。

log(AUD/USD) = log(AUDUSD)
log(EUR/USD) = log(EURUSD)
log(GBP/USD) = log(GBPUSD)
log(JPY/USD) = log(1/USDJPY)

⑤除算を減算の形に変える。

log(AUD) - log(USD) = log(AUDUSD)
log(EUR) - log(USD) = log(EURUSD)
log(GBP) - log(USD) = log(GBPUSD)
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(JPY) - log(USD) = 0 - log(USDJPY)

⑦更に進める。

log(AUD) - log(USD) = log(AUDUSD)
log(EUR) - log(USD) = log(EURUSD)
log(GBP) - log(USD) = log(GBPUSD)
log(JPY) - log(USD) = -log(USDJPY)

⑧log(USD)を右辺に移項する。

log(AUD) = log(AUDUSD) + log(USD)
log(EUR) = log(EURUSD) + log(USD)
log(GBP) = log(GBPUSD) + log(USD)
log(JPY) = -log(USDJPY) + log(USD)

⑨Ku-Chartは平均を減じて全体の合計が0になるようにしている。そこで先ず平均を求める。

mean = (log(AUD)+log(EUR)+log(GBP)+log(JPY)) / 4

⑩計算を進める。

mean = (log(AUDUSD)+log(USD)+log(EURUSD)+log(USD)+log(GBPUSD)+log(USD)-log(USDJPY)+log(USD)) / 4

⑪更に進める。

mean = (log(AUDUSD)+log(EURUSD)+log(GBPUSD)-log(USDJPY)+4*log(USD)) / 4

⑫更に更に進める。

mean = (log(AUDUSD)+log(EURUSD)+log(GBPUSD)-log(USDJPY)) / 4 + (4*log(USD)) / 4

⑬更に更に更に進める。

mean = (log(AUDUSD)+log(EURUSD)+log(GBPUSD)-log(USDJPY)) / 4 + log(USD)

⑭ここで「(log(AUDUSD)+log(EURUSD)+log(GBPUSD)-log(USDJPY)) / 4」を「a」として以下のように置き換える。

mean = a + log(usd)

⑮Ku-Chartは対数化した各通貨から上で計算した平均を減じたものであるので以下のようにする。

Ku-AUD = log(AUD) - mean
Ku-EUR = log(EUR) - mean
Ku-GBP = log(GBP) - mean
Ku-JPY = log(JPY) - mean

⑯平均をa + log(USD)に置き換える。

Ku-AUD = log(AUD) - (a+log(USD))
Ku-EUR = log(EUR) - (a+log(USD))
Ku-GBP = log(GBP) - (a+log(USD))
Ku-JPY = log(JPY) - (a+log(USD))

⑰()を外す。

Ku-AUD = log(AUD) - a - log(USD)
Ku-EUR = log(EUR) - a - log(USD)
Ku-GBP = log(GBP) - a - log(USD)
Ku-JPY = log(JPY) - a - log(USD)

⑱順番を入れ替える。

Ku-AUD = log(AUD) - log(USD) - a
Ku-EUR = log(EUR) - log(USD) - a
Ku-GBP = log(GBP) - log(USD) - a
Ku-JPY = log(JPY) - log(USD) - a

⑲減算を除算の形に戻す。

Ku-AUD = log(AUD/USD) - a
Ku-EUR = log(EUR/USD) - a
Ku-GBP = log(GBP/USD) - a
Ku-JPY = log(JPY/USD) - a

⑳計算を進める。

Ku-AUD = log(AUD/USD) - a
Ku-EUR = log(EUR/USD) - a
Ku-GBP = log(GBP/USD) - a
Ku-JPY = -log(USD/JPY) - a

㉑更に進める。

Ku-AUD = log(AUD/USD) - a
Ku-EUR = log(EUR/USD) - a
Ku-GBP = log(GBP/USD) - a
Ku-JPY = -log(USD/JPY) - a

㉒更に更に進める。

Ku-AUD = log(AUDUSD) - a
Ku-EUR = log(EURUSD) - a
Ku-GBP = log(GBPUSD) - a
Ku-JPY = -log(USDJPY) - a

これで計算式が求められた。

要するに、USDを含めた5通貨モデルでは5で除していたところを4で除するように変更するだけである。

まとめ

上記の計算式を用いれば、ドルストレートを材料にして任意の組み合わせのKu-Chartを作成できる。もちろん、他のドルストレートを追加して5より大きいモデルを作成することもできる。

また、同様のやり方でクロス円、ユーロクロスなどを使ってKu-Chartを計算することもできる。ただし、「EURUSD」と「EURJPY / USDJPY」が必ずしも一致しないように非常にわずかな誤差はありうる。

fxst24
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした