Skip to content

Instantly share code, notes, and snippets.

@Anderson-Juhasc
Last active August 26, 2015 13:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Anderson-Juhasc/6cb94e083e6445512569 to your computer and use it in GitHub Desktop.
Save Anderson-Juhasc/6cb94e083e6445512569 to your computer and use it in GitHub Desktop.
dema talib
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");
}
}
});
@samuelhei
Copy link

Q.all([ dema14(), dema21()]).done(function() {
var long = _.last(demaData21);

    var diff = 100 * (short - long) / ((short + long) / 2)

    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