国内取引所BitflyerのパブリックAPIを使ってみよう

前回の記事で、文系初心者の方でも、おおまかにAPIが何なのかまでは理解できたのではないかと思います。

APIというのは要するに、URLの形式で外部のサーバーにWEB経由で何らかの指示やリクエストを出すためのコマンドのようなものです。仮想通貨の自動売買BOTを作成するときは、必ず各取引所が提供しているAPIを利用します。

今回はいよいよ、Bitflyerでビットコインの自動売買をするためのAPIを使ってみましょう。

パブリックAPIを使ってみよう

ここまで一口にAPIと説明してきましたが、実はAPIには「パブリックAPI」と「プライベートAPI」の2種類があります。

パブリックAPIとは

パブリックAPIは、誰でもアカウント登録をすることなく使えるAPIです。同じURLでリクエストを送りさえすれば、誰でも同じ結果を取得できます。そのため、主に外部のサーバーからデータなどを引っ張ってくるときに使います。

例えば、以下はBitflyerの現在のマーケット状況を取得する「パブリックAPI」です。

https://api.bitflyer.jp/v1/ticker/

こちらはBitflyerの「BTC現物」の買い気配値(best_bid)、売り気配値(best_ask)、それぞれの注文サイズ(単位:BTC)、最終取引価格(LTP)、24時間の取引量などを取得するパブリックAPIです。

参考:気配値とは

単にデータを引っ張るだけのAPIなので、誰が上記のURLを閲覧しても同じ内容が表示されます。前回の記事で勉強した「ビットコインの過去の価格データを引っ張るAPI」も、典型的なパブリックAPIですね。

プライベートAPIとは

一方、プライベートAPIは、個人ごとにアカウント認証をし、秘密のパスワードを知ってるユーザーだけが送ることのできるAPIです。本当に単純なイメージとしては、URLの末尾やヘッダーに自分しか知らないパスワードを暗号化して付けて送るような感じだと思ってください。

プライベートAPIは、例えば、売り注文・買い注文を出したり、個人のアカウントに紐づけられた残高や注文状況を確認するときに使います。当然、これらのリクエストは個人によって返ってくる結果が異なりますし、他の人に勝手に送られても困ります。そのため、プライベートAPIを使います。

プライベートAPIについては、また次回以降の記事で説明します。

BitflyerのパブリックAPIをPythonで使ってみよう

上記のURLにアクセスした方は、もう既にbitFlyerのパブリックAPIを「使った」ことになります。

ですが、せっかく前回までの記事でPythonのプログラムの書き方を覚えたので、ブラウザで閲覧するのではなく、Pythonのプログラムで情報を取りに行かせてみましょう。

テキストエディタを開いて、以下のプログラムを入力してみてください。

import requests
response = requests.get("https://api.bitflyer.jp/v1/ticker/")
print(response.json())

これをまた「test.py」というファイル名で保存しましょう。
そしてAnacondaプロンプトでこれを実行してみます。

手順は覚えていますね?
以下のコマンドを実行します。

※ 手順がわからない方はこちらの記事参照。

すると以下のような感じの結果が表示されたはずです。

{'product_code': 'BTC_JPY', 'timestamp': '2018-03-11T20:54:26.257', 'tick_id': 1657905, 'best_bid': 1032928.0, 'best_ask': 1033522.0, 'best_bid_size': 0.005, 'best_ask_size': 0.046, 'total_bid_depth': 2593.67397399, 'total_ask_depth': 3282.80941985, 'ltp': 1033522.0, 'volume': 305621.56955061, 'volume_by_product': 24942.44036488}

これはさっきブラウザで見たものと全く同じですね。
同じデータをpythonでプログラムに「取ってこさせる」ことができました。

一応、ここでもプログラムの意味を確認しておきましょう。
大雑把でいいので、はじめて見たコードの意味は、調べる癖を付けることが重要です。

1)import requests
requestsというライブラリをインポートしています。
pythonで外部のURLにアクセスするときには、大抵このライブラリを最初にインポートします

