Kali ini saya ingin membeli 50 kontrak USD_CAD pada harga pasaran semasa
Prosedur:
permintaan import
import json
url = 'https://api-fxpractice.oanda....'
instruments = 'USD_CAD'
account_id = 'cawa11' #Username
params = {'instruments':instruments,'accountId':account_id}
access_token = 'a554db3a48ac8180a6996a5547ba1663-ac5947e64456cc5842a34f4ce05e4380'
headers = {'Keizinan':'Pembawa '+access_token}
r = harga, ms.token}
r = harga, para. json()
cetak(harga )
url = 'https://api-fxpractice.oanda....' #5898545 ialah sebahagian daripada akaun 101-011-5898545-001
headers = {'Content-Type' : 'application/x-www-form- urlencoded','Authorization':'Bearer '+access_token}
data = {'instrument':'USD_CAD','accountId':'cawa11','units':50,'type':'market','side' :'beli'}
req = requests.post(url,data=data,headers=headers)
print(req.text)
print(req.json())
Laporan ralat program kedua:
{"code" : 4,"message" : "Token akses yang diberikan tidak membenarkan permintaan ini dibuat","moreInfo":"http://developer.oanda.com/docs /v1/auth/#overview"}
{'message': 'Token akses yang diberikan tidak membenarkan permintaan ini dibuat', 'moreInfo': 'http://developer.oanda.com/do...' , 'kod': 4}
Tetapi tiada masalah dengan token akses melalui operasi biasa program pertama Pada masa yang sama, terdapat senarai ralat dalam http://developer.oanda.com/do.. . Senarai ralat
HTTP状态代码 HTTP状态消息 信息 详细说明
4 401 擅自 提供不允许该请求的访问令牌进行 确保与请求提供的访问令牌是正确的,是有效的。请参阅认证以获取更多细节。
Dilampirkan dokumen daripada syarikat oanda:
import http.client
import urllib
import json
import datetime
def checkAndTrade():
conn = httplib.HTTPSConnection("api-sandbox.oanda.com")
conn.request("GET", "/v1/prices?instruments=USD_CAD")
response = conn.getresponse()
resptext = response.read()
if response.status == 200:
data = json.loads(resptext)
if data['prices'][0]['ask'] > 0.994:
headers = {"Content-Type" : "application/x-www-form-urlencoded"}
params = urllib.urlencode({"instrument" : "USD_CAD",
"units" : 50,
"type" : 'market',
"side" : "buy"})
conn.request("POST", "/v1/accounts/8026346/orders", params, headers)
print(conn.getresponse().read())
else:
print(resptext)
def order():
now = datetime.datetime.now()
expire = now + datetime.timedelta(days=1)
expire = expire.isoformat('T') + "Z"
conn = httplib.HTTPSConnection("api-sandbox.oanda.com")
params = urllib.urlencode({"instrument": "USD_CAD",
"units" : 50,
"price" : 0.994,
"expiry" : expire,
"side" : "buy",
"type" : "limit"})
headers = {"Content-Type" : "application/x-www-form-urlencoded"}
conn.request("POST", "/v1/accounts/8026346/orders", params, headers)
print(conn.getresponse().read())
order()
checkAndTrade()
Program ini mungkin lebih lama dan alamat apinya berbeza daripada alamat api semasa
Akaun mempunyai kebenaran untuk membaca data, tetapi mungkin tidak mempunyai kebenaran untuk membuat pesanan
Masalah yang anda hadapi sekarang semuanya berkaitan dengan perkara dalam API Anda harus mengkaji dokumentasi API dengan teliti, jika tidak, anda akan menghadapi banyak masalah serupa pada masa hadapan
Melainkan seseorang biasa dengan API ini, saya tidak dapat memberikan apa-apa bantuan kepada anda =========
================================================ === ==================Jika anda memesan dan memantau dari tapak web, anda akan mendapati bahawa URL dan data anda berbeza sama sekali daripada laman web
@prolifes:
test.py-------------------------------------------------------- ----------
dari vnoanda import OandaApi
if nama == '__main__':
vnoanda.py-------------------------------------------- -------------------
pengekodan: utf-8
import json
permintaan import
dari Baris gilir import, Kosong
dari Benang import berbenang
API_SETTING = {}
API_SETTING['practice'] = {'rehat': 'https://api-fxpractice.oanda.com','stream': 'https://stream-fxpractice .oan...'}
API_SETTING['trade'] = {'rehat': 'https://api-fxtrade.oanda.com','stream': 'https://stream-fxtrade. oanda....'}
FUNCTIONCODE_GETINSTRUMENTS = 0
FUNCTIONCODE_GETPRICES = 1
FUNCTIONCODE_GETPRICESEJARAH = 2
FUNCTIONCODE_GETACCOUNT🎜 =#FUNCTIONCODE_GETACFOS 4
FUNCTIONCODE_GETORDERS = 5
FUNCTIONCODE_SENDORDER = 6# 🎜🎜#FUNCTIONCODE_GETORDERINFO = 7
FUNCTIONCODE_MODIFYORDER = 8
FUNCTIONCODE_CANCELORDER = 9
FUNCTIONCODE_GETTRADES#10
FUNCTIONCODE_MODIFYTRADE= 12
FUNCTIONCODE_CLOSETRADE = 13#🎜 🎜#KOD_FUNGSI_MENDAPATKAN JAWATAN = 14
KOD_FUNGSI_MENDAPATKAN MAKLUMAT_KEJADIAN= 15
KOD_FUNGSI_PENUTUP POSISI = 16
KOD_FUNGSI#JEMPATAN_JETRAN🎜 TIONINFO = 18
FUNCTIONCODE_GETACCOUNTHISTORY = 19
FUNCTIONCODE_GETCALENDAR = 20#🎜🎜 #FUNCTIONCODE_GETPOSITIONRATIOS = 21
FUNCTIONCODE_GETSPREADS = 22
FUNCTIONCODE_GETCOMMIMENTS = 23
FUNCTIONCODE_GETORDERBOOK# = 24🎜🎜 🎜🎜#FUNCTIONCODE_STREAMPRICES = 26
FUNCTIONCODE_STREAMEVENTS = 27
kelas OandaApi(objek):