仮想通貨×想い

仮想通貨、プログラミングのこと、最近気になることなど。。。

仮想通貨の自動売買システム「MACD BOT R1.00」が完成。Vectorにて公開中

 Vectorさんから公開させていただきました。サンプル版でご確認いただき、気に入りましたらぜひご利用くださいね。

 当サイトにて、利用上のコツ、ポイントなどを紹介していきます。

www.vector.co.jp

  本システムはシェアウェアです。

f:id:cocomoc:20180724205315j:plain

1概要

 本システムは、仮想通貨取引所・販売所ZaifAPIを活用し、テクニカル分析指標MACD(macd,signal)を独自に計算し、ゴールデンクロス又はデッドクロスが発生したときに、予め入力した条件で自動売買を繰り返すBOTです。

 仮想通貨取引所・販売所Zaifに、自分の口座を持ち、日本円の入金又は仮想通貨を購入してあることが、このシステムを利用するための前提条件となりますのでご注意ください。

 自動売買は、買い(bid)又は売り(ask)のどちらかをベースに行います。bidの場合は日本円の残金があること、askの場合は該当する仮想通貨を所持していることが必要です。なお、日本円や仮想通貨を所持していない場合は、注文失敗(success=0)となります。

 各注文にはリミット注文を付け、売戻し又は買戻しを行うようにしていますので、一つの注文で利益を狙うことができます。既に注文が入っている場合は、追加の注文は行いません。

 本システムは、注文情報の取得や売買注文の際に、利用時に入力されたAPIキー(key、secret)をzaif公式サイトへ送付しますので予めご了承ください(API:get_info2、trade)。

 なお、APIキー(key、secret)は、他人に漏れないよう注意してください。また、自分のパソコン以外からの不正アクセスを防止するため、必ずIPアドレス制限を付けるようにしてください。

2仕組み

(1)MACDについて

 MACDとは、Moving Average Convergence Divergence(移動平均収束拡散法)の略で、株価などのトレンドを見るためのテクニカル分析指標の1つです。期間の異なる2つの移動平均の差(短期-長期)を示すmacd線と、macd線の移動平均を示すsignal線から構成されます。

(2)ゴールデンクロスデッドクロスについて

 macd線がsignal線を下から上に交差するポイントをゴールデンクロスと言い、相場が下降トレンドから上昇トレンドに推移する時を表します。特にゼロラインより下(マイナス圏)でのクロスを捉えることが大切です。また、macd線がsignal線を上から下に交差するポイントをデッドクロスと言い、相場が上昇トレンドから下降トレンドに推移する時を表します。特にゼロラインより上(プラス圏)でのクロスを捉えることが大切です。

(3)買い(bid)で利益を狙う(6(4):BUY-sell)

 買い注文(リミット売り)を選んだ場合は、マイナス圏でゴールデンクロスが発生し、その時のmacdが条件値(6(5):MACD VALUE)を下回る場合に、リミット付きで注文を行います。買値はその時の終値より少し安く設定し(6(7))、売値は少し高く設定し(6(8))、売値と買値の差で利益を狙います。買値が安すぎたり、売値が高すぎたりすると売買が成立しづらくなるため、注意が必要です。なお、口座に日本円を所持している必要があります。

(4)売り(ask)で利益を狙う(6(4):SELL-buy)

 売り注文(リミット買い)を選んだ場合は、プラス圏でデッドクロスが発生し、その時のmacdが条件値(6(5):MACD VALUE)を上回る場合に、リミット付きで注文を行いま
す。買値はその時の終値より少し安く設定し(6(7))、売値は少し高く設定し(6(8))、売値と買値の差で利益を狙います。買値が安すぎたり、売値が高すぎたりすると売買が成立しづらくなるため、注意が必要です。なお、口座に該当する仮想通貨を所持している必要があります。

(5)その他

 サーバへのアクセスが集中している場合などは、終値の取得や注文等が通らないことがあります。その場合、エラー終了や注文失敗となりますので予めご容赦願います。また、自動注文された案件を取り消す場合は、直接、zaif公式サイトにログインし取り消してください。

3準備

 仮想通貨取引所・販売所Zaifの公式サイトにて次を行います。