2)response = requests.get(“URL”)
外部のURLにアクセスしてその結果を「response」という変数にセットしています。変数の名前は何でも構いません。略で「r」などにすることも多いです。

3)print(response.json())
さっきWEBから取得したレスポンスのJSONデータをパースして、それを黒い画面に表示しています。「JSON形式のファイルをパースして…」の意味は次の記事で説明します。

実は、上記の3行をカスタマイズするだけで、bitFlyerのほとんどのパブリックAPIが利用できます。bitFlyerには、他にも以下のようなパブリックAPIがありますので、自分でも試してみてください。

板情報を取得するAPI

https://api.bitflyer.jp/v1/board/

直近からの約定履歴を取得するAPI

https://api.bitflyer.jp/v1/executions/

取引所の稼働状況が正常かどうかを確認するAPI

https://api.bitflyer.jp/v1/gethealth/

他にどのようなAPIがあるかは、こちらのbitFlyerのAPI仕様書を読みましょう。難しそうなAPIの仕様書に対してのアレルギーも少しずつ減らしていきましょうね。

返ってきた数字の羅列データを使いこなす

さて、これであなたもbitFlyerのパブリックAPIを利用して、板情報を取得したり、ティッカー情報(売り板や買い板の気配値)などを取得するPythonプログラムが書けるようになりました! もう少しだけプログラムを勉強すれば、「10秒に1回、自動的に気配値を取得する」といったプログラムも簡単にかけます。ぐんぐん幅が広がりますね!

ただしここで少し疑問に思ったことがあるはずです。

「取得したデータがゴチャゴチャしてて読めないんだけど」
「この数字の羅列のデータをどうやって使うの?」

その通りです。

前回の記事から2記事続けてAPIを利用する方法を説明してきましたが、どのサービスのAPIを利用しても、似たような形式のデータが返ってくることに気付いたはずです。つまり、改行も空白も装飾も何もない数字とカンマとカッコ({})だけの羅列データです。

実は、このデータ形式のことを「JSON形式」といいます。人間にはひたすら読みにくいデータの羅列でしかありませんが、実はこの形式は、プログラム(機械)にとっては効率よく読みやすいデータ形式なんです。

次回の記事では、このJSON形式のデータから必要なデータだけを取り出す方法を解説します。

JSON形式のデータから自由に欲しい数字を取り出そう

「API」って何?仮想通貨の価格データをAPIで取得してみよう

さて、前回までの記事を読んだ方であれば、現在時刻を取得してAnacondaプロンプトに表示するプログラムを、Pythonで書くことができたはずです。これであなたもプログラマーです!

これは別に冗談ではありません。

前回の記事では、自分で複雑なプログラムを書けなくても、最初に「import datetime」と記述することで、賢い人たちが開発したdatetimeというプログラム集を、そのまま借りて使うことができました。基本的な考え方はこれと同じです。

仮想通貨の売買を自動化するBOTを作成するときも、基本的には、取引所が提供している「API」や、他の賢いプログラマの人たちが開発している「ライブラリ」をそのまま使います。

まずは「API」というのが何なのか、簡単に理解しておきましょう。

「API」とは何か?

「APIを叩いてJSONをパースして….」とかっていう会話を聞くと、「り、理系ってすごい….何でも出来てカッコいいなぁ…」と思ってしまいがちです。

しかしAPI自体は、別に難しいものではありません。

要するに、APIというのは外部のサーバーに対して、何らかの指示(命令)をWEB経由で送るためのコマンドのようなものだと思ってください。自分でAPIを作るのは難しいですが、外部サーバーが用意してくれているAPIを使わせて貰うのは全然難しくありません(笑)

例えば、以下はAPIの1つの例です。このURLをそのままブラウザのURL欄に入力してみてください。

https://api.cryptowat.ch/markets/bitflyer/btcjpy/ohlc?periods=86400&after=1514764800

リンクはこちら

ブラウザに打ち込むだけで構いません。
すると、以下のような画面が表示されたはずです。

はい!
これであなたも「APIを叩く」ことができました。

これは、実は、Bitflyerの2018年1月1日以降のビットコインの日足の価格データを取得するAPIです。
cryptowatchというサイトが用意してくれているAPIです。

このCryptowatchというサイトには、世界各国の取引所の多くの仮想通貨(BTC/ETH/XRP…)の価格データが蓄積されています。さらにサイト側がAPIを用意してくれているので、あなたは上記のURLを入力するだけで、cryptowatchのサーバーから、ありがたく価格データを引っ張ってくることができます。

「API」で取得したデータの中身

本質的には、APIを利用することと、WEBサイトを閲覧することは同じ行為です。どちらも外部のサーバにURLでリクエストを送って、サーバー側から情報を引っ張ってくる行為です。

ただしAPIの場合は、基本的には引っ張ってくるのは「プログラムで使うためのデータ」です。人間の目で見るためのWEBページではありません。そのため、デザイン・空白・装飾・改行といった邪魔なものはすべて取り払われています。

シンプルにデータ(数字)が決められた順番で、カンマで区切られて並んでいます。この形式の方がプログラムで扱いやすいからですね。例えば、取得されたデータの先頭部分を抜き出してみましょう。
以下のように記載されています。

{"result":{"86400":[[1514764800,1519999,1713306,1502242,1675100,20188.11,32083065000]

これは何を意味しているのでしょうか。

まず86400は「日足データ」を意味しています。
プログラムに慣れてくるとわかりますが、これは「86400秒」の意味です。つまり「1日」と同じ単位です。機械は大きな数を扱うのが得意なので、1時間・1日・1週間などと言われるよりも、3600秒・86400秒・604800秒と言われた方が、扱いやすいんですね。

その次に続く[]の中に含まれた数字を見てみましょう。
それぞれ以下になります。

1514678400 ・・・ UNIX時間で「2017/1/1 09:00:00」の意味
1519999 ・・・ この日のビットコインの始値 151万9999円
1713306 ・・・ この日のビットコインの高値 171万3306円
1502242 ・・・ この日のビットコインの安値 150万2242円
1675100 ・・・ この日のビットコインの終値 167万5100円
20188.11 ・・・ この日の出来高

なぜこれらの数字が日付とか、高値・安値とか、出来高を意味するとわかるのでしょうか? それは、CryptowatchのAPI仕様書にそう書いてあるからです(笑) 今は読まなくていいですが、以下のページをチラっと覗いてみてください。

CryptowatchのAPI仕様書

そこにこう書いてあります。

values are in this order:
[ CloseTime , OpenPrice , HighPrice , LowPrice , ClosePrice , Volume]

(訳):
数字はこの順番で並んでいます:
[ 日時 , 始値 , 高値 , 安値 , 終値 , 出来高 ]

APIは各サービスが独自に提供しているものなので、返ってきたデータが何の数字で、どの順番で並んでいるかを理解するには、そのAPIの仕様書を読む必要があります。

最初は億劫に感じるかもしれませんが、APIの意味を知りたければ、Googleで検索して出てきたブログを読むよりも、公式サービスが提供しているAPI仕様書を読んだ方がわかりやすいですし確実です。

APIを送るコマンドの仕組み

先ほどのAPIのコマンドは「Bitflyerの2018年1月1日以降の日足価格データを取得するAPIだ」と説明しました。もう1度、さっきのURLを見てみましょう。

https://api.cryptowat.ch/markets/bitflyer/btcjpy/ohlc?periods=86400&after=1514764800

URLの中に、以下のような文字列が入っていますね?

bitflyer ・・・ 取引所の名前
btcjpy ・・・ BTC/円の通貨ペア
periods=86400 ・・・ 日足
after=1514764800 ・・・ UNIX時間で「2018/01/01 09:00:00」以降

カンの良い方ならわかると思いますが、「bitflyer」の部分を「poloniex」に換えればpoloniexの価格データが見れます。

poloniexにはJPY通貨ペアはないので、USDT(デザー)建てで調べてみましょう。ついでに価格データは週足で取得して、期間は2017年1月以降にしてみましょう。

以下のようなURLになるはずです。

https://api.cryptowat.ch/markets/poloniex/btcusdt/ohlc?periods=604800&after=1483228800

※ 「bitflyer」を「poloniex」に変更、「btcjpy」を「btcusdt」に変更、「periods=86400」を「periods=604800」に変更、「after=1514764800」を「after=1483228800」に変更

APIを叩いてみると、以下のような結果が得られます。

※ なお、「2017年1月1日 午前9時0分0秒」をUNIXスタンプ(1483228800)に変換するには、以下のようなサイトを使います。

UNIXタイムスタンプ変換サイト

色々とパターンを変えてブラウザに入力してみてください。
何も表示されなければ、その価格データはサーバーに存在しないという意味です。

(練習問題)
・2015年1月のリップル(XRP)の価格をpoloniexからBTC建てで取得してみよう!

APIを使うのは難しくない

これであなたもCryptowatchのAPIを使いこなすことができました。意外と難しくなかったですよね?(笑)

ただし初対面のAPIを自力で使いこなすためには、APIの仕様書だけは読まなければなりません。すべてのAPIの意味を手取り足取り教えてくれるブログはありません。

今回のURLも、なぜこの順番(markets/取引所名/通貨ペア/ohlc?periods=ローソク足の時間軸)で記述するのかは、API仕様書を見なければわかりません。

ただし仕様書を読むといっても、長い英語のAPI仕様書を先頭から全部読みこむ必要は全くありません。何となく「やりたいこと」を書いてそうな部分にアタリを付ければいいだけです。

例えば、上記のAPI仕様書であれば、F3キーを使って「price」と単語をページ内で検索します。これはただのカンです。すると大体、何カ所かに読む場所を絞ることができます。ざっとスクロールしてみて、「High price(高値)」「Volume(出来高)」などの単語にピンと来れば、すぐに該当箇所を特定することができます。

(英語が苦手な方は、最初に右クリックで「日本語に翻訳」して「価格」でページ内検索してみてください。プログラムの仕様書などは、かなり読めるレベルで翻訳できます。)

さて、APIが何かを理解したところで、次はいよいよ取引所のAPIを利用してみましょう。

Anacondaプロンプトでデフォルトの作業フォルダ(パス)を変更する

Pythonファイルを実行するのに「Anacondaプロンプト」を利用していて、最初からPythonファイルを作成しているフォルダをデフォルトの作業ディレクトリにしたい、という場合の方法です。

Windows左下のスタートメニューの検索窓から「Anaconda prompt」を検索してください。

次に「Anaconda Prompt」を右クリックします。
「ファイルの場所を開く」をクリックしてください。
すると以下のフォルダが開くはずです。

また「Anaconda prompt」を右クリックして「プロバティ」を選択してください。

すると以下のような画面になります。
ここの「作業フォルダー」が、Anacondaプロンプトが起動したときのデフォルトの作業パスになります。ここを好きなフォルダに変更して、「適用」をクリックします。

当ブログでは、Cドライブ直下に「Pydoc」というフォルダを作ってそこで作業する、という手順で説明しているので、Pydocを作業ディレクトリに指定してみました。これで「Anacondaプロンプト」をもう1度、起動してみましょう。

このようにデフォルトが「C:\Pydoc>」になりました。
これで「cd」コマンドでディレクトリを移動しなくても、いきなり「python ファイル名」とコマンドを入力すれば、Pydocフォルダ内のpythonファイルを実行できます。

Pythonプログラムを3行だけ書いてAnacondaで実行してみよう

本ブログでは、文系初心者でも挫折しないように、いきなり自動売買(トレード)のBOTを作ってみる、というところから、プログラミングを始めます。そのため、プログラミングの基本のような教科書の説明はしません。

ただしプログラムの実行方法だけは知ってないと話にならないので、今から、前回の記事でインストールしたAnacondaを使って1つだけPythonプログラムを書いてみましょう。

まずはPythonのエディタを用意する

プログラムを書くためのエディタを用意します。
エディタは別に何でも構いません。メモ帳で書いても、ファイル形式を「.py」で保存すれば、ちゃんとPythonのファイルになります。私は起動が重いソフトが嫌いなので、sakuraエディタを使っています。

サクラエディタ

他には、Spyderという開発環境(エディタ)もあります。AnacondaでPythonをインストールした方なら、一緒にSpyderもインストールされているので、そちらを使ってもいいでしょう。(Windowsのスタートメニューで「Spyder」と検索すると出てきます)

色々比較して検討したい方は、「python mac エディタ」「python windows エディタ おすすめ」などで検索して探してみるといいでしょう。

Pythonのコードを書いてみる

ひとまず「現在の時間を表示するPythonプログラム」というのを書いて作ってみましょう。

最初に適当にUserフォルダの下などにPythonプログラムを書くためのフォルダを作ってください。ここでは、わかりやすいように「C:ドライブ」の真下に「Pydoc」というフォルダを作ってみました。

次にテキストエディタを起動して、以下のような文字を書いてみましょう。

from datetime import datetime
time = datetime.now().strftime("%Y/%m/%d %H:%M:%S")
print(time)

一応、意味だけ簡単に説明しておきます。

私と同じような文系初心者が、いきなり実践をしながらプログラミングを学ぶために大事なことは、なるべく「意味のわからないままコピー」せずに、意味を調べながら「自分の手で書き写す」ことです。

初心者のうちはプログラミングは、自分で0からコードを書くのではなく、ほとんどの場合、Googleで検索してそれっぽいコードを拾い、その内容をカスタマイズして組み合わせることになります。そのときに、意味を調べる習慣がないと、動かないときに何がおかしいのか、何を調べればいいのかわからず、そこで挫折してしまいます。

簡単にいうと、上記のコードは以下の意味です。

1)1行目で、datetimeというライブラリをインポートしている
2)2行目で、datetime.now() という命令をして、現在の時刻を取得している
3)それに .strftime(“%Y/%m/%d %H:%M:%S”)を繋げて、以下のようなかたちに整形している
(〇年/〇月/〇日 〇時:〇分:〇秒)
4)上記の整形した結果を、timeという変数に代入している
5)3行目で、print()でtimeに代入した内容を表示している

