Node.jsで暗号資産アービトラージ

ビットコイントレード中心にNode.jsで実際に作るためのレシピ

bitFlyerでのレバレッジ取引のやり方(bitFlyer Lightning FXの特徴)

※この記事は10/12に作成されました。

こんにちは、ケネです。

ビットコイン(BTC)のレバレッジ取引ができるbitFlyer Lightning FX(以下、bitFlyer FX)についてまとめてみました。

- BTCのレバレッジ取引をやってみたいけどまだ手をだせていない人
- bitFlyer FXを使って取引をしたい人
- どの取引所がいいかわからない人

の参考になるように書いています。

私は日本の取引所としては、bitFlyer FXが一番使いやすいと感じています。


基本的な特徴

bitFlyer FXでは4倍までのレバレッジでビットコインの証拠金取引を行うことができます。

手数料としてポジション管理料がかかりますが、ビットコインの保有があるかないかによらず、買い(ロング)、売り(ショート)取引を入れることができます。

bitFlyer FX基本的な特徴として以下を解説します。

  • bitFlyer FXは取引所形式 
  • bitFlyer FXの手数料
  • bitFlyer FXのレバレッジ
  • bitFlyer FXの決済方法

bitFlyer FXは取引所形式

bitFlyer FXは取引所形式でビットコイン(BTC)取引のみ対応しています。

ビットコイントレードができる取引所は板取引によりユーザ間で取引ができる取引所形式のものと、取引所が間に入る販売所形式のものに分けられます。

取引所形式

取引所形式ではユーザ間で取引を行うため、スプレッド(買いと売りの差額)は小さいです。

ただし、出来高が少ないと板が飛ぶ(成行注文を入れた時に想定より不利な条件で約定してしまう)ことがあります。

bitFlyer FXは出来高がそれなりにあるため個人のトレードであれば問題なく使うことができます。

写真が板取引の画像です。

板取引のイメージ

販売所形式

販売所形式では取引所が間に入る形式であるため、大きな注文数量で成行注文を入れても提示された価格で購入することができます。

販売所形式は通常はスプレッドが大きく、実質的な注文手数料が高いことを考慮する必要があります。

DMM BitcoinやTAOTAOは販売所形式です。

bitFlyer FXの手数料

bitFlyer FXの手数料はこちらから確認できます。

手数料一覧・税 | 仮想通貨ビットコイン(Bitcoin)の購入/販売所/取引所【bitFlyer(ビットフライヤー)】

bitFlyer FXは取引手数料は0円です。

スワップポイントとして、買い(ロング)、売り(ショート)どちらでもポジションを保有していると1日あたり0.04%の手数料がかかります。

100万円分のポジションだと、1日400円となります。
0.04%は国内の取引所だと普通の水準です。

後述しますが、その他に現物の価格と乖離が進むとSFD(Swap For Difference)が徴収されることがあります。

bitFlyer FXのレバレッジ

bitFlyer FXのレバレッジは1倍から4倍から選択できます。(2019/5/28から最大4倍になりました)

日本仮想通貨交換業協会のガイドラインでは4倍までとされているので、国内では最大4倍のレバレッジでしか取引はできません。

bitFlyer FXで必要な証拠金の計算式等はこちらに記載されています。

Lightning FX (ビットコイン FX)とは - ビットコイン取引所【bitFlyer Lightning】

bitFlyer FXの決済方法

bitFlyer FXでは決済ボタンはありません。ポジションを持ってる状態で反対注文を入れると決済注文になります。

例えば0.5BTCの買い(ロング)ポジションを持っていたとして、決済(手仕舞い)したい場合は、0.5BTCの売りを入れれば保有量が0になります。

売りと買いの1BTCのポジション(0.5BTC×2)保有にはなりません。

bitFlyer FXの注意すべきポイント(SFD)

bitFlyer FXの注意すべきポイント(デメリット)としてSFD(Swap For Difference)があります。

SFDを知らないと運用中に「がっつり手数料が取られている」事態に陥る可能性があるので正しく理解しておきましょう。

bitFlyer FXでのビットコインの価格

bitFlyer FXでは常に現物との価格乖離が発生しています。

記事を書いている現時点ではbitFlyer現物が1BTCが903500円、bitFlyer FXが921642円で、常に数パーセントのズレが発生しています。

価格差が縮小する保証はないので、アービトラージはおすすめできません。

FX市場では価格差が発生する

