cari

Rumah  >  Soal Jawab  >  teks badan

python3.x - Soalan 6 untuk mendapatkan json daripada api dagangan simulasi python dengan oanda

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

PHP中文网PHP中文网2726 hari yang lalu939

membalas semua(1)saya akan balas

  • ringa_lee

    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)    #卖

    balas
    0
  • Batalbalas