ビットコイン ポジポジ病克服ツール 「猫なで声」Bitflyer版

Liquid版はこちら

ポジポジ病を完治しなければやがて退場です

値動きは勉強によりある程度読むことはできます。

そしてそれに従って売買すれば、ある程度勝てます。

しかし、ビットコインの上下を決めているのは、大口の一発です。

その時逆のポジションを持っていたら万事休すです。

残念ながら大口は仕掛ける前に逆に揺さぶるのは常識です。

当然逆のポジションを持って、よそ見している間に逆にバイーンです。

ならば、、短時間しかホールドしないスキャなら良いやん

何度も売買するとスプレッドで丸損してしまいます。

取引所の発表するスプレッドがあなたが実際に取られるスプレッドだと思っているような人は、鴨がネギ背負って鍋に飛び込んでます。

取引所:「旨い旨い❤」

私の克服法 猫がお姉さんが教えてえてくれます

なんとかしなければ勝てませんが、ポジを減らすといっても、相手は値動きなので、1時間に1回とか決めるわけにはいきません。

そこで、世間一般自分でトレードルールを作りますが、そんな規律を守れる立派な人は、端からビットコイントレードなど関わっていないと思います。

つまり、凡人は規律など守れないからいい年をして凡人なのです。(個人のことです(私です))

IT入門中の私はITツールを自作しました。

猫撫で声くんです

価格を監視し、画面に、現在と3秒前、現在と1分前の価格差を表示します。

1分間で「設定値」(今は15,000に設定)以上価格が上下した場合その旨表示します。

なんとその通知を音声で教えてくれます

これが有ると、画面は全く気にしていなくても、何が起こったか判るというわけです。

加えて、以下の条件を満たす時にラインかdiscordに通知します。

3分間で 「設定値」 の3倍以上価格が上下したとき

15分間で 「設定値」 の15倍以上っ価格が上下したとき

ラインへの通知画面
discordへの通知画面

携帯電話の通知機能で、機会逸失は無い。

携帯のアプリへの通知だと、携帯がブルブルしたり、携帯を持っていない家の中でも中華スマートウォッチがブルブルしたりするので、すかさず金額を確認して、エントリーチャンスであればそうする。

逆に、これくらいの値動きがないときは、電子くず(BTC)は相手にしてやらないというわけです。


上記を書いた2日後3/29

三段目のロケット部分で、5分間ぐらい、「暴騰中」と喋りっぱなし、スマートウオッチがブルブルしっぱなしで壮絶でした。