ビットコインFXはビットコイン現物市場とは異なり、裏付けるビットコインがないため、裁定(アービトラージ)が働かずに現物価格と大きく乖離することがあります。

例えば、ビットコイン現物(1BTC)が90万円だった場合、どこの取引所のビットコイン現物市場でも価格は90万円に近づきます。

A取引所で1BTCが85万円でB取引所が90万円だった場合、A取引所で1BTC購入してB取引所に送金して売却すれば5万円稼げますよね。

ビットコインFXでは送金できる現物がないため送金ができず、現物とbitFlyer FXでは価格差が発生します。

SFD(Swap For Difference)とは

SFD(Swap For Difference)はbitFlyer FXで導入されている価格差を発生させないための仕組みです。

価格が一定の乖離(5%)を超えると発動し、乖離が広がる方向への注文に手数料がかかります。

SFDの詳細はbitFlyer FXの手数料のページに記載されています。

手数料一覧・税 | 仮想通貨ビットコイン(Bitcoin)の購入/販売所/取引所【bitFlyer(ビットフライヤー)】

新規注文の場合

FX価格が105万円で現物価格が100万円のときに新規で買い注文を入れると手数料が約定金額の0.25%(この例では2625円)かかります。

逆に乖離を縮小させる新規注文の場合(上の例での売り注文)を入れると0.25%をもらうことができます。

決済注文の場合

決済注文の場合のSFDはやや複雑です。

bitFlyer FXでは「決済」というボタンがあるわけではなく、ポジションがある状態での反対注文です。

つまり、FX価格が105万円で現物価格が100万円のときに決済で買い注文(売りポジションがある状態で買い注文)を入れると手数料が約定金額の0.25%(この例では2625円)かかります。

逆に乖離を縮小させる決済注文の場合(上の例での買いポジションがある状態での売り注文)を入れても手数料をもらうことはできません

決済注文のSFDは利用者側が不利です。新規注文のつもりが決済注文になった、とならないように注意してください。

SFDが発動するタイミング

相場が急変動するタイミングでSFDが発生する傾向があります。

ビットコイン価格の値動きが小さいレンジ相場では通常はSFDは発生しません。

SFDが発生する際は上記の手数料の徴収、付与の仕組みを利用したbotの働きにより、5%に張り付きます。

SFDが発動している間の注文は予想外の手数料が取られないように運用を考えておく必要があります。

まとめ

bitFlyer FXの特徴をまとめました。

bitFlyer FXは国内で最も出来高のあるビットコインFX取引所ですので、安心して取引ができると思います。

デメリットとしてSFDという特殊な制度もあるので、SFD手数料には気をつけましょう。

www.kennejs.com

www.kennejs.com

node.jsでMongoDBに接続するならmongodbライブラリ(Driver)が便利

※この記事は10/8に作成されました。

こんにちは、ケネです。

Node.jsで作ったシステムにMongoDBを繋げるためのMongoDB Node.JS Driverの紹介です。

  • Node.jsをMongoDBにつないでみたい
  • Node.jsからMongoDBを実行するクエリのサンプルも欲しい
  • セキュリティの設定も知りたい

といったことができるように簡潔にポイントをまとめました。

Node.jsでMongoDBに接続する方

npmからmongodb(MongoDB Node.JS Driver)をインストール

前提として、Node.js、MongoDBはPCにインストールしておいてください。

Node.jsからmongodbというライブラリ(MongoDB Node.JS Driver)を利用してPCにインストールしたMongoDBデータベースにアクセスします。

まずは以下のコマンドでmongodb(Driver)をインストールします。

npm install mongodb

mongodb(MongoDB Node.JS Driver)の基本的な使い方(サンプルコード)

mongodb(Driver)の基本的な使い方を説明します。

まずはnpmでインストールしたmongodbとMongoClientをコードに定義します。

[test.js]
const mongodb = require('mongodb')
const MongoClient = mongodb.MongoClient

続いてMongoClient.connectを利用して接続先を書きます。

localhost:27017の部分には接続先IPアドレス(自PCの場合localhost)とポート番号を設定します。

dbNameの部分には接続したいMongoDBのデータベース名を入力します。

