Я хочу отправить запрос POST с помощью Python в API OANDA, чтобы открыть заказ. Они не имеют оболочки Python и используют cURL, поэтому мне пришлось попробовать конвертировать из cURL в Python. Я сделал это, используя https://curl.trillworks.com/ - но преобразование следующего не работает.
Вы можете просмотреть документацию по API OANDA здесь, на первой вкладке Green POST - http://developer.oanda.com/rest-live-v20/order-ep/
Вот с чем я работаю. Этот первый блок определяет детали заказа. В этом случае рыночный ордер в инструменте EUR_USD с количеством 100 единиц и временем в силе, равным «заполнить или убить»:
body=$(cat << EOF
{
"order": {
"units": "100",
"instrument": "EUR_USD",
"timeInForce": "FOK",
"type": "MARKET",
"positionFill": "DEFAULT"
}
}
EOF
)
curl \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer SECRET TOKEN" \
-d "$body" \
"https://api-fxpractice.oanda.com/v3/accounts/{ACCOUNT-NUMBER}/orders"
Преобразовано в Python:
import requests
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer SECRET TOKEN',
}
data = '$body'
response = requests.post('https://api-fxpractice.oanda.com/v3/accounts/{ACCOUNT-NUMBER}/orders', headers=headers, data=data)
Как видите, я считаю, что где-то в части "body = $" есть ошибка форматирования, но я не совсем уверен. Я просто получаю ошибку 400, «недопустимые значения».