とりあえず、この流れを何となく押さえれば今はOKです。

では、このテキストファイルを適当な名前で保存してみましょう。
ここでは、test.pyという名前にします。

サクラエディタの場合は、左上の「ファイル->名前を付けて保存」で以下のように保存します。

※ 「文字コードセット」はUTF-8で保存する習慣をつけてください。当サイトのコードをそのままコピペする場合、UTF-8でないと文字化けします。

ちゃんと保存先が先ほど作ったフォルダになっているか、を確認してください。またファイル名は「test.py」ですが、このとき、ファイルの種類が「すべてのファイル」になっていることを確認してください。

Pythonを実行する

それでは、pythonファイルを実行します。

windowsの左下のスタートメニューから、「Anaconda Prompt」を検索してください。
以下のような画面です。

※ まだAnacondaをインストールしていない方は、こちらの記事を読んでください。

「Anaconda Prompt」を起動すると以下のような画面になります。

まずPythonのプログラムを実行するためには、Pythonのプログラムファイル(先ほど作った「test.py」)のある場所を、このAnacondaプロンプトに指定してあげなければなりません。

デフォルトではパスが、Anacondaをインストールした「C:\Users\ユーザー名」になっていますが、Pythonファイルは、C:ドライブの下のPydocフォルダにあるので、そこに移動しましょう。

