取引プラットフォームガイド

仮想通貨FX テクニカル分析

仮想通貨FX テクニカル分析
<生成DataFrame>・・[第1部]掲載
実例のDataFrameは、1049行まであります。
・列要素が特徴量とラベル、・行要素がFXチャートから抽出した「データ」です 仮想通貨FX テクニカル分析

仮想通貨自動取引入門

年の瀬が近づき何かと出費がかさむ季節になりましたね. 財布の中も真冬です.
実は2ヶ月ほど前から年越しに備えて仮想通貨で資産運用をしています.
他の資産運用と比べたときの仮想通貨取引のメリットは「少額でも大きな利益を得るチャンスがあること」と「24時間365日取引ができること」でしょうか.
ということで, その時に自動取引についていろいろと試行錯誤をしたので, 勉強したことをまとめて記事にしたいと思います.
具体的には, PythonでbitFlyerのAPIを叩いてチャートを描画し, 決められたアルゴリズムに従って自動でビットコインの売買をする, という一連の流れを紹介します.
ごく簡単な紹介にとどめるので, その先は各々で試して自分なりのやり方を考えてほしいです.
*僕は仮想通貨に関しても投資に関しても素人です. 投資は自己責任で行ってください. しかし儲かった場合はその限りでありません. 焼肉が食べたいです.
*リファクタリングなどが不十分で申し訳ありません. 改善点や疑問などがございましたらコメントください.

取引所はbitFlyerを使います. まだ登録していない方はこちらから.
他の取引所にも同様のAPIはあるはずなので, この記事と同じ方針でプログラムを書けば同じことができると思います.
言語はPython3を使います. 出力結果を見て試行錯誤しながら進めるのがいいので, 実行環境はJupyter Notebookを使います.

ビットコインについて

ビットコインという言葉が先行して盛り上がっていますが, そもそもビットコインを始めとする暗号通貨技術を理解していない人がとても多いように感じます.
もちろん技術を理解しなくても株と同じように取引はできますし儲けることもできますが, ブロックチェーンなどの周辺技術は「インターネット以来の大発明」とも言われていて新しいアイディアが目白押しなので, これを機に学んでおいて損はないでしょう. 後で述べる「アルトコインの長期保有」をする際にはこの知識が役に立ちます.

ビットコインは, 2009年にサトシ・ナカモトを名乗る謎の人物が暗号学のメーリングリストに公開した論文を元に作られました.
中央機関を置かず対等なユーザ同士で取引の正当性を担保するという全く新しい発想でネットワーク攻撃に強い堅牢なシステムを実現しているのですが, 長くなるのでここでは立ち入らないことにします.
簡単な仕組みは公式サイトで解説されています.
元の論文はこちらで公開されています. たった9ページなので一度目を通してみるとおもしろいです.
やや雑な翻訳ですが, 仮想通貨取引所のcoincheckが日本語版を公開しています.
個人的に読んでわかりやすかった本「Mastering Bitcoin」の日本語版がこちらで公開されています.
Amazonで購入する場合はこちらから.

チャートの描画

askは売り注文, bidは買い注文のことです. ltpはLast Traded Price, つまり最終取引価格のことです.
デイトレードというとローソク足チャートを利用するのが一般的ですが, ここでは最終取引価格だけを見ることにします.
ローソク足チャートを描きたい場合は, 最終取引価格を適当な数でまとめた上で始値・終値・安値・高値を選び, 適当なライブラリを使って描画することになると思います. こちらが参考になります.

1.png


横軸は時間[分], 仮想通貨FX テクニカル分析 縦軸は価格[円]です. 約7時間分の結果です.
このままではランダムなノイズが強く, 大きな動きを読んで取引をするのが難しいです.
このようなノイズを緩和するために経済データの処理では単純移動平均(SMA; Simple Moving Average)という指標がよく用いられます. SMAは連続した数列において「前後数個」の単純平均をとったものを指すことが多いですが, 経済データでは「現在より後」のデータが取得できないので「前数個」の単純平均を取ります.
すなわち, 連続した$k$個の時系列データ$d_. d_$に対して,

