J'ai résolu le problème de commande avec l'aide de tous dans la troisième question, mais lorsque j'ai testé les données historiques aujourd'hui, j'ai découvert une chose étrange. Je souhaite opérer sur 6 paires de devises (GBP_USD, EUR_USD, USD_CAD et USD_CHF, USD_JPY, AUD_USD). Je veux que GBP_USD, EUR_USD, USD_CAD achètent lors du passage d'un ordre d'achat et USD_CHF, USD_JPY et AUD_USD vendent lors d'un achat. Commencez quelques transactions. Il n'y a pas de problème, mais après avoir essayé de vendre une fois en passant un ordre d'achat, GBP_USD, EUR_USD, USD_CAD sont également passés à la vente lors du passage d'un ordre d'achat. La procédure est la suivante :
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")
Veuillez vérifier l'état de la transaction sur https://trade.oanda.com/, nom d'utilisateur : cawa11, mot de passe : 1122334455, merci
Il y a un problème avec votre code
Votre code peut être simplifié ainsi. Les ordres d'achat et de vente sont déterminés selon que l'unité est positive ou négative :