もう今後はこのタイミングにすべてを賭けよう(賭けてなかった、ショートしてて担がれた、壮絶バカな俺(ノД`)シクシク)

*レベル2の「暴騰中」が5分続くことは数日に1回有るか無いかです。
数日に一回でも大暴騰又は大暴落の一部分でも取れれば美味しいといえます。

更に2日後3/31、固い決意で「ノーポジ」で他のことをしていると、「暴落中」の声がする。

今回は「大暴落継続中」という、15分間暴落継続の状態が出現。

お告げ通りに売り買いをした結果、20分間くらいで随分プラスになりました。

(決済はお告げがないので、お告げが消えたあたりで決済を自分で判断する)

これは堅い、鉄板戦略だ。うししし。

しかも、電子くずのことを全く気にかけていなくても良いのは時間を無駄にしなくて、良い!!


ソースコードですが私は動きますが、他の方はこのままでは動きません。すみません。

sp=Talk()を削ってしゃべる機能を無くせば、ほぼ動くのではないかと思いますが?どうでしょ?

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import time#タイマーとか現在時刻とか
import pybitflyer#ラッパー
import json#データ形式
import requests#APIリクエスト
import datetime#日時ライブラリー
import time, datetime
import os
from class_talk import Talk
sp=Talk()

#bitflyerラッパーのインスタンス化
api = pybitflyer.API(api_key="", api_secret="")

'''---------------------------------------------------------------'''
def discord(message):
   # Discordで発行したWebhookのURLを入れる
   discord_webhook_url = "取得してください"
   data = {"content": " " + message + " "}
   requests.post(discord_webhook_url, data=data)

#discord('discord通知テスト')

def lineNotify(message):
    line_notify_token = "取得してください"
    line_notify_api = 'https://notify-api.line.me/api/notify'
    payload = {'message': message}
    headers = {'Authorization': 'Bearer ' + line_notify_token}
    requests.post(line_notify_api, data=payload, headers=headers)

#lineNotify('test')
'''---------------------------------------------------------------'''
def get_ticker():
    try:
        btc = api.ticker(product_code='BTC_JPY')
        return btc['ltp']
    except:
        pass
'''---------------------------------------------------------------'''
def main():
    #ローカル変数
    tick=[]#ticker=値段をためておく
    interval=3
    breakout_width=15000
    s_short=60 #秒、比較する時間(s_short 秒前)
    c_short=int(s_short/interval)#60/3=20count、minits to  , s_short分は何カウントか
    c_mid=int(3*s_short/interval)#3*60/3=60  3分間のカウント数
    c_long=int(15*s_short/interval) #15*60/3=300  15分間のカウント数
    print('1分待機')
    start = time.time()#開始時刻
    recount=0
    maintenance_start = "03:59:30"
    maintenance_end   = "04:10:30"
    while time.time() - start <= WorkTime*60*60:#60秒*60分*WorkTime(時間)

        # メンテナンス時間は稼働しない2020/04/13 03:01
        st = datetime.datetime.strptime(maintenance_start,"%H:%M:%S").strftime("%H:%M:%S")
        et = datetime.datetime.strptime(maintenance_end, "%H:%M:%S").strftime("%H:%M:%S")
        nt = datetime.datetime.now().strftime("%H:%M:%S")
        if nt>st and nt<et:
            print("メンテナンス時間中のため待機しています")
            time.sleep(300)
            continue
        try:
            btc_price=get_ticker()
            tick.append(btc_price)#tick貯蓄
            if recount > c_short :#開始後1分以上経っていたら
                timestamp=datetime.datetime.fromtimestamp(time.time()).strftime(' %H:%M:%S (%Y/%m/%d) ')
                def1c=tick[-1]-tick[-2]#defarence of 1count
                def1m=tick[-1]-tick[-c_short]#defarence of 1m
                message=f'{def1c:>6,.0f} 3s  {def1m:>6,.0f} 1m  {timestamp}'
                #1分間上昇
                if recount > c_long:
                    if tick[-1]-tick[-c_long]>breakout_width*15:#15分
                        sp.talk('大暴騰継続中')
                        sendmsg=f' 大暴騰継続中 {message}'
                        print(sendmsg)
                        lineNotify(sendmsg)
                        discord(sendmsg)
                    elif tick[-1]-tick[-c_long]<-breakout_width*15:#15分
                        sp.talk('大暴落継続中')
                        sendmsg=f' 大暴落継続中 {message}'
                        print(sendmsg)
                        lineNotify(sendmsg)
                        discord(sendmsg)
                    else :
                        pass
                elif recount > c_mid:
                    if tick[-1]-tick[-c_mid]>breakout_width*3:
                        sp.talk('暴騰中')
                        sendmsg=f' 暴騰中 {message}'
                        print(sendmsg)
                        lineNotify(sendmsg)
                        discord(sendmsg)
                    elif tick[-1]-tick[-c_mid]< -breakout_width*3:
                        sp.talk('暴落中')
                        sendmsg=f' 暴落中 {message}'
                        print(sendmsg)
                        lineNotify(sendmsg)
                        discord(sendmsg)
                    else :
                        pass
                elif tick[-1]-tick[-c_short]>breakout_width:#1分でブレークアウト
                    #sp.talk('上昇中')
                    sendmsg=f' 上昇中 {message}'
                    print(sendmsg)
                    #lineNotify(sendmsg)
                    #discord(sendmsg)
                elif tick[-1]-tick[-c_short] < -breakout_width:
                    #sp.talk('下降中')
                    sendmsg=f' 下降中 {message}'
                    print(sendmsg)
                    #lineNotify(sendmsg)
                    #discord(sendmsg)
                else :
                    print(f'range  {message}')
            recount+=1
            time.sleep(interval)
        except KeyboardInterrupt:
            print('keyboard intterrupted!')
            sys.exit()
if __name__ == '__main__':
   main()

しゃべる部分はこれ。

Class_talk.py

import win32com.client
from os import path
import json



class Talk():
    def talk(self,str):
        speaker = win32com.client.Dispatch("SAPI.SpVoice")
        speaker.Speak(str)

    def set_dic(self,filename):
        json_open = open(filename, 'r',encoding="utf-8")
        bun_dic = json.load(json_open)
        return bun_dic

実際に必要なのは3行

import win32com.client

speaker = win32com.client.Dispatch("SAPI.SpVoice")

speaker.Speak(読み上げる文字列または変数)

使いまわしできるようにクラス化しました。結構便利です。

しかし、Windowsの声がおねえさんの声とお兄さんの声2種類しかない。

ホントは色んな声がいっぱいあるが有料なのだ。

ケチくさいぞ世界一金持ちのビル・ゲイツ。

まだ金とんのかよ!もう勘弁してください!と思いますわ。

コメント

タイトルとURLをコピーしました