と表されます.
移動平均線は, 注目する期間(平均を取るデータの個数$k$)によって2つないし3つ描くことが多いです. これらの交点をゴールデンクロス/デッドクロスなどと分類して順張りの指標に使ったりします. 短期線が長期線を上に貫く場合は買いサインの「ゴールデンクロス」で, 下に貫く場合は売りサインの「デッドクロス」と呼びます.
ちなみに, より現在に近いデータに重みをつけた指数移動平均(EMA; Exponential Moving Average)という指標もあります.

せっかく平均を定義したので, 仮想通貨FX テクニカル分析 標準偏差も見ることにしましょう.
移動平均線に標準偏差で幅を持たせたものをボリンジャーバンド(Bollinger band)と呼びます.
注目している区間のデータに正規分布を仮定すると, 各データは95%の確率で2シグマ区間のボリンジャーバンドに収まるので, 「価格がバンドより上にはみ出していたら次は下がるだろう」といった逆張りの指標として利用できます.
式で表すと次のようになります.

2.png

ややこしい式になってしまいましたが, 要は平均に標準偏差2つ分を足し引きしているだけです.
実際のグラフを見てみましょう.

実線が移動平均線, 破線がボリンジャーバンドを表しています(線を太くするべきでした…). 赤が15分の短期, 緑が60分の長期です.
赤の短期移動平均線は黒の元データに比べてやや遅れて, そしてより滑らかに推移しています. 緑の長期移動平均線はさらに遅れてかつ滑らかに推移しています.
ボリンジャーバンドは相場が動く時に広がり, 安定しているときに縮んでいますね.

チャートをさらに作り込みたい方は, Cryptowatchというサイトが参考になります. いろいろな取引所のいろいろな仮想通貨に対応しているのでトレーディングにも使えます.

実際に取引をする

さて, いよいよ自動取引の説明に移ります.
まずはbitFlyer Lightningにアクセスして, 左のタブの「API」からAPI KeyとAPI Secretを取得してください.

*このKeyとSecretは外に漏れないように厳重に管理してください. *
うっかりGitHubなどに上げて悪意のある人に見られたら死にます.
KeyとSecretはgitignoreされた別ファイルに書くなどするのが推奨のやり方です.
また, 自動取引をやめるときはbitFlyer LightningのサイトからAPIを無効化しておきましょう.

次に, 売買の注文です. これは何度も使うので関数にまとめておきます.仮想通貨FX テクニカル分析

引数のうちamtが取引量, prcが取引価格です.
注文を受け付けられた時点の価格で売り買いするのを成行注文(market order), 自分の指定した価格になったら売り買いするのを指値注文(limit order)と言います.
10分経っても取引が行われない場合は注文をキャンセルするようにしています.
また, 注文を出したら「どれだけの量を売り買いするか」と「注文が受け付けられたか」をprintで出力しています.
あと, 各関数のはじめに100,000,000を掛けたり割ったりしているのは, 注文の最小単位が1 satoshi (=1/100,000,000 BTC)だからです. 僕ははじめ, これより小さい単位での注文を送っていたため全く取引が成立しないという問題で数日間悩んでいました.

各通貨の保有額, 使用可能額, 通貨コードが配列として返ってきます.

今回はJPYとBTCの取引なので, このうち0番目と1番目の要素を使います.
例えばJPYの使用可能金額はこうやって取り出します.

3.png

さて, 肝心のアルゴリズムですが, 簡単に「上がり始めたら買う, 下がり始めたら売る」という後追いの方針でいきたいと思います.
BTCが上がっているときはBTCで, 下がっているときはJPYで, どちらか判断しにくいときは半々で持つというイメージです.
売り買いの量はそのときの資産と移動平均の傾き(変化率)から計算することにしましょう.
横軸の変化率が0に近いときは売り買いをしない(手数料がかかるので)で, ある閾値$th_1$を超えたら変化率に応じて売り買いをします. 変化率の絶対値が大きいときは取引額の割合(縦軸)を増やします. ある閾値$th_2$を超えたら全額を動かします.

グラフのような特性を実現する関数がこちらです. $th_2=1/800, th_1=0.7th_2$としています.

指値は少し待てば成行よりもいい条件で取引できることが多いので, ここでは指値取引だけを使いました.
なお, bitFlyer FXだと執筆時点で手数料無料ですが, 強制ロスカットなど不測の事態が起こるので今回の自動取引では扱いませんでした.

所感と今後の展望

