Jump to content

stonkyboy

Community Member
  • Posts

    3
  • Joined

  • Last visited

stonkyboy's Achievements

New Contributor

New Contributor (1/10)

3

Reputation

  1. 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.
  2. Facing the same issue, i'd be interested to know which broker you switched to?
  3. 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.
×
×
  • Create New...
us