Skip to content

Instantly share code, notes, and snippets.

@krzko
Last active November 16, 2020 11:17
Show Gist options
  • Save krzko/8866a266c7e814f0e8c34d29b186e501 to your computer and use it in GitHub Desktop.
Save krzko/8866a266c7e814f0e8c34d29b186e501 to your computer and use it in GitHub Desktop.
A shell file containing bash functions to execute trades on Zignaly (https://zignaly.com) from the command line
#!/usr/bin/env bash
### Zignaly Hybrid Trades ###
#/ $ source zignaly_functons.sh
#/ $ run_the_function
export ZIGNALY_API_URL="https://zignaly.com/api/signals.php"
function log_me() {
local MTIME=`date "+%F %T"`
echo $MTIME" "$1
}
# Futures
function zignaly_futures_entry() {
local EXCHANGE=$1
local TICKER=$2
local KEY=$3
local SIDE=$4
local SIZE=$5
local LEVERAGE=$6
local BODY=""
log_me "🟩 Zignaly => Starting Futures Entry"
if [[ $SIDE = "long" ]]
then
log_me "🟦 Zignaly => Entry | signalId:${EXCHANGE}-Futures-${TICKER}PERP-MAN-L pair:${TICKER}PERP exchange:${EXCHANGE} side:${SIDE} type:entry"
BODY="{\"signalId\":\"${EXCHANGE}-Futures-${TICKER}PERP-MAN-L\",\"key\":\"${KEY}\",\"pair\":\"${TICKER}PERP\",\"exchange\":\"${EXCHANGE}\",\"exchangeAccountType\":\"futures\",\"side\":\"${SIDE}\",\"type\":\"entry\",\"orderType\":\"market\",\"entryLeverage\":\"${LEVERAGE}\",\"positionSize\":\"${SIZE}\",\"positionSizeQuote\":\"USDT\"}"
elif [[ $SIDE = "short" ]]
then
log_me "🟦 Zignaly => Entry | signalId:${EXCHANGE}-Futures-${TICKER}PERP-MAN-S pair:${TICKER}PERP exchange:${EXCHANGE} side:${SIDE} type:entry"
BODY="{\"signalId\":\"${EXCHANGE}-Futures-${TICKER}PERP-MAN-S\",\"key\":\"${KEY}\",\"pair\":\"${TICKER}PERP\",\"exchange\":\"${EXCHANGE}\",\"exchangeAccountType\":\"futures\",\"side\":\"${SIDE}\",\"type\":\"entry\",\"orderType\":\"market\",\"entryLeverage\":\"${LEVERAGE}\",\"positionSize\":\"${SIZE}\",\"positionSizeQuote\":\"USDT\"}"
else
log_me "πŸŸ₯ Zignaly => Error: Side does not equal to long or short"
fi
log_me "🟦 Zignaly => Entry | curl -X POST ${BODY} https://zignaly.com/api/signals.php"
curl -X POST -H "Content-Type: application/json" \
-d $BODY \
$ZIGNALY_API_URL
log_me "πŸš€ Zignaly => Let's go!"
#zignaly_futures_entry Binance BTCUSDT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX long 1000 10
#zignaly_futures_entry Binance BTCUSDT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX short 1000 10
}
function zignaly_futures_exit() {
local EXCHANGE=$1
local TICKER=$2
local KEY=$3
local SIDE=$4
local BODY=""
log_me "🟩 Zignaly => Starting Futures Exit"
if [[ $SIDE = "long" ]]
then
log_me "🟦 Zignaly => Exit | signalId:${EXCHANGE}-Futures-${TICKER}PERP-MAN-L pair:${TICKER}PERP exchange:${EXCHANGE} side:${SIDE} type:exit"
BODY="{\"signalId\":\"${EXCHANGE}-Futures-${TICKER}PERP-MAN-L\",\"key\":\"${KEY}\",\"pair\":\"${TICKER}PERP\",\"exchange\":\"${EXCHANGE}\",\"exchangeAccountType\":\"futures\",\"type\":\"exit\",\"orderType\":\"market\"}"
elif [[ $SIDE = "short" ]]
then
log_me "🟦 Zignaly => Exit | signalId:${EXCHANGE}-Futures-${TICKER}PERP-MAN-S pair:${TICKER}PERP exchange:${EXCHANGE} side:${SIDE} type:exit"
BODY="{\"signalId\":\"${EXCHANGE}-Futures-${TICKER}PERP-MAN-S\",\"key\":\"${KEY}\",\"pair\":\"${TICKER}PERP\",\"exchange\":\"${EXCHANGE}\",\"exchangeAccountType\":\"futures\",\"type\":\"exit\",\"orderType\":\"market\"}"
else
log_me "πŸŸ₯ Zignaly => Error: Side does not equal to long or short"
fi
log_me "🟦 Zignaly => Exit | curl -X POST ${BODY} https://zignaly.com/api/signals.php"
curl -X POST -H "Content-Type: application/json" \
-d $BODY \
$ZIGNALY_API_URL
log_me "πŸ’° Zignaly => Exited. Nice!"
#zignaly_futures_exit Binance BTCUSDT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX long
#zignaly_futures_exit Binance BTCUSDT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX short
}
# Spot
function zignaly_spot_entry() {
local EXCHANGE=$1
local TICKER=$2
local KEY=$3
local SIZE=$4
log_me "🟩 Zignaly => Starting Spot Entry"
log_me "🟦 Zignaly => Entry | signalId:${EXCHANGE}-Spot-${TICKER}-MAN-L pair:${TICKER} exchange:${EXCHANGE} type:entry"
local BODY="{\"signalId\":\"${EXCHANGE}-Spot-${TICKER}-MAN-L\",\"key\":\"${KEY}\",\"pair\":\"${TICKER}\",\"exchange\":\"${EXCHANGE}\",\"type\":\"buy\",\"orderType\":\"market\",\"positionSizeQuote\":\"USDT\",\"positionSize\":\"${SIZE}\"}"
log_me "🟦 Zignaly => Entry | curl -X POST ${BODY} https://zignaly.com/api/signals.php"
curl -X POST -H "Content-Type: application/json" \
-d $BODY \
$ZIGNALY_API_URL
log_me "πŸš€ Zignaly => Let's go!"
#zignaly_spot_entry Binance BTCUSDT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 1000
}
function zignaly_spot_exit() {
local EXCHANGE=$1
local TICKER=$2
local KEY=$3
log_me "🟩 Zignaly => Starting Spot Exit"
log_me "🟦 Zignaly => Exit | signalId:${EXCHANGE}-Spot-${TICKER}-MAN-L pair:${TICKER} exchange:${EXCHANGE} type:entry"
local BODY="{\"signalId\":\"${EXCHANGE}-Spot-${TICKER}-MAN-L\",\"key\":\"${KEY}\",\"pair\":\"${TICKER}\",\"exchange\":\"${EXCHANGE}\",\"type\":\"exit\",\"orderType\":\"market\"}"
log_me "🟦 Zignaly => Exit | curl -X POST ${BODY} https://zignaly.com/api/signals.php"
curl -X POST -H "Content-Type: application/json" \
-d $BODY \
$ZIGNALY_API_URL
log_me "πŸ’° Zignaly => Exited. Nice!"
#zignaly_spot_exit Binance BTCUSDT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment