見出し画像

FTX Quant ZoneのTips

自分自身のFTXへの理解を深めることと備忘録を兼ねて、随時更新していきます。
(最終更新 2020/4/13 7:00) 

第一部 Trigger編

1) 時刻ピッタリの価格を参照する(日足や時間足のクローズ価格を参照する)

例えば現在時刻がUTC 01:23(つまり日本時間ではAM10:23)のとき、
「hour」で時を表す「1」を取得できます。
「minute」で分を表す「23」を取得できます。
price関数の第二引数は「何分前の」を表しますので、以下の式で「UTC 00:00ピッタリのときの価格(=前日のClose価格)」を参照できます。
※ただし、秒単位ではピッタリではありませんので注意が必要。

price("BTC-PERP", minute + hour * 60)

画像4

2) 4時間足のクローズ価格を参照する

例えば現在時刻がUTC 07:23(つまり日本時間ではAM16:23)のとき、前回の4時間足のクローズ価格(UTC 04:00、JST 15:00時点)を取得するには、余りを表す「%」演算子を使って、以下のようになります。

price("BTC-PERP", (minute + hour * 60) % (4 * 60))
※4時間×60分で割った余りを求める

画像5

3) 高値(安値)を取得する

現時点(2020/4/13)では、高値・安値を取得する関数はありません。単一のルールで完結させるには、以下のように冗長的に高値を求める必要があります。

max(price("BTC-PERP"), price("BTC-PERP", 1), price("BTC-PERP", 2), price("BTC-PERP", 3), price("BTC-PERP", 4))

画像6

ただし、これも「現時点、1分前、2分前、3分前、4分前」の価格の最高値を求めているだけであり、その途中のヒゲによる価格を取得することはできません。

FTX陣営はこの件について課題として認識しているようなので、おそらく今後は関数として実装されるものと思われます。


第二部 Action編

1) 決済注文の際、確実に「ポジションを減らす方向」にだけ注文を出す

・Actionの「Place Custom Order」で、「Reduce Only」にチェックを入れます。
・「ポジションを増やさずに確実に決済方向の注文を行いたい」ときに利用します。
・bitFlyerでこの機能があれば…どんなに事故を減らせることか。

画像1

2) 注文時に「テイク(成行約定)しない」ようにする(テイカー手数料を取られちゃうので)

・Actionの「Place Custom Order」で、「Post Only」にチェックを入れます。
・もしも注文が通った時点で「テイクしてしまう」状況であれば、執行されずにキャンセルされます。
 「絶対テイカー手数料は払わんぞ」という強い意志のもとに使用します。
 ※ただし、意図したタイミングでポジションを作れない可能性があります。

画像2

(参考)FTXはテイカー(成行)とメイカー(指値)で手数料が異なります。

3) 注文時に「テイクできなかったら自動でキャンセル」する

・Actionの「Place Custom Order」で、「IOC」にチェックを入れます。
・もしも注文が通った時点で「テイクできない」状況であれば、執行されずにキャンセルされます。Post Onlyの逆です。
・テイクできる分だけテイクして、残り分がキャンセルされます(注文全部がキャンセルされるわけではない)。
・筆者は、テイク指値(テイクするけど価格の滑りを押さえたい)を出す際に、キャンセルが面倒くさかったりAPIを節約したいときに使います(bFとかの話です)。
・「テイクできず板に残った注文って養分になるんじゃね?」と考える賢い人が使ったりします。

画像3


第三部 注意すべき点

1) ループは15秒に1回実行される

それぞれのTriggerは、15秒に1回評価され、もしもTriggerがTrueになればActionが実行されます。

そのため、「単純に0.01BTCを買う」というルールを実装すると、15秒に1回、証拠金が尽きるまでBTCを購入することになります。

これを例えば定期的に実行するには「Pause」機能を使うことになります。

2) 15秒とは、「そのルールが実行されてから15秒おき」

Triggerが評価される「15秒おき」とは、「そのルールが実行されてから15秒おき」です。

例えば01時23分50秒にルールが開始された場合、次にTriggerが評価されるのは概ね「01時24分05秒」「01時24分20秒」…です。

各分の00秒、15秒、30秒、45秒に実行されるわけではありません。

3) 15秒の間隔の中で起こった出来事は感知できない

Triggerの評価は15秒おきであり、「その時点の状況」について評価されます。
例えば、以下のような「BTC-PERPの価格が8000以上なら」というTriggerがあったとします。

画像7

前回評価のタイミングで7999ドルだったとき、一瞬8000ドルを超えてから、次の評価のタイミングで再び7999ドルに戻った時、このTriggerはFalseを返します(Actionは実行されません)。


最後に リンクなど

このマガジンはこれからも無料記事として更新していく予定ですので、本マガジンや本noteでFTXに興味を持っていただけた方は、こちらからどうぞ。取引手数料が5%OFFになります。

↓ ↓ ↓ FTX新規登録画面 ↓ ↓ ↓


この記事が気に入ったらサポートをしてみませんか?