Rumah > Soal Jawab > teks badan
Saya menyelesaikan masalah membuat pesanan dengan bantuan semua orang dalam soalan ketiga, tetapi apabila saya menguji data sejarah hari ini, saya menemui satu perkara yang pelik. Saya mahu beroperasi pada 6 pasangan mata wang (GBP_USD, EUR_USD, USD_CAD dan USD_CHF, USD_JPY, AUD_USD, saya mahu GBP_USD, EUR_USD, USD_CAD membeli apabila membuat pesanan beli dan USD_CHF, USD_JPY dan AUD_USD untuk dijual apabila membuat pembelian). order. Mulakan beberapa transaksi Tidak ada masalah, tetapi selepas cuba menjual semasa membuat pesanan belian, GBP_USD, EUR_USD, USD_CAD juga bertukar kepada menjual apabila membuat pesanan belian adalah seperti berikut:
import requests
def trade(action,pairs,unit="1"):
account_id = '101-011-5898545-001'
access_token = '33c7d4049fe8720c37918482bc830c12-06467701c963e60220d7e18436f3225d'
url = 'https://api-fxpractice.oanda.com/v3/accounts/'+account_id+'/orders'
headers = {'Content-Type' : 'application/json','Authorization':'Bearer '+access_token}
if pairs == "GBP_USD" or "EUR_USD" or "AUD_USD" :
if action == "buy" :
data = {"order":{"instrument":pairs,"type":"MARKET","units":unit}}
if action == "sell" :
data = {"order":{"instrument":pairs,"type":"MARKET","units":"-"+unit}}
if pairs == "USD_CHF" or "USD_JPY" or "USD_CAD" :
if action == "buy" :
data = {"order":{"instrument":pairs,"type":"MARKET","units":"-"+unit}}
if action == "sell" :
data = {"order":{"instrument":pairs,"type":"MARKET","units":unit}}
req = requests.post(url,json=data,headers=headers)
#print(req.text)
if __name__=='__main__' :
trade("buy","GBP_USD","3")
Sila semak status transaksi di https://trade.oanda.com/, nama pengguna: cawa11, kata laluan: 1122334455, terima kasih
ringa_lee2017-06-12 09:29:26
Ada masalah dengan kod anda
if pairs == "GBP_USD" or "EUR_USD" or "AUD_USD"
应该改成
if pairs == "GBP_USD" or pairs == "EUR_USD" or pairs == "AUD_USD"
但我更推荐你这样写
if pairs in ["GBP_USD", "EUR_USD", "AUD_USD"]
Kod anda boleh dipermudahkan untuk ini Pesanan beli dan jual ditentukan oleh sama ada unit itu positif atau negatif:
# coding: utf-8
import requests
def trade(pairs, unit=1):
account_id = '101-011-5898545-001'
access_token = '33c7d4049fe8720c37918482bc830c12-06467701c963e60220d7e18436f3225d'
url = 'https://api-fxpractice.oanda.com/v3/accounts/'+account_id+'/orders'
headers = {'Content-Type' : 'application/json','Authorization':'Bearer '+access_token}
#你逻辑里只提到当货币为["USD_CHF", "USD_JPY", "USD_CAD"]时,只要是买单就要变成卖单
if pairs in ["USD_CHF", "USD_JPY", "USD_CAD"] and unit > 0:
unit *= -1
data = {"order":{"instrument":pairs,"type":"MARKET","units":unit}}
req = requests.post(url,json=data,headers=headers)
#print(req.text)
if __name__=='__main__' :
trade("GBP_USD", 1) #买
trade("GBP_USD", -1) #卖