-
Notifications
You must be signed in to change notification settings - Fork 6
/
Custom_PaintBar.Indicator.CS
50 lines (42 loc) · 1.5 KB
/
Custom_PaintBar.Indicator.CS
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
using System;
using System.Drawing;
namespace PowerLanguage.Indicator
{
[SameAsSymbol(true)]
public class Custom_PaintBar : IndicatorObject
{
private IPlotObject Plot1;
private IPlotObject Plot2;
public Custom_PaintBar(object ctx) :
base(ctx) {}
private ISeries<bool> criteria { get; set; }
protected override void Create(){
Plot1 =
AddPlot(new PlotAttributes("Plot1", EPlotShapes.BarHigh,
Color.Magenta, Color.Empty, 0,
0,
true));
Plot2 =
AddPlot(new PlotAttributes("Plot2", EPlotShapes.BarLow,
Color.Magenta, Color.Empty, 1,
1,
true));
}
protected override void StartCalc(){
criteria =
new Lambda<Boolean>(
_bb => (PublicFunctions.DoubleLess(Bars.High[_bb], Bars.High[(1 + _bb)]) &&
PublicFunctions.DoubleGreater(Bars.Low[_bb], Bars.Low[(1 + _bb)])));
}
protected override void CalcBar(){
if (criteria[0]){
Plot1.Set(0, Bars.High[0]);
Plot2.Set(0, Bars.Low[0]);
Alerts.Alert();
}
else{
Plot1.Reset();
}
}
}
}