【发布时间】:2017-06-25 21:36:49
【问题描述】:
我正在学习 RX,并试图看看我是否可以用它来解决以下问题: 我有一系列加密货币价格,我试图找出价格反转何时开始在暴涨期间发生。在这些暴涨期间,代币的价格上涨得非常快,当它开始下跌时,我想做一个动作(卖出订单)。然而,有时它会停顿一下,然后进一步上升,但大多数情况下,当它开始下降时,它就真的下降了。
我已经设法让股票流继续运行并计算它们之间的一些增量,这可能会让你畏缩(我有点误用 Scan 方法):
public class Ticker
{
public decimal Ask { get; set; }
public decimal Bid { get; set; }
public decimal Delta { get; set; }
public decimal DeltaPercent { get; set; }
public DateTime Time { get; set; }
public override string ToString()
{
return $"a: {Ask} B:{Bid} D:{Delta} DP:{DeltaPercent} T:{Time}";
}
}
res.AsObservable().DistinctUntilChanged(x => x.Ask)
.Scan((state, t) =>
{
var d = t.Ask-state.Ask;
t.Delta = d;
t.DeltaPercent = t.Delta/state.Ask;
return t;
})
现在我想知道 N 个连续增量在 T 时间内何时小于 X 量,以及它们何时执行某项操作。我想我必须以某种方式将它们分组,但此刻我不知所措。
【问题讨论】:
标签: c# system.reactive