以下のようなコマンドを打って「Enter」を押します。

cd ../../

「cd」とはチェンジディレクトリの意味で、現在のディレクトリを移動するというコマンドです。
../は、1つ上のディレクトリに移動することを意味します。
ここでは、Cドライブまで遡りたいので、2つ上(../../)に移動します。

これでCドライブの下に移動できました。

ついでに同じ要領で、先ほど作った「Pydoc」というフォルダに移動しておきましょう。
以下のコマンドを打ちます。

cd Pydoc

これで、現在のディレクトリを「Pydoc」フォルダに設定することができました。
これでフォルダ内にあるPythonファイルを実行できる状態になりました。

Pythonファイルを実行するコマンド

Pythonファイルを実行するには、以下のコマンドを入力します。

python test.py

要するに、(Pythonファイルのあるディレクトリに移動した上で)、「python ファイル名」と入力することで、pythonプログラムを実行します。これは今後、何度も何度も使うことになるコマンドなので、ここまでの手順は覚えてしまいましょう。

このコマンドでEnterを押して、以下のように現在時刻が表示されれば、成功です。

私の場合は、今回、Cディレクトリの下に「Pydoc」フォルダを作りましたが、どこに作成しても手順は同じです。「cd」コマンドでフォルダを移動してから、「python ファイル名」コマンドで実行します。

