テキスト解析してつよつよのミラトレbotしたい[R&D]
こんにちは。.Qです。
「twitterのつよつよトレーダーをミラトレする」というアイデアを実験したくなりました。
何回かに分けるか今回で終わりかは分かりませんが、MLなどを利用した自然言語処理をしっかりやるか悩んでいます。
Twitterのトレーダーの買った売ったに反応してミラトレした場合の、バックテストです。
1.tweetを取得します。
下記のノートを参考にしてください。(おそらく購読者なら見えるはずです)
「先出し、ビットコイン」などで検討してあたりをつけます。
上のNoteからPythonファイルをダウンロードして、
if __name__ == "__main__":
today = datetime.today()
allTime = today - timedelta(weeks=840)
since = allTime.replace(microsecond = 0)
# print(since)
fetch_tweet("",since)
fetch_tweet("@ここにIDを入れる”, since)としてください。
これでツイートを取得できます。
2.pip installで必要なライブラリを入れます。
分かち書き用のライブラリです。
!pip install mecab-python3
!pip install unidic-lite
3.Notebookを上から下に実行します
# notebookの説明
long = ['ロング', "ロン", '買った', '買う', "買", "上", "L"]
short = ['ショート', "ショ", '売った', '売る', "売", "下", "S"]
anti = ['ない', '無い', '利確', '投げた', '損切り', 'ロスカット', "切る", "投げる","しない", "無し"] # ロングショート逆にする
symbol = ['ビットコイン', 'bitcoin', 'ビット', "BTC", "btc"]
ex_symbols = ["ゴル", "ドル", "ゴールド", "ナス", "ダウ"] # これは例外
ex_words = ["上髭", "下髭", "上ヒゲ", "下ヒゲ", "上ひげ", "下ひげ", "@"] #例外ワード これには反応しないようにする
データフレーム
.resample()のメソッドで 1hにまとめています。
取引条件
Entry:
1.単語に分かち書きしたツイートがlongのlistに入っている→long shortのlistに入っている→short
2.antiのワードが含まれる long →shortに反転 short→longに反転
3.ex_symbolの場合は例外(ビットコインをトレードするので)
4.ex_wordsはlongとshortには含めない たとえば 「上髭」はロングのワードにはならない
Exit:
1.時間経過でexit (取引の時間軸が不明なのでfor文でチェックする)
2.逆のポジションのツイートがあってもexit
Exit バックテストの時間経過を変えて色々みてみます。
バックテスト部分の解説動画
下記のNoteの一部ですが、動画のみ貼っておきます。
どのアカウントを選ぶかによって変わるので色々試してみてると良いかもしれません。
コードは下記です。
[後ほど簡単にコードの解説の動画を載せます。]
この記事が気に入ったらサポートをしてみませんか?