-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathStrategy.cs
More file actions
72 lines (57 loc) · 1.82 KB
/
Strategy.cs
File metadata and controls
72 lines (57 loc) · 1.82 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
using SingleRangeBar.Strategy.Marketry;
using SingleRangeBar.Strategy.Marketry.Logging;
using SingleRangeBar.Strategy.Marketry.Quantower;
using SingleRangeBar.Strategy.Marketry.Quantower.Logging;
using SingleRangeBar.Strategy.Settings;
using TradingPlatform.BusinessLayer;
using Asset = SingleRangeBar.Strategy.Marketry.Quantower.Models.Asset;
using IConfiguration = SingleRangeBar.Strategy.Settings.IConfiguration;
namespace SingleRangeBar.Strategy;
public class Strategy : TradingPlatform.BusinessLayer.Strategy
{
private readonly IConfiguration configuration;
private IAlgo algo;
public override IList<SettingItem> Settings
{
get
{
var settings = base.Settings;
settings.AddRange(configuration.Settings);
return settings;
}
set
{
base.Settings = value;
configuration.Update(value);
}
}
public Strategy()
{
Name = "Single Range Bar";
Description = "Simple. When it goes up, Buy. When it goes down, Sell.";
configuration = new Configuration();
}
protected override void OnCreated()
{
Logger.Initialize(new QuantowerLogger(this));
Logger.Instance.Log("Created strategy");
}
protected override void OnRemove()
{
Logger.Reset();
}
protected override void OnRun()
{
Logger.Instance.Log("Running strategy");
Asset.Initialize(configuration.Symbol);
var platform = new Quantower(Core.Instance);
var broker = new Broker(Core.Instance, configuration.Account, configuration.Symbol);
algo = new Algo(platform, broker, Asset.Instance, Logger.Instance, configuration);
algo.Start();
}
protected override void OnStop()
{
algo.Stop();
Asset.Reset();
}
}