なお毎回、Anacondaプロンプトを起動するたびに、ディレクトリを移動するのが面倒だという場合は、こちらの記事を参考にしてデフォルト(初期)の作業フォルダをPydocに変更することができます。

プロンプトの画面の消し方

ここでもう1つだけセットで覚えてしまって欲しいことがあります。
それが、画面をクリアするコマンド(「cls」)です。

Anacondaプロンプトでは、コマンドの入力とその結果がどんどん画面に蓄積されていきます。また、以下のように入力コマンドを間違えたりすると、「Anacondaプロンプト」に長々とエラー文が表示されます。

これを消したいときは、「cls」というコマンドを入力してください。
最初のまっさらな画面に戻ります。

まとめ

ここまで学ぶことができれば、あなたはPythonプログラムを自分で書いて作り、実際に動かすことができるようになりました。実はこれで、Bitflyerなどの仮想通貨取引所に、自動で買いや売りの注文を出すために必要なことは、ほとんどすべて習得したといっても、過言ではありません。

あなたは「現在時刻を表示する」というプログラムを書くために、ものすごく複雑で長いコードを自分で書く必要はありませんでした。あらかじめ用意されている、datetimeというライブラリにそのような命令(関数)が用意されているので、それをインポートするだけで、現在時刻を取得できたのです。

実は、仮想通貨の自動売買BOTを作るのもほとんど同じです。
あらかじめ、賢い人たちが作ってくれたプログラムを借りるだけで、かなり多くのことができます。次の記事では、仮想通貨の自動売買BOTで、絶対に使うことになる「API」というものを学んでみましょう。

APIって何?APIを使ってみよう

Pythonというプログラミング言語を始めてみよう

プログラミングで自動売買のBOTを作成して、トレードで稼ぎたい!と思ったら、最初にしなければならないのは、パソコンでプログラミングができる環境を作ることです。

BOTを作るためのプログラミング言語はいくつかありますが、これから文系の方が始めるのであれば、絶対にPython(パイソン)という言語がおすすめです。

プログラミングで自動注文を出すにはPythonを使う

Pythonはいま一番アツいプログラミング言語です。
データ分析・統計処理・WEBスクレイピング・機械学習などをやりたいと思ったら、ほとんどの場合、まずPythonを使います。文法も簡単なので、文系でも最初に取っつきやすい言語です。

自動トレードに関していうと、Bitflyer/Zaif/Bitmexなどの取引所に注文を出したり、注文をキャンセルしたり、残高やポジションを確認するために、Pythonというプログラミング言語を使います。「プログラミングで注文を出すなんて難しそう!」と思うかもしれませんが、0から全て自分で書くわけではないので、文系でもそこまで難しくありません。

基本的には、各取引がAPI(注文を出すためのコマンドのようなもの)を提供してくれており、それを部品のように組み合わせて、どのような場合に注文を出すか、どのような場合に注文をキャンセルするか、というロジック(条件分け)をプログラムで指示するだけなので、普段からバリバリ開発している人でなくても、多分何とかなります。