Zaifに口座を開設する。
②日本円を入金する。又は仮想通貨を購入(所持)しておく。
APIキー(key、secret)を発行する。権限は"info"と"trade"

注1)secret keyは、他人に漏れないよう注意してください。
注2)不正アクセス防止のため、必ずIPアドレス制限を付けるようにしましょう。

4動作環境

 次の環境にて動作を確認しています。

 Windows 10 home(64bit)
 Windows 7 starter(32bit)

5実行方法

(1)インストール

 ダウンロードした圧縮ファイルを全て解凍し、適当なフォルダへ保存します。一回解凍すると、次の3つのファイルが現れます。macdbot.zipは、パスワードを入力して解凍すると、システム本体のmacdbot.exeが出現します。

 macdbot.zip(PW解凍後→ macdbot.exe)
 macdbotsmpl.exe(サンプル:売買機能なし)
 README.txt

 macdbotsmpl.exeは、売買機能のない無料サンプルです。ご購入の前には、これを使い必ず動作確認してください。

(2)アンインストール

 上記(1)で作成したフォルダごと削除します。

(3)実行方法

 コマンドプロンプトを起動し、上記を保存したフォルダへ移動して、コマンドラインからファイルを実行します。エクスプローラなどからも実行できますが、システム終了後に、終値等の推移や注文タイミングなどの経緯を調べるには、コマンドラインから起動した方が便利です。

 例えば、D:\zaif フォルダに保存した場合

 C:\>d:
 D:\>cd zaif
 D:\zaif>macdbot.exe

6 利用方法

(1)Select COIN.

 売買したいコインを選びます。
 主要通貨、トークン、COMSAの計16種類から選べます。