お察しの通り, このアルゴリズムが成功するかどうかは閾値の$th_1$と$th_2$に懸かっています.
僕は10秒ごとの実行にして, なんどもシミュレーションをした上で最適な閾値を決めました.
そしてドキドキしながらプログラムを実行し, コンピュータを家に置いて外出したのですが, 損こそしなかったものの期待したほどの利益が出ませんでした.
この最適閾値はそのときの値動きのパターンに依存するので, 一定の値でやってもうまくいきません.
パフォーマンスからフィードバックを与えて閾値を動的に変更するような仕組みにすればもっとうまくいく気がします.
ARMAモデルなども試してみたかったのですが時間がありませんでした.
シミュレーションをしたい方は, Poloniexというアメリカの取引所のAPIを使うと過去のデータを取得することができます.

あと, pybitflyerはエラー処理が未完成なので, しばしば通信エラーなどでプログラムが止まってしまいます.
取引所のサーバが落ちることもありますし, 本気で儲けを出すためにはこの辺りのフォローもしっかりしておく必要があります.

最後に身もふたもない話をすると, ビットコインで取引をするよりも, 将来性の高いアルトコイン(XRPとか)を青田買いして長期保有する方が簡単に儲けが出せると思います.
僕はそれに気づいてデイトレードはやめてしまいました…. でもこの勉強は, いつか株を始めるときなどにきっと役立つはずです.
アルトコインを買う場合は上述のPoloniexがおすすめです. 基軸通貨のBTCをどこかで手に入れる必要があるのが難点ですが, とにかく取扱通貨が豊富です.
日本で人気のcoincheckは, スプレッドでがっつり持っていかれるのでおすすめできません.

仮想通貨豆知識

・ビットコインの最小単位は1億分の1で, これをsatoshiと呼びます. つまり, 1億 satoshiで1 BTCです. SI単位系では10の3乗ごとに一区切りなので普通は10億か100万にするところを, あえて1億にしているのには何かこだわりを感じますね.

・ビットコインのブロックチェーンの最初のブロック(ジェネシスブロック)には"The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"と(ハッシュ値で)書かれています. これはリーマンショック後に掲載されたタイムズ紙の見出しで, ジェネシスブロックが2009年1月3日以降に作られたものであることを証明するとともに, 既存の金融システムの脆弱性をナカモトが皮肉ったものと考えられています.

・ビットコインが初めて実際の商品の購入に使用されたのは2010年5月22日です. アメリカで初期からのビットコインファンであるLaszlo Hanyeczがピザ2枚を10,000 BTCで購入しました. これは現在のレートで計算すると約200億円. 歴史上最も高価なピザと言えますね. それ以来, 5月22日はビットコイナーの間でBitcoin Pizza Dayとして毎年お祝いされているそうです.

・本記事の執筆時点(2017年12月17日)で世界には1300以上の仮想通貨がありますが, 中には野獣先輩を模したYAJU, スーパーマンを模したSUPERMAN, 猫を模したNYANといったネタコインもあります. ちなみにYAJUはアゼルバイジャンのエンジニアが開発したそうです.

LIGHT FX「ヒートマップ」の使い方は?テクニカル分析との組み合わせも解説

マップと通貨ペアランキング

LIGHT FXのヒートマップは世界中のニュースやSNSのテキストをもとにしています。テクニカルではなく、ファンダメンタルズの観点や影響度合いも含めて通貨強弱を視覚的に確認してトレード判断に活かすことができるツールとなっています。

出典:「「ヒートマップ」導入のお知らせ」

2-2.ヒートマップを使って通貨ペアを選ぶ

3.LIGHT FXでのテクニカルツールの使い方

3-1.Trading View

Trading ViewはLIGHT FXで提供されているツールです。世界で約1500万人が利用しているテクニカル分析用ツールです。

Trading Viewは単体でも利用することが可能です。LIGHT FXのように導入しているFX会社で口座開設を行えば無料である程度の機能を利用できます。

3-2.テクニカル分析との組み合わせ

ドル円の日足チャート

Trading Viewではテクニカル指標が豊富に提供されています。FX初心者におすすめな方法はシンプルな移動平均線とフィボナッチリトレースメントの組み合わせです。下記のチャートをご覧ください。

※図はTradingViewより筆者作成

ここではLIGHT FXのヒートマップの使い方とLIGHT FXが提供しているTrading Viewで可能なテクニカル指標の組み合わせについて解説しました。テクニカル指標の組み合わせは千差万別であるため、慣れてきたらTrading Veiwを駆使して自分なりのトレーディング戦略を考えてみるといいでしょう。

