python3.x - Question 6 sur l'obtention de JSON à partir de l'API de trading simulé de Python avec Oanda
PHP中文网
PHP中文网 2017-06-12 09:27:26
0
1
814

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

PHP中文网
PHP中文网

认证0级讲师

répondre à tous (1)
左手右手慢动作

Il y a un problème avec votre code

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"]

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 :

# 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) #卖
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!