{"id":2521,"date":"2015-09-18T21:10:28","date_gmt":"2015-09-19T02:10:28","guid":{"rendered":"https:\/\/www.optimusfutures.com\/tradeblog\/?p=2521"},"modified":"2015-09-18T21:10:28","modified_gmt":"2015-09-19T02:10:28","slug":"programming-languages-trading","status":"publish","type":"post","link":"https:\/\/optimusfutures.com\/blog\/programming-languages-trading\/","title":{"rendered":"Which programming language should you use for trading?"},"content":{"rendered":"<p>Choosing a trading platform is an important decision. Important points to consider are the platform\u2019s features, its price, and the level of support that\u2019s available. But there\u2019s also a decision about which kind of programming language to use. Should you use an advanced, professional programming language or would a simple, but easy-to-learn language be a better choice? Let\u2019s look at the advantages and disadvantages of each.<\/p>\n<h2><strong>Programming with a professional programming language<\/strong><\/h2>\n<p>Several trading platforms use an existing, well-established programming language that\u2019s designed for professional programmers. Examples of these platforms are MultiCharts .NET [https:\/\/optimusfutures.com\/Platforms\/MultiChartsNET.php] (which allows coding in either C# or Visual Basic) and Sierra Chart [<a href=\"https:\/\/optimusfutures.com\/Platforms\/SierraChart.php\" target=\"_blank\" rel=\"noopener\">https:\/\/optimusfutures.com\/Platforms\/SierraChart.php<\/a>] that adopted C++.<\/p>\n<p><strong>Advantages of a professional programming language<\/strong><\/p>\n<p>Professional programming languages have a few advantages. First, they have so much features and capabilities that they allow for programming practically anything. With C#, for instance, we can create professional websites, complete Windows applications, and even Windows and XBox games. What this means for trading is that we\u2019re not limited by the features of the trading platform, and we could use a professional programming language to store trades in an external database, create custom pop-up messages, send customised emails, save charts as an image and upload them, and much more.<\/p>\n<p>Another advantage is that these programming languages can be written in a professional code editor, like Microsoft Visual Studio (which also has a free edition, Community, for individual developers and small professional teams). These editors offer a lot of advanced features that make programming and debugging scripts much easier and efficient.<\/p>\n<p>Professional programming languages also offer object-oriented programming techniques. With this feature complex ideas become easier to program since it allows code to model the problem we\u2019re trying to solve. This not only makes complex code easier to understand (since it mimics real-world behaviour), it\u2019s also easier to write and manage. That, in turn, reduces errors and programming time when coding very complex trading strategies.<\/p>\n<p><strong>Disadvantage of a professional programming language<\/strong><\/p>\n<p>The most important disadvantage of professional programming languages is their steep learning curve. Not only are these complex languages, there\u2019s also a lot to learn even if you only want to do basic things. And while anyone can learn a professional programming language, it does require a significant time investment. Furthermore, because these programming languages have their own terminology for abstract operations, the available help online can be hard to comprehend.<\/p>\n<p><strong>Programming in a scripting language<\/strong><\/p>\n<p>Other trading platforms, like MultiCharts [<a href=\"https:\/\/optimusfutures.com\/Platforms\/MultiCharts.php\" target=\"_blank\" rel=\"noopener\">https:\/\/optimusfutures.com\/Platforms\/MultiCharts.php<\/a>] and TradeStation [<a href=\"https:\/\/optimusfutures.com\/TradeStation.php\" target=\"_blank\" rel=\"noopener\">https:\/\/optimusfutures.com\/TradeStation.php<\/a>], created their own proprietary programming language that\u2019s developed with the needs of traders in mind. These languages are often not that advanced (and therefore more aptly called scripting languages) but offer some important benefits.<\/p>\n<p><strong>Benefits of a scripting language<\/strong><\/p>\n<p>The most important benefit of scripting languages is that they are (relatively) easy: they need less code to perform certain actions and the code that\u2019s needed is also less complex. This not only reduces the time needed to learn a scripting language, it also makes implementing ideas in them that much quicker.<\/p>\n<p>And because it doesn\u2019t take that much time to learn a scripting language, it\u2019s also easier to switch trading platforms: if you already have some programming experience from a trading platform, you can know how to program in another platform within a week.<\/p>\n<p><strong>Drawbacks of a scripting language<\/strong><\/p>\n<p>An important disadvantage of scripting languages is that their capabilities are limited. Several things that are standard in a professional programming language are missing from scripting languages. While scripting languages often can use DLLs (a small file that contains code written in a professional programming language), that does require know how to write DLLs in languages like C# and C++.<\/p>\n<p>Another drawback of scripting languages is that you\u2019re limited to the code editor that comes with the trading platform, which typically doesn\u2019t have much features that makes programming more productive (think WordPad versus Microsoft Word) or lacks debugging features.<\/p>\n<h2><strong>Which programming language should you choose?<\/strong><\/h2>\n<p>While choosing a programming language is also a matter of personal preference, some general pointers for choosing a language are given below.<\/p>\n<p>Choose a professional language like C# when one or several of these statements apply to you:<\/p>\n<p>?\u00a0\u00a0\u00a0\u00a0\u00a0 You love programming and would rather spend more time on it.<\/p>\n<p>?\u00a0\u00a0\u00a0\u00a0\u00a0 You already have some experience with an object-oriented programming language and prefer not to go back to a more basic language.<\/p>\n<p>?\u00a0\u00a0\u00a0\u00a0\u00a0 If you don\u2019t have much programming experience, you\u2019re willing to spend a decent amount of time in the next half year to learn programming.<\/p>\n<p>?\u00a0\u00a0\u00a0\u00a0\u00a0 You love to learn complex topics and don\u2019t mind learning programming from a 700-page book.<\/p>\n<p>?\u00a0\u00a0\u00a0\u00a0\u00a0 You like to think logical and abstract about the things you\u2019re going to code.<\/p>\n<p>?\u00a0\u00a0\u00a0\u00a0\u00a0 You want to go beyond the features that the trading platform holds and want to be able to program your own applications.<\/p>\n<p>?\u00a0\u00a0\u00a0\u00a0\u00a0 You plan to code complex quantitative trading strategies.<\/p>\n<p>Here are several reasons why a scripting language might be a good choice for you:<\/p>\n<p>?\u00a0\u00a0\u00a0\u00a0\u00a0 You\u2019re new to programming and are more comfortable learning programming with an easy-to-understand programming language.<\/p>\n<p>?\u00a0\u00a0\u00a0\u00a0\u00a0 You think programming your own scripts is a necessity but not something that you\u2019d do for fun.<\/p>\n<p>?\u00a0\u00a0\u00a0\u00a0\u00a0 You view programming as a minor part of your trading activities, and would rather not spend too much time and energy on learning programming and coding scripts.<\/p>\n<p>?\u00a0\u00a0\u00a0\u00a0\u00a0 You only need to occasionally program an indicator or trading strategy or make small changes to an existing script.<\/p>\n<p>?\u00a0\u00a0\u00a0\u00a0\u00a0 You don\u2019t like the idea of working with an abstract programming language and just want to code your idea so you can go back to your other activities.<\/p>\n<p>?\u00a0\u00a0\u00a0\u00a0\u00a0 You\u2019re yet not sure that you\u2019ll use the trading platform in the long term so you\u2019d rather not spend a lot of time learning its programming language now.<\/p>\n<p>There is a Substantial Risk of Loss in Futures Trading. Past Performance is Not Indicative of Future Results.<\/p>\n<p>At Optimus Futures we offer a range of trading platforms [<a href=\"https:\/\/optimusfutures.com\/Futures-Trading-Platforms.php\" target=\"_blank\" rel=\"noopener\">https:\/\/optimusfutures.com\/Futures-Trading-Platforms.php<\/a>] for traders with different needs and goals. If you need help choosing a trading platform, reach out [<a href=\"https:\/\/optimusfutures.com\/Support.php\" target=\"_blank\" rel=\"noopener\">https:\/\/optimusfutures.com\/Support.php<\/a>] and we\u2019ll assist you in getting started.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Choosing a trading platform is an important decision. Important points to consider are the platform\u2019s features, its price, and the level of support that\u2019s available. But there\u2019s also a decision about which kind of programming language to use. Should you use an advanced, professional programming language or would a simple, but easy-to-learn language be a [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[41,2,328,3],"tags":[82,339,85,329,340],"class_list":["post-2521","post","type-post","status-publish","format-standard","hentry","category-automated-futures-trading","category-online-futures-trading","category-tradestation","category-trading-tips-and-strategies","tag-easy-language-multicharts","tag-programming-language","tag-sierrachart","tag-tradestation","tag-trading-with-c"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.6 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Which programming language should you use for trading?<\/title>\n<meta name=\"description\" content=\"Choosing a programming language is an important decision for trading. Important points to consider are the platform\u2019s features, price, and support.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/optimusfutures.com\/blog\/programming-languages-trading\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Which programming language should you use for trading?\" \/>\n<meta property=\"og:description\" content=\"Choosing a programming language is an important decision for trading. Important points to consider are the platform\u2019s features, price, and support.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/optimusfutures.com\/blog\/programming-languages-trading\/\" \/>\n<meta property=\"og:site_name\" content=\"The Trading Blog - Optimus Futures\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/OptimusFutures\" \/>\n<meta property=\"article:published_time\" content=\"2015-09-19T02:10:28+00:00\" \/>\n<meta name=\"author\" content=\"Optimus Futures\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@optimusfutures\" \/>\n<meta name=\"twitter:site\" content=\"@optimusfutures\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Optimus Futures\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/programming-languages-trading\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/programming-languages-trading\\\/\"},\"author\":{\"name\":\"Optimus Futures\",\"@id\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/#\\\/schema\\\/person\\\/79ae52b1d71d688a8ac5ec1b892a4840\"},\"headline\":\"Which programming language should you use for trading?\",\"datePublished\":\"2015-09-19T02:10:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/programming-languages-trading\\\/\"},\"wordCount\":1073,\"publisher\":{\"@id\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/#organization\"},\"keywords\":[\"easy language multicharts\",\"programming language\",\"Sierrachart\",\"TradeStation\",\"trading with C#\"],\"articleSection\":[\"Automated Futures Trading\",\"Online Futures Trading\",\"TradeStation\",\"Trading Tips and Strategies\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/programming-languages-trading\\\/\",\"url\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/programming-languages-trading\\\/\",\"name\":\"Which programming language should you use for trading?\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/#website\"},\"datePublished\":\"2015-09-19T02:10:28+00:00\",\"description\":\"Choosing a programming language is an important decision for trading. Important points to consider are the platform\u2019s features, price, and support.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/programming-languages-trading\\\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/\",\"name\":\"The Trading Blog - Optimus Futures\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/#organization\",\"name\":\"The Trading Blog - Optimus Futures\",\"url\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/ab09de32f79993bfecf9b1ab40a32c27f509693d.png\",\"contentUrl\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/ab09de32f79993bfecf9b1ab40a32c27f509693d.png\",\"width\":1474,\"height\":331,\"caption\":\"The Trading Blog - Optimus Futures\"},\"image\":{\"@id\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/OptimusFutures\",\"https:\\\/\\\/x.com\\\/optimusfutures\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/optimus-trading-group\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/OptimusTradingGroup\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/optimusfutures.com\\\/blog\\\/#\\\/schema\\\/person\\\/79ae52b1d71d688a8ac5ec1b892a4840\",\"name\":\"Optimus Futures\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/?s=96&d=mm&r=g\",\"caption\":\"Optimus Futures\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Which programming language should you use for trading?","description":"Choosing a programming language is an important decision for trading. Important points to consider are the platform\u2019s features, price, and support.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/optimusfutures.com\/blog\/programming-languages-trading\/","og_locale":"en_US","og_type":"article","og_title":"Which programming language should you use for trading?","og_description":"Choosing a programming language is an important decision for trading. Important points to consider are the platform\u2019s features, price, and support.","og_url":"https:\/\/optimusfutures.com\/blog\/programming-languages-trading\/","og_site_name":"The Trading Blog - Optimus Futures","article_publisher":"https:\/\/www.facebook.com\/OptimusFutures","article_published_time":"2015-09-19T02:10:28+00:00","author":"Optimus Futures","twitter_card":"summary_large_image","twitter_creator":"@optimusfutures","twitter_site":"@optimusfutures","twitter_misc":{"Written by":"Optimus Futures","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/optimusfutures.com\/blog\/programming-languages-trading\/#article","isPartOf":{"@id":"https:\/\/optimusfutures.com\/blog\/programming-languages-trading\/"},"author":{"name":"Optimus Futures","@id":"https:\/\/optimusfutures.com\/blog\/#\/schema\/person\/79ae52b1d71d688a8ac5ec1b892a4840"},"headline":"Which programming language should you use for trading?","datePublished":"2015-09-19T02:10:28+00:00","mainEntityOfPage":{"@id":"https:\/\/optimusfutures.com\/blog\/programming-languages-trading\/"},"wordCount":1073,"publisher":{"@id":"https:\/\/optimusfutures.com\/blog\/#organization"},"keywords":["easy language multicharts","programming language","Sierrachart","TradeStation","trading with C#"],"articleSection":["Automated Futures Trading","Online Futures Trading","TradeStation","Trading Tips and Strategies"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/optimusfutures.com\/blog\/programming-languages-trading\/","url":"https:\/\/optimusfutures.com\/blog\/programming-languages-trading\/","name":"Which programming language should you use for trading?","isPartOf":{"@id":"https:\/\/optimusfutures.com\/blog\/#website"},"datePublished":"2015-09-19T02:10:28+00:00","description":"Choosing a programming language is an important decision for trading. Important points to consider are the platform\u2019s features, price, and support.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/optimusfutures.com\/blog\/programming-languages-trading\/"]}]},{"@type":"WebSite","@id":"https:\/\/optimusfutures.com\/blog\/#website","url":"https:\/\/optimusfutures.com\/blog\/","name":"The Trading Blog - Optimus Futures","description":"","publisher":{"@id":"https:\/\/optimusfutures.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/optimusfutures.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/optimusfutures.com\/blog\/#organization","name":"The Trading Blog - Optimus Futures","url":"https:\/\/optimusfutures.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/optimusfutures.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/optimusfutures.com\/blog\/wp-content\/uploads\/2023\/07\/ab09de32f79993bfecf9b1ab40a32c27f509693d.png","contentUrl":"https:\/\/optimusfutures.com\/blog\/wp-content\/uploads\/2023\/07\/ab09de32f79993bfecf9b1ab40a32c27f509693d.png","width":1474,"height":331,"caption":"The Trading Blog - Optimus Futures"},"image":{"@id":"https:\/\/optimusfutures.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/OptimusFutures","https:\/\/x.com\/optimusfutures","https:\/\/www.linkedin.com\/company\/optimus-trading-group","https:\/\/www.youtube.com\/user\/OptimusTradingGroup"]},{"@type":"Person","@id":"https:\/\/optimusfutures.com\/blog\/#\/schema\/person\/79ae52b1d71d688a8ac5ec1b892a4840","name":"Optimus Futures","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","caption":"Optimus Futures"}}]}},"featured_image_src":null,"featured_image_src_square":null,"author_info":{"display_name":"Optimus Futures","author_link":"https:\/\/optimusfutures.com\/blog\/author\/optimus-futures\/"},"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/optimusfutures.com\/blog\/wp-json\/wp\/v2\/posts\/2521","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/optimusfutures.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/optimusfutures.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/optimusfutures.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/optimusfutures.com\/blog\/wp-json\/wp\/v2\/comments?post=2521"}],"version-history":[{"count":0,"href":"https:\/\/optimusfutures.com\/blog\/wp-json\/wp\/v2\/posts\/2521\/revisions"}],"wp:attachment":[{"href":"https:\/\/optimusfutures.com\/blog\/wp-json\/wp\/v2\/media?parent=2521"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/optimusfutures.com\/blog\/wp-json\/wp\/v2\/categories?post=2521"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/optimusfutures.com\/blog\/wp-json\/wp\/v2\/tags?post=2521"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}