学生時代にFX、先物、オプショントレーディングを経験し、FXをメインに4年間投資に没頭。その後は金融業界のマーケット部門業務を目指し、2年間で証券アナリスト資格を取得。あおぞら銀行では、MBS(Morgage Backed Securites)投資業務及び外貨のマネーマネジメント業務に従事。さらに、三菱UFJモルガンスタンレー証券へ転職し、外国為替のスポット、フォワードトレーディング及び、クレジットトレーディングに従事。金融業界に精通して幅広い知識を持つ。証券アナリスト資格保有 。Twitter : @sweetstrader3 / Instagram : @fukuokasho12

AI「scikit-learn」によるFXテクニカル分析をやってみた

19_01.png

[今回の目標]・・ブロック図を参照
MT4(MQL4)側に渡す価値がある「テクニカル分析結果」をAI側で抽出することです。
正直、テクニカル分析機能はMT4(MQL4)のもので充分と思ってはいるのですが、
試してみたところ結構面白い結果が得られました、トライは無駄にはならなかったと思います。
(AIプログラムはPythonで記述しています)

19_02.png

[第1部]と[第2部]での解説内容;
まず、今回筆者が採用した「FXのテクニカル分析にAIを適用する手順」は下記になります。

※筆者はPython開発環境にSpyderを使っています。

(1)[第1部]は、
最後のステージの実例です
・為替(FX)チャートから生成済みのDataFrame(特徴量とラベル)と
Pythonプログラムを使って機械学習・予測を実施した例を解説。

(2)[第2部]では、
一番初めのステージからDataFrameを作成するまでを実例で解説します
・[第1部](別稿)で使用したDataFrame(特徴量とラベル)の生成方法を詳細に解説。

19_03.png

<使用インディケータ(例)>・・[第2部]掲載

特徴量の抽出に使用するインディケータは、筆者オリジナル(松葉型フィルター)とありふれた
ボリンジャー・バンドです。

19_04.png

<生成DataFrame>・・[第1部]掲載
実例のDataFrameは、1049行まであります。
・列要素が特徴量とラベル、・行要素がFXチャートから抽出した「データ」です

<予測結果>・・[第1部]掲載、「2例」あります
下図は記載内容から切り取った画像です(Spyderの出力)
例1;

例2;

[勝敗判定方法]
※勝敗判定は、MT4のEAを作成する場合と同一の考え方を採用しています。
つまり、profit(利確レベル)、loss(損失レベル)、spreadを指定して「買い、あるいは売り」
からマーケットに入ったときの勝敗判定結果を学習しテスト・データに対して予測を行います。
なお、ランダム・フォレストによる「分類」で勝敗「学習と予測」を行っています。

※記載内容を実行するために必要な開発環境(全て無償で入手可能)は[第1部]に記載してあります。
但し初心者の方に必要なPython、scikit-learnやMT4の入手方法、技術的な解説はしていません。
初心者の方に必要な知識の若干は、筆者のWEBサイト(下記)で参照可能です。
・・記載内容の理解に必要な知識は、全てこのQiitaなどWEB上から入手可能なものばかりです。

4.印象に残った途中経緯

19_07.png

※当初、アルゴリズムに「SVC(SVM)」を使ったのですが、その結果(初期に実施した例)は
下記の状況でした。

◆なんと、予測結果が全て「-1」になると言う現象が発生し、いくら色々試しても
改善出来ませんでした。(「-1」と言うのは、予測結果が「損切り」の場合です)
が、しかし、全体の正解率は「138/210」(66%)となる訳で、理解に苦しみました。

原因は、SVC(SVM) では特に「不均衡データ」を扱う場合、つまりクラス間でデータ数が
大きく偏るような対象を扱う場合には、色々と事前の調整が必須であることを知りました。
(スケーリング、正規化など、ヤヤコシイ調整が必要)
結局、分類アルゴリズムを「ランダム・フォレスト」に変更して、この厄介な問題を
回避した結果、かなり納得がいく結果が得られました。

5.「PDF版ドキュメントと実行用データ一式」入手先

◎PythonとMT4の連携方法について
※更新中のサイトです、基礎的な内容もアップしてあります。
[アメンボの新ページ];http://mql4.s1002.xrea.com/ai_mql4/index.html

◎MT4(MQL4)、EAについて
※若干古くなりましたが、未だ一読の価値があると思います。
MT4やMQL4の基礎をアップしています、だたし「Build_600」以前(と言うか未満)の
MQL4コード(スクリプト)は、現在は動かすためには、かなり修正が必要なことに、
ご注意ください。
[アメンボのページ];http://www.green.dti.ne.jp/sdimension/mql/

以 上

  1. We will deliver articles that match you

By following users and tags, you can catch up information on technical 仮想通貨FX テクニカル分析 fields that you are 仮想通貨FX テクニカル分析 interested in as a whole

仮想通貨FX テクニカル分析

海外FXの税金について

海外FXの取引方法「ECN」と「STP」とは?

ビットコインって何?ビットコインとFXとの違い

FX初心者だった私が大損してしまったときの心の動きを詳しく分析

私がまだFX初心者だったある日、軽い気持ちでドル円のロングポジションを持ちました。 軽い気持ちというのがすでに間違っているのですが、このときの私は近い将来に訪れることになる大損など、一切予想できていなかったのです。 そん… 続きを読む »

GMOクリック証券の魅力

世界でも最大規模の取引量を誇るFX会社であるGMOクリック証券 FX取引において世界で取引量ナンバー1と言われている企業は実は日本にあります。それが今回紹介する「GMOクリック証券」になります。 GMOクリック証券に関し… 続きを読む »

FX口座開設キャンペーンに応募する時の主な3つの注意点

チャート形状予測ツールが利用できるFX会社

FX初心者が気をつける3つのポイント

FXには気をつけるべきポイントがいくつもありますが、 その中でFX初心者が特に気をつけるべきところを3つご紹介します。 安易に逆張りをしない FXをやっていると、チャートがどんどん円高に(あるいは円安に)なっていく一方的… 続きを読む »

仮想通貨のショートとは?下落相場で儲ける空売りのコツを徹底解説

仮想通貨のショートとは?下落相場で儲ける空売りのコツを徹底解説

サトシくん XXX(表情名入力)

サトシくん

カネット XXX(表情名入力)

カネット

サトシくん XXX(表情名入力)

サトシくん

カネット XXX(表情名入力)

カネット

仮想通貨のショート・ロングとは?

仮想通貨投資で ロングといえば「買い」、ショートといえば「売り」 を意味しています。これは、もともとFXなどで用いられている用語で、価格の上昇はゆっくり(ロング)で、下降は速い(ショート)とされているのが由来です。

今回説明するのは、ショートの中でもいわゆる 「空売り」 と呼ばれるもので、一般的な取引では利益につながりにくい下降局面でも利益を狙えるものだとされています。

ショートは下降トレンドでも利益を狙える

ザイフチャート

ショートは損失がどこまでも広がる可能性がある

そんなショートにも、大きなデメリットが存在しています。それは、ロングが損失に上限があるのに対し、 ショートは損失がどこまでも広がる可能性がある ことです。

モナちゃん XXX(表情名入力)

モナちゃん

カネット XXX(表情名入力)

カネット

サトシくん XXX(表情名入力)

サトシくん

カネット XXX(表情名入力)

カネット

ショート・空売りは仮想通貨FXで可能

仮想通貨FXは現物の通貨がやり取りされない

一般的な仮想通貨取引では、手元の円などで仮想通貨を買い、価格が上がって目標となる利益が出た段階で売ります。仮想通貨の現物を売買しているわけで、これを 仮想通貨FX テクニカル分析 現物取引 といいます。

これに対して仮想通貨FXでやり取りされているのは、 仮想通貨の現物ではありません。 現物がない状態であっても、売買を行った場合の差額が利益となる仕組みなのです。

レバレッジをかけて大きな取引ができる

覚えておくべき仮想通貨FXのルール

仮想通貨FXには 手数料、ロスカット、追加証拠金 など、覚えておく必要があるルールがあります。それぞれのルールについて説明します。

仮想通貨FXの場合、仮想通貨の現物をやり取りするわけではないので、売買の約束はしているけれど決済は行っていないというものが生じることがあります。これを 建玉(たてぎょく) といいます。

ロスカット

追加証拠金

サトシくん XXX(表情名入力)

サトシくん

カネット XXX(表情名入力)

カネット

関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次
閉じる