public static IDataSeries<GoogleTrend> GoogleTrends(this DataMarketPlace marketPlace,
//market.GoogleTrends(TimeSpan.FromDays(365*5), "BTC") in strategy Setup method
public class GoogleTrendOptions
public abstract class StrategyBase : IStrategy
//extension method so that we can define Google Trends stream as
您大概已经留意到,这里没有毗连到实际数据源的实现。依赖于第三方提供者的代码位于数据流驱动措施会合,它直接由计策执行处事引用。这样,计策只包括对数据流的域模子的引用,我们可以随时进级数据流驱动措施实现,而不消担忧是否有一些变动会对实现的计策发生负面影响。
端口和适配器使Signals框架中的域函数很是小,因为它们只包括将参数通报给端口的代码。这种要领合用于已经成为Signals框架API一部门的要领。但我们需要一个差异的办理方案来支持基于数据和指标市场的各类订阅模子。我们不但愿在市场上每次引入新的技能指标或新的数据流范例时,都宣布Signals框架库的新版本。
public DateTime Time => StrategyTimeProvider.CurrentTime;
在下面的代码中,您可以看到GoogleTrends数据流的一个假设实现,它可以用于对给定市场的情绪阐明。它包括GoogleTrend和googletrendoptions域模子的界说。尚有一个datamarketplace扩展要领GoogleTrends(TimeSpan trendStartOffset, string currency)的实现,它为计策开拓人员提供了一个很好的接口,可以在一个emarketplace中指定谷歌趋势流。GoogleTrends(5年,“BTC”)API挪用。
string currency)
{
您大概想知道,当计策基类中有诸如EnterLongLimit之类的要领或诸如Time之类的属性时,我们如何才气声称库是轻量级的。虽然,必需有一些代码认真建设顺序并将其一直宣布到UI,以及Time属性背后的一些逻辑中,它将计策时间与所有数据流同步。虽然,您是对的,可是实际执行逻辑的代码位于Signals框架代码库之外。在库中,我们只依赖于端口的接口,如下面的代码片断所示。
public abstract void Setup(DataMarketplace data, IndicatorsMarketplace indicators);
{
{
public IOrder EnterLongLimit(double limitPrice, string label = null)
public class GoogleTrend
public TimeSpan TrendStartOffset { set; set; }
var options = new GoogleTrendOptions
public string Currency { get; set; }
{
public string Currency { get; set; }
设计成就
这是我们关于Signals平台技能方面系列文章的续篇。让我们再次深入研究一个运行很多靠山历程的系统的根基道理,它答允任何人简朴地建设、测试和陈设计策来加强加密钱币生意业务体验。
}public static class GoogleTrendsDataMarketPlaceExtension
TimeSpan trendStartOffset,
{
public DateTime Timestamp { get; set; }
自从我们开始开拓Signals平台以来,我们一直专注于界说生意业务模子的焦点组件——Signals框架。我们的方针是使库很是不变,只有当我们利用对客户端有利的一些特性扩展API时,才需要宣布库的新版本。我们知道我们不能每次提高某个要领的机能或修复某个bug时都强迫我们的生意业务员进级他们的框架版本。另一方面,我们还但愿框架很是机动,可以或许支持各类数据流和指示器组合,而不需要修改库代码自己。 本文展示了如何应用六边形
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。