You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XTB xAPI开仓交易offset与sl参数配置问题求助

XTB xAPI 自动化交易买入单追踪止损配置问题及资料需求

问题详情

卖出单(做空)正常表现

卖出交易(cmd=1、type=0)设置offset=50、sl=50时,可正常开启5点追踪止损,符合预期。

买入单(做多)异常情况

买入交易(cmd=0、type=0)尝试多组offset与sl组合均未实现预期追踪止损:

  • offset=-50、sl=-50:成功开仓但未触发止损
  • offset=50、sl=50:返回"无效sl/tp值"错误
  • offset=1、sl=-50:返回"无效追踪止损"错误
  • offset=0/-1/-10搭配sl=-50:成功开仓但无止损

个人判断买入单的sl需设为负值(止损价低于开仓价),但对offset参数的配置逻辑存疑,原本预期offset=-50、sl=-50的组合可正常生效。

额外需求

求比xApi playground更详细的xAPI官方资料,XTB客服未提供相关API技术支持。

相关Python代码

def open_account(): 
    '''
        opens an instance to the API 
    '''
    global open_ctr
    host = 'xapia.x-station.eu' 
    ##this is the address for the demo account##'xapia.x-station.eu' real account is 'xapi.xtb.com
    port = 5124         ##demo acc 5124  real 5112 
    USERID =  # Account number 
    PASSWORD = # my password 
    
    host = socket.getaddrinfo(host, port)[0][4][0]
    global S
    global END
    
    context=ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
    context.verify_mode = ssl.CERT_REQUIRED
    context.check_hostname = False 
    context.load_default_certs()
    
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    S = context.wrap_socket(s, server_hostname=host)
    S.connect(('xapia.x-station.eu',5124))
    S.settimeout(5)

    parameters = {
        "command" : "login",
        "arguments" : {
            "userId": USERID,
            "password": PASSWORD
        }
    }
    packet = json.dumps(parameters, indent=4)
    S.send(packet.encode("UTF-8"))

    END = b'\n\n'
    response=b''
    while True:
        try:
            response += S.recv(8192)
        except: 
            print('67 login fail')
            open_account()
        if END in response:
            open_ctr+=1 
            break

def Close_account():
    '''
        Closes the open Instance 
    '''
    global open_ctr     
    parameters = {
        "command" : "logout"
    }
    packet = json.dumps(parameters, indent=4)
    try:
        S.send(packet.encode("UTF-8"))
        response = S.recv(8192)
        open_ctr-=1
    except:
        Close_account()

def open_a_trade(symbol, price , volume , cmd, sl, offset, tp=0):
    '''
        opens the trade 
    '''
    end_date=get_server_time()
    order_result.iloc[0:0]
    order_result.loc[1,'datetime']=end_date
    order_result['symbol']=symbol
    order_result['cmd']=cmd
    order_result['offset']=offset
    order_result['sl']=sl
    order_result['tp']=tp
    order_result['volume']=volume
    order_result['price']=price

    open_account()
            
    parameters={
        "command": "tradeTransaction",
        "arguments": {
            "tradeTransInfo": {
                "cmd": cmd,
                "customComment": '',
                "expiration": 0,
                "offset": offset,
                "order": 0,
                "price": price,
                "sl": sl,
                "symbol": symbol,
                "type": 0,
                "volume": volume
            }
        }
    }
    packet = json.dumps(parameters, indent=4)
    S.send(packet.encode("UTF-8"))
    response_open_trade = S.recv(328192)
    ## open trade was timing out , changed open response time in open_account to 5s from 3.5s
    
    order_number_response=json.loads(response_open_trade)

    if order_number_response['status']==False:
        order_result['order_number_response']=order_number_response['status']
        print('427 order result')
        print(order_result)
        order_result.to_csv('order_result.csv', mode='a', index=False, header=False)
    else:   
        order_result['order_number_response']=order_number_response['returnData']['order']
        print('427 order result')
        print(order_result)
        order_result.to_csv('order_result.csv', mode='a', index=False, header=False)
    Close_account()

# set values for the trade 
symbol='GBPUSD'
price=.61801
volume=.2
cmd=0
offset=0
sl=-50
tp=0
print('943 ' , sl)
open_a_trade(symbol, price , volume , cmd, sl, offset, tp)

内容的提问来源于stack exchange,提问作者user144131

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 21:08:14