diff --git a/docker/market_data/hist/load_alpaca_hbar.sh b/docker/market_data/hist/load_alpaca_hbar.sh new file mode 100755 index 0000000..5da128d --- /dev/null +++ b/docker/market_data/hist/load_alpaca_hbar.sh @@ -0,0 +1,105 @@ +#!/bin/bash + +usage() { + echo "Usage: $0 -N [-L ] [-d ]" + exit 1 +} + +is_container_running() { + local container_name=$1 + + if [ "$(docker ps --filter "name=^/${container_name}$" --filter "status=running" -q)" ]; then + return 0 # true + else + return 1 # false + fi +} + +export CalendarURL=http://cloud23.cvtt.vpn:8000/api/v1/markets/hours?mic=XNYS + +is_business_day() { + dt=${1} + + open_time=$(curl -s "${CalendarURL}&start=${dt}&end=${dt}" | jq '.[] | .open_time') + if [ -n "${open_time}" ]; then + return 0 + else + return 1 + fi + +} +export -f is_business_day + +get_prev_business_day() { + Start=${1} + while true; do + if is_business_day ${Start}; then + break + fi + echo "${Start} is not business day in US" >&2 + Start=$(date -d "${Start} - 1 day" "+%Y-%m-%d") + done + echo ${Start} +} +export -f get_prev_business_day + +# ----- Settings +DockerRegistry=cloud21.cvtt.vpn:5500 +DockerImage=${DockerRegistry}/alpaca_hbar #:latest +ContainerName=alpaca_hbar +LogDir=/home/cvtt/prod/logs +# ----- Settings + +while getopts ":d:S:L:" opt; do + case ${opt} in + d ) + date_to_load=$OPTARG + ;; + N ) + NumSymbols=$OPTARG + ;; + L ) + LogDir=$OPTARG + ;; + \? ) + echo "Invalid option: -$OPTARG" >&2 + usage + ;; + : ) + echo "Option -$OPTARG requires an argument." >&2 + usage + ;; + esac +done + +if is_container_running "$ContainerName"; then + echo "Container ${ContainerName} is already running." + exit 3 +fi + +if [ -z "${date_to_load}" ]; then + echo "date_to_load is empty" + date_to_load=$(get_prev_business_day $(date -d "yesterday" '+%Y-%m-%d')) + echo "Historical Data for ${date_to_load}" +fi + +echo "date_to_load=${date_to_load}" + +Cmd="docker run" +Cmd="${Cmd} --pull=always" +Cmd="${Cmd} --network=host" +Cmd="${Cmd} --name=${ContainerName}" +Cmd="${Cmd} --rm" +Cmd="${Cmd} --volume=${LogDir}:/logs" +Cmd="${Cmd} ${DockerImage}" +Cmd="${Cmd} -d ${date_to_load}" +if [ -n "${NumSymbols}" ]; then + Cmd="${Cmd} -N ${NumSymbols}" +fi + +echo $Cmd +eval $Cmd + +if [ "$?" != "0" ] ; then + exit 1 # if killed we do not save last day +fi diff --git a/release_version.txt b/release_version.txt index d224488..9870cf3 100644 --- a/release_version.txt +++ b/release_version.txt @@ -1 +1 @@ -1.7.2.Fix2,alpaca md QAT +1.7.3,alpaca md HBAR