1- import { Subject , Source , Operator , singlerun } from "react-declarative" ;
1+ import { Subject , Source , singlerun } from "react-declarative" ;
22
3- import dayjs , { Dayjs } from "dayjs" ;
3+ import dayjs from "dayjs" ;
44
5- import getTimeLabel from "../../utils/getTimeLabel" ;
65import playSound , { Sound } from "../../utils/playSound" ;
76
87import { doNotify , doTrade , doRollback , errorSubject } from "./api" ;
98
10- import { CC_FREEZE_SECONDS , CC_PLAYSOUND_MINUTES , CC_TRADE_AMOUNT , CC_TRADE_PERCENT } from "../../config/params" ;
9+ import { CC_PLAYSOUND_MINUTES , CC_TRADE_AMOUNT , CC_TRADE_PERCENT } from "../../config/params" ;
1110
1211export const predictEmitter = new Subject < "train" | "upward" | "downward" | "untrained" | null > ( ) ;
1312
@@ -34,24 +33,9 @@ soundEmitter.connect((stamp) => {
3433 }
3534} ) ;
3635
37- const upwardEmitter = Source . multicast ( ( ) => {
38- let lastDownward : Dayjs | null = null ;
39- return predictEmitter
40- . operator ( Operator . skip ( 1 ) )
41- . tap ( ( trend ) => {
42- if ( trend === "downward" ) {
43- lastDownward = dayjs ( ) ;
44- }
45- } )
46- . filter ( ( ) => {
47- if ( lastDownward && dayjs ( ) . diff ( lastDownward , 'second' ) <= CC_FREEZE_SECONDS ) {
48- console . log ( `ambiguously rise prediction skipped ${ getTimeLabel ( new Date ( ) ) } ` )
49- return false ;
50- }
51- return true ;
52- } )
53- . filter ( ( trend ) => trend === "upward" )
54- } ) ;
36+ const upwardEmitter = Source . multicast ( ( ) => predictEmitter
37+ . filter ( ( trend ) => trend === "upward" )
38+ ) ;
5539
5640const downwardEmitter = Source . multicast ( ( ) => predictEmitter
5741 . filter ( ( trend ) => trend === "downward" )
0 commit comments