[test.js]
…
//ユーザ、パスワードなしの場合
MongoClient.connect('mongodb://localhost:27017/dbName'', (err, db) => {
  if (err) throw err;
  …(A)

ユーザ、パスワードの認証を入れている場合は以下のように記載します。

[test.js]
…
//ユーザ、パスワードありの場合
MongoClient.connect('mongodb://userName:password@localhost:27017/dbName'', (err, db) => {
  if (err) throw err;
  … (A)

上記のサンプルコードの(A)の部分にクエリを記載します。

dbNameにはデータベース名、collectionNameにはコレクション名を記載してください。

[test.js]
…
const dbName = db.db("dbName");
dbName.collection("collectionName").find().toArray(function(err, res) {
  if (err) throw err;
  //resにDB検索結果が設定されますので、resをNode.jsで操作することができます。
  console.log(res);
  db.close();
}

まとめると以下のコマンドでfindによる検索を利用できます。

[test.js]
const mongodb = require('mongodb')
const MongoClient = mongodb.MongoClient

MongoClient.connect('mongodb://userName:password@localhost:27017/dbName', (err, db) => {
  if (err) throw err;
  const dbName = db.db("dbName");
  dbName.collection("collectionName").find().toArray(function(err, res) {
    if (err) throw err;
    console.log(res);
    db.close();
  })
})

findの検索に検索条件を設定する

find()に検索条件を記載することもできます。

MongoClient.connect('mongodb://userName:password@localhost:27017/dbName', (err, db) => {
  if (err) throw err;
  const dbName = db.db("dbName");
  // 変数signalが"1"の条件で検索
  dbName.collection("collectionName").find({"signal": "1"}).toArray(function(err, res) {
    if (err) throw err;
    console.log(res);
    db.close();
  })
})

参考ページ

セキュリティ

先ほどの例ではユーザ認証あり、なしのパターンでサンプルを記載しましたが、MongoDBを利用する際はユーザ、パスワード認証の設定、ポート番号をデフォルトポート27017から変更しておきましょう。

www.kennejs.com

まとめ

Node.jsからMongoDBにつなぐためのmongodbライブラリの使い方を解説しました。

特に難しい設定なしで簡単に接続できますので、試してみてください。

Binance JEX APIで認証が通らない対処法とハマりやすいポイント(Python)

※この記事は10/3に作成されました。

こんにちは、ケネです。

Binance JEXのAPIでハマりやすいポイントをまとめました。

「Binance JEX」のAPI認証が通らず困っている方は参考にしてみてください。

以下の記事でETHでレバレッジ取引をしたい方日本の取引所FXが使いづらいと感じている方向けにBinance JEXの特徴、APIの使い方の概要を解説しています。

Binance JEXの仮想通貨FX(Futures)の特徴 - Node.jsで暗号資産アービトラージ

Binance JEXでAPIを使う手順 - Node.jsで暗号資産アービトラージ

Binance JEX Signed Endpoint Security(認証ありAPI)のサンプルコード

まずはサンプルコードを載せておきます。こちらをコピペすれば実行できます。

なお、以下のサイトを一部参考にさせてもらっています。

Python Connect to Binance API using requests | Lua Software Code

Binance API用のコードですが、非常に参考になりました。
(Binance JEXのAPIはBinanceのAPIに似ているためBinanceの情報が参考になります)

#API KeyとSecret Keyを設定
apikey = xxxxx
secret = yyyyy

#注文用の関数を定義
def sendOrder(side, price, quantity):

    path = '/api/v1/contract/order';
    method = 'POST';

    timestamp = round(datetime.now().timestamp() * 1000)

    data = {
        "symbol": "ETHUSDT",
        "side": side,
        "type": "LIMIT",
        "quantity": quantity,
        "price": price,
        'recvWindow': 5000,
        "timestamp": timestamp
    }
    query_string = urlencode(data)

    signature = hmac.new(bytearray(secret.encode('utf-8')), query_string.encode('utf-8') , digestmod = hashlib.sha256 ).hexdigest()
    data['signature'] = signature

    headers = {
        'X-JEX-APIKEY': apikey
    }

    url = 'https://www.jex.com' + path
    res = requests.post(url, headers=headers, params=data)
    print(json.loads(res.text))

#注文用の関数を実行
sendOrder("BUY", 150, 0.01)

Binance JEXでハマりやすいポイント

続いて私がハマった2件のエラーの原因を解説していきます。

エラーメッセージ(Invalid API-key, IP, or permissions for action)

API key、IPアドレス、権限のいづれかが無効だというメッセージです。

まずは、API Keyが間違っていないこと、(IPアドレスで制限をかけた場合)のIPアドレスが正しいこと、「利用する機能」にチェックされていることをJEXのAPI管理画面から確認しましょう。

API Key Setting

上記の3点が正しい場合、認証の設定値が誤っている場合がありますので、次の観点で確認してみてください。
jex-official-api-docs/rest-api.md at master · JexApi/jex-official-api-docs · GitHubを参照

  • endpointがhttps://testnet.jex.com(テストサイトだとエラーになる)
  • パラメータをapplication/x-www-form-urlencoded形式で渡していない(JSONで渡すとエラーとなる)
  • tokenをheaderのX-JEX-APIKEYに設定していない
  • 作成したsignatureをパラメータにいれていない

なお、APIドキュメントはできると読み取れますが、パラメータをURLのパラメータに設定するとうまく動きませんでした。
サンプルコードの「query_string = urlencode(data)」のようにurlencode形式で設定すると認証が通りました。

エラーメッセージ(Timestamp for this request is outside of the recvWindow)

JEXではタイムスタンプをミリ秒まで設定する必要があります。

なので、通常のPythonでのタイムスタンプ(秒までのUnixtime)の値を設定すると上記のメッセージが出力されます。

もっとも簡単な対策はミリ秒(3桁の数字)を付与することです。

サンプルコードでは1000倍することで000を付与しています。
(「timestamp = round(datetime.now().timestamp() * 1000)」の箇所です)

まとめ

Binance JEXのAPI認証でハマりやすいポイントを解説しました。

うまく認証できない方は参照してみてください。

おわり

Binanceはこちらから登録できます。紹介プログラムで10%のcommission feeを付与しましたのでお得に取引できます。→Binance口座開設

www.kennejs.com

www.kennejs.com

Binance JEXでAPIを使う手順

※この記事は10/3に更新されました。

こんにちは、ケネです。

Binance JEXのAPIの使い方の記事です。

前回の記事で「ETHでレバレッジ取引をしたい」「日本の取引所FXが使いづらい」方向けにBinance JEXの特徴を解説した続きです。

Binance JEXの仮想通貨FX(Futures)の特徴 - Node.jsで暗号資産アービトラージ

Binance JEX APIの使い方

API Keyの登録

注文の発注など口座認証が必要なAPI機能を利用する場合、API Keyを発行する必要があります。

Binance JEXログイン後の画面からAPIキーを発行できます。

事前にセキュリティメニューからJEX側の2段階認証などのセキュリティ設定も追加しておくと安心です。

Binance JEX Security

API KeyはBinance JEXのAPIメニューから作成できます。

Binance JEX API

Binance JEX API Screen

API Keyを識別する任意の名前を入れてCreateボタンで作成します。

権限は「Read Information」「Open transaction」「option Sell/Buy」があります。
(FXの取引であれば「Read Information」「Open transaction」にチェックを入れておきましょう)

自分のサーバのIPアドレスを登録して、IPアドレスの制御を入れることもできます。

APIドキュメントの見方

APIドキュメントは以下です。
GitHub - JexApi/jex-official-api-docs

REST API(よく利用されるHTTPを利用するAPI)はREST APIのドキュメントが用意されています。
jex-official-api-docs/rest-api.md at master · JexApi/jex-official-api-docs · GitHub

以下はREST APIドキュメントの解説です。

API接続に必要な基本情報は「General API Information」から「SIGNED (TRADE and USER_DATA) Endpoint security」までに記載されているので、この辺りの設定値を参照に作成します。

ポイントを下にあげておきます。

  • エンドポイントはhttps://www.jex.comまたはhttps://testnet.jex.com(テスト用)
  • GETの場合パラメーターはURL(query string)に記載する
  • POSTの場合パラメーターはURL(query string)またはrequest bodyに設定する
  • request bodyはcontent typeをapplication/x-www-form-urlencodedに設定する
  • API KeyはX-JEX-APIKEYヘッダーに設定する
  • 認証はHMAC SHA256で暗号化する

認証まわりはハマりやすいので別記事で詳細を解説予定です。

まとめ

Binance JEXのAPI使い方概要を解説しました。

サンプルやハマりやすいポイントも追加で記事を書く予定ですので、APIを使ってトレードしたい方は挑戦してみてください。

(10/3追記)書きました。
Binance JEX APIで認証が通らない対処法とハマりやすいポイント(Python) - Node.jsで暗号資産アービトラージ

Binanceはこちらから登録できます。紹介プログラムで10%のcommission feeを付与しましたのでお得に取引できます。→Binance口座開設

www.kennejs.com

Binance JEXの仮想通貨FX(Futures)の特徴

※この記事は10/3に更新されました。

こんにちは、ケネです。

Binance JEXのFXの特徴についてまとめました。

  • ETHでレバレッジ取引をしたい
  • 日本の取引所FXは手数料が高いのでいい取引所を探している

方は参考にしてみてくださいね。

Binance JEXとは

Binance JEXは仮想通貨FX取引所です。

BinanceがJEXという仮想通貨FX取引所を買収して誕生しました。

Binance JEXの特徴

USDT建てでBTC、ETH、EOSを最大100倍のレバレッジで仮想通貨FX取引できます。

USDTはTether社が発行しているステーブルコインでUSD(米ドル)の価値に連動します。

ですのでBinance JEXではUSDに近い価値でBTC、ETH、EOSのレバレッジ取引ができます。

なお、仮想通貨FX取引(Futures)以外にもオプション取引(Options)、現物取引(Spot)にも対応しています。

日本語にも対応しており、APIを使って取引をすることもできます。

Binanceユーザならログインできる

すでにBinanceの口座を保有している場合、BinanceのユーザIDを利用してBinance JEXのサービスを利用することができます。

Binance JEXのログインページから「バイナンスアカウントでログイン(英語:Binance User Login)」からログインすることができます。

Binance JEX Login

二段階認証(Google Authentication)もBinanceのものを利用します。

私はまだ利用したことがありませんが、Binance本家の方からFuturesサービスを利用することもできるようです。

Binance JEX Login

※Binanceは日本語対応はしていません。

Binanceはこちらから口座開設できます。Binance口座開設

Binance信用取引との違い

Binanceでは信用取引(Margin Trading)サービスもありますが、規制の影響で日本の居住者向けに解放されていません。
(一時期解放されていましたが、2019/10時点で日本人には未解放です)

Binance Maring

Binanceの信用取引では、信用取引を行いたい仮想通貨を手数料(BTCで0.02%、変動あり)を払って借りることで最大3倍程度のレバレッジ取引を行うことができました。

日本の仮想通貨取引所FXとの違い

日本の仮想通貨取引所でFXを提供している会社はいくつかありますが、日本の取引所との違いとして大きく「ポジション管理料」の違いがあげられます。

日本では固定でLong(買い)でもShort(売り)でも1日0.04%(Liquid by Quoineは0.1%)かかりますが、BInance JEX(や他の海外仮想通貨FX取引所)ではFunding Rateとして、LongまたはShortのいづれかに支払い、反対側は受け取りが発生する仕組みとなっています。
(ベースはLongが0.01%の支払い、Shortが0.01%の受け取りで市場の動向により変動します)

仮想通貨FXは取引所独自の市場を利用しており、現物市場との差異が発生しやすいためFunding Rateを変動させることでバランスをとる仕組みになっています。

日本の仮想通貨取引所でのETHのレバレッジ取引の手数料

ETHに関しては、取引所形式での取り扱いはLiquid by Quoineのみでポジション管理料が0.1%/1日と高いです。

販売所形式ではETHはスプレッドが大きいため、購入時にスプレッドとして不利な条件での買い、売り持ちになってしまいます。

そのため、日本の取引所でのETHレバレッジ取引はコスパが悪いと感じています。

私はETHに関しては、Binanceをバックグラウンドに持っていて安定性のあるBinance JEXを使い始めています。

まとめ

・Binance JEXはUSDT建てでBTC、ETH、EOSのレバレッジ取引ができる
・Binanceの信用取引は現在日本人に解放されていない
・日本の仮想通貨取引所でのETHのレバレッジ取引は手数料が高い

APIの使い方の解説をしようと思ったのですが、導入が長くなりすぎてしまいました。。
次の記事でAPIの使い方を紹介します。

Binanceはこちらから登録できます。紹介プログラムで10%のcommission feeを付与しましたのでお得に取引できます。→Binance口座開設

www.kennejs.com

www.kennejs.com

TOEICで時間が足りなくて解き終わらない場合の対策

※この記事は9/24に作成されました。

こんにちは、ケネです。

TOEICの記事です。TOEICで時間が足りなくて解き終わらない場合の勉強法をまとめました。
参考に自分の経験も書いています。

時間が足りなくてスコアが伸び悩んで困っている方、特にスコア500〜600ぐらいの方向けの記事です。

前提として「TOEIC(R)L&Rテスト 直前の技術」(以下、直前の技術)、「公式TOEIC Listening & Reading 問題集 5」(以下、公式問題集)を使用します。

CD-ROM付 TOEIC(R) L&Rテスト 直前の技術

公式TOEIC Listening & Reading 問題集 5

時間が足りない要因

TOEICは特有の解答スキルが必要

TOEICは試験の特性上、普通に解いていると時間が足りなくなります。

「直前の技術」ではリーディングの時間配分がPart5,6で20分、Part7で55分の配分が推奨されていますが、普通に問題を読んで解ける時間ではありません。

例えばですが、Part5,6の品詞の問題は問題文を読まなくても正答できますし、Part7も流し読みで正答できます。(他の試験のようなひっかけは少ないです)

TOEIC特有の解答スキルとして早めに習得してしまいましょう

解答スキルの習得は「直前の技術」、問題練習は「公式問題集」がオススメです。

TOEICで全部解き終わるときのスコア

参考値ですが、最後の2問(191〜200)が終わらないぐらいで650前後、全部解き終わるとスコア700ぐらいでした。

時間が足りないケース

Part5,6が20分で終わらない

Part5,6は20分で解く必要があります。「直前の技術」ではPart5,6特有の解答スキルを身につけることができます。

「直前の技術」だけでは練習量が足りないので、TOEIC運営が作成している「公式問題集」で自分で使えるようになるまで練習してみてください。

ただし、単語が全然わからない、文法が全然わからない、文法分野のスコアが低いという方は個別に勉強しておくとさらにスコアをあげることができます。(解答スキル習得を優先した方がスコアはあがります)

Part7が55分で終わらない

Part7は55分で解く必要があります。

Part7については英文の難易度も高くなく、質問内容を問題文から探すことで回答することができます。

時間を測って問題を何度も解くことで問題に慣れて解答スピードをあげることができます。

「公式問題集」はTOEIC運営が作成しているため、本番に近い問題に触れることができます。

Part7に関しても単語が全然わからない、という方は個別に勉強しておくとスコアアップにつながります。

公式問題集はどれぐらい解けばいいか

「公式問題集」は1冊に2回分の問題が含まれているので、それぞれ30回ぐらい解きました。

5周ぐらいすると全問正解できて、時間内に終わらせることができるのでそのスピード感に慣れておくと本番でもスムーズに対処できます。

1周55分を通しでやる必要もありますが、慣れてきたら空き時間で少しずつ、というのがモチベーション管理にオススメです。

まとめ

・TOEICは試験の特性上、普通に解いていると時間が足りなくなる(特有のスキル習得が必要)
・スキルの習得は「直前の技術」がオススメ
・スキルの問題練習は「公式問題集」がオススメ

CD-ROM付 TOEIC(R) L&Rテスト 直前の技術

CD-ROM付 TOEIC(R) L&Rテスト 直前の技術

公式TOEIC Listening & Reading 問題集 5

公式TOEIC Listening & Reading 問題集 5

RAR%の計算式 タートル流投資の魔術

※この記事は2019/9/16に作成されました。

こんにちは、ケネです。

タートル流投資の魔術の第12章でRAR%という指標が出てきます。
読んでいてRAR%って何?という方向けに計算式をあげておきます。

統計学を忘れてしまった、学んだことのない方向けの記事です。

伝説のトレーダー集団 タートル流投資の魔術

伝説のトレーダー集団 タートル流投資の魔術

RAR%(回帰年間利益率)は直線回帰

RAR%(回帰年間利益率)はバックテストの開始、終了日の変化の影響を小さくするために考案された指標です。
(RAR%の詳細な解説、使い方はタートル流投資の魔術を参照してください)

「直線回帰」はそれぞれの点(収益値や価格値など)からの距離が最も小さくなるような直線で、集めたデータの傾向を表すことができます。

以下のような散布図に引かれた線をイメージするとわかりやすいです。

回帰直線の例

回帰直線の計算式

回帰直線は一次関数なので、傾きと切片がわかれば線を引くことができます。

傾きは「相関係数 ×(yの標準偏差 ÷ xの標準偏差)」、
切片は「yの平均 - (傾き × xの平均)」で求められます。

なお、Excelでは傾きはSLOPE関数、切片はINTERCEPT関数で計算できます。

まとめ

RAR%は直線回帰なので、統計学の直線回帰を使えば算出できます。

タートル流投資の魔術は統計学の基礎はわかっている前提で書かれていますし、トレードの勝率も統計で計測しています。

統計学を忘れていた人、学んだことがない人はこの機会に習得すると役に立つかもしれません。

完全独習 統計学入門

完全独習 統計学入門

※統計学は習得難易度が高いので、初学者は簡単に読める本がオススメです。