自分用
やってたこと
・極値の求め方勉強
アビトラするときに最大の利益のときの入力量xを求めたかったので微分の勉強してた。
結果、やり方はひとまずわかったのだけど、計算ロジックがブラックボックスのやつがあると機能しないっぽいこともわかった。
Raydiumが本当にストレスのもとなのだけど、集中流動性プールを採用してたり、openbookとの連携の兼ね合いで妙な計算が入っているっぽかったりで、sdkを使う他ないような感じが今のところある(頑張れば解析できそうだけど自分の能力では百年かかるわと思って一旦断念した)
なのでひとまずはsdkがjsのものしかないので、jsのAPIサーバ立てて、そこにリクエスト投げて計算する方針にしたんだけど…まずいいやそれは。
とにかくブラックボックスになっているので微分で極値を求める方法は多分無理だなとなった(もしかしたらわかってないだけでできるかもしれないけど、現状の理解度だと無理そう)
なので勾配法でやろうと思ったりしたけど、今度はその場合リクエスト数と計算速度の問題が……。sdkの計算がRaydiumのapiに依存している部分があり、計算回数が増える方法はちょっと微妙
というわけで、Raydium対応を一旦避けて、シンプルなx*y=kを採用してそうな取引所に絞って対応していこうかなと思ったりした。(その判断をするためにも極値ってどう求めるべきなのかをある程度ちゃんと理解したかったから勉強してた)
なんかtwitter見てたら面白そうなやつ見かけたので、3時間ぐらいで作ったやつを放流してみた。一日0.1solぐらい儲かってるっぽい(1~2$ぐらい、多分)
単純な仕組みのbotだったら、ブロックチェーン絡むものでもそれなりに素早く作れることがわかったのが嬉しかった。
・メインアビトラbotの作成
色々やってたのだけど、結局Raydiumの仕様を把握しきれなくてしんでた。
で、途中でsdk使う方針にしようと決断したのだけど、そもそもsdk使うとした場合にちゃんと最適値求められるのか知りたくで微分勉強に入ってた
さっきも書いたけど、Raydium対応は一旦やめてシンプルなamm採用してそうな取引所探して、そこの対応をやろうと思う
やること
- 対応取引所1つ増やす
orcaという取引所はammがシンプルなので問題なかった(手数料体系が少しうざいぐらい)
Raydiumは一旦保留としたいので、他取引所を探すところから。
取引所対応の作業自体はフィーリングなところあるので頑張る
- 裁定パスで経由トークン数増やす
今2種類のトークンまでしか対応してないけど、3種類まで対応するようにする。そうしたら触ることのできるペア数が増えるので嬉しい
パス算出がそれにともなって複雑化するのでそこを作る。構成は前考えたのメモっといたのでそれ見る
- 入力量最適化やる
微分で極値求めるやり方でやる。ammがシンプルならこっちで計算ロジック持てるので、多分求められる。
怖いのは、微分の公式を使うというのもプログラムだと厳しいので、導関数使うことになる。
一つ一つの取引所の計算ロジックもあるわけで、結構だるいコードになりそうな気配があるのが嫌。
---
というわけでひとまずやるのは取引所対応なきがする。適当に選定して、頑張って作りましょうという感じ。
頑張りやす