#bitflyer
チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ1
勉強のため、スナフキン氏( https://twitter.com/snufkin0866 )のチャネルブレイクアウトbotコードを読解したメモを残していきます。
様々なbotトレーダがいますが、スナフキン氏は安定して稼いでいるので尊敬です。
おそらく今動かされているbotはmmだと思いますが、以前blogにあげられていたチャネルブレイクアウトbotのコード( https://sshuhei.co
チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ2
のつづきです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です
ChannelBreakOutクラスでOrderクラスのメソッドを使っているので、Orderから見ていきます。
メソッドが5つあります。
def limit(self, side, price, size, minute_to_expire=None):
def mark
チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ3
の続きです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です。
response = {"status": "internalError in order.py"}try: response = self.api.sendchildorder(product_code=self.product_code,
チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ4
の続きです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です。
while "status" in response: try: response = self.api.sendchildorder( product_code=self.product_code, child_order_type="MARK
チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ5
の続きです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です。
while "status" in response: try: response = self.api.sendchildorder( product_code=self.product_code, child_order_type="MARKET"
チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ6
の続きです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です。
ChannelBreakOutクラスの読解を行う前に、このクラスがどう使われているか確認します。
# 実働# channelBreakOut.loop(channelBreakOut.entryTerm, channelBreakOut.closeTerm, channel
チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ7
の続きです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です。
executionsProcessメソッドはコメントの通りpubnub通信で価格を取得する処理が書かれています。
「基本的に不要」という言葉の真意は今のところわかりません。
コードを読み進めるとわかるのかもしれません。
なお、bitflyerのAPIリファレンスによるとpub
チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ8
の続きです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です。
pubnubThread = threading.Thread(target=pubnub.start)pubnubThread.start()
threadingは並列処理のための実装です。
pubnubで価格を取得しながら取引するための処理です。
targetにthre
bitflyer FXで特定の証拠金維持率を満たす建玉数量を算出するコード
bitflyer FXで特定の証拠金維持率を満たす建玉数量を算出する必要があって書いたので置いておきます。
python3.6で動作確認済です。
預入証拠金・約定価格・証拠金維持率を固定して建玉数量を算出します。
各パラメータを変えてコメントアウト外したりすれば別の計算もできるはず。
参考: https://lightning.bitflyer.com/about-fx
# coding:
チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ9
の続きです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です。
# ローソク足の時間を指定periods = [period]
ローソク足の時間を設定してます。
配列に入れるということは複数指定できるのかもしれません。
# クエリパラメータを指定query = {"periods": ','.join(periods)}# ローソク足
チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ10
の続きです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です。
row = res[i]length = len(row)
rowにはcryptowatchAPIレスポンスのi秒足(例えば60秒足=1分足)データが入っています。
lenでrowの配列の長さを取得します。
この「配列の長さ」はrowにローソク足が何本入っているかを意味しま
チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ11
の続きです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です。
for column in row[:length - (number + 1):-1]:
row配列の後ろから順番にnumber個分の要素を取得してforブロックの処理を実行します。
# dataへローソク足データを追加.if column[4] != 0: co
チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ12
の続きです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です。
if candleTerm == None: df_candleStick = self.fromListToDF(candleStick)else: df_candleStick = self.processCandleStick(candleStick, cand
チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ13
の続きです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です。
fromListToDFメソッドの続きです。
def fromListToDF(self, candleStick): """ Listのローソク足をpandasデータフレームへ. """ date = [price[0] for price in candleSt