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