python3.x - Soalan 6 untuk mendapatkan json daripada api dagangan simulasi python dengan oanda
PHP中文网
PHP中文网 2017-06-12 09:27:26
0
1
960

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中文网

认证0级讲师

membalas semua(1)
左手右手慢动作

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)    #卖
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan