Adding account number program and auto-trading, but the auto-trading does not work - sent e-mail to API team.
This commit is contained in:
83
autoTradeSPXPutCreditSpread.sh
Executable file
83
autoTradeSPXPutCreditSpread.sh
Executable file
@@ -0,0 +1,83 @@
|
||||
#!/bin/bash
|
||||
#set -x
|
||||
IFS=$'\0'
|
||||
|
||||
inputFile="$1"
|
||||
if [[ "" == "$inputFile" ]]; then
|
||||
latestFile="$(ls data/`date +%Y-%m-%d`/*\$SPX* | sort | tail -n 1)"
|
||||
systemd-cat -t "`basename $0` $1" -p debug <<< "Latest File: _${latestFile}_"
|
||||
inputFile=temp/orderInputFile.json
|
||||
bzip2 -dc < "${latestFile}" > "${inputFile}"
|
||||
fi
|
||||
if [[ ! -f "${inputFile}" ]]; then
|
||||
errMsg="ERROR: Input file _${inputFile}_ does not exist."
|
||||
systemd-cat -t "`basename $0` $1" -p err <<< ${errMsg}
|
||||
>&2 echo "${errMsg}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dateKey=$(jq -r '.putExpDateMap | keys | .[]' "${inputFile}" | head -n 1)
|
||||
systemd-cat -t "`basename $0` $1" -p debug <<< "Date-Key: _${dateKey}_"
|
||||
|
||||
jq '.putExpDateMap."'${dateKey}'"[]|map({symbol, delta, strikePrice,bid,ask}) |.[] | select(.delta >= -0.30 and .delta <= -0.25) ' "${inputFile}" | tail -n 7 > temp/shortLeg.json
|
||||
shortStrike=$(jq -r '.strikePrice' < temp/shortLeg.json)
|
||||
shortBid=$(jq -r '.bid' < temp/shortLeg.json)
|
||||
shortAsk=$(jq -r '.ask' < temp/shortLeg.json)
|
||||
shortSymbol=$(jq -r '.symbol' < temp/shortLeg.json)
|
||||
msg="Short Symbol: _${shortSymbol}_ Strike: _${shortStrike}_ Bid: _${shortBid}_ Ask: _${shortAsk}_"
|
||||
systemd-cat -t "`basename $0` $1" -p info <<< ${msg}
|
||||
echo "${msg}"
|
||||
|
||||
jq '.putExpDateMap."2024-07-10:43"[]|map({symbol, delta, strikePrice,bid,ask}) | .[] | select(.strikePrice >= 5210-50 and .strikePrice < 5210)' temp/orderInputFile.json | head -n 7 > temp/longLeg.json
|
||||
longStrike=$(jq -r '.strikePrice' < temp/longLeg.json)
|
||||
longBid=$(jq -r '.bid' < temp/longLeg.json)
|
||||
longAsk=$(jq -r '.ask' < temp/longLeg.json)
|
||||
longSymbol=$(jq -r '.symbol' < temp/longLeg.json)
|
||||
msg="Long Symbol: _${longSymbol}_ Strike: _${longStrike}_ Bid: _${longBid}_ Ask: _${longAsk}_"
|
||||
systemd-cat -t "`basename $0` $1" -p info <<< ${msg}
|
||||
echo "${msg}"
|
||||
|
||||
orderJson=$(cat <<-EOM
|
||||
{
|
||||
"orderType": "NET_CREDIT",
|
||||
"session": "NORMAL",
|
||||
"price": 5,
|
||||
"duration": "DAY",
|
||||
"orderStrategyType": "SINGLE",
|
||||
"quantity": 1,
|
||||
"orderLegCollection": [
|
||||
{
|
||||
"instruction": "SELL_TO_OPEN",
|
||||
"quantity": 1,
|
||||
"instrument": {
|
||||
"symbol": "${shortSymbol}",
|
||||
"assetType": "OPTION"
|
||||
}
|
||||
},
|
||||
{
|
||||
"instruction": "BUY_TO_OPEN",
|
||||
"quantity": 1,
|
||||
"instrument": {
|
||||
"symbol": "${longSymbol}",
|
||||
"assetType": "OPTION"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
EOM
|
||||
)
|
||||
|
||||
|
||||
echo ${orderJson}
|
||||
./getNewAccessToken.sh
|
||||
|
||||
set -x
|
||||
tempFile=temp/order.tmp.$$.json
|
||||
#curl -s -X POST "https://api.schwabapi.com/trader/v1/accounts/99114DC5A768D40C3FD47D02734C696EB1FEB1063D2EE864528135D8CF31392A/orders" -H "Authorization: Bearer $(<access_token.dat)" -d @order-vs.template.json # > ${tempFile}
|
||||
curl -s -X POST \
|
||||
'https://api.schwabapi.com/trader/v1/accounts/E8A70AE41449257FA5A7EABFF463BA93F23E629B909C3E09DA192582718D7627/orders' \
|
||||
-H "Authorization: Bearer $(<access_token.dat)" \
|
||||
-H 'accept: */*' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d "${orderJson}"
|
||||
|
||||
10
getAccountNumbers.sh
Executable file
10
getAccountNumbers.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
#set -x
|
||||
mkdir -p temp
|
||||
|
||||
./getNewAccessToken.sh
|
||||
|
||||
tempFile=temp/accountNumbers.tmp.$$.json
|
||||
curl -s -X GET "https://api.schwabapi.com/trader/v1/accounts/accountNumbers" -H "Authorization: Bearer $(<access_token.dat)" > ${tempFile}
|
||||
jq '.' < ${tempFile}
|
||||
|
||||
Reference in New Issue
Block a user