BOTプログラム修正/モミ合い時の対策

BitMEX純正ライブラリを使ったPython製の自動売買プログラムとの生活記録。My Bot プログラム修正済み

投稿日:2019/03/13    カテゴリ:AutoTrade

モミ合い時の対策

モミ合い時は、手数料負けする

 

初見

過去 5つの MACD値 が 全部 1以下だったら取引を止める?

1が特微値かどうかは不明。

 

検討結果

データマイニング結果、 MACD 値が -0.05 〜 0.05 の間は、 bot を停止させる。

15分足の現在の MACD もしくは 一つ前の MACD が -0.05 〜 0.05 だったら一旦停止?

とりあえず現在の MACD値の範囲によって、取引するかしないか判断させてみることに。。。

 

プログラム


import talib
import pandas as pd
import time
from datetime import datetime
import calendar, requests
import json

x = 0

print("--  MyBot Start  --")
startTIME = datetime.now()
print(startTIME)

now = datetime.utcnow()
unixtime = calendar.timegm(now.utctimetuple())
since = unixtime - 60 * 1200
param = {"period": 5, "from": since, "to": unixtime}
url = "https://www.bitmex.com/api/udf/history?symbol=XBTUSD&resolution={period}&from={from}&to={to}".format(
    **param)
res = requests.get(url)
data = res.json()
df = pd.DataFrame({
    "timestamp": data["t"],
    "open": data["o"],
    "high": data["h"],
    "low": data["l"],
    "close": data["c"],
    "volume": data["v"],
}, columns=["timestamp", "open", "high", "low", "close", "volume"])
df["datetime"] = pd.to_datetime(df["timestamp"], unit="s")
df = df.set_index("datetime")
pd.to_datetime(df.index, utc=True)
df = df.resample("15T").agg({
    "timestamp": "first",
    "open": "first",
    "high": "max",
    "low": "min",
    "close": "last",
    "volume": "sum",
})

df.set_index(['timestamp'], inplace=True)
macd, signal, hist = talib.MACD(df.close.values,
                                fastperiod=12, slowperiod=26, signalperiod=9)

MACD_hist = hist[-6:-1]
onoff_data = hist[-1]
hantei = -0.6 < onoff_data < 0.6
hantei_kekka = "トレード停止?" + str(hantei)

while True:
    if hantei == True:
        print("Waiting.....")
        print(MACD_hist)
        print(onoff_data)
        print(hantei_kekka)
        x = x+1
        print(x)
        time.sleep(5)

    else:
        print("GO Trade!")
        print(MACD_hist)
        print(onoff_data)
        print(hantei_kekka)
        x = x+1
        print(x)
        time.sleep(5)


print("Program End")

確認のため MACD値は -0.6 〜 0.6 でテスト

 

結果

いいですね、指定した MACD -0.6 〜 0.6 で止まっています。

 

My BOTに組み込んでみたら

一旦ポジションを取った後、 MACD -0.06 〜 0.06 になり、 取引お休み中に。。。。はたしてどうなるやら。。。。

 



コメント

コメント数 0

まだコメントはありません