初学者のためのプログラミング学習サイト自動売買[Pythonプログラミング]機械学習の専門家がガチガチのガチでやったら仮想通貨なんとかなりませんかねえ2024年02月24日カテゴリ:プログラミングPython今回は仮想通貨の自動売買ロジックの組み立て方のチュートリアルコードを動かしてみました。「日給300万円のSS級トレーダーが明かすbotterのリアル」のチュートリアルコードを動かす方法などについてです。書籍画像チュートリアルのコードはこちらgithubのコードこちらのコードはそのままでは動かない可能性もあるのでそれ含めて動かせる様にしてみました。チュートリアル環境の構築1.Dockerを用いる方Readme通りにやるだけです。必須ライブラリをインストールしておく必要があります。機械学習のモデル構築ライブラリなおインストール方法は割愛します。インストールが自力で進める方だけ進んでください。チュートリアルの進め方ここからはチュートリアルのコードをそのまま進める形になります。チュートリアルのコードをそのまま実行してみて下さい。チュートリアルはこのような内容になっていました。1.ライブラリのインポート2.データ取得3.データ読み込み4.前処理5.目的変数の計算6.モデルの学習7.バックテストこのうち2.データ取得3.データ読み込みに関しては環境によってはうまく行えない可能性がありました。ライブラリの差異などによりうまくデータが生成されませんでした。代わりのコードを置いておきます。"2024-02-22"get_data(market,start_date,end_date)実行するとこのコードが置いてあるディレクトリ配下にdataが配置されます。チュートリアルで用いられているデータを読み込んだ変数になっているのでそのまま使用する事ができると思います。データが読み込めたかどうかは次のコードで確認してみて下さい。df[["cl"]].plot(figsize=(12,4))plt.show()前処理部分のコードの追加コードの前処理部分の最初で手数料を記入するコードがあります。チュートリアルが作成されてからだいぶ経っており手数料などが更新されていないため適宜追加してみて下さい。},]あとはチュートリアルを上から実行していけば動いていくだろうと思います。累積リターンのところで次のような画像が出ればほぼほぼ成功してると思います。一般的な機械学習では予測にどの変数が寄与したのか重要度を算出することが多いです。こちらがチュートリアルのモデルの重要度を算出するコードになります。102この意味合いとしてはchatGPTによると次の様な意味になっています。時系列データの優勢周期を表します。この特徴量はトレンドのサイクル性を捉えるために使用されます。Index)に基づいて計算されトレンドの強さを示します。価格変動の速さに応じて重みを調整しより滑らかな移動平均線を提供します。上側バンドと下側バンドは、価格の上下の範囲を示し価格の過熱やサポート/レジスタンスのレベルを示すのに使用されます。Regression(線形回帰)は価格や指標の値の線形トレンドを推定するための手法です。この特徴量は、過去のデータからの線形回帰に基づいて将来のトレンドを予測するために使用されます。フェーザーコンポーネント)はサイン波の位相成分と直交成分を表す指標です。これらの特徴量はサイクル性や位相関係を捉えるために使用されます。過買いや過売りの状態を示すのに使用されます。ベータは、株式のリスクを示す指標で市場全体(代表的な指数など)との相関関係を指します。ベータが1より大きい場合、株価の変動が市場の変動よりも大きいことを示し、逆にベータが1より小さい場合はその逆を意味します。過買いや過売りの状態を示すのに使用されます。優勢サイクル位相)は優勢サイクルの位相を表す指標です。この特徴量はトレンドの位相情報を捉えるために使用されます。過買いや過売りの状態を示すのに使用されます。おまけ自分もチュートリアルを参考に別のモデルを構築してみました。目的変数を5分後の価格に設定し学習期間は予測行の前期間step分のみ(step=30)というモデルにし1分ずつスライドして学習しては予測を行うようにしました。実測と予測値の差分のプロット実測と予測値の差分のヒストグラム実測と予測のプロット学習と予測を近いところで行っているのでズレすぎることは少ないですね。最後に予測が現在価格を上まっている条件で5分後価格と現在価格の差分の累計をプロット見事に右肩上がり予測はかなり機能している様に見えました。最後にあくまでシミュレーション上ですが予測が機能している様に見えるので売買のロジックに組み込むことも出来るかもしれません。簡易なロジックとしては5分後価格予測が現在価格を上まっていたら買い5分後に売る5分後価格予測が現在価格を下まっていたら売り5分後に買うというような感じですね。仮の予測モデルは出来ているのであとは売買ロジック周りを構築すれば仮想通貨の自動売買botが出来上がります。その辺りも、もう少し進めていけたらと思っています。今回は仮想通貨の自動売買bot本のチュートリアルを動かしてみたでした。1時間で学べるPythonプログラミング[Pythonプログラミング]馬鹿でかい円周率を求めるアルゴリズム[Pythonプログラミング]モンティ・ホール問題のシミュレーション[Pythonプログラミング]人工衛星がどんだけ時間ズレるかプログラミングの力で求めてみようコーディングに迷った際に役に立ちWEB検索する時間を無くして作業時間を効率化できます。