Symbols

Sorry, we are having a problem retrieving Symbol Search results. Please try again later.

Please wait, the Symbol Search is loading.

'+filterdResults[i].description+''; htmlListItem += ''; $('.search-results #reg-search').append(htmlListItem); } } if(allSymbolSearchResults){ var filterdResults = filterResults(trim_query, allSymbolSearchResults, 5); // Get filtered down list for symbol search $('.search-results #symbol-search').empty(); for (var i = 0; i < filterdResults.length; i++) { var converted_url = str = (filterdResults[i].link).replace(/\./g,'-'); var htmlListItem = '

  • '; htmlListItem += '

    '+filterdResults[i].title+' '+filterdResults[i].description+''; htmlListItem += ''; $('.search-results #symbol-search').append(htmlListItem); } } } // Take the query the search terms and the number of items to return and filter them down. function filterResults(v_query, searchThis, maxReturned){ //Split the query up so we can search by each item individually var individualQuery = v_query.split(" "); var filterdResults = []; var returnedCount = 0; for (var x = 0; x < searchThis.length; x++) { var alreadyAdded = false; for (var i = 0; i < individualQuery.length; i++) { //Search list of word to ignore like "and" var found = $.inArray(individualQuery[i], wordsToIgnore) > -1; if(!found){ //Search Title individualQuery[i] = individualQuery[i].toLowerCase(); var lowerCaseResult = searchThis[x].title.toLowerCase(); var n = lowerCaseResult.indexOf(individualQuery[i].toLowerCase()); if(n > -1 && !alreadyAdded){ alreadyAdded = true; if(individualQuery[i] == lowerCaseResult.substring(0, individualQuery[i].length)){ searchThis[x].weight = 50; // Weight items more valuable if the first character matchs (more accurate symbols.) }else{ searchThis[x].weight = 5; // Weight items by the title matching } //Increase if the search criteria matchs the length of the title if(searchThis[x].title.toLowerCase().length == individualQuery[i].length){ searchThis[x].weight += 30; } }else if(n && alreadyAdded){ // If it matches and its already added increase the results weighting if(individualQuery[i] == lowerCaseResult.substring(0, individualQuery[i].length)){ searchThis[x].weight += 50; }else{ searchThis[x].weight += 5; } } //Search for keywords var lowerCaseResult = searchThis[x].description.toLowerCase(); var n = lowerCaseResult.indexOf(individualQuery[i].toLowerCase()); if(n > -1 && !alreadyAdded){ alreadyAdded = true; searchThis[x].weight = 1; //Weight items less if just the keywords match. }else if(n && alreadyAdded){ // If it matches and its already added increase the results weighting searchThis[x].weight++; } //Search for keywords var lowerCaseResult = searchThis[x].keywords.toLowerCase(); var n = lowerCaseResult.indexOf(individualQuery[i].toLowerCase()); if(n > -1 && !alreadyAdded){ alreadyAdded = true; searchThis[x].weight = 1; //Weight items less if just the keywords match. }else if(n && alreadyAdded){ // If it matches and its already added increase the results weighting searchThis[x].weight++; } } //One time weight increase for Neo symbols //Weight Neo Symbols higher than others we only want to do this var listingMarket = (searchThis[x].hasOwnProperty('listingMarket') ? searchThis[x].listingMarket : ''); if(listingMarket.toLowerCase() == 'neo'){ searchThis[x].weight += 40; // Needs to be less than increase for first letter match. } } if(alreadyAdded){ returnedCount++; filterdResults.push(searchThis[x]) } } //Order by results weighting filterdResults.sort(function(a, b) { if (a.weight < b.weight) { return 1; } if (a.weight > b.weight) { return -1; } if(a.weight == b.weight){ if(a.title.length < b.title.length){ return -1; } if(a.title.length > b.title.length){ return 1; } if(a.title > b.title){ return 1; } if(a.title < b.title){ return -1; } } return 0; }); filterdResults = filterdResults.slice(0, maxReturned); return filterdResults; } // Retrieve all search results on page load to access later function searchContentAjaxCall(){ $.ajax({ url: "/components/search/search-index.php?action=content", cache: false, async:false, success:function(data) { if (data != ''){ var jsonObject = JSON.parse(data).data; allSearchResults = jsonObject; //Store the results in session storage sessionStorage.setItem("searchcontent", JSON.stringify(allSearchResults)); } } }) ; } function searchSymbolAjaxCall(){ var symbolMarkets = ['NEO', 'TSX', 'TSXV', 'CSE']; var sizeOfSymbolMarkets = symbolMarkets.length; var symbolAjaxCalls = new Array(); for(var i = 0; i < sizeOfSymbolMarkets; i++){ var postData = { "listingMarket": symbolMarkets[i], "searchByCompanyName": null, "searchBySymbol": null, "securityType": null, "securitySubType": null, "industry": null, "sector": null, "listingStatus": null, "searchValue": null, "page": 1, "itemsPerPage": 5400 }; postData = JSON.stringify(postData); symbolAjaxCalls.push($.ajax({ url: "https://www.cboe.ca/rest-api/service/securities/search", type: 'post', contentType: 'application/json', data: postData, cache: false }) ) } $.when.apply($, symbolAjaxCalls).done(function() { var results = arguments; //Loop the results and format for the global search index var sizeOfResults = results.length; var formattedSymbolListing = new Array(); //Formatted for the global search var rawSymbolListing = new Array(); //As it comes from the rest-api for(var i = 0; i < sizeOfResults; i++){ var symbolIndexResult = results[i][0].payload.items; var sizeOfSymbolIndexResult = symbolIndexResult.length; for (var j = 0; j < sizeOfSymbolIndexResult; j++){ var symbolListing = {}; symbolListing.title = symbolIndexResult[j].symbol; symbolListing.description = symbolIndexResult[j].securityName; symbolListing.keywords = symbolIndexResult[j].symbol+','+symbolIndexResult[j].listingMarket+','+symbolIndexResult[j].securityType; symbolListing.link = '/live/security-activity/'+symbolIndexResult[j].symbol; symbolListing.listingMarket = symbolIndexResult[j].listingMarket; formattedSymbolListing.push(symbolListing); rawSymbolListing.push(symbolIndexResult[j]); } } var formattedSymbolIndex = {}; formattedSymbolIndex.data = formattedSymbolListing; //Store the indecies in local storage sessionStorage.setItem("searchsymbols", JSON.stringify(formattedSymbolIndex)); sessionStorage.setItem("rawSearchIndex", JSON.stringify(rawSymbolListing)); //We also need the store the date this information was pulled var dt = new Date(); sessionStorage.setItem("indexDate", dt.getTime()); $('#symbol-search-loading').hide(); allSymbolSearchResults = formattedSymbolIndex.data; }).fail(function(){ //Create an empty index for symbols as none are available var formattedSymbolIndex = {}; formattedSymbolIndex.data = new Array(); $('#symbol-search-error').show(); $('#symbol-search-loading').hide(); }); }

    Services

    Cboe Canada, the new business name of the NEO Exchange, provides next generation capital-raising and liquidity solutions, all designed around our core values of fairness, liquidity, efficiency, and unrivaled client service.

    Raising Capital

    When it comes to your unique capital raising needs, we take the time to help you explore your options and determine the optimal path, whether it be a public listing or staying private longer with a private raise.

    Raising Assets

    We work closely with asset managers through each step of the process to raise assets in the most efficient way possible.

    Exchange Traded Funds

    Whether Exchange Traded Funds, Closed End Funds, Exchange Traded Notes, or other forms of investment vehicles, Cboe has solutions to enable their successful public listing.

    Canadian Depositary Receipts (CDRTM)

    Depositary receipts are a time-tested way for investors to access shares of foreign listed companies. Canadian Depositary Receipts (CDRs) are designed to make it easier for Canadians to access the most popular publicly listed US companies, in Canadian Dollars, and with a built-in currency hedge.

    Platform Traded Funds (PTFTM)

    By using NEO Connect to distribute mutual funds and private OM funds as Platform Traded Funds (PTFs), you can reduce your costs and broaden your distribution to reach dealers, advisors, and their investors.

    Trading on Cboe Canada

    The NEO Exchange, operating as Cboe Canada, has three distinct trading venues, each aimed at optimizing quality of execution for the long-term investor. Our venues offer reliable liquidity, reduced order fragmentation, larger fill sizes, and faster times to trade.

    Investing on Cboe Canada

    Our innovative and disruptive solutions aimed at making the markets better are designed to enable a better investment experience for everyone involved. Our markets provide you with access to a large pool of investment opportunities which can be accessed and transacted with efficiency and transparency.

    Questions? Contact us to learn more.

    [email protected] | (416) 933-5959