(2)Select TIME BAR.

 時間足(1分足又は1時間足)を選びます。
 42足(#42)から売買するための判定を始めます。
 1分足なら42分後、1時間足なら42時間後となります。

(3)Input STOP DATE.

 システムを終了させる日を入力します。
 例えば、7/1~7/4まで動かすなら、"5"を入力します。
 強制終了したい場合は、CTRL+cで止めてください。
 既に成功した注文は残りますが、注文自体も止めたい場合は、zaif公式サイトにログインし取り消してください。

(4)Select BUY-sell(bid) or SELL-buy(ask).

 自動売買のベースとなる注文種類(bid又はask)を選びます。
 各注文には必ずリミットが付くので、買い注文(リミット売り)なら"BUY-sell(bid)"、売り注文(リミット買い)なら"SELL-buy(ask)" を選びます。

(5)Input the MACD VALUE for trade timing.

 ゴールデンクロス又はデッドクロスに加え、注文判定に使うMACDの値を入力します。クロスが発生した際、このMACD値(絶対値)を超えていれば注文を行います。買い注文(bid)ならマイナス値、売り注文(ask)ならプラス値を入力します。この値(絶対値)が大きいほど信頼性は高くなりますが、売買のタイミングは少なくなります。

 実際に入力すべき値は、通貨やその時の取引量などにより異なるため、Zaif公式サイトのチャートで、過去のゴールデンクロス又はデッドクロスの際のMACD値を参考にしてください。

(6)Input sell and buy AMOUNT.

 売買する仮想通貨の数量(単位×n)を入力します。
 入力できる単位は、通貨により異なります。次の「通貨ごとの数量入力単位」を参考にしてください。なお、この単位を間違えると、注文失敗(success=0)となるので注意してください。

 通貨ごとの数量入力単位(item_unit_step)
 btc :0.0001
 xem :0.1
 mona :1.0
 bch :0.0001
 eth :0.0001
 zaif :0.1
 xcp :0.1
 bitcrystals:0.1
 sjcx :0.1
 fscc :0.0001
 pepecash:0.0001
 cicc :0.0001
 ncxc :0.0001
 jpyz :0.0001
 cms.eth :0.0001
 cms.xem :0.0001

 詳しくは、Zaif公式サイトで確認することができます。
 現物公開API/個別情報/currency_pairs
 https://api.zaif.jp/api/1/currency_pairs/btc_jpy (btc)

(7)Input minus money for buy price.(0>)

 買値を決めるための割引額(-単位×n)を入力します。
 買値=終値+割引額 なので、マイナス額を入力してください。入力できる単位は、通貨により異なります。(8)の「通貨ごとの日本円入力単位」を参考にしてください。なお、この単位を間違えると、注文失敗(success=0)となるので注意してください。

(8)Input plus money for sell price.(0=<)

 売値を決めるための割増額(単位×n)を入力します。
 売値=終値+割増額 なので、プラス額を入力してください。入力できる単位は、通貨により異なります。次の「通貨ごとの日本円入力単位」を参考にしてください。なお、この単位を間違えると、注文失敗(success=0)となるので注意してください。

 通貨ごとの日本円入力単位(aux_unit_step)
 btc :5円
 xem :0.0001円
 mona :0.1円
 bch :5円
 eth :5円
 zaif :0.0001円
 xcp :0.0001円
 bitcrystals:0.0001円
 sjcx :0.0001円
 fscc :0.0001円
 pepecash:0.0001円
 cicc :0.0001円
 ncxc :0.0001円
 jpyz :0.0001円
 cms.eth :0.01円
 cms.xem :0.01円

 詳しくは、Zaif公式サイトで確認することができます。
 現物公開API/個別情報/currency_pairs
 https://api.zaif.jp/api/1/currency_pairs/btc_jpy (btc)

(9)Input YOUR KEY and SECRET KEY.

 APIキー(YOUR KEYとSECRET KEY)を間違えないように入力します。繰り返しとなりますが、secret keyは、他人に漏れないよう注意してください。なお、これを間違えると途中でエラー終了となります。

7画面表示

(1)時間足ごとの表示

=========================================
# 1 / btc / StopDate= 31 / Action= bid / Macd= -400
Amount= 0.01 / BuyMinus= -20000 / SellPlus= 30000
-------------------------------------------------
2018-07-09 20:35:00 / LastPrice= 741390
Macd 59142.223 - Signal 11828.444 = 47313.777

# 1 ----------------------------- 通番
btc ----------------------------- 売買対象の仮想通貨
StopDate= 31 -------------- システムを終了させる日
Action= bid ------------------ 基本とする売買(bid:買い)
Macd= -400 ----------------- 注文判定のためのMACD
Amount= 0.01 -------------- 仮想通貨の売買数量
BuyMinus= -20000 -------- 買値を決めるための割引額
SellPlus= 30000 ----------- 売値を決めるための割増額
2018-07-09 20:35:00 ----- 終値の取得時間
LastPrice= 741390 -------- 終値
Macd 59142.223 ----------- 現在のMACD
Signal 11828.444 ---------- 現在のSignal値
= 47313.777 ---------------- MacdとSgnalの差

(2)注文時の表示

*******************************
Checking your active order.
[get_info2] success -> 1
Active order= 0
*******************************

////////////// BUY-sell BUY-sell BUY-sell //////////////
////////////// BUY-sell BUY-sell BUY-sell //////////////

# 1 [trade] success -> 1
BuyPrice= 721390 / SellPrice(limit)= 771390

////////////// BUY-sell BUY-sell BUY-sell //////////////
////////////// BUY-sell BUY-sell BUY-sell //////////////

[get_info2] success -> 1 -------- API[get_info2]で取得成功
Active order= 0 ------------------ アクティブ注文無し
# 1 [trade] success -> 1 -------- API[trade]で注文成功
BuyPrice= 721390 ------------- 買値
SellPrice(limit)= 771390 ------ リミット売値

8謝辞等

 このシステムをご利用いただき、誠にありがとうございます。本格的にご利用いただける場合は、ご送金いただければ幸いです。このシステムのバージョンアップ(GUI化、Android版など)に振り向けていきたいと思います。また、このシステムを開発するに当たり、分かり易いAPIと丁寧な解説を提供してくださったZaif関係者の皆様に深く感謝申し上げますとともに、御社の益々のご発展を心よりお祈り申し上げます。

 最後になりますが、仮想通貨の益々の発展と、このシステムを利用する皆様のご健勝を祈念し挨拶とさせていただきます。