mirror of
https://github.com/multipleof4/KalBot.git
synced 2026-03-17 05:51:02 +00:00
Feat: Add orderbook context to strategy base
This commit is contained in:
@@ -2,21 +2,26 @@
|
|||||||
* Base strategy class. All strategies extend this.
|
* Base strategy class. All strategies extend this.
|
||||||
*
|
*
|
||||||
* Strategies receive market state updates and emit trade signals.
|
* Strategies receive market state updates and emit trade signals.
|
||||||
* Signals are { side: 'yes'|'no', price: number, size: number, reason: string }
|
* Signals are { side: 'yes'|'no', price: number, maxPrice: number, size: number, reason: string }
|
||||||
|
*
|
||||||
|
* `price` = ideal/target price in cents
|
||||||
|
* `maxPrice` = maximum acceptable fill price (slippage tolerance)
|
||||||
*/
|
*/
|
||||||
export class BaseStrategy {
|
export class BaseStrategy {
|
||||||
constructor(name, config = {}) {
|
constructor(name, config = {}) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
this.enabled = true;
|
this.enabled = true;
|
||||||
this.mode = 'paper'; // 'paper' | 'live'
|
this.mode = 'paper';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called on every market state update.
|
* Called on every market state update.
|
||||||
|
* @param {object} marketState - includes yesPct, noPct, orderbook, ticker, closeTime, etc.
|
||||||
|
* @param {string} caller - 'paper' | 'live' — so strategies can track per-caller state
|
||||||
* Return a signal object or null.
|
* Return a signal object or null.
|
||||||
*/
|
*/
|
||||||
evaluate(marketState) {
|
evaluate(marketState, caller = 'paper') {
|
||||||
throw new Error(`${this.name}: evaluate() not implemented`);
|
throw new Error(`${this.name}: evaluate() not implemented`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user