forked from tslab-hub/handlers
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathTradeStatisticsExtendedExtremumPriceHandler.cs
More file actions
90 lines (75 loc) · 4.25 KB
/
TradeStatisticsExtendedExtremumPriceHandler.cs
File metadata and controls
90 lines (75 loc) · 4.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
using System.Collections.Generic;
using System.ComponentModel;
using TSLab.Script.Handlers.Options;
namespace TSLab.Script.Handlers
{
// TODO: английское описание
[HandlerCategory(HandlerCategories.ClusterAnalysis)]
[HelperName("Trade Statistics Extended Extremum Price 1", Language = Constants.En)]
[HelperName("Расширенная экстремальная цена торговой статистики 1", Language = Constants.Ru)]
[InputsCount(1)]
[Input(0, TemplateTypes.TRADE_STATISTICS | TemplateTypes.LAST_CONTRACTS_TRADE_STATISTICS)]
[OutputsCount(1)]
[OutputType(TemplateTypes.DOUBLE)]
[Description("Блок 'Расширенная экстремальная цена торговой статистики 1' показывает максимальное значение торговой статистики при экстремальной цене.")]
[HelperDescription("", Constants.En)]
public sealed class TradeStatisticsExtendedExtremumPriceHandler : TradeStatisticsBaseExtendedExtremumPriceHandler, ITradeStatisticsExtendedExtremumPriceHandler
{
[HandlerParameter(true, NotOptimized = true)]
public bool UseTrimTradesCount { get; set; }
[HandlerParameter(true, "0", Min = "0", Max = "2147483647", Step = "1", EditorMin = "0")]
public int TrimTradesCount { get; set; }
[HandlerParameter(true, NotOptimized = true)]
public bool UseTrimQuantity { get; set; }
[HandlerParameter(true, "0", Min = "0", Max = "999999999999999", Step = "1", EditorMin = "0")]
public double TrimQuantity { get; set; }
[HandlerParameter(true, NotOptimized = true)]
public bool UseTrimAskQuantity { get; set; }
[HandlerParameter(true, "0", Min = "0", Max = "999999999999999", Step = "1", EditorMin = "0")]
public double TrimAskQuantity { get; set; }
[HandlerParameter(true, NotOptimized = true)]
public bool UseTrimBidQuantity { get; set; }
[HandlerParameter(true, "0", Min = "0", Max = "999999999999999", Step = "1", EditorMin = "0")]
public double TrimBidQuantity { get; set; }
[HandlerParameter(true, NotOptimized = true)]
public bool UseTrimDeltaAskBidQuantity { get; set; }
[HandlerParameter(true, "0", Min = "-999999999999999", Max = "999999999999999", Step = "1")]
public double TrimDeltaAskBidQuantity { get; set; }
[HandlerParameter(true, "false", NotOptimized = true)]
public bool UseTrimRelativeDeltaAskBidQuantityPercent { get; set; }
[HandlerParameter(true, "0", Min = "-100", Max = "100", Step = "1")]
public double TrimRelativeDeltaAskBidQuantityPercent { get; set; }
[HandlerParameter(true, nameof(ComparisonMode.GreaterOrEqual))]
public ComparisonMode TrimComparisonMode { get; set; }
public override IList<double> Execute(IBaseTradeStatisticsWithKind tradeStatistics)
{
return Execute(
tradeStatistics,
new TrimContext(UseTrimTradesCount, TrimTradesCount, TrimComparisonMode),
new TrimContext(UseTrimQuantity, TrimQuantity, TrimComparisonMode),
new TrimContext(UseTrimAskQuantity, TrimAskQuantity, TrimComparisonMode),
new TrimContext(UseTrimBidQuantity, TrimBidQuantity, TrimComparisonMode),
new TrimContext(UseTrimDeltaAskBidQuantity, TrimDeltaAskBidQuantity, TrimComparisonMode),
new TrimContext(UseTrimRelativeDeltaAskBidQuantityPercent, TrimRelativeDeltaAskBidQuantityPercent, TrimComparisonMode));
}
protected override string GetParametersStateId()
{
return string.Join(
".",
base.GetParametersStateId(),
UseTrimTradesCount,
TrimTradesCount,
UseTrimQuantity,
TrimQuantity,
UseTrimAskQuantity,
TrimAskQuantity,
UseTrimBidQuantity,
TrimBidQuantity,
UseTrimDeltaAskBidQuantity,
TrimDeltaAskBidQuantity,
UseTrimRelativeDeltaAskBidQuantityPercent,
TrimRelativeDeltaAskBidQuantityPercent,
TrimComparisonMode);
}
}
}