forked from askmike/gekko
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplugins.js
129 lines (128 loc) · 3.21 KB
/
plugins.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
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// All plugins supported by Gekko.
//
// Required parameters per plugin.
//
// name: Name of the plugin
// slug: name of the plugin mapped to the config key. Expected
// filename to exist in `gekko/plugins/` (only if path is not
// specified)
// async: upon creating a new plugin instance, does something async
// happen where Gekko needs to wait for? If set to true, the
// constructor will be passed a callback which it should execute
// as soon as Gekko can continue.
// modes: a list indicating in what Gekko modes this plugin is
// allowed to run. Realtime is during a live market watch and
// backtest is during a backtest.
//
// Optional parameters per plugin.
//
// description: text describing the plugin.
// dependencies: a list of external npm modules this plugin requires to
// be installed.
// emits: events emitted by this plugin that other plugins can subscribe to.
// path: path of file of the plugin (overwrites `gekko/plugins/{slug}`)
var plugins = [
{
name: 'SQLite Datastore',
description: 'Store candles, trades and advices in a SQLite database',
slug: 'sqliteWriter',
async: true,
modes: ['realtime'],
dependencies: [{
module: 'sqlite3',
version: '3.1.3'
}],
path: 'sqlite/writer',
version: 0.1,
},
{
name: 'Trading Advisor',
description: 'Calculate trading advice',
slug: 'tradingAdvisor',
async: true,
modes: ['realtime', 'backtest'],
emits: ['advice']
},
{
name: 'IRC bot',
description: 'IRC module lets you communicate with Gekko on IRC.',
slug: 'ircbot',
async: false,
modes: ['realtime'],
dependencies: [{
module: 'irc',
version: '0.3.6'
}]
},
{
name: 'XMPP bot',
description: 'XMPP module lets you communicate with Gekko on Jabber.',
slug: 'xmppbot',
async: false,
silent: false,
modes: ['realtime'],
dependencies: [{
module: 'node-xmpp',
version: '0.12.0'
}]
},
{
name: 'Campfire bot',
description: 'Lets you communicate with Gekko on Campfire.',
slug: 'campfire',
async: false,
modes: ['realtime'],
dependencies: [{
module: 'ranger',
version: '0.2.4'
}]
},
{
name: 'Mailer',
description: 'Sends you an email everytime Gekko has new advice.',
slug: 'mailer',
async: true,
modes: ['realtime'],
dependencies: [{
module: 'emailjs',
version: '0.3.6'
}, {
module: 'prompt-lite',
version: '0.1.1'
}]
},
{
name: 'Trader',
description: 'Follows the advice and create real orders.',
slug: 'trader',
async: true,
modes: ['realtime']
},
{
name: 'Advice logger',
description: '',
slug: 'adviceLogger',
async: false,
silent: true,
modes: ['realtime', 'backtest']
},
{
name: 'Profit Simulator',
description: 'Paper trader that logs fake profits.',
slug: 'profitSimulator',
async: false,
modes: ['realtime', 'backtest']
},
{
name: 'Redis beacon',
slug: 'redisBeacon',
description: 'Publish events over Redis Pub/Sub',
async: true,
modes: ['realtime'],
dependencies: [{
module: 'redis',
version: '0.10.0'
}]
}
];
module.exports = plugins;