見出し画像

[覚書] 建玉補正の例

このノートは,自動売買取引(システムトレード)における建玉補正の例です.建玉を0に収束する系手法なのでロジック・時間軸関係なく使えると思います.

最適解には程遠いので,主売買ロジックに伴い選択・調整してください.
思いますof思いますだし,たぶんonたぶんです, なおよろしく.

※ コードは言語明記がない場合,それっぽい英語で書いています.


# まずはじめに,建玉補正をする場合の指標

暗号通貨自動売買ボットにあかるいスナフキン(snufkin)さんのブログが参考になります. https://sshuhei.com/entry/adjust_lot/

言わんとしているのはたぶん

var (
  param = 調整度合い
  max_lot = 許容枚数
  positions = 建玉枚数
)

diff = max_lot - postions
よーし注文しちゃうぞ = math.Tanh( param( diff ) / max_lot )

go playground: https://play.golang.org/p/7VDG15cqe_M

これにより,建玉構築(再注文の際の枚数)を調整できます.

例えば,
A指標が出たよ,でも次の時間軸算出でもA指標だよ,指標にはバッファがあるし確度が不安定だよってロジックでは特に有用です.シグナルの有用性がどのようなグラフになっているのかで計算式は変えるべきです.

過去を検証するとか無駄なんですが,,,吉田でーす
©吉田製作所

さて,それでは本題へ

# 建玉の一括処分

「あ,やべ,違う方向行っちゃった.損切り成ポチ」
「おー利益のった,ひゃっはー利確っぅぅ!!成ポチ」

大富豪ですか?有閑倶楽部ですか?
mmbotは上記を口を開けて待っています.あはは,ようこそドバイ

知っている限り最も愚か.成行きでは損失が最大に,指値では処分可能性と戦わなきゃいけない.つらい…

不良建玉の分割処分・通常挙動を補正するのがベターかも?

## 指値価格調整

算出した通常指値を修正して,約定可能性を調整する方法.
例えば,買い建玉不良在庫ならば不良在庫の買い増しは愚かでしょ?なら遠くに置いちゃって約定可能性を下げちゃえ,約定あれば平均建玉を下げる有益指値になるといった考え方.

->> exec(直近約定)取得

if exec > 0 {
  ask_price = mid_price + spread + adjust(positions, exec.stress)
} else if exec < 0 {
  bid_price = mid_price - spread - adjust(positions, exec.stress)


->> order manager
size = よーし注文しちゃうぞ()
order_id, err = Order(size, ask_price OR bid_price)


## 売買方向の頻度調整

気が向いたら追記予定

## 定義時間軸トレンドによる建玉補正

mmbotってms高頻度から数秒の振動をとるみたいなイメージ.あると思います.多分間違ってない.たぶんonたぶん

mmbotを運用していれば,極端な凸むりつらみ.感じますよね.逆選択つれぇって思いますよね.その時生じた「これって何が背景なの?大衆心理や大口なんじゃね?」からこの検証は生まれました.

弊プログラムの時間軸で,大衆心理は今どこにあるのか?

SMA/EMA・雲…
(乖離・ボリバンおまえは別だ!)

ぼくはSMA信者(?)なのでこれを背景に組みました.設定時間軸SMAを上抜けした場合建玉に補正をかけます.つまり,上抜けならばmmbotが持つ在庫に買い建玉(仮にSIZEとします)を追加します.

弊bot挙動例ではSIZEが追加され,
- 不良在庫になった
   >> 平均建玉価格を下げるために働き,SIZE平均建玉を有利にします
- 売れ筋商品になった
   >> より利益多めに利確指値を考えます🤔利益・建玉を食い潰す(不利約定で削られる)まで全部利益でMarket makeできます

その挙動指数があるんだけど,それはおしえなーい
そもそも最適解だと思えてないし,ロジックや組み方により最適解が変わるのでベターを探してくだされ.

## 最後に

酔っ払って書いた,後悔はしてない

でもあれだよ,損失でも利益でも線形にしてからじゃないと補正は邪魔になる.まずはPLプラマイどっちでもいいから線形,目指せフラット!
からの肉付け

ちなみに,通常ロジックから損切り・利確を切り離すとき,中心極限定理が崩れます.外れるとparam変えても調整limitress!何度も同じ失敗を繰り返す羽目になります.

失敗繰り返したら友達です.

@_numbP
BitPay for BTC: 155siLBEzhfsVPt8jz8i3hJqvCq1joNwoA



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