Max Pain for Deribit Options #13
Open
ntorres
wants to merge 2 commits from
max_pain_deribit
into deribit_fix
pull from: max_pain_deribit
merge into: pikers:deribit_fix
pikers:brokers_refinery
pikers:accounting_refinery
pikers:add_visidata
pikers:no_symcache_no_problem
pikers:service_mng_to_tractor
pikers:ems_no_last_required
pikers:stop_is_oec
pikers:gitea_feats
pikers:jsonrpc_err_in_rent
pikers:tsp_gaps
pikers:max_pain_chart_backup
pikers:max_pain_chart
pikers:subsys_refinery
pikers:subsys_refinery_BACKUP
pikers:add_ruff_linter
pikers:deribit_fix
pikers:deribit_fix_backup
pikers:kucoin_and_binance_fix
pikers:uv_migration
pikers:kucoin_and_binance_BACKUP
pikers:go_httpx_no_unrelated_binance_stuff
pikers:go_httpx
pikers:go_httpx_orig_BACKUP
pikers:ib_refinements
pikers:fix_deribit_hist_queries_NEW
pikers:fix_deribit_hist_queries
pikers:prev_deribit_fix
pikers:nix_shell_env_fix
pikers:cherry_to_storage_pr
pikers:fix_deribit_hist_queries_BACKUP
pikers:kucoin_and_binance_fix_goodboyBACKUP
pikers:nix-headless-fix
pikers:go_httpx_binance
pikers:fix-binance-venues
pikers:pyqt6
pikers:distribute_dis
pikers:runtime_to_msgspec
pikers:nix-monkeys-fix
pikers:ib_py311_fixes
pikers:poetry2nix
pikers:account_tests
pikers:py311_ib_fix
pikers:master
pikers:basic_buy_bot
pikers:marketstore_disable_snappy
pikers:rekt_pps
pikers:py311
pikers:kucoin_backend
pikers:small_kucoin_fixes
pikers:pre_overruns_ctxcancelled
pikers:emit_clear_ticks_only_on_ts_change
pikers:binance_ws_ep_update
pikers:log_linearized_curve_overlays
pikers:xdotool_fixes
pikers:deribit_updates
pikers:storage_middleware_layer
pikers:service_subpkg
pikers:pps_precision_hotfixes
pikers:service_subpkg_backup
pikers:storage_cli
pikers:xdo_and_you
pikers:decimalization_take_2
pikers:backward_compat_trans_with_symbolinfo
pikers:explicit_write_pps_on_exit
pikers:backend_spec
pikers:paper_trade_improvements_rebase
pikers:loglevel_to_testpikerd
pikers:overlays_interaction_latency_tuning
pikers:kraken_deposits_fixes
pikers:l1_compaction
pikers:epoch_indexing_and_dataviz_layer
pikers:multichartz
pikers:axis_sticky_api
pikers:multi_symbol_input
pikers:update_qt_screen_info_script
pikers:fsps_and_flumes
pikers:epoch_index
pikers:pregraphics_formatters
pikers:multichartz_backup
pikers:samplerd_service
pikers:misc_brokerd_backend_repairs
pikers:pre_viz_calls
pikers:dark_clearing_improvements
pikers:dark_clearing_repairs
pikers:epoch_index_backup
pikers:agg_feedz
pikers:kraken_limits_fields
pikers:cz_post_ftx
pikers:kraken_pair_status
pikers:ib_contract_updates
pikers:pre_multifeed_hotfix
pikers:kraken_pair_updates
pikers:daemon_sockaddr_config
pikers:no_signal_pi_overlays
pikers:pre_multi_feedz
pikers:pg_exts_fork
pikers:ib_1m_hist
pikers:even_moar_kraken_order_fixes
pikers:ci_fix_tractor_testing
pikers:clears_table_events
pikers:offline_dark_clearing
pikers:multi_client_order_mgt
pikers:pin_tractor_main
pikers:history_view
pikers:tractor_core_port
pikers:kraken_fill_bugs
pikers:paper_clear_logics_fix
pikers:kraken_nameerr_fix
pikers:livenpaper
pikers:size_in_shm_token
pikers:deribit
pikers:asycvnc_pin_bump
pikers:live_n_paper
pikers:open_order_loading
pikers:doin_the_splits
pikers:dict_differ
pikers:msgpack_zombie
pikers:the_ems_flattening
pikers:kraken_ws_orders
pikers:kraken_userref_hackzin
pikers:pydantic_zombie
pikers:ib_pps_upgrade
pikers:multisympaper
pikers:ppu_history
pikers:basic_pp_audit
pikers:historical_breakeven_pp_price
pikers:ib_native_data_hack
pikers:pptables
pikers:ahab_you_bad_boi
pikers:fix_forex
pikers:fsp_shm_caching
pikers:paper_eng_msg_fixes
pikers:drop_pydantic
pikers:krakenwsbackup
pikers:dpbackup
pikers:null_last_quote_fix
pikers:ahab_hardkill
pikers:tractor_typed_msg_hackin
pikers:kraken_ledger_pps
pikers:ib_rt_pp_update_hotfix
pikers:notokeninwswrapper
pikers:pps_postmortem
pikers:lifo_pps_ib
pikers:310_plus
pikers:mxmn_from_m4
pikers:contain_mkts
pikers:slic_fix_v2
pikers:uppx_slice_fix
pikers:update_last_datums_in_view
pikers:ib_subpkg
pikers:flexxin
pikers:ib_checker_hackz
pikers:incremental_update_paths
pikers:ib_dedicated_data_client
pikers:dockerize_ib_gw
pikers:pre_flow
pikers:drop_pandas
pikers:no_ib_pps
pikers:trimeter_dep
pikers:l1_precision_fix
pikers:marketstore
pikers:no_orderid_in_error
pikers:incr_update_backup
pikers:big_data_lines
pikers:m4_corrections
pikers:offline_history_loading
pikers:drop_arrow_add_predulum
pikers:marketstore_backup
pikers:broker_bumpz
pikers:no_git_prot_w_pip
pikers:kraken_editorder
pikers:fqsns
pikers:kraken_cleaning
pikers:kraken_orders
pikers:only_draw_iv_for_ohlc
pikers:mkts_backup
pikers:pp_bar_fixes
pikers:async_hist_loading
pikers:kraken_gb
pikers:windows_fixes_yo
pikers:ib_mkt_closed
pikers:py3.10_support
pikers:gb_kraken_orders
pikers:dark_vlm
pikers:overlayed_dvlm
pikers:fsp_ui_mod
pikers:vlm_plotz
pikers:plotitem_overlays
pikers:misc_backend_fixes
pikers:dolla_vlm
pikers:fspd_cluster
pikers:misc_ib_updates
pikers:single_display_update_loop
pikers:basic_vlm_display
pikers:pane_sizing_fixes
pikers:tractor_clustering
pikers:msgpack_no_sets_allowed
pikers:tinas_unite
pikers:simpler_quote_throttle_logic
pikers:fast_step_curve
pikers:win_fixes
pikers:fsp_hotfixes
pikers:teardown_guesmost_via_cs
pikers:windows_testing_volume
pikers:fsp_drunken_alignment
pikers:vlm_plotz_backup
pikers:fsp_feeds
pikers:chart_mod_breakup
pikers:pause_feeds_on_sym_switch
pikers:brokers_config
pikers:ordermodepps_backup
pikers:readme_bump_zone
pikers:ci_on_forks
pikers:asyncify_input_modes
pikers:minimal_brokerd_trade_dialogues
pikers:wait_on_daemon_portals
pikers:backup_asyncify_input_modes
pikers:naive_feed_throttling
pikers:window_cuckery
pikers:msgspec_fixes
pikers:status_bar
pikers:ems_hotfixes
pikers:ems_to_bidir_streaming
pikers:web_utils
pikers:symbol_search
pikers:binance_syminfo_and_mintick
pikers:update_throttling
pikers:syseng_tweaks
pikers:ems_tweaks
pikers:py3.9
pikers:binance_aggtrades_and_ohlc_parsing
pikers:binance_backend
pikers:tractor_open_stream_from
pikers:feed_fixes
pikers:order_mode_finesse
pikers:cached_feeds
pikers:readme_bumpz
pikers:supervise
pikers:basic_orders
pikers:kraken_trades_data
pikers:basic_alerts
pikers:kraken_history
pikers:y_zoom
pikers:chart_trader
pikers:graphics_pixel_buffer
pikers:vwap_fsp
pikers:to_qpainterpath_and_beyond
pikers:tina_free_vwap
pikers:vwap_backup
pikers:bar_select
pikers:ib_backend
pikers:unleash_the_kraken
pikers:facepalm
pikers:marketstore_integration
pikers:its_happening
pikers:relicense_as_agplv3
pikers:questrade_candles
pikers:use_tractor_logging
pikers:questrade_conns
pikers:kivy_mainline_and_py3.8
No reviewers
Labels
Clear labels
No items
No Label
Milestone
Clear milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
Clear assignees
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
No dependencies set.
Reference: pikers/piker#13
Reference in New Issue
There is no content yet.
Delete Branch "max_pain_deribit"
Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?
Max Pain for Deribit Options
TODO: pr description here.
How to test it?
Before start: in order to get this working with
uv
, you must use mytractor
fork and this branch:aio_abandons
, the reason is that I cherry-pick theuv_migration
that guille made, for some reason that a didn’t dive into, my system needs tractor usinguv
too. quite hacky I guess.uv lock
uv run --no-dev python examples/max_pain.py
A message should be display, enter one of the expiration date available.
The script should be up and running and showing you something like this:
BTC
, the page looks like this:f3d7d87303
toe37fb00e7d
e37fb00e7d
toca5e1b6ed1
max_pain_deribitto max_pain_deribit38e5165e13
toa878fa57bf
a878fa57bf
tof4a53b157f
f4a53b157f
toe75ea473fa
24ac982083
to7e2cad1d5e
7e2cad1d5e
to2281d64e4f
2281d64e4f
to773656a4fc
9918f6b282
to211d67c3ef
211d67c3ef
to01a9dc3f4f
@ntorres looking forward to going through this patch in deep detail ma friend !
B-)
But, I think before we get too broad on getting this new options related feature set integrated to the rest of
piker
’s subsystems, we need to get some documentation about where all of these 5 features are implemented in this new file (mostly so that I can better understand and use this new code and thus better understand where to get us moving next!)organization suggestions
as mentioned in our call i think we could org things a little more according to past prototyping efforts of this sort,
max_pain.py
to the./examples/
subdir./examples/derivs/__init__.py
or the like)documentation of this patch
also as discussed in call, i think it would make not only review, but future guidance on where to go with all this new code/impl if you document in more detail the 5. major new features you’ve introduced by explicitly linking to the parts of the new module which correspond to each section :)
piker
in a similar way to this new script)driving charting features from the new options source data schema(s) introduced here
Since we’re introing new derivatives related data (stream) for consumption for various other systems in
piker
we likely want to start prototyping some UI/UX for (real-time) display.The main data sources that are likely of importance are (at least for
deribit
opts mkts): - (real-time updated) open interest (OI) - historical OI - ideally the historical L2 (depth of book) or at least L1 data (including bid/ask queue “volume” or “size” state) which indicates the market-maker’s (mm’s) pricing model output over time according to the underlying’s price movementspolars
/numpy
) and then plotting a bar chart over varying contract-filtering parameters (strike-price, expiry, call/put-type) manually using the APIs avail frompyqtgraph
:pyqtgraph
works and to be able to quickly start prototyping a UI for showing (historical) OISince we don’t yet have a formal API inside
piker.ui
for using thesepyqtgraph
graph types yet, it likely makes more sense to prototype withpyqtgraph
’s apis directly until you get something you like and then we can discuss porting/integrating it into the more performant graphing sys already insidepiker
which extendspyqtgraph
’s approach.Let me know if you have any questions about any of this and feel free to break apart the last charting section into a new issue in the case we decide to land this before moving onto UI stuff 👍
@ntorres yo also check out my previous summary of possible examples to tinker way back when @zoltan thought they might be proto-ing some charting stuff:
https://github.com/pikers/piker/issues/80#issuecomment-602102432
Also just added a new task for starting at least some docs regarding
pyqtgraph
use withinpiker
😂#18
01a9dc3f4f
to3fc9c1486a
max_pain_deribitto max_pain_deribit07a417a482
toecc89ff8c5
ecc89ff8c5
to6cb6f8d795
ef1fb18918
toc7c9e37a57
c7c9e37a57
tob57a745507
b57a745507
tof3ee4a7193
f3ee4a7193
to0d9d6e15ba
6b7af35cd0
tocbffb6f227
cbffb6f227
tof594edd69d
f594edd69d
tobe44888e5f
be44888e5f
toffbca17ba2
16bcd7a2c3
to212682a231
212682a231
tof9018670b9
f9018670b9
to3b8cec45da
b2d3d76814
tofead79fd1d
fead79fd1d
to5423e38a75
5c320bc7ab
to596755a9b2
c4b3d7109f
to22831fc071
max_pain_deribitto Max Pain for Deribit Options1272c3efad
to7a638157ce
7a638157ce
toe5b8256ba8
e5b8256ba8
toa58595fcd7
a58595fcd7
to5da8a587e5
Max Pain for Deribit Optionsto Max Pain for Deribit Options5da8a587e5
to4c5132fd57
4c5132fd57
tob8512edd1b
b8512edd1b
to2cb7b505e1
Max Pain for Deribit Optionsto Max Pain for Deribit OptionsMax Pain for Deribit Optionsto Max Pain for Deribit Options2cb7b505e1
to18e6b8beaa
Step 1:
From your project repository, check out a new branch and test the changes.Step 2:
Merge the changes and update on Gitea.