forked from blinktrade/algorithm-trading
-
Notifications
You must be signed in to change notification settings - Fork 0
/
example.algo
113 lines (97 loc) · 2.88 KB
/
example.algo
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
/*
-----BEGIN ALGO DEFINITION-----
{
"id": "example",
"description": "example_algo",
"params": [
{"name":"qty", "label":"Qty", "type":"text", "value":"0", "validator":"required; validateNumber; validateMin 0; validateMax 10;" },
{"name":"price", "label":"Price", "type":"text", "value":"0", "validator":"required; validateNumber; validateMin 0; validateMax 1000;" }
],
"creator": "example.MyBlinkTradeAlgorithm.create",
"destructor": "example.MyBlinkTradeAlgorithm.destroy"
}
-----END ALGO DEFINITION-----
-----BEGIN ALGO-----
/**/
/**
* Namespace. Replace example for something unique.
*/
var example = {};
/**
* @param {Object} application
* @param {string} symbol
* @constructor
*/
example.MyBlinkTradeAlgorithm = function(application, symbol){
console.log('example.MyBlinkTradeAlgorithm');
console.log(symbol);
this.application_ = application;
console.log(this.application_.getOpenOrders());
};
/**
* @param {Application} application
* @param {string} symbol
* @return {example.MyBlinkTradeAlgorithm}
*/
example.MyBlinkTradeAlgorithm.create = function(application,symbol) {
return new example.MyBlinkTradeAlgorithm(application,symbol);
};
/**
* @param {Object} params
*/
example.MyBlinkTradeAlgorithm.prototype.start = function(params) {
console.log('start');
console.log(params);
};
example.MyBlinkTradeAlgorithm.prototype.stop = function() {
console.log('stop');
};
/**
* @param {Object.<string,*>} params
*/
example.MyBlinkTradeAlgorithm.prototype.onUpdateParams = function(params) {
console.log('onUpdateParams');
console.log(params);
console.log(this.application_.getOpenOrders());
// just an example showing how to send an order.
var qty = parseInt( parseFloat( params['qty'] ) * 1e8,10 );
var price = parseInt( parseFloat( params['price'] ) * 1e8,10 );
this.application_.sendBuyLimitedOrder( qty, price );
};
/**
* @param {Array.<Array.<number>>} order_book
*/
example.MyBlinkTradeAlgorithm.prototype.onOrderBookChange = function(order_book) {
console.log('onOrderBookChange');
console.log(order_book);
};
/**
* @param {Object.<string,string|number>} report
*/
example.MyBlinkTradeAlgorithm.prototype.onExecutionReport = function(report) {
console.log('onExecutionReport');
console.log(report);
};
/**
* @param {Object.<string,string|number>} trade
*/
example.MyBlinkTradeAlgorithm.prototype.onTrade = function(trade) {
console.log('onTrade');
console.log(trade);
};
/**
* @param {Object.<string,string|number>} ticker
*/
example.MyBlinkTradeAlgorithm.prototype.onTicker = function(ticker) {
console.log('onTicker');
console.log(ticker);
};
/**
* @param {string} currency
* @param {number} balance
*/
example.MyBlinkTradeAlgorithm.prototype.onBalanceUpdate = function(currency, balance) {
console.log('onBalanceUpdate');
console.log(currency + ':' + balance);
};
//-----END ALGO-----