Coincheck対応 自動売買Bot 第二回
こんにちわ、ブラックかふぇです。
Coincheckは、騒動後、全く、取引ができなくなり、
Botが稼働できず、悲しい次第です。
とはいえ、とりあえず、続きを書いて見ます。
イナゴ情報の取得は、他の方がたくさんコードを書いていますので、割愛します。
前回は、イナゴ情報=>ポジョンエントリー を説明しましたが、
今回は、ポジョンクローズのロジックを考えたいと思います。
エントリーも大事なのですが、クローズも大事ですよね。利益確定もしくは損切り。
普通に考えると、イナゴのバランスが崩れた時に、利益確定もしくは損切りとなると思います。
買いイナゴ!が多い状態で、
=>買い(ロング)ポジション、
売りイナゴが優勢になったら、
=>買いポジションクローズ
以下のコードはその考えを実装したものです。
コード全体像
現在のポジションを確認、
ポジョンがロングなのか、ショートなのかを確認、
買いイナゴと売りイナゴを比較して、
優勢状況に合わせてそのポジションをクローズ。
このコードのままだと、現実はうまくいかず、どんどん赤字になります(笑)
原因は、BTCの価格変動が早いのと、変動幅が大きいからです。。
クローズのロジックを工夫をしたら、
日によっては綺麗に波に乗って5000円ぐらい稼いでくれるようになりました。
いよいよ、Botで稼ぐ時代到来か!と思ったら、NEM流出。。。
このBotはしばらく使えないですね。
以下コード
for length in range(len(position)):
posi1 = position[length]
if posi1[4] == "buy":
odt = "close_long"
else:
odt = "close_short"
if odt == "close_short" and BuyVOL> SellVOL:
ClosedID = posi1[2][0][0]
result = o.positionClose(amount=posi1[3],position_id=posi1[0],order_type=odt,pair="btc_jpy")
if "error" in result.keys():
print("注文が失敗しました: " + result["error"])
result = o.cancel(order_id=str(ClosedID))
if "error" in result.keys():
print(result["error"])
print("確定)")
else:
print("確定")
length = 0
if odt == "close_long" and BuyVOL < SellVOL:
ClosedID = posi1[2][0][0]
#print (str(posi1[2]))
result = o.positionClose(amount=posi1[3],position_id=posi1[0],order_type=odt,pair="btc_jpy")
if "error" in result.keys():
print("注文が失敗しました: " + result["error"])
result = o.cancel(order_id=str(ClosedID))
if "error" in result.keys():
print(result["error"])
print("確定)")
else:
print("確定")
length = 0
BTCアドレス 3BMEXWoSg5i9zegtEZ3QTEAUDeAV7rKXde