Jump to content
  • 0

Unknown error when placing order on the demo API


stonkyboy

Question

Hello! I've been lurking in the community for a little while and recieved a lot of tips & tricks so thanks to all who have helped me get this far through my project. 

I've built my 1st trading bot in python and i'm trying to test it using the demo API. I've had no issues using most of the endpoints (fetch markets, get open orders, get open positions, etc) but for some reason most of my 'create new position' requests are failing witout explaination. The strange thing is when I try to open positions using the same parameters and same demo credentials on the API companion it succeedes and gives me a deal reference.

About 20% of my open position requests either succeed or return a sensible error like 'MINIMUM_SIZE_ORDER' or 'MARKET_CLOSED_WITH_EDITS' so I think my headers are fine.

I'm wondering if anyone has had a similar issue when trying to work with the demo api? 

Here's what i'm recieving after I try to open a position: 

"Order Failed: {'date': '2020-06-11T14:00:47.022', 'status': None, 'reason': 'UNKNOWN', 'dealStatus': 'REJECTED', 'epic': 'SB.D.EBSUS.DAILY.IP', 'expiry': None, 'dealReference': 'V5NMJXCZUFF44TE', 'dealId': 'DIAAAADW5TZM8BA', 'affectedDeals': [], 'level': None, 'size': None, 'direction': 'BUY', 'stopLevel': None, 'limitLevel': None, 'stopDistance': None, 'limitDistance': None, 'guaranteedStop': False, 'trailingStop': False, 'profit': None, 'profitCurrency': None}"

Here's the python code that i'm using to open a position: 

Connect to API:

data = {"identifier": DEMO_USERNAME, "password": DEMO_PASSWORD, "encryptedPassword":None}

headers = {'Content-Type': 'application/json; charset=utf-8',
           'Accept': 'application/json; charset=utf-8',
           'X-IG-API-KEY': API_KEY,
           'Version': '2'
           }

r = requests.post(API_ENDPOINT, data=json.dumps(data), headers=headers)

headers_json = dict(r.headers)
CST_token = headers_json['CST']
x_sec_token = headers_json["X-SECURITY-TOKEN"]


authenticated_headers = {'Content-Type': 'application/json; charset=utf-8',
                         'Accept': 'application/json; charset=utf-8',
                         'X-IG-API-KEY': API_KEY,
                         'CST': CST_token,
                         'X-SECURITY-TOKEN': x_sec_token}

auth_r = requests.get(base_url, headers=authenticated_headers)
d = json.loads(auth_r.text)

base_url = 'https://demo-api.ig.com/gateway/deal/session'

data = {
    "accountId": DEMO_ACC_ID,
    "defaultAccount": "True"}  # Main Demo acc

auth_r = requests.put(
    base_url,
    data=json.dumps(data),
    headers=authenticated_headers)

Open Position: 

base_url = 'https://demo-api.ig.com/gateway/deal/positions/otc'

data = {
    "epic": "UB.D.INTC.DAILY.IP",
    "expiry": "DFB",
    "direction": "BUY",
    "size": "1.144",
    "orderType": "MARKET",
    "level": None,
    "guaranteedStop": "false",
    "stopLevel": None,
    "stopDistance": "1748",
    "forceOpen": "true",
    "limitLevel": None,
    "limitDistance": None,
    "quoteId": None,
    "currencyCode": "USD"
}

r = requests.post(base_url,data=json.dumps(data),headers=authenticated_headers)

Any help in solving this issue would be greatly appreciated! 

Cheers. 

  • Great! 1
Link to comment

1 answer to this question

Recommended Posts

  • 0

The problem was that I was specifying a size with three decimal places... but the limit is two. Think this limit holds with every number you can provide to the API. Would be good if the tech team could explain that in the API response. 

  • Like 2
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • image.png

  • Posts

    • Elliott Wave Analysis TradingLounge Daily Chart, Bitcoin/ U.S. dollar(BTCUSD) BTCUSD Elliott Wave Technical Analysis Function: Follow Trend Mode: Motive Structure: Impulse position: Wave V Direction Next higher Degrees: wave (III) Wave Cancel invalid level: Details: Wave V is Equal to 61.8% of Wave I through Wave III at 87253 Bitcoin/ U.S. dollar(BTCUSD)Trading Strategy: BTC is still moving in an uptrend. This is a V-wave increase in the Impulse Wave pattern, so we will focus on the five-wave increase. and look to join the trend from the correction. Bitcoin/ U.S. dollar(BTCUSD)Technical Indicators: The price is above the MA200 indicating an uptrend, The Wave Oscillator is a Bullish Momentum. Elliott Wave Analysis TradingLounge H4 Chart, Bitcoin/ U.S. dollar(BTCUSD) BTCUSD Elliott Wave Technical Analysis Function: Follow Trend Mode: Motive Structure: Impulse position: Wave V Direction Next higher Degrees: wave (III) Wave Cancel invalid level: Details: Wave V is Equal to 61.8% of Wave I through Wave III at 87253 Bitcoin/ U.S. dollar(BTCUSD)Trading Strategy: BTC is still moving in an uptrend. This is a V-wave increase in the Impulse Wave pattern, so we will focus on the five-wave increase. and look to join the trend from the correction. Bitcoin/ U.S. dollar(BTCUSD)Technical Indicators: The price is above the MA200 indicating an uptrend, The Wave Oscillator is a Bullish Momentum.     Technical Analyst : Kittiampon Somboonsod Source : Tradinglounge.com get trial here!  
    • NASDAQ Stock market Elliott Wave Analysis and trading strategies: NASDAQ 100 (NDX) QQQ ETF, SP500 (SPX), SPY,  Apple (AAPL), Tesla (TSLA), Amazon (AMZN), Nvidia (NVDA), Microsoft (MSFT), Meta Platforms (META), Netflix (NFLX), Alphabet (GOOGL)  Elliott Wave Analysis of NDX Tech Stocks: NASDAQ Elliott Wave (i) of v) of 1 of (5) of 3).  The main wave count for stock and indices is still on track. Only very short-term trade should trade long. Swing trades should be looking to scale out mid to later this week. Our next serious long trade will be from Minor Wave 2 low. AMZN and TSLA have different counts, however on an intraday basis they will move with the general market, just with different counts. Video Chapters 00:00 NASDAQ 100 (NDX) SP 500 04:13 Apple (AAPL) 09:34 Amazon (AMZN) 12:14 NVIDIA (NVDA) 14:08 Meta Platforms (META) 15:39 Netflix (NFLX)  16:41 Alphabet (GOOGL) 17:32 Microsoft MSFT 18:31 Tesla (TSLA) 20:25 End Analyst Peter Mathers TradingLounge™ Australian Financial Services Licence - AFSL 317817 Source: tradinglounge.com   
    • I am already staking my eth on the platform and currently holding BGB to explore their PoolX event that has a similar high APR.
×
×
  • Create New...
us