C# 如何使用RX.NET查找价格反转
我正在学习RX,并试图看看是否可以使用它解决以下问题: 我有一系列加密硬币的价格,我正试图找出价格反转何时开始在泵期间发生。在这些泵期间,硬币的价格上升得非常快,当它开始下降时,我想做一个动作(卖出订单)。然而,有时它会停下来一点,然后再往上走,但大多数情况下,当它开始下降时,它真的会下降 我已经设法让股票代码流运行,并计算它们之间的一些增量,这种方式可能会让你畏缩(我有点误用了扫描方法):C# 如何使用RX.NET查找价格反转,c#,system.reactive,C#,System.reactive,我正在学习RX,并试图看看是否可以使用它解决以下问题: 我有一系列加密硬币的价格,我正试图找出价格反转何时开始在泵期间发生。在这些泵期间,硬币的价格上升得非常快,当它开始下降时,我想做一个动作(卖出订单)。然而,有时它会停下来一点,然后再往上走,但大多数情况下,当它开始下降时,它真的会下降 我已经设法让股票代码流运行,并计算它们之间的一些增量,这种方式可能会让你畏缩(我有点误用了扫描方法): 现在我想计算一下,当N个连续的增量在T个时间内小于X个数量时,以及它们在做什么。我想我得设法把他们分组,
现在我想计算一下,当N个连续的增量在T个时间内小于X个数量时,以及它们在做什么。我想我得设法把他们分组,但我现在不知所措 您没有严格定义您的问题。但您可能会在这些运算符的某些组合中找到解决方案:
- -根据计数、时间跨度或自定义逻辑将可观察项分组到列表中
- -与缓冲区相同,但不是分组到列表中,而是分组到可观察的
- -将每件物品包装在一个可观察的包装内,并贴上一张邮票,告诉您距离最后一件物品已经过了多少时间
-用于累积状态(如您所演示)扫描
- -根据计数、时间跨度或自定义逻辑将可观察项分组到列表中
- -与缓冲区相同,但不是分组到列表中,而是分组到可观察的
- -将每件物品包装在一个可观察的包装内,并贴上一张邮票,告诉您距离最后一件物品已经过了多少时间
-用于累积状态(如您所演示)扫描
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;
})