board2.pyのソースコード
import urllib.request
import json
import pprint
import time
import sendorder_takeprofit
import settle_now
import settings
def board2():
url = 'http://localhost:' + settings.port + '/kabusapi/board/' + settings.symbol + '@1'
req = urllib.request.Request(url, method='GET')
req.add_header('Content-Type', 'application/json')
req.add_header('X-API-KEY', settings.token)
try:
print('###board2')
with urllib.request.urlopen(req) as res:
content = json.loads(res.read())
pprint.pprint(content)
curPrice = content["CurrentPrice"]
# 現在価格が目標価格に達していたら即決済
if(curPrice <= settings.orderPrice - settings.margin):
settle_now.settle_now()
else:
#利食い注文(売り発注)
sendorder_takeprofit.sendorder_takeprofit()
except urllib.error.HTTPError as e:
print(e)
content = json.loads(e.read())
pprint.pprint(content)
except Exception as e:
print(e)
if __name__ == "__main__":
import sys
board2()
現在の株価を取得
これも、株価取得APIの呼びたし自体は、board.pyと同じでkabuステーションのサンプルとほぼ同じです。
kabusapi/sample/Python/kabusapi_board.py at master · kabucom/kabusapi
kabuステーションAPI ポータル. Contribute to kabucom/kabusapi development by creating an account on GitHub.
現在価格がすでに目標価格に達していたら即決済
23行目で現在の株価と利食い価格を比較し、利食い価格に達していた場合は、24行目で数珠繋ぎ方式で成行注文で決済注文を発注します。
利食い価格の計算方法としては、グローバル変数からエントリ価格を取り出し、売りエントリなので利食い幅をそこから引いています。
現在価格がまだ目標価格に達していなければ利食い指値注文発注
現在の株価がまだ利食い価格に達していない場合(大抵そうですが)は、27行目でこれも数珠繋ぎ方式で利食い注文を指値で発注しています。
コメント