Skip to content

Instantly share code, notes, and snippets.

@Vany
Last active March 27, 2018 14:22
Show Gist options
  • Save Vany/e9636117bb621414b1e555b3e887a4f2 to your computer and use it in GitHub Desktop.
Save Vany/e9636117bb621414b1e555b3e887a4f2 to your computer and use it in GitHub Desktop.
qtbitcointrader alide stop script
var coin = "BTC";
var currency = "USD";
var cmds = [ // this is like a programm, o is function
{ o : sladedown, p : 40 },
{ o : beep, p : 2020 }
];
trader.on("LastPrice").changed()
{
if (cmds.length > 0) {
print(">>" + value);
while (cmds.length>0 && cmds[0].o(cmds[0], symbol, value))
cmds.shift();
} else
trader.groupDone();
}
function print(str) {
trader.log(str);
}
// Conditional functions
function stop(c, symbol, value) { // p: price where
c.o = value > c.p ? waitdown : waitup;
}
function waitdown(c, symbol, value) { // p: price where
print("WAITDOWN: "+ symbol + " " + value + " " + c.p);
return value <= c.p;
}
function waitup(c, symbol, value) {
print("WAITUP: "+ symbol + " " + value + " " + c.p);
return value >= c.p;
}
function sladedown(c, symbol, value) { // p: t: treshhold
print("SLADEDOWN: "+ symbol + " " + value + " " + c.p);
if (!c.curr) {
c.curr = value
return false
} else if (c.curr > value) {
c.curr = value
return false;
}
return c.curr < value - c.p;
}
function sladeup(c, symbol, value) {
print("SLADEUP: "+ symbol + " " + value + " " + c.p);
if (!c.curr) {
c.curr = value
return false
} else if (c.curr < value) {
c.curr = value
return false;
}
return c.curr > value + c.p;
}
// action functions
function beep(c, symbol, value) {
trader.beep();
print("BEEP: "+ symbol + " " + value + " " + c.p);
return true;
}
function sell(c, symbol, value) { // sell p coins
trader.beep();
print("SELL: "+ symbol + " " + value);
var price = trader.get(symbol , c.limited ? "BidPrice" : "AskPrice");
if (c.p == 0) {
c.p = trader.get("Balance",coin);
}
trader.sell(symbol , c.p , price);
return true
}
function buy(c, symbol, value) { // buy p coins
trader.beep();
print("BUY: "+ symbol + " " + value);
var price = trader.get(symbol , c.limited ? "AskPrice" : "BidPrice");
if (c.p == 0) {
c.p = trader.get("Balance",c.currency) / price ;
}
trader.buy(symbol , c.p, price);
return true
}
function limitsell(c, symbol, value) {
c.limited = true
return sell(c, symbol, value);
}
function limitbuy(c, symbol, value) {
c.limited = true
return buy(c, symbol, value);
}
function switchif(c, symbol, value) { // switch to another chain
if (c.p(c, symbol, value)) cmds = c.cmds;
return true;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment