31 lines
1.7 KiB
Bash
Executable File
31 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
MARKET=${1:-BTC-PERP}
|
|
POSITION_SIZE_CEILING=${2:-1}
|
|
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
|
|
while :
|
|
do
|
|
cancel-my-orders --name "Random Taker ${MARKET} (cancel)" --market $MARKET --log-level ERROR
|
|
|
|
RANDOM_POSITION_SIZE=$(echo "scale=4; ($(echo "$RANDOM % 1000" | bc) / 1000) * $POSITION_SIZE_CEILING" | bc)
|
|
CURRENT_PRICE=$(fetch-price --provider ftx --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)
|
|
|
|
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 ftx --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)
|
|
|
|
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 |