Last active
August 26, 2015 13:01
-
-
Save Anderson-Juhasc/6cb94e083e6445512569 to your computer and use it in GitHub Desktop.
dema talib
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var talib = require("talib"); | |
var fs = require("fs"); | |
var _ = require("lodash"); | |
var Q = require("q"); | |
// Display all available indicator function names | |
//var functions = talib.functions; | |
//for (i in functions) { | |
// console.log(functions[i].name); | |
//} | |
// Display module version | |
//console.log(); | |
//console.log("TALib Version: " + talib.version); | |
// Load market data | |
var marketContents = fs.readFileSync('marketdata.json','utf8'); | |
var marketData = JSON.parse(marketContents); | |
// execute SMA indicator function with time period 180 | |
function ta(name, inReal, period, callback) { | |
talib.execute({ | |
name: name, | |
startIdx: 0, | |
endIdx: inReal.close.length - 1, | |
inReal: inReal.close, | |
optInTimePeriod: period | |
}, function (data) { | |
if (typeof(data.result) == 'undefined') { | |
callback([]); | |
} else { | |
callback(data.result.outReal); | |
} | |
}); | |
} | |
var demaData14; | |
var dema14 = function() { | |
var d = Q.defer(); | |
ta('DEMA', marketData, 14, function(result) { | |
demaData14 = result; | |
d.resolve(); | |
}); | |
return d.promise; | |
}; | |
var demaData21; | |
var dema21 = function() { | |
var d = Q.defer(); | |
ta('DEMA', marketData, 21, function(result) { | |
demaData21 = result; | |
d.resolve(); | |
}); | |
return d.promise; | |
}; | |
var buy_treshold = 0.25; | |
var sell_treshold = 0.25; | |
Q.all([ dema14(), dema21()]).done(function() { | |
var short = _.last(demaData14); | |
var long = _.last(demaData21); | |
var diff = 100 * (short - long) / ((short + long) / 2) | |
console.log(diff); | |
if (diff > buy_treshold) { | |
console.log("Buy"); | |
} else { | |
if (diff < -sell_treshold) { | |
console.log("Sell"); | |
} | |
} | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Q.all([ dema14(), dema21()]).done(function() {
var long = _.last(demaData21);
});