Skip to content

Instantly share code, notes, and snippets.

@bitkominer
Created December 7, 2018 08:28
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 bitkominer/c6bd5c43301dff7c48129757c4a8f343 to your computer and use it in GitHub Desktop.
Save bitkominer/c6bd5c43301dff7c48129757c4a8f343 to your computer and use it in GitHub Desktop.
Trading bot using web console, to use for IDR market in DigitalExchange.id.
//StormTrade-DEXID, ver 1.0
//----------------------
//Script for auto trading, pair IDR-BTC, digitalexchange.id
//paste into web console in dev tool (firefox/chrome)
//----------------------
//created by bitko, 2018
function letsTrade() {
//variables declaration
var data = {};
data.rand = Math.floor((Math.random() * 10) + 1);
data.lowestText = $('#sell-orders-table > tbody > tr.f-w-700 > td.text-left.text-sell').text();
data.lowestAsk = parseFloat(data.lowestText.split('.').join(''));
data.secAskText = $('#sell-orders-table > tbody > tr:nth-child(2) > td.text-left.text-sell').text();
data.secondAsk = parseFloat(data.secAskText.split('.').join(''));
data.highestText = $('#buy-orders-table > tbody > tr:nth-child(1) > td.text-left.text-buy').text();
data.highestBid = parseFloat(data.highestText.split('.').join(''));
data.secBidText = $('#buy-orders-table > tbody > tr:nth-child(2) > td.text-left.text-buy').text();
data.secondBid = parseFloat(data.secBidText.split('.').join(''));
data.lastText = $('#last_price_label').text();
data.lastPrice = parseFloat(data.lastText.split('.').join(''));
data.dayHiText = $('#24h_high_label').text();
data.dayMax = parseFloat(data.dayHiText.split('.').join(''));
data.dayLoText = $('#24h_low_label').text();
data.dayMin = parseFloat(data.dayLoText.split('.').join(''));
data.minDelta = (data.dayMax - data.dayMin) * 0.05;
data.delta = data.lowestAsk - data.highestBid;
data.deltaAsk = data.lowestAsk - data.secondAsk;
data.deltaBid = data.highestBid - data.secondBid;
data.margin = data.delta - data.minDelta;
data.turbulance = data.lowestAsk - data.highestBid;
data.baseText = $('#form_buy_limit > div:nth-child(1) > label.col-md-8.control-label.text-right > span > a').text();
data.baseBalance = parseFloat(data.baseText.split('.').join(''));
data.assetText = $('#form_sell_limit > div:nth-child(1) > label.col-md-8.control-label.text-right > span > a').text();
data.assetBalance = parseFloat(data.assetText.split(',').join('.'));
data.randsat = (Math.round(Math.random() * (30 - 1)) + 1) * 100;
data.minthreshold = 100101;
if(data.margin < 0){
if((data.margin * -1) > data.deltaBid){
data.buyprice = data.lowestAsk - (data.minDelta + data.randsat);
}else if((data.margin * -1) < data.deltaBid){
data.buyprice = data.secondBid + 100;
}
if((data.margin * -1) > data.deltaAsk){
data.sellprice = data.highestBid + ((data.minDelta*0.3) + data.randsat);
}else if((data.margin * -1) < data.deltaAsk){
data.sellprice = data.secondAsk - 100;
}
}else if (data.margin > 0){
if(data.margin > data.deltaBid){
data.buyprice = data.highestBid + 100;
}else if(data.margin < data.deltaBid){
data.buyprice = data.secondBid + 100;
}
if(data.margin > data.deltaAsk){
data.sellprice = data.lowestAsk - 100;
}else if(data.margin < data.deltaAsk){
data.sellprice = data.secondAsk - 100;
}
}
if(data.turbulance < 0){
//data.buyprice = parseFloat(data.lastPrice) - (parseFloat(data.minDelta)*3);
//data.sellprice = parseFloat(data.lastPrice) + (parseFloat(data.minDelta)*1.5);
data.buyprice = data.lowestAsk + 100;
data.sellprice = data.highestBid - 100;
}
data.minorder = 50500;
data.buyamount = data.baseBalance * 0.15;
if(data.buyamount < data.minorder) {
data.buyamount = data.baseBalance;
}
data.sellamounts = data.assetBalance * 0.35;
if((data.sellamounts*data.sellprice) < data.minorder) {
data.sellamountt = data.assetBalance.toString();
data.sellamount = data.sellamountt.split('.').join(',')
}else{
data.sellamountt = data.sellamounts.toString();
data.sellamount = data.sellamountt.split('.').join(',')
}
if (data.baseBalance > data.minthreshold) {
$("#buy_price_limit").val(data.buyprice);
$("#buy_amount_limit").val(data.buyamount);
$("#buy_limit").click();
(function() {
'use strict';
// Might was well save this in case you need it later
var oldConfirm = window.confirm;
window.confirm = function (e) {
// TODO: could put additional logic in here if necessary
return true;
};
} ());
}
if ((data.assetBalance * data.sellprice) > (data.minthreshold * 0.5)) {
$("#sell_price_limit").val(data.sellprice);
$("#sell_amount_limit").val(data.sellamount);
$("#sell_limit").click();
(function() {
'use strict';
// Might was well save this in case you need it later
var oldConfirm = window.confirm;
window.confirm = function (e) {
// TODO: could put additional logic in here if necessary
return true;
};
} ());
}
//cancell all orders when both balances are zero, then restart new orders
if(data.assetBalance < data.minthreshold && data.baseBalance < data.minthreshold){
$('td:nth-child(7) > button').click();
}
//empty variables value
data=null;
}
//main script for infinite loop start after this line
(function loop() {
var rand = Math.round(Math.random() * (20000 - 500)) + 500;
setTimeout(function() {
letsTrade();
loop();
}, rand);
}());
//---------end of script--------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment