Warning: session_start(): open(/var/lib/php/sessions/sess_35mqu3vvlm3omqhqim7a4psnmq, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
persistable sclass TickerSequences is IntSize {
settable S market; // e.g. "TRBUSDT"
new L tickers;
void add(TickerSequence ticker) {
tickers.add(ticker);
}
TickerSequence get(int i) { ret tickers.get(i); }
void sort {
sortInPlaceByCalculatedField(tickers, ->. startTime());
}
public int size() { ret tickers.size(); }
toString {
ret commaCombine(
spaceCombine(
n2(tickers, " ticker sequence"),
empty(market) ? null : "for " + market),
"total time: " + formatDouble1(toDays(totalTime())) + " days");
}
long totalTime() {
ret longSum(map(tickers, ticker -> ticker.timeRange().length()));
}
void merge(double maximumGapSeconds default 120) {
sort();
for (int i = 0; i+1 < l(tickers); i++) {
var t1 = tickers.get(i);
var t2 = tickers.get(i+1);
if (t2.startTime()-t1.endTime() <= fromSeconds(maximumGapSeconds)) {
t1.add(t2);
tickers.remove(i+1);
}
}
}
}