Pepperstone's cTrader FIX API - FIX Symbol ID to Broker Symbol mapping


Staff member
cTrader's FIX API doesn't document which FIX ID code is set for a given symbol because it's broker dependent (that is, every broker will have their own allocation of symbol IDs,) and they instruct you to look at the symbol info widget in cTrader for each symbol you want to trade on a symbol-by-sybmol basis.

Taken from this page:
FIX Symbol ID

Each symbol has it's own unique ID. This is required to identify it in FIX messages. From the cTrader you can find the FIX Symbol ID in each symbols info-window. Simply find the symbol, expand its state to display the "i" icon, click it to launch the window and scroll down until you find "FIX Symbol ID".

This is annoying and means you have to manually setup a symbol every time you want to algo trade a new symbol via the FIX api...

Since I trade with Pepperstone, I just ripped the info and made the following dictionary in python for reference. I hope this saves other people out there the trouble of doing the same thing. Now you can just type the symbol you want to use as a variable in your code and use the dictionary to get the proper FIX ID when sending orders or handling data feeds...

(Use at your own risk, I don't control Pepper's cTrader setup nor do I know when they've made changes to it.. plus, there is a non-0% chance I've typo'd something somewhere.. fair warning.)

{'audcad': '18',
 'audchf': '23',
 'audjpy': '11',
 'audnzd': '20',
 'audsgd': '43',
 'audusd': '5',
 'aus200': '10000',
 'cadchf': '27',
 'cadjpy': '15',
 'chfjpy': '13',
 'chfsgd': '44',
 'cn50': '10016',
 'cocoa': '10021',
 'coffee': '10019',
 'copper': '10024',
 'cotton': '10020',
 'euraud': '14',
 'eurcad': '17',
 'eurchf': '10',
 'eurczk': '45',
 'eurgbp': '9',
 'eurnok': '33',
 'eurnzd': '26',
 'eurpln': '48',
 'eursek': '31',
 'eursgd': '49',
 'eurtry': '50',
 'eurusd': '1',
 'eurzar': '51',
 'eustx50': '10001',
 'fra40': '10002',
 'gbpaud': '16',
 'gbpcad': '19',
 'gbpchf': '40',
 'gbpjpy': '7',
 'gbpnok': '37',
 'gbpnzd': '25',
 'gbpsek': '53',
 'gbpsgd': '32',
 'gbptry': '54',
 'gbpusd': '2',
 'ger30': '10003',
 'hk50': '10004',
 'it40': '10005',
 'jpn225': '10006',
 'nas100': '10014',
 'nokjpy': '55',
 'noksek': '56',
 'nzdcad': '30',
 'nzdchf': '39',
 'nzdjpy': '21',
 'nzdusd': '12',
 'orangejuice': '10022',
 'sekjpy': '57',
 'sgdjpy': '58',
 'spa35': '10009',
 'sugar': '10018',
 'uk100': '10011',
 'us2000': '10012',
 'us30': '10015',
 'us500': '10013',
 'usdcad': '8',
 'usdchf': '6',
 'usdcnh': '71',
 'usdczk': '59',
 'usdhkd': '60',
 'usdjpy': '4',
 'usdmxn': '24',
 'usdnok': '22',
 'usdpln': '35',
 'usdrub': '70',
 'usdsek': '29',
 'usdsgd': '28',
 'usdthb': '72',
 'usdtry': '61',
 'usdx': '10017',
 'usdzar': '62',
 'xageur': '63',
 'xagusd': '42',
 'xauaud': '10023',
 'xaueur': '64',
 'xauusd': '41',
 'xbrusd': '75',
 'xngusd': '77',
 'xpdusd': '73',
 'xptusd': '74',
 'xtiusd': '76',
 'zarjpy': '10025'}
Again, this ONLY works for Pepperstone's cTrader FIX API.. and no other broker.