You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bid/ask data in OHLCV files: a feed that quotes both sides can now store the ask side in the record itself. OHLCV v2 gains four columns, ask_open, ask_high, ask_low and ask_close. Each is stored as a delta from the bid price, so the record grows from 36 to 52 bytes, and only in files that hold an ask.
The writer adds the columns on the first bar that carries OHLCV.ask. Bars written earlier read back with an all-na ask.
Readers expose has_ask, and CSV/JSON exports include the ask columns.
Aggregation folds the ask side like the bid side, but only for periods where every source bar quotes it.
bid and ask series: they are real on every bar with a quoted ask. bid is the bar's close and ask its ask close. On bars without an ask both stay na, as on TradingView's bar timeframes.
Spread costs in the strategy simulator: the new strategy(spread_type=...) setting is a PyneCore extension. On a bid-priced feed, a buy then pays the spread.
strategy.spread.none (default): the simulator works as before.
strategy.spread.trade: buys fill at the ask, sells at the bid, and every order is triggered by the side it trades on. Buy limits and buy stops trigger when the ask reaches them and fill at their own level. Sell orders trigger on the bid.
strategy.spread.opposite: stops trigger on the opposite side. A buy stop triggers on the bid and fills one spread above its level. A sell stop triggers on the ask and fills one spread below. Limits work as in trade mode.
Trailing stops follow the side that triggers them.
The spread of a bar comes from its ask side. A bar without an ask uses syminfo.avg_spread, and with neither, no spread is charged.
Opt-in provider data:ProviderPlugin.extra_data lets a provider declare an ExtraData, a label plus a help text. It describes the per-bar data the provider fetches only on request, such as an ask side rebuilt from tick history. Front-ends can then offer the switch where it exists. --extra-data covers this kind of data, and an ask side delivered with the bars is always stored.
Continued downloads keep the ask side: continuing a file that already stores the ask side keeps fetching it, so the new bars no longer get an empty ask. A truncated download starts over.
Fixes
Symbol info between runs: optional provider details (avg_spread, taker_fee, maker_fee) that the current symbol lacks no longer keep the value of an earlier run in syminfo.
Live trading: after the boundary watchdog has closed a bar slot because the feed stalled, ticks the feed still delivers for that slot are dropped. They used to reach the script runner, which then gave misleading warnings about intra-bar updates and bar-close-only execution. The drop is reported once per slot at INFO level.