mango-explorer/scripts/random-taker

31 lines
1.7 KiB
Plaintext
Raw Normal View History

2021-07-21 09:57:30 -07:00
#!/usr/bin/env bash
MARKET=${1:-BTC-PERP}
POSITION_SIZE_CEILING=${2:-1}
2021-07-21 09:57:30 -07:00
IMMEDIATE_BUY_ADJUSTMENT=${3:-100}
ORACLE_MARKET=${MARKET//\-PERP/\/USDC}
printf "Running on market %s with random position size (maximum %f) and IOC prices +/- %f from current price\nPress Control+C to stop...\n" $MARKET $POSITION_SIZE_CEILING $IMMEDIATE_BUY_ADJUSTMENT
2021-07-21 09:57:30 -07:00
while :
do
cancel-my-orders --name "Random Taker ${MARKET} (cancel)" --market $MARKET --log-level ERROR
2021-07-21 09:57:30 -07:00
RANDOM_POSITION_SIZE=$(echo "scale=4; ($(echo "$RANDOM % 1000" | bc) / 1000) * $POSITION_SIZE_CEILING" | bc)
CURRENT_PRICE=$(fetch-price --provider market --symbol $ORACLE_MARKET --log-level ERROR | cut -d"'" -f 2 | sed 's/,//')
place-order --name "Random Taker ${MARKET} (place buy)" --market $MARKET --order-type IOC --log-level ERROR \
--side BUY --quantity $RANDOM_POSITION_SIZE --price $(echo "$CURRENT_PRICE + $IMMEDIATE_BUY_ADJUSTMENT" | bc)
2021-07-21 09:57:30 -07:00
PAUSE_FOR=$((1 + $RANDOM % 30))
printf "Pausing after BUY for %d seconds.\n" ${PAUSE_FOR}
sleep ${PAUSE_FOR}
RANDOM_POSITION_SIZE=$(echo "scale=4; ($(echo "$RANDOM % 1000" | bc) / 1000) * $POSITION_SIZE_CEILING" | bc)
CURRENT_PRICE=$(fetch-price --provider market --symbol $ORACLE_MARKET --log-level ERROR | cut -d"'" -f 2 | sed 's/,//')
place-order --name "Random Taker ${MARKET} (place sell)" --market $MARKET --order-type IOC --log-level ERROR \
--side SELL --quantity $RANDOM_POSITION_SIZE --price $(echo "$CURRENT_PRICE - $IMMEDIATE_BUY_ADJUSTMENT" | bc)
2021-07-21 09:57:30 -07:00
PAUSE_FOR=$((1 + $RANDOM % 30))
printf "Pausing after SELL for %d seconds.\n" ${PAUSE_FOR}
sleep ${PAUSE_FOR}
echo "Last ${MARKET} taker action: $(date)" > /var/tmp/mango_healthcheck_random_taker
done