さらにテクニカル指標を用いた勝率の検証もできる

またもう少し勉強する意欲があれば、過去の価格データをAPIですべて取得して、「長期移動平均線が上昇トレンドで、かつRSIという短期テクニカル指標が5を切って売られ過ぎを示しているときに、押し目買いをしたら、何%くらいの確率でそのくらい勝てたのだろう」という過去データを用いたバックテスト(勝率の検証)を、統計的に行うこともできるようになります。

私も数学が大の苦手な文系私大出身ですが、多分何とかなると思っているので一緒に頑張りましょう。

2話:Anacondaという開発環境をパソコンに入れてみよう

Anacondaという開発環境をパソコンに入れてみよう

Pythonでプログラムを書く場合には、Anacondaという便利な開発パッケージソフトがあるので、それを最初に入れてみましょう。ここではWindowsのパソコンを利用することを想定して説明します。

Anacondaについて

前話で説明したように、基本的に自動トレードのBOTを作るには、Pythonというプログラミング言語を使います。他の言語でも作れますが、Pythonが一番文系でも取っつきやすく簡単です。

Pythonを利用するためには、まずパソコンにPythonをインストールする必要がります。ですが、ここではPython単体ではなく、Pythonが含まれた総合的な開発パッケージの「Anaconda」をインストールしましょう。Python本体だけでなく、データ分析のためのソフトなども一括でインストールできます。

Pythonを勉強するときには、初心者向けの入門本や教科書を読んでも、まず最初にAnacondaをインストールするように薦められることが多いです。

Anacondaのインストール方法

まずこちらのページにアクセスしてください。

パソコン環境は、(Windows/macOS/Linux)から選択できます。
文系の私はWindowsしか使ったことがないので、Windowsを選びます。

バージョンには、2.nと3.nの2つのバージョンがあります。
(執筆時点では、Python 3.6 versionとPython 2.7 version)
特に理由がない限り、3で始まる方を選んでください。

そして自身のパソコンが32bitか64bitか確認して、exeファイルをダウンロードします。結構、サイズが大きいので少し時間がかかります。腹筋をしながら待ちましょう。

セットアップ

ダウンロードしたexeファイルを起動して実行します。

すると以下の画面が立ち上がります。

特に難しいところはないはずなので、そのままガイドに従ってインストールを進めていきます。

「I agree」を選択。

「Just Me」を選択。

インストール先を聞かれます。
通常、windowsであれば、「C:\Users\ユーザー名\Anaconda3」にデフォルトでインストールされます。そのままの設定で問題ありません。

次が少しだけ重要です。

「Add Anaconda to my PATH environment variable」(環境変数のPATHに登録するか?)
「Register Anaconda as my default Python3.6」(PythonのデフォルトにAcacondaを設定するか?)
の2点を聞かれます。

これは両方にチェックを入れてください。

前者は「Not recommended(推奨されない)」と説明文に書かれていますが、チェックを入れてしまって構いません。ここで聞かれているのは、「環境パスを通す」という、プログラミング環境を最初に構築するときに最初にやらなければならない手続きを、自動でやるかどうかです。

チェックを入れずに後で自分で設定することもできますが、あまりパソコンに詳しくない初心者が自分でやろうとすると、最初に躓きがちな壁になるので、チェックを入れて自動でやって貰いましょう(笑)

一応、自動で設定するデメリットもありますが、長くなるので説明しません。不安に思う方は、「環境パスを通す」の意味を自分で調べてみてください。

最後に「Install」を押すと、インストールが実行されます。
途中で一瞬、黒いウィンドウが出ますがビックリしないでいいです。

「Completed」になれば完了です。

その後、AnacondaのパートナーであるマイクロソフトのVisualStudioをインストールしろ、という画面が出てきますが、これは「Skip」(スキップ)を押して飛ばして構いません。

無事、インストールが完了しました。