Yodaka

yodaka(よだか)です。2021年から仮想通貨を触っています。Bot開発もしています。

Bot

2023/11/18

仮想通貨botの開発を本格的に始めてみる#25(2023/11/1)「価格取得とローソク足生成の実験」

前回の記事に引き続き、仮想通貨botの開発状況をまとめていきます。 今回は、ヒストリカルデータに対応したバックテスト用コードをChatGPTに書かせてみました。 なかなかうまくいかないものですが、開発途中のコードを備忘録として残しておきます。 価格取得用のコード 実際に稼働させつつ、過去データを蓄積するコード。 ビットフライヤーFXのAPIを利用して、1分足・5分足・15分足・1時間足でそれぞれローソク足データを蓄積するためのコードです。 import requests import json from ...

Bot

2023/11/18

仮想通貨botの開発を本格的に始めてみる#24(2023/10/28)「ドンチャンブレイクアウトのバックテスト&視覚化」

前回の記事に引き続き、今回も仮想通貨botの開発状況をまとめていきます。 バックテストのコードを修正する 以下のコードは、ビットフライヤーFXでのドンチャンブレイクアウトの検証用コードです。 ChatGPTに指示を出して、コードの修正をしました。 出した指示は「ビットフライヤーのAPI」である「https://api.bitflyer.com/v1/getexecutions?product_code=FX_BTC_JPY&count=500を指定すること」と「文字列形式の日時をパースしてUNIX ...

Bot

2023/11/18

仮想通貨botの開発を本格的に始めてみる#23(2023/10/25)「ローソク足データを取得する」

前回の内容に引き続き、今回も仮想通貨botの開発状況をまとめていきます。 今回のテーマは「過去の価格データを蓄積する」こと。 参考にしたのはこちらの記事です。 下準備 #20の記事で直面していた「価格データの読み込み」問題は解決しました。 メイン処理を二つ並行して行なっていたことが原因だったようです。 ファイルから読み込む処理だけを稼働させる状態にしてコードを実行したところ、過去データからの取得を元にしてコンソールに情報を表示させることができました。 なぜ、過去のデータの蓄積が必要なのか botを最低限の ...

Bot

2023/10/3

仮想通貨botの開発を本格的に始めてみる#22(2023/10/1)

前回の内容に引き続き、今回も仮想通貨botの開発状況をまとめていきます。 今回はこちらの記事を参考にして、「ドンチャン・チャネル・ブレイクアウトのバックテスト検証」を行いました。 宿題:平均保有期間の追記 こちらの記事を参考にして「平均保有期間」も算出できるようにコードを書き換えました。 flag変数に買いと売りの保有期間を示す変数を追加しました。 その変数を集計用の関数とコンソール出力用の関数にそれぞれ組み込んで完成です。 ドンチャン・チャネル・ブレイクアウトとは ブレイクアウトとは、過去の一定期間にお ...

Bot

2023/9/28

仮想通貨botの開発を本格的に始めてみる#21(2023/9/28)

前回の内容に引き続き、今回も仮想通貨botの開発状況をまとめていきます。 今回はこちらの記事を参考に「バックテストでbotの勝率・平均リターン・総利益を算出する」ことがテーマです。 今回使用するコードは大変長いため、つまずいた部分や深掘りした部分のみ取り上げています。 バックテストとは バックテストとは「過去のデータを使って検証を行うこと」です。 今回はCryptowatchの過去データを使って、三兵の売買ロジックの検証をします。 コードの一部を書き換えて出力される結果を確認するという流れになります。 出 ...

Bot

2023/9/24

仮想通貨botの開発を本格的に始めてみる#20(2023/9/23)

前回の内容に引き続き、今回も仮想通貨botの開発状況をまとめていきます。 今回から「バックテストで勝率の検証をする」ことをテーマに学習を進めていきます。 参考にしたのはこちらの記事です。 勝率とは 勝率を考える上で重要な指標は「トレードの回数を増やすことができるか」「勝ち負けの差し引きで期待値を算出する」「1回のトレードで使った金額に対して平均して何%のリターンを得られるか」「トレードの結果、軍資金が何倍になったか」「最大でどれくらいまで軍資金を減らしたか」の5つです。 bot運用において、少なくともこれ ...

Bot

2023/9/24

仮想通貨botの開発を本格的に始めてみる#19(2023/9/23)

前回の内容に引き続き、今回も仮想通貨botの開発状況をまとめていきます。 今回はこちらの記事を参考にして「売買の状況をLINEに通知させる」をテーマに学習を進めていきます。 下準備 ここからはLINEのアカウントを持っていることを前提に作業を進めていきます。 まずは、LINE Notifyのサイトへアクセスしてログイン。 続いて、アクセストークンを発行します。 マイページ > トークンを発行する > トークン名、トークルームを設定 > 発行するを選択。 ここで表示されるランダムな文字列が ...

Bot

2023/9/23

仮想通貨botの開発を本格的に始めてみる#18(2023/9/22)

前回の記事に引き続き、今回も仮想通貨botの開発状況をまとめていきます。 今回は、こちらの記事を参考にして「botの稼働状況を監視する」をテーマに学習を進めていきます。 やることは「ログをファイルに書き出す」「そのファイルをメールで送る」です。 下準備 まずは、前回設定した外部サーバーにccxtライブラリをインポートします。 参考にしたのは、こちらの記事です。 この作業は特に問題なくサクサク進みました。 すでに作成していた三兵のコードも問題なく稼働しています。 指し値注文から約定までも正常に稼働しています ...

Bot

2023/9/20

仮想通貨botの開発を本格的に始めてみる#17(2023/9/19)

前回の記事に引き続き、今回も仮想通貨botの開発状況をまとめていきます。 前回までの内容で「仮想通貨botの試作品を実行する」ところまで進めてきました。 今回はこちらの記事を参考に「レンタルサーバーを利用して24時間稼働するbot環境を整える」をテーマに学習を進めていきます。 また、私はMacを使用しているため、同じような条件の下で環境構築を解説しているこちらの記事も参考にしました。 VPSとは VPSとはVirtual Private Server(バーチャルプライベートサーバー)の略語で、翻訳すると「 ...

Bot

2023/9/18

仮想通貨botの開発を本格的に始めてみる#16(2023/9/18)

前回の記事に引き続き、今回も仮想通貨botの開発状況をまとめていきます。 前回までの学習で「bitFlyerで三兵のシグナルを検証して自動売買を行うbot」を完成させることができました。 今回は、サーバーエラー対策のコードを組み込んで、安定して稼働するbotに仕上げていきます。 参考にしたのはこちらの記事です。 例外処理 今回の目的は「bitFlyerでサーバーエラーが発生した時の対処法をコードに組み込む」ことです。 エラーが出てしまうと、botは止まってしまいます。 そこで、想定されるエラー(=例外)を ...