-
Notifications
You must be signed in to change notification settings - Fork 70
/
strategy_manager.js
49 lines (48 loc) · 1.8 KB
/
strategy_manager.js
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
var vars = require(__dirname + "/vars.js")
const path = require("path")
const strategyGenerator = require(__dirname + "/strategy_generator.js")
module.exports = {
init: function() {
var strategiesSettings = require(path.resolve(vars.options.strategiesDir, "index.js"))
var strategies = strategiesSettings.strategies
var strategiesArray = []
for(var strategyId of Object.keys(strategies)) {
var strategy = new strategyGenerator.create(strategyId, strategies[strategyId].name)
strategy.setTargetMarket(strategies[strategyId].targetMarket)
strategy.setTargetTokens(strategies[strategyId].targetTokens)
strategy.setExcludeTokens(strategies[strategyId].excludeTokens)
strategy.setPaperTrading(strategies[strategyId].paperTrading)
strategy.setBuyAmountMarket(strategies[strategyId].buyAmountMarket)
strategy.setBuyPercentageAccount(strategies[strategyId].buyPercentageAccount)
strategy.setMaxLoss(strategies[strategyId].maxLoss)
strategy.setProfitTarget(strategies[strategyId].profitTarget)
strategy.setMaxTradingPairs(strategies[strategyId].maxTradingPairs)
strategiesArray.push(strategy)
}
vars.strategies = strategiesArray
},
strategy: function(strategyId) {
for(var i = 0; i < vars.strategies.length; ++i) {
var strategy = vars.strategies[i]
if(strategy.id() == strategyId) return strategy
}
return null
},
listStrategies: function(onlyActive = false) {
if(onlyActive) {
var strategiesArray = []
for(var i = 0; i < vars.strategies.length; ++i) {
var strategy = vars.strategies[i]
if(strategy.active()) strategiesArray.push(strategy)
}
return strategiesArray
}
return vars.strategies
},
process: function() {
for(var i = 0; i < vars.strategies.length; ++i) {
var strategy = vars.strategies[i]
if(strategy.active()) strategy.process()
}
}
}