<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[QuantInsti Articles]]></title><description><![CDATA[Thoughts, stories and ideas.]]></description><link>https://www.quantinsti.com/articles/</link><image><url>https://www.quantinsti.com/articles/favicon.png</url><title>QuantInsti Articles</title><link>https://www.quantinsti.com/articles/</link></image><generator>Ghost 3.15</generator><lastBuildDate>Sat, 08 Aug 2026 17:59:06 GMT</lastBuildDate><atom:link href="https://www.quantinsti.com/articles/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[From CA to Quant: Manikandan's EPAT Journey]]></title><description><![CDATA[How chartered accountant Manikandan K traded discretionary decisions for systematic research, discovered volatility modelling through EPAT, and now chases alpha as an independent quant.]]></description><link>https://www.quantinsti.com/articles/manikandan-epat-success-story-ca-quant-algorithmic-trading/</link><guid isPermaLink="false">6a606c0074e6f000074e72a8</guid><category><![CDATA[Quant Jobs]]></category><category><![CDATA[Quant Roles]]></category><dc:creator><![CDATA[MOHIT KARWAL]]></dc:creator><pubDate>Thu, 23 Jul 2026 10:10:27 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: html--><!-- Student intro block — place at top of blog body -->
<div class="student-intro" style="display:flex;align-items:center;gap:24px;padding:24px;margin:0 0 32px;background:#f4f7fb;border-left:4px solid #009f54;border-radius:8px;flex-wrap:wrap;">
  <div class="student-intro__photo" style="width:120px;height:120px;min-width:120px;flex:0 0 120px;border-radius:50%;overflow:hidden;border:3px solid #ffffff;box-shadow:0 2px 8px rgba(0,0,0,0.12);background:#e6ebf2;">
    <img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/07/Headshot-jpeg.jpg" alt="Manikandan K, EPAT alumnus and independent quant researcher" loading="lazy" style="width:100%;height:100%;object-fit:cover;object-position:center top;display:block;margin:0;">
  </div>
  <div class="student-intro__text" style="flex:1;min-width:240px;">
    <p style="margin:0 0 4px;font-size:0.8rem;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:#009f54;">
      EPAT Alumni Story
    </p>
    <h3 style="margin:0 0 8px;font-size:1.3rem;line-height:1.3;color:#173871;">
      Manikandan K
    </h3>
    <p style="margin:0;font-size:0.95rem;line-height:1.55;color:#333;">
      A chartered accountant turned independent quant researcher, Manikandan moved from
      discretionary, mood-driven trading to evidence-based quantitative research. Through EPAT
      he learned to model volatility, reason in market regimes, and back-test every idea before
      deploying capital. Today he builds research workflows in Python and, as his LinkedIn post
      put it, "the pursuit of alpha continues."
    </p>
  </div>
</div><!--kg-card-end: html--><p>Most chartered accountants build careers around certainty. The numbers reconcile, the tax filings are due on fixed dates, and the work rewards precision and repetition. Manikandan K started down exactly that path, mastering financial reporting, audit, and tax like everyone else in his cohort. Then a single subject in his CA curriculum cracked the door open to a very different world.</p><p>Strategic financial management, one of the eight subjects in the chartered accountancy program, introduced him to derivatives, options, and portfolio construction. "There is a world which revolves around finance," he recalls thinking. That spark sat quietly for years while he did the conventional work, until curiosity pulled him from investing into equities, then futures, then options, and eventually into a question he could not shake: why did his discretionary trading feel fundamentally unsustainable, even when it worked?</p><p>This is the story of how a chartered accountant with no coding background transitioned from discretionary decision-making to evidence-driven quantitative research, and why he now describes himself as an independent quant researcher chasing alpha.</p><h2 id="from-ledgers-to-live-markets">From Ledgers to Live Markets</h2><p>Manikandan's route into trading was gradual and self-directed. Coming from a science background, he chose chartered accountancy because he liked how the course "molds a person," and he spent his early years doing the standard work of financial reporting, audit, and tax. But the theory he had absorbed in strategic financial management kept nagging at him. "I am a chartered accountant and I have studied theoretically, I should apply it, at least for my sake," he remembers deciding.</p><p>He began with investments, then moved deeper. Where he lives in the south of India, he observed, wealth traditionally revolves only around real estate and gold. "People don't have an idea about the modern financial products," he says, and for a while he considered starting an investment planning consultancy to fill that gap. The more he traded, though, the more a doubt surfaced: this was not how institutions operated.</p><p>That gap between retail intuition and institutional method became the central problem of his journey. He kept asking practitioners whether what they did was sustainable over the long term, and the answers were unsettling. Even the government was warning that most traders lose money. Yet he knew chartered accountants who traded successfully. "People are saying this is not sustainable for a long term, but the people in my domain were doing it successfully. So what am I missing?"</p><h2 id="why-systematic-trading">Why Systematic Trading?</h2><p>The honest answer, he eventually concluded, was that discretionary trading rests on the least reliable foundation of all: the trader's own mood. "Our mindset will not be the same every day," he explains. "Sometimes when we are good, it is not good for the market. We can tend to be overenthusiastic, punch in more orders." On a bad day, the same trader hesitates on a genuinely good setup.</p><p>He offers a small, telling example from his own testing. He was working a one-to-two risk-reward ratio, capped at two trades a day. The first trade won, and the day felt aligned. On the second trade, a good mood made the market "look so better," and he missed a small detail that turned into a loss. Frustrated at his own mistake, he broke his own rule and took a third trade he would never have taken on a normal day. It backfired too. "Even when your mood is good it can backfire, and even when your mood is not better it can go another way," he says. He realised that the largest source of uncertainty wasn't always the market—it was the decision-making process itself.</p><p>Systematic trading offered the obvious antidote. "The main specialty of systematic trading is your mood has got nothing to do with this. That itself is a major win." The biggest advantage of systematic trading isn't simply removing emotions. It's ensuring every trading decision is supported by research, historical validation and a repeatable process before capital is ever deployed. More importantly, the transition wasn't from manual trading to automation. It was from opinions to hypotheses. Every trading idea became something to test rather than something to believe.</p><h2 id="why-epat">Why EPAT?</h2><p>Before EPAT, Manikandan tried to close the gap on his own. A friend introduced him to how US markets operate, and he took courses covering concepts beyond standard technical indicators, things like fair value gaps and order blocks. He learned them, but the missing link remained. "This is not sustainable for a long term. I should do something different to take it long term."</p><p>When he came across the EPAT curriculum, it read differently from everything else he had studied. It promised the structured, institutional approach he had been circling for years without being able to name. He looked at the syllabus, liked what he saw, and enrolled. The appeal was not a single trick or indicator but a complete way of thinking about markets, from hypothesis to back-test to execution.</p><p>What EPAT reframed for him most sharply was the relationship between analysis and action. In discretionary options trading, he notes, most people watch volatility and open interest, then reach a conclusion and punch in a trade based on a strategy. "They see the volatility, but they don't use it the way quant people use it." EPAT taught him to treat volatility not as a passing observation but as something to model and act on deliberately.</p><h2 id="the-volatility-aha-moment">The Volatility Aha Moment</h2><p>Ask Manikandan which idea from the program stayed with him, and he does not hesitate. "I had no idea that volatility could often be modelled more reliably than price direction. That completely changed how I thought about risk management and options strategies. That itself was a big aha moment." Across years of self-study and even his CA curriculum, he had never encountered the notion that you could forecast volatility more reliably than direction, then build a trade around it.</p><p>The insight reshaped how he thinks about edge. "Predicting volatility is much better than predicting the prices," he says, and using that, "we can trade." Rather than betting on whether an asset rises or falls, he learned to reason about the range and behavior it is likely to exhibit, and to detect the market regime he is operating in. Different regimes call for different strategies, and news events, which discretionary traders are usually told to avoid entirely, become tradable when approached systematically. "Why are you leaving money on the table when you understand the ideas better?"</p><p>What made the concept doubly valuable was its reusability. The same volatility forecast that drives dynamic risk management on the equities side can seed entirely new strategies on the options side. "It's a multi-level use, all from the same derivations," he observes. One idea, learned once, paying off across several parts of his trading.</p><h2 id="the-coding-hurdle">The Coding Hurdle</h2><p>For a chartered accountant, the intimidating part of any quant program is the programming. Manikandan was candid about starting near zero. "The last code I did was during my school days, C and C++, a very basic level," he says. For years afterward he wrote no code at all. Ahead of the program he spent a few hours on basic Python through YouTube lectures, enough to grasp the shape of it, but no more.</p><p>EPAT, he found, met him where he was. "They started from the ground root level, and the mentors were also very good at teaching from the ground root level," he says. Because the material assumed no prior experience, coding never became the barrier he had feared. "I don't think coding was a hurdle for me to understand the concepts." Today, he is comfortable building research workflows in Python, implementing statistical time-series models and continuously improving his programming skills.</p><p>His approach to that practice reveals something about his temperament. When he gets an idea, he tries to translate it into code himself before reaching for help. Errors come, and he works back through them on Google Colab, asking what was wrong with his thinking. The mentors reinforced this, showing him not just fixes but which sources to consult when stuck. The result is understanding that sticks rather than answers that evaporate.</p><h2 id="epat-and-the-role-of-ai">EPAT and the Role of AI</h2><p>Given how easy it would be to lean on large language models for every coding problem, Manikandan is deliberately restrained. "I don't want to go to an LLM immediately. I want to think for myself, because that creates a much better understanding of what is happening," he explains. For him, understanding always comes before optimisation. The objective is not simply to produce working code, but to understand why the underlying model behaves the way it does.</p><p>That discipline extends to how he sees AI reshaping his original profession, and it is the crux of his advice to other chartered accountants. The routine work that traditionally absorbs young CAs, particularly financial reporting and tax, is exactly the kind of task AI automates most easily. "The roles are going to get very limited," he warns. "More people need to venture into new horizons."</p><p>He is also alert to how AI and alternative data are expanding what quant work can do. He points to satellite imagery and credit card usage data being used to gauge whether a company is growing, or to measure footfall at a business. "This alternate data is being used much more prevalently than before," he notes, and connecting those disparate signals is precisely the kind of interrelation that excites him about the field.</p><h2 id="advice-for-fellow-cas">Advice for Fellow CAs</h2><p>Manikandan believes the chartered accountancy background is an asset in quant finance, not a liability, provided you know how to use it. "I see quantitative finance as an extension of the evidence-based mindset developed through auditing. Just as auditors gather evidence before forming an opinion, quantitative researchers gather evidence before accepting or rejecting an investment hypothesis. The discipline is remarkably similar”. We understand accounting, finance, auditing &amp; how tax works," he says. That breadth, he argues, gives CAs "a knack" for the interconnected reasoning that finance rewards, whether on the sell side across risk management, quant trading, and research, or on the buy side.</p><p>The most transferable skill, in his view, is stamina. "CA students actually spend more than 14 hours every day sitting and studying," he says. "The same applies for quant. We need to sit, do research, study different things, and try different things." The willingness to focus for long stretches, which the CA grind instills, maps directly onto the demands of early quant work.</p><p>Curiosity is the second ingredient. Chartered accountancy, he points out, is never a single subject but a web of accountancy, tax, law, audit, and information systems that you learn to interrelate. "The same applies for quant. It is not just one field. You can apply the concepts you learned in various different ways." Predict volatility, and you can deploy it for risk management and in derivatives alike. For CAs weighing the leap, his message is simple: finance is a big ocean with many branches, and quant is one of the most rewarding places to swim.</p><h2 id="looking-ahead">Looking Ahead</h2><p>Manikandan's ambition is unambiguous, if patient. "My long-term goal was to start a hedge fund." he says. He entered EPAT imagining he would build a strategy, capture alpha, and go independent quickly. The program changed that calculus. He now sees how much there is to learn about how large institutions actually operate before striking out alone.</p><p>So the near-term plan is experience. "I should join a hedge fund or a big institution where things happen on a large scale, to understand that better," he says, with the goal of founding his own fund in perhaps ten to fifteen years. In the meantime, balancing ongoing CA exams with quant study, he is working through a series of projects on the concepts he has learned, including experiments with SARIMA and GARCH models to strengthen his understanding of statistical forecasting and dynamic risk management before progressing to larger institutional-grade research projects.</p><p>For now, as his LinkedIn post put it, “The pursuit of alpha continues”. It is a fitting phrase for someone who spent years sensing that something was missing from his trading and finally found the structure to name it. The chartered accountant who once traded on mood now reasons in regimes, volatility forecasts, and back-tested hypotheses, and he is only getting started.</p><h3 id="next-steps">Next Steps </h3><p>If you are just getting started with algorithmic trading, begin with the<a href="https://quantra.quantinsti.com/"> Quantitative Trading Free Learning Track</a>. It includes beginner-friendly courses covering data basics, trading strategies, and coding for finance.</p><p>Once you are ready to go deeper, explore<a href="https://quantra.quantinsti.com/"> Quantra's Algorithmic Trading for Beginners Learning Track</a>, which offers hands-on, application-focused modules to build your skills step by step.</p><p>For those looking for a comprehensive, guided journey with mentorship, live lectures, and career support, the<a href="https://www.quantinsti.com/epat"> Executive Programme in Algorithmic Trading (EPAT)</a> provides a complete foundation for launching or accelerating a career in this field.</p><h3 id="schedule-an-epat-counselling-call">Schedule an EPAT counselling call </h3><p>To understand if EPAT is the right choice for you, talk to one of our specialists who have counselled thousands of learners over the past decade and helped them make the right career decision.</p><!--kg-card-begin: html--><div class="calendly-inline-widget" data-url="https://calendly.com/counsellor-1/speak-to-epat-counsellors?month=2025-04&embed_type=Inline&hide_gdpr_banner=1" style="min-width:320px;height:630px;"></div>
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js"></script>
<!--kg-card-end: html--><p><br></p><p><br></p>]]></content:encoded></item><item><title><![CDATA[How Mayank Hedaoo Traded His Way Back with EPAT]]></title><description><![CDATA[After his quant firm in France shut down, Mayank Hedaoo used EPAT's faculty and placement support to land a bond trading role in global commodity markets.]]></description><link>https://www.quantinsti.com/articles/mayank-hedaoo-epat-success-story-algorithmic-trading/</link><guid isPermaLink="false">6a60687f74e6f000074e7250</guid><category><![CDATA[Quant Jobs]]></category><category><![CDATA[Quant Roles]]></category><dc:creator><![CDATA[MOHIT KARWAL]]></dc:creator><pubDate>Thu, 23 Jul 2026 10:09:30 GMT</pubDate><content:encoded><![CDATA[<p>When a quantitative finance professional loses their job abroad and returns home to find the doors largely shut, the next move is rarely straightforward. Mayank Hedaoo had spent years building a career that cut across engineering, equity research, and climate science. </p><blockquote>"I was already working as a quant analyst and as a research engineer. I was working in France," he recalls. "My company got shut down and I had to move back." He had managed passive indexes for firms benchmarked against MSCI and Morningstar, written code for scope-three emissions calculations, and read the quantitative finance canon cover to cover. But re-entering India's quant job market after an overseas stint, he found the gate had narrowed considerably. "In India they only hire from IIT, and outside they need a PhD," he explains. "That is where it was hard to enter."</blockquote><p>Rather than waiting out the market, Mayank chose to act. He enrolled in the Executive Programme in Algorithmic Trading (EPAT) at QuantInsti, and within months had accepted a role that, by his own account, exceeded every expectation he had set for himself. Today he trades cotton options and futures at ICE and at exchanges in China, operating in one of the more specialised corners of global commodity markets.</p><p>His path from Paris to the trading desk offers a useful illustration of what EPAT can do for someone who already understands the theory but needs the right network and credentials to break through.</p><hr><h2 id="why-algo-trading">Why Algo Trading? </h2><p>Mayank's interest in quantitative finance did not begin with EPAT. By the time he enrolled, he already had substantial experience on both the research and the implementation side of the field. As a quant analyst, he had worked on index construction and maintenance for some of the most recognised names in passive investing. Scientific Beta, a firm known for building factor-based equity indexes, was among his employers. Before that, his MSC and MBA had given him a thorough grounding in the academic literature that underpins algorithmic strategy development.</p><p>His subsequent stint as a research engineer added an unexpected dimension to his profile. The role sat at the intersection of quantitative methods and climate science, focused on calculating scope-three emissions for organisations. "It was a bit quantitative because it involved calculations of scope-three emissions," he notes, adding that the coding and research skills carried over even if the subject matter had shifted. He also observed that the move was not entirely unusual for people with his background: "All the quant firms try to hire those that have a research background, especially in a quantitative field." The experience reflected a broader truth about quantitative professionals: the analytical toolkit is often portable across domains, even when the domain itself is unfamiliar.</p><p>When his French employer ceased operations, Mayank found himself re-entering a job market that had become more selective, not less, about academic pedigree for quant research roles. The skills were there; the credential gap and the placement network were not.</p><hr><h2 id="why-epat">Why EPAT? </h2><p>Mayank cites two reasons for choosing EPAT, and he is precise about both of them. The first was the faculty. For someone who had spent years studying from textbooks, the prospect of engaging directly with the authors behind those texts was a genuine draw. It was not an abstract benefit; it was a chance to resolve questions and hear context that no textbook could fully convey.</p><blockquote>"The faculty that is teaching me in this course is actually the same faculty whose books I read in my MSC and MBA."</blockquote><p>The second reason was more pragmatic. A college senior had recommended EPAT specifically because of its lifetime placement service. Mayank was candid about his thinking at the time: he calculated that even if the next several months of job searching went nowhere, there was a structured fallback.</p><blockquote><em>"I decided to take this programme for two reasons. One was the faculty. The second reason was the lifetime placement service. I thought that maybe through your placement service I can actually find a job, which I did. I got the job through placement."</em></blockquote><p>That combination, intellectual credibility in the faculty and practical utility in the placement infrastructure, is what made EPAT stand out from the alternatives he considered. For a professional re-entering the market after an involuntary gap, both factors mattered in equal measure.</p><hr><h2 id="the-epat-experience">The EPAT Experience </h2><p>Mayank came to EPAT with more prior knowledge than the average enrollee. He had spent considerable time on self-directed study before enrolling. "I had read books of Ernie Chan," he says, referring to the widely read practitioner texts on quantitative trading strategies. He had also worked through much of the foundational academic literature by following citation trails from one source to the next. As a result, he found that many modules reinforced rather than introduced concepts. </p><blockquote>He is candid about this: <br>"I wouldn't say I learned anything new across the board."</blockquote><p>Where the programme did add value was in areas he had not encountered directly in his work. Translating a strategy from a research notebook into a production-ready system involves a distinct set of engineering considerations, and this was territory Mayank had not mapped in depth before.</p><blockquote><em>"System architecture and stuff, that was something new for me, and options and futures strategies. I had read books, I had learned, but the programme treated them with a rigour that matched what I was expecting from the faculty."</em></blockquote><p>His approach to learning is characteristic of someone who treats any course as a starting point rather than an endpoint. For Mayank, the value of a well-structured programme lies partly in the references it surfaces, the papers and frameworks it points toward, as much as in the content it delivers directly.</p><blockquote><em>"Whenever I'm reading something, then the resources that they cite, I go to those resources."</em></blockquote><p>EPAT provided that signposting alongside the formal curriculum, and for a practitioner already comfortable with the fundamentals, that chain of references was among the most durable parts of the experience.</p><hr><h2 id="life-after-epat">Life After EPAT </h2><p>The placement outcome exceeded Mayank's expectations by a considerable margin. </p><blockquote>"I'm a bond trader right now," he says. "I'm particularly involved in trading cotton options and futures at ICE and in China." </blockquote><p>It is a niche role: cotton derivatives sit in a corner of the commodities market where fundamental knowledge of the physical market intersects with quantitative strategy and risk management across multiple geographies and trading sessions.</p><p>His reaction to the outcome was unambiguous. He had entered the placement process after a period of professional disruption, with expectations calibrated to match the difficulty of re-entering the market. The result cleared that bar by a significant margin.</p><blockquote><em>"I'm highly delighted with the company that I'm working with, the process, the payment that I'm getting. Everything was above expectation."</em></blockquote><p>The role also represents a meaningful convergence of his varied background. Bond and commodity trading draws on the quantitative analysis skills he developed as a quant analyst, the research rigour he practised as an engineer, and the options theory he studied both before and during EPAT. The path to this point was not linear, but each stage turns out to have contributed something to the work he does now.</p><hr><h2 id="looking-ahead">Looking Ahead</h2><p>Mayank keeps a close eye on where the field is moving, and he is direct about what he thinks matters most in the near term. When asked about topics worth exploring further in algo trading, he did not hesitate.</p><blockquote>"Just go deep on MCP and agents. Those are the hot topics right now and very few people are doing it."</blockquote><p>Model Context Protocol (MCP) and AI agent frameworks are reshaping how quantitative researchers interact with data, tools, and strategy infrastructure. The ability to build and deploy autonomous agents that can reason over market data, execute research workflows, and adapt to changing conditions is an emerging frontier in systematic trading. Mayank's interest in this area reflects both his technical background and his instinct for where durable skill-building opportunities lie.</p><p>For someone who spent time as a research engineer before returning to finance, the convergence of AI tooling and quantitative trading is a natural next area of focus. The skills he built across both domains position him well for the work ahead.</p><hr><p>Mayank Hedaoo's story is, in one sense, about resilience: a career interrupted and then rebuilt on firmer ground. But it is also about preparation. He arrived at EPAT already equipped with significant knowledge and used the programme for what he specifically needed, faculty access, structured exposure to systems and derivatives, and a credible route back into the market through placement. "The faculty that is teaching me is actually the same faculty whose books I read," he had said before enrolling. By the time his EPAT journey was over, that statement had become more than a reason to join. It had become a description of how far he had come.</p><hr><h2 id="frequently-asked-questions">Frequently Asked Questions </h2><!--kg-card-begin: html--><!-- EPAT FAQ — collapsible accordion. Paste into blog post body. -->
<style>
.epat-faq{max-width:760px;margin:24px auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:#1a1a1a}
.epat-faq h2{font-size:1.5rem;margin:0 0 16px;color:#0f2b46}
.epat-faq details{border:1px solid #e2e6ea;border-radius:8px;margin-bottom:10px;background:#fff;overflow:hidden;transition:box-shadow .2s}
.epat-faq details[open]{box-shadow:0 2px 10px rgba(0,0,0,.06)}
.epat-faq summary{list-style:none;cursor:pointer;padding:16px 48px 16px 18px;font-weight:600;font-size:1.02rem;position:relative;color:#0f2b46}
.epat-faq summary::-webkit-details-marker{display:none}
.epat-faq summary::after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:1.4rem;font-weight:400;color:#1e88e5;transition:transform .2s}
.epat-faq details[open] summary::after{content:"\2212";transform:translateY(-50%) rotate(180deg)}
.epat-faq summary:hover{background:#f6f9fc}
.epat-faq .faq-body{padding:0 18px 18px;line-height:1.6;color:#33404d}
</style>
<div class="epat-faq">
  <details>
    <summary>Is EPAT suitable for someone who already has a background in quantitative finance?</summary>
    <div class="faq-body">Yes. EPAT accommodates participants across experience levels. For those with prior quant knowledge, the programme provides structured exposure to specific areas such as systems architecture, derivatives strategies, and execution frameworks, while the faculty interactions and placement support add value independent of what participants already know.</div>
  </details>
  <details>
    <summary>Can EPAT help with finding a job after a career gap or international relocation?</summary>
    <div class="faq-body">EPAT's lifetime placement assistance is specifically designed to support participants who are re-entering the job market, including those who have relocated or experienced a gap in employment. Mayank Hedaoo is one example of someone who secured a role through this service after returning to India from abroad.</div>
  </details>
  <details>
    <summary>Do I need a PhD or an IIT background to pursue a career in algo trading?</summary>
    <div class="faq-body">Not necessarily. While research-heavy quant roles at certain firms do have strict academic requirements, there is a broad range of opportunities in trading, strategy development, and portfolio management that value practical skills and relevant credentials. Completing a programme like EPAT can help bridge credential gaps for experienced professionals.</div>
  </details>
  <details>
    <summary>What is cotton futures trading, and how does it relate to algorithmic trading?</summary>
    <div class="faq-body">Cotton futures are standardised contracts to buy or sell a fixed quantity of cotton at a predetermined price on a future date, traded on exchanges like ICE. Algorithmic and quantitative methods are applied in this market to analyse price relationships, manage hedging positions, and develop systematic trading strategies, particularly across interconnected exchanges in different geographies.</div>
  </details>
  <details>
    <summary>What topics in algo trading are gaining the most traction right now?</summary>
    <div class="faq-body">Based on current practitioner interest, Model Context Protocol (MCP) and AI agent frameworks are among the most actively discussed areas. These technologies allow trading systems and research workflows to be built around autonomous AI agents that can interact with data sources, execute tasks, and adapt over time, representing a significant shift in how quant infrastructure is designed.</div>
  </details>
  <details>
    <summary>How important is it to read beyond the course materials when studying algo trading?</summary>
    <div class="faq-body">Following the references cited in books and courses is one of the most effective ways to deepen understanding. Foundational texts often point toward academic papers, datasets, and frameworks that are not covered in depth within the course itself. Developing a habit of tracing those citations builds a much richer understanding of the field over time.</div>
  </details>
  <details>
    <summary>What kind of prior experience is useful before enrolling in EPAT?</summary>
    <div class="faq-body">Participants come from a wide range of backgrounds including finance, engineering, mathematics, and computer science. Prior exposure to any of these fields is useful. Familiarity with basic programming and financial markets is helpful but not a prerequisite, as the programme is structured to build those skills systematically from the ground up.</div>
  </details>
  <details>
    <summary>How does EPAT's placement service work for international or non-traditional candidates?</summary>
    <div class="faq-body">QuantInsti's placement support is available to EPAT graduates on a lifetime basis, meaning it extends beyond the programme period. Candidates with non-traditional backgrounds or who are applying from outside standard hiring pipelines have used this service to connect with firms that might not have been accessible through conventional job search channels.</div>
  </details>
</div><!--kg-card-end: html--><hr><h3 id="next-steps">Next Steps </h3><p>If you are just getting started with algorithmic trading, begin with the<a href="https://quantra.quantinsti.com/"> Quantitative Trading Free Learning Track</a>. It includes beginner-friendly courses covering data basics, trading strategies, and coding for finance.</p><p>Once you are ready to go deeper, explore<a href="https://quantra.quantinsti.com/"> Quantra's Algorithmic Trading for Beginners Learning Track</a>, which offers hands-on, application-focused modules to build your skills step by step.</p><p>For those looking for a comprehensive, guided journey with mentorship, live lectures, and career support, the<a href="https://www.quantinsti.com/epat"> Executive Programme in Algorithmic Trading (EPAT)</a> provides a complete foundation for launching or accelerating a career in this field.</p><hr><h3 id="schedule-an-epat-counselling-call">Schedule an EPAT counselling call </h3><p>To understand if EPAT is the right choice for you, talk to one of our specialists who have counselled thousands of learners over the past decade and helped them make the right career decision.</p><!--kg-card-begin: html--><div class="calendly-inline-widget" data-url="https://calendly.com/counsellor-1/speak-to-epat-counsellors?month=2025-04&embed_type=Inline&hide_gdpr_banner=1" style="min-width:320px;height:630px;"></div>
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js"></script>
<!--kg-card-end: html--><p><br></p><p><br></p>]]></content:encoded></item><item><title><![CDATA[From Student to Hiring Leader: Ishwar’s Full-Circle EPAT Journey in the Age of AI]]></title><description><![CDATA[Discover how Ishwar C. moved from deep theoretical finance knowledge to practical trading system design through EPAT, and how he now hires and mentors the next generation of quants.]]></description><link>https://www.quantinsti.com/articles/ishwar-epat-success-story-student-hiring-leader-algorithmic-trading/</link><guid isPermaLink="false">6a60661b74e6f000074e7225</guid><category><![CDATA[Quant Roles]]></category><category><![CDATA[Quant Jobs]]></category><dc:creator><![CDATA[MOHIT KARWAL]]></dc:creator><pubDate>Thu, 23 Jul 2026 10:09:04 GMT</pubDate><content:encoded><![CDATA[<p>Some journeys into quantitative finance begin with a job title. Others begin with a curiosity that refuses to go away.</p><p>For Ishwar C, that curiosity began more than two decades ago. His path through the world of finance, analytics, and quantitative thinking has been marked by academic depth, professional rigor, and a constant desire to keep learning. But even with an already impressive set of credentials, one important gap remained: the ability to turn financial theory into complete, execution-ready systems.</p><p>That is where EPAT entered the story.</p><p>Today, Ishwar is not only a seasoned quant professional working on sophisticated risk analytics systems for global institutions, but also a hiring leader who actively evaluates and recruits quantitative talent. His journey has come full circle. He once joined EPAT to sharpen his own practical edge. Now, he recognizes that same edge in candidates who come from the programme.</p><h2 id="the-origin-of-his-quant-journey"><strong>The Origin of His Quant Journey</strong></h2><p>Ishwar’s fascination with quantitative finance began in the early 2000s in New York, while he was pursuing a Master of Science in Industrial Engineering at the University at Buffalo. It was there, while studying mathematical finance, that he first encountered the intellectual pull of the quant world, including ideas such as Brownian motion and stochastic calculus.</p><p>After returning to India, he went on to complete an MBA from IIM Calcutta in 2007, where he studied alongside QuantInsti Co-Founder Rajib Ranjan Borah. From there, he built a strong career in corporate finance and banking, taking on quantitative roles at institutions such as ICICI Bank and Credit Suisse.</p><p>Over the years, he accumulated an extraordinary list of qualifications, which he jokingly describes as an <em>“alphabet soup of credentials,” </em>including CFA, FRM, CAIA, and CQF. But despite this strong theoretical foundation, he knew something important was still missing.</p><h2 id="the-gap-between-theory-and-execution">The Gap Between Theory and Execution</h2><p>Ishwar had the theory. He had the financial designations. He had years of experience in serious institutions. But building a complete trading workflow, from strategy ideation to data handling, backtesting, debugging, and live execution, was a different challenge altogether.</p><p>That realization led him to EPAT in 2021.</p><p>He was not looking for another certification just to add to the list. He was looking for practical application. He wanted a more structured methodology that could connect ideas to implementation in a way that academic and theoretical programmes often do not.</p><p>Reflecting on the value he found, Ishwar says:</p><blockquote>“I have earned practically every designation on the market, but EPAT is safely the best certification in terms of value for money.”</blockquote><p>That line says a great deal. For someone with such a deep educational background, EPAT stood out not because it added theory, but because it forced a different style of thinking, one grounded in system design, practical constraints, and the realities of implementation.</p><h2 id="professional-excellence-in-quant-development">Professional Excellence in Quant Development</h2><p>Today, Ishwar serves as the Lead Quant Developer at Clearwater Analytics, where he works in a sophisticated ecosystem serving major institutions, including large technology firms, hedge funds, and pension funds. His team works on the company’s cross-asset risk analytics platform, Beacon.</p><p>The environment he describes is one where every financial instrument is treated as an object inside a graph database, and where models such as Black-Scholes and stochastic volatility are built directly into the system. This is not abstract finance. It is industrial-strength quantitative engineering.</p><p>His current role reflects the exact kind of transition many aspiring quants hope to make: from understanding models conceptually to working on systems that support real institutions, real portfolios, and real risk decisions.</p><h2 id="ai-vibe-coding-and-the-need-for-judgment">AI, Vibe Coding, and the Need for Judgment</h2><p>As the industry evolves, Ishwar has strong views on one of the biggest shifts in modern development: AI-assisted coding.</p><p>He speaks openly about the rise of what he calls “vibe coding,” where developers can use tools such as Claude and Gemini to generate working code rapidly. In his view, coding itself is no longer the main bottleneck. Today, someone can describe a strategy in plain language and get a functional implementation within minutes.</p><p>But that is only the beginning.</p><p>According to Ishwar, the real work starts after the code appears. He argues that strategy generation is a tiny fraction of the process, while the overwhelming majority of development time is spent debugging, validating, and correcting what AI produces.</p><blockquote>“The strategy itself takes about 0.0001% of the time to get made,” while “99.99% of development time is spent on debugging” AI-generated code.</blockquote><p>This is where judgment becomes the defining skill.</p><p>He warns that AI tools make mistakes consistently, and that blindly trusting them can be dangerous. To work effectively in this environment, professionals need what he calls “X-ray vision”, the ability to second-guess AI, interrogate its suggestions, and know when a plausible-looking answer is actually wrong.</p><p>He gives the example of building a momentum strategy for US equities. When his AI assistant suggested adding a regime filter, Ishwar recognized that it was actually harming the strategy’s performance. It was his own foundational understanding that allowed him to challenge the suggestion and make the right call.</p><p>For him, the real differentiator in the AI era is not access to tools. It is the ability to reason.</p><blockquote>“You need the judgment… That judgment, that ability to reason is exactly what programs like EPAT provide.”</blockquote><h2 id="a-hiring-leader-s-view-on-epatians">A Hiring Leader’s View on EPATians</h2><p>One of the most compelling parts of Ishwar’s story is what happened after EPAT.</p><p>Over the past several months, he has been actively building quantitative development and engineering teams in Mumbai and Noida. That means interviewing large numbers of candidates and evaluating them through a rigorous scoring system based on Python fundamentals and quantitative reasoning.</p><p>And it is there, across the interview table, that his journey becomes especially meaningful.</p><p>Ishwar says he has noticed a clear difference in candidates who come from EPAT.</p><p>“EPAT program graduates are generally more prepared and sharper regarding quant concepts and systemic system design.”</p><p>He notes that many candidates struggle when asked about topics such as the Black-Scholes model or even foundational Python distinctions like the difference between a set and a tuple. EPATians, by contrast, tend to display a different kind of confidence, not because they memorize everything, but because they know how to reason through unfamiliar questions.</p><p>That, for Ishwar, is the real hallmark of strong training.</p><p>“They display a certain confidence because the program teaches them how to think, not what to think.”</p><p>This is perhaps the strongest possible endorsement, not just from an alumnus, but from someone now responsible for identifying high-potential quant talent.</p><h2 id="a-lifelong-learning-community">A Lifelong Learning Community</h2><p>For Ishwar, EPAT was never a six-month transaction. It became part of a larger learning journey.</p><p>He describes it as an unmatched lifelong learning experience and values the ecosystem as an ongoing community, one where people remain connected, continue learning, and help each other grow.</p><p>That sense of continuity matters deeply to him. He actively gives back as an alumni ambassador, mentoring learners, advising professionals on educational choices, and even encouraging others in adjacent fields, such as AI, to consider the programme.</p><p>In that sense, Ishwar’s story is not just about personal success. It is about community, continuity, and the compounding nature of structured learning. He joined EPAT to strengthen his own practical understanding. He now recruits from the alumni pool, mentors others, and advocates for the kind of reasoning-based education that remains valuable even in the age of AI.</p><p>That is what makes his journey feel truly full circle.</p><h2 id="frequently-asked-questions">Frequently Asked Questions</h2><!--kg-card-begin: html--><style>
.epat-faq{max-width:760px;margin:24px auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:#1a1a1a}
.epat-faq h2{font-size:1.5rem;margin:0 0 16px;color:#0f2b46}
.epat-faq details{border:1px solid #e2e6ea;border-radius:8px;margin-bottom:10px;background:#fff;overflow:hidden;transition:box-shadow .2s}
.epat-faq details[open]{box-shadow:0 2px 10px rgba(0,0,0,.06)}
.epat-faq summary{list-style:none;cursor:pointer;padding:16px 48px 16px 18px;font-weight:600;font-size:1.02rem;position:relative;color:#0f2b46}
.epat-faq summary::-webkit-details-marker{display:none}
.epat-faq summary::after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:1.4rem;font-weight:400;color:#1e88e5;transition:transform .2s}
.epat-faq details[open] summary::after{content:"\2212";transform:translateY(-50%) rotate(180deg)}
.epat-faq summary:hover{background:#f6f9fc}
.epat-faq .faq-body{padding:0 18px 18px;line-height:1.6;color:#33404d}
</style>
 
<div class="epat-faq">
  <details>
    <summary>Why would someone with many financial credentials still choose EPAT?</summary>
    <div class="faq-body">Because theoretical knowledge and industry designations do not automatically translate into execution-ready trading workflows. Ishwar chose EPAT to bridge the gap between theory and practical system building.</div>
  </details>
 
  <details>
    <summary>What did EPAT add to Ishwar's professional toolkit?</summary>
    <div class="faq-body">It helped him think more systematically about quantitative problem-solving, including strategy design, debugging, system constraints, and implementation in real-world contexts.</div>
  </details>
 
  <details>
    <summary>What is Ishwar's view on AI-generated code in trading?</summary>
    <div class="faq-body">He believes AI has made coding faster, but not easier in the deeper sense. The real challenge lies in debugging, validating, and exercising judgment over what AI produces.</div>
  </details>
 
  <details>
    <summary>What makes reasoning so important in the AI era?</summary>
    <div class="faq-body">Because access to AI tools is increasingly common. What separates strong professionals from weak ones is the ability to ask better questions, assess outputs critically, and know when the AI is wrong.</div>
  </details>
 
  <details>
    <summary>How do EPATians stand out in interviews, according to Ishwar?</summary>
    <div class="faq-body">He says they tend to be more prepared, sharper in quant concepts, and better at reasoning through unfamiliar questions, especially in Python and system design discussions.</div>
  </details>
 
  <details>
    <summary>What is one big takeaway from Ishwar's journey?</summary>
    <div class="faq-body">That in quantitative finance, continuous learning matters at every stage, and that practical, reasoning-based education can remain valuable even for highly accomplished professionals.</div>
  </details>
</div><!--kg-card-end: html--><h3 id="next-steps">Next Steps</h3><p>If you already have a strong finance, analytics, or technical background but feel a gap between theory and execution, Ishwar’s story offers a useful perspective. The next leap in your journey may not come from collecting more concepts. It may come from learning how to apply them in a more structured, practical, and system-oriented way.</p><p>For those looking for a comprehensive and guided journey with mentorship, live lectures, and career support, the <a href="https://www.quantinsti.com/epat">Executive Programme in Algorithmic Trading (EPAT)</a> provides a complete foundation for launching or accelerating a career in this field.</p><hr><h3 id="schedule-an-epat-counselling-call">Schedule an EPAT counselling call</h3><p>To understand if EPAT is the right choice for you, talk to one of our specialists who have counselled thousands of learners over the past decade and helped them make the right career decision.</p><!--kg-card-begin: html--><div class="calendly-inline-widget" data-url="https://calendly.com/counsellor-1/speak-to-epat-counsellors?month=2025-04&embed_type=Inline&hide_gdpr_banner=1" style="min-width:320px;height:630px;"></div>
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js"></script>
<!--kg-card-end: html--><p><br></p>]]></content:encoded></item><item><title><![CDATA[Ask Me Anything (AMA) with Nitesh Khandelwal]]></title><description><![CDATA[Recap of QuantInsti's live AMA with Nitesh Khandelwal on algo trading careers, AI and LLMs, Python, and the EPAT journey from learner to practitioner.
]]></description><link>https://www.quantinsti.com/articles/ama-nitesh-khandelwal-epat-algo-trading-careers-quant-trading-9-july-2026/</link><guid isPermaLink="false">6a509e5c74e6f000074e71eb</guid><category><![CDATA[Learn Algo Trading]]></category><dc:creator><![CDATA[MOHIT KARWAL]]></dc:creator><pubDate>Fri, 10 Jul 2026 08:05:10 GMT</pubDate><content:encoded><![CDATA[<p>Live Open Q&amp;A on EPAT, Algo Trading Careers &amp; Learning Quant Trading</p><p>On July 9, 2026, QuantInsti hosted a live Ask Me Anything (AMA) with<a href="https://www.quantinsti.com/faculty/nitesh-khandelwal"> <strong>Nitesh Khandelwal</strong></a>, Co-Founder and CEO of QuantInsti and Co-Founder of iRage, one of Asia's most respected algorithmic and high-frequency trading firms. The session was an unfiltered, open Q&amp;A on what it really takes to move from learner to practitioner in quantitative and algorithmic trading, spanning the domain, careers, the rise of AI and LLMs, and the role of the EPAT programme.</p><p>Hosted by Mohit Karwal, the session opened with a quick overview of EPAT and the state of the industry by Rohan Mathews (AVP, Global Business), before moving into a rapid-fire mix of pre-submitted and live audience questions answered directly by Nitesh. If you missed the live session, you can watch the full recording below.</p><!--kg-card-begin: html--><style>
  .auth-only, .guest-only {
    display: none;
  }
  #auth-loader {
    text-align: center;
    padding: 30px;
    font-family: 'Open Sans', system-ui, sans-serif;
  }
  .loader-spinner {
    border: 4px solid #f3f3f3;
    border-top: 4px solid #000;
    border-radius: 50%;
    width: 28px;
    height: 28px;
    margin: 0 auto 10px;
    animation: spin 1s linear infinite;
  }
  @keyframes spin {
    100% { transform: rotate(360deg); }
  }
  .video-wrapper {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
  }
  .video-wrapper iframe {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
  }
  .video-thumb {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
  }
  .video-thumb img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: filter 0.4s ease;
  }
  .thumb-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.25);
    transition: background 0.4s ease;
  }
  .watch-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    font-family: 'Open Sans', system-ui, sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #fff;
    background: #009F54;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    position: absolute;
    transition: opacity 0.3s ease, transform 0.3s ease;
  }
  .watch-btn:active {
    transform: scale(0.97);
  }
  .play-icon-wrap {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.35s ease, transform 0.35s ease;
    transform: scale(0.8);
    pointer-events: none;
  }
  .ripple-ring {
    position: absolute;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.5);
    animation: ripple-out 2s ease-out infinite;
    opacity: 0;
  }
  .ripple-ring:nth-child(2) { animation-delay: 0.6s; }
  .ripple-ring:nth-child(3) { animation-delay: 1.2s; }
  @keyframes ripple-out {
    0%   { transform: scale(1);   opacity: 0.6; }
    100% { transform: scale(2.2); opacity: 0; }
  }
  .video-thumb:hover img {
    filter: brightness(0.45);
  }
  .video-thumb:hover .thumb-overlay {
    background: rgba(0, 0, 0, 0.45);
  }
  .video-thumb:hover .watch-btn {
    opacity: 0;
    transform: scale(0.85);
    pointer-events: none;
  }
  .video-thumb:hover .play-icon-wrap {
    opacity: 1;
    transform: scale(1);
    pointer-events: auto;
  }
</style>

<div id="auth-loader">
  <div class="loader-spinner"></div>
  Checking access...
</div>
<div class="auth-only">
  <div class="video-wrapper">
    <iframe src="https://www.youtube.com/embed/a3B2Md10uTM?si=qYN-CFlSVl43YbIS&autoplay=1&mute=1&rel=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen>
    </iframe>
  </div>
</div>
<div class="guest-only">
  <div class="video-thumb" onclick="handleLoginClick()">
    <img src="https://d1rwhvwstyk9gu.cloudfront.net/2026/07/Live-AMA-Session-with-Nitesh.png" alt="Live AMA Session with the CEO, Nitesh Khandelwal">
    <div class="thumb-overlay">
      <button class="watch-btn">
        <svg width="16" height="16" viewbox="0 0 16 16" fill="#fff">
          <polygon points="3,2 13,8 3,14"/>
        </svg>
        Login &amp; Watch Now
      </button>
      <div class="play-icon-wrap">
        <div class="ripple-ring"></div>
        <div class="ripple-ring"></div>
        <div class="ripple-ring"></div>
        <svg width="72" height="72" viewbox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="36" cy="36" r="35" stroke="rgba(255,255,255,0.9)" stroke-width="1.5"/>
          <polygon points="28,20 54,36 28,52" fill="white"/>
        </svg>
      </div>
    </div>
  </div>
</div>

<script>
(function () {
  function showLoader(show) {
    const loader = document.getElementById('auth-loader');
    if (loader) loader.style.display = show ? 'block' : 'none';
  }
  function injectAuthContent() {
    document.querySelectorAll('.auth-iframe').forEach(iframe => {
      const src = iframe.getAttribute('data-src');
      if (src) iframe.setAttribute('src', src);
    });
  }
  function showAuthContent() {
    document.querySelectorAll('.auth-only').forEach(el => el.style.display = 'block');
    document.querySelectorAll('.guest-only').forEach(el => el.style.display = 'none');
    injectAuthContent();
  }
  function showGuestContent() {
    document.querySelectorAll('.auth-only').forEach(el => el.style.display = 'none');
    document.querySelectorAll('.guest-only').forEach(el => el.style.display = 'block');
  }
  function handleAuth(user) {
    if (user && user.email) {
      showAuthContent();
    } else {
      showGuestContent();
    }
    showLoader(false);
  }
  function initAuthCheck() {
    showLoader(true);
    if (typeof window.ssoGetUserInfo === 'function') {
      try {
        const result = window.ssoGetUserInfo();
        if (result && typeof result.then === 'function') {
          result.then(handleAuth).catch(() => handleAuth(null));
        } else {
          handleAuth(result);
        }
      } catch (err) {
        console.error('SSO error:', err);
        handleAuth(null);
      }
    } else {
      handleAuth(null);
    }
  }
  document.addEventListener('DOMContentLoaded', initAuthCheck);
})();

function handleLoginClick() {
  window.ssoLogin(false, false);
}
</script><!--kg-card-end: html--><h2 id="what-the-session-covered">What the Session Covered</h2><p>The conversation moved across three broad areas, with the audience driving the depth. The first looked at structured learning: what learning quant and algo trading actually involves, how QuantInsti builds its programmes around real-world practitioners, and how a structured path differs from self-directed study.</p><p>The second focused on outcomes and careers: the paths available across geographies, what it takes to pivot in from finance, tech, or a discretionary trading background, and what separates the graduates who transition into quant research or institutional roles from those who do not.</p><p>The third turned to the domain itself: where to start from a non-coding or non-finance background, how Python, AI, and LLMs have reshaped what is possible for systematic traders, and what closes the gap between a learner and a practitioner.</p><h2 id="the-speakers">The Speakers</h2><p><strong>Nitesh Khandelwal</strong> (Co-Founder and CEO, QuantInsti &amp; Co-Founder, iRage) brings over two decades at the intersection of quantitative research, technology, and markets, having built both QuantInsti and iRage from the ground up. An alumnus of IIT Kanpur and IIM Lucknow, he has spoken at institutions including IIM Ahmedabad, NUS Business School, and IIT Delhi, and brings direct institutional experience into the EPAT curriculum.</p><p><strong>Rohan Mathews</strong> (AVP, Global Business, QuantInsti) set the context with an overview of the quant and algo landscape heading into 2026 and how the EPAT ecosystem is built, from foundations through strategy paradigms, research, backtesting, and live deployment. <strong>Mohit Karwal</strong> hosted the session, curating pre-submitted questions and channelling live audience questions to the panel.</p><h2 id="key-takeaways-from-the-ama">Key Takeaways from the AMA</h2><p>A recurring theme ran through Nitesh's answers: in a world where LLMs make predictions cheap, the scarce and valuable input is human judgment. "It's not about the destination anymore," he noted of the modern algo trading journey. "It's more about the journey, and the process that you're following through the journey." Indicators, strategies, and tools, the things many beginners obsess over, are now a prompt away from any base-level model, so they no longer carry an edge.</p><p>His advice for anyone serious about trading as a career was to make it boring. As long as the thrill of watching profit and loss move up and down is the driver, he argued, trading stays a hobby. The money tends to flow once the focus shifts to the procedural and statistical work, and once a trader can answer a single hard question before going live: why is this strategy making money? "If you don't know the answer, then probably you don't have an edge. You have a curve fit."</p><p>On AI, Nitesh was direct about where it helps and where it does not. Coding, documentation, backtesting, research, and debugging are areas where models already do excellent work. Three things stay firmly on the human side: hypothesis formation, validating what is actually deployable, and risk. On careers, he stressed that there is no single best profile among quant researcher, developer, and trader; what matters is carving a path around genuine interest and building demonstrable proof of understanding. And Python, he confirmed, remains the lingua franca of the field, made more relevant, not less, by LLMs that generate it by default.</p><h2 id="frequently-asked-questions">Frequently Asked Questions</h2><!--kg-card-begin: html-->
<style>
  .qi-faq{--qi-navy:#173871;--qi-blue:#1f5c99;--qi-cyan:#24cee0;--qi-ink:#1a1a1a;--qi-line:#e4e8ee;--qi-bg:#f7f9fb;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;max-width:760px;margin:2.5rem auto;color:var(--qi-ink)}
  .qi-faq__head{margin:0 0 1.25rem}
  .qi-faq__eyebrow{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--qi-blue);font-weight:700;margin:0 0 .35rem}
  .qi-faq__title{font-size:1.6rem;line-height:1.2;font-weight:800;margin:0;color:var(--qi-ink)}
  .qi-faq__item{border:1px solid var(--qi-line);border-radius:12px;margin:.6rem 0;background:#fff;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}
  .qi-faq__item[open]{border-color:var(--qi-blue);box-shadow:0 6px 20px rgba(23,56,113,.08)}
  .qi-faq__item summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;gap:.9rem;padding:1.05rem 1.2rem;font-size:1.03rem;font-weight:650;line-height:1.45;color:var(--qi-ink);transition:color .18s ease}
  .qi-faq__item summary::-webkit-details-marker{display:none}
  .qi-faq__item summary:hover{color:var(--qi-blue)}
  .qi-faq__item[open] summary{color:var(--qi-blue)}
  .qi-faq__icon{flex:0 0 22px;width:22px;height:22px;margin-top:2px;border-radius:50%;background:var(--qi-bg);position:relative;transition:background .2s ease}
  .qi-faq__item[open] .qi-faq__icon{background:var(--qi-cyan)}
  .qi-faq__icon::before,.qi-faq__icon::after{content:"";position:absolute;top:50%;left:50%;width:10px;height:2px;background:var(--qi-blue);border-radius:2px;transform:translate(-50%,-50%);transition:transform .22s ease,background .2s ease}
  .qi-faq__icon::after{transform:translate(-50%,-50%) rotate(90deg)}
  .qi-faq__item[open] .qi-faq__icon::before,.qi-faq__item[open] .qi-faq__icon::after{background:#0a2a4a}
  .qi-faq__item[open] .qi-faq__icon::after{transform:translate(-50%,-50%) rotate(0)}
  .qi-faq__answer{padding:0 1.2rem 1.15rem 3.1rem;margin:0;font-size:.98rem;line-height:1.65;color:#3a3f47}
  .qi-faq__answer p{margin:0}
  @media (max-width:520px){.qi-faq__answer{padding-left:1.2rem}.qi-faq__title{font-size:1.35rem}}
</style>
 
<section class="qi-faq" itemscope itemtype="https://schema.org/FAQPage">
  <header class="qi-faq__head">
  <details class="qi-faq__item" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
    <summary itemprop="name"><span class="qi-faq__icon" aria-hidden="true"></span><span>How has the journey into algo trading changed over the last few years?</span></summary>
    <div class="qi-faq__answer" itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
      <p itemprop="text">It has been constantly transitioning since iRage began in 2009, with each phase bringing new tools, infrastructure, and strategy styles. The biggest shift, from 2023 onwards, is the rise of LLMs. Predictions have become cheap while judgment has become scarce, so the game has moved away from the destination and towards a disciplined process.</p>
    </div>
  </details>
 
  <details class="qi-faq__item" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
    <summary itemprop="name"><span class="qi-faq__icon" aria-hidden="true"></span><span>A lot of people start with indicators, strategies, and tools. Where should they focus first?</span></summary>
    <div class="qi-faq__answer" itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
      <p itemprop="text">None of those. Any base-level LLM will hand you a plethora of indicators, strategies, and tools, so they are not the alpha. What matters is the thought process you bring: what is the flow, and how do you form judgment? Judgment lives in deployment (testing edge cases, knowing exactly why a strategy makes money) and in risk assessment, which comes largely from experience.</p>
    </div>
  </details>
 
  <details class="qi-faq__item" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
    <summary itemprop="name"><span class="qi-faq__icon" aria-hidden="true"></span><span>For someone entering the field, what proof matters most: certificates, projects, GitHub, live trading, or conceptual clarity?</span></summary>
    <div class="qi-faq__answer" itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
      <p itemprop="text">Ideally all of it, but if you must prioritise: conceptual clarity first, because without it there is nothing to build on, then something you can demonstrate. Discretionary live-trading experience is of limited value for quant and algo roles, where modelling and statistical exposure matter more. It tends to be a bit oversold.</p>
    </div>
  </details>
 
  <details class="qi-faq__item" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
    <summary itemprop="name"><span class="qi-faq__icon" aria-hidden="true"></span><span>What distinguishes the top graduates who transition into professional quant research or institutional roles?</span></summary>
    <div class="qi-faq__answer" itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
      <p itemprop="text">Two things. First, making the most of the journey itself: the discipline of giving 45 to 55 minutes of uninterrupted attention regularly, over the six-to-nine-month programme, on top of weekend classes. Second, identifying the opportunities that overlap your background with where you want to be, then building both the skills and the demonstrable proof to show it.</p>
    </div>
  </details>
 
  <details class="qi-faq__item" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
    <summary itemprop="name"><span class="qi-faq__icon" aria-hidden="true"></span><span>What are common mistakes people make when transitioning into an algo trading career?</span></summary>
    <div class="qi-faq__answer" itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
      <p itemprop="text">Not knowing what you actually want to build a career in. Many chase a profile because it sounds fancy or highly rewarding, but researchers, developers, and traders who are genuinely good all command a premium and have no ceiling on growth, because they enjoy the work. Ask whether you will actually enjoy the grunt work and the process.</p>
    </div>
  </details>
 
  <details class="qi-faq__item" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
    <summary itemprop="name"><span class="qi-faq__icon" aria-hidden="true"></span><span>Where can AI genuinely help, and what should not be outsourced to it?</span></summary>
    <div class="qi-faq__answer" itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
      <p itemprop="text">AI is a great enabler for coding, documentation, backtesting, research, and debugging, with idea generation slightly less so. Three things cannot be left to AI: hypothesis formation, validating what is actually deployable, and the risk aspect. Your role is to hold a broad, correct understanding and to verify what the models produce.</p>
    </div>
  </details>
 
  <details class="qi-faq__item" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
    <summary itemprop="name"><span class="qi-faq__icon" aria-hidden="true"></span><span>How important is Python for someone serious about algorithmic trading?</span></summary>
    <div class="qi-faq__answer" itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
      <p itemprop="text">Very important. Python remains the lingua franca of algo trading. For ultra-low-latency HFT, systems are typically built in C++ or on hardware such as FPGA and ASIC, but for medium and low-frequency work the interface can be almost anything, and Python is the most popular for research and for individual professionals. LLMs generate a lot of Python by default, so if you do not understand it, you will add very little value on top.</p>
    </div>
  </details>
 
  <details class="qi-faq__item" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
    <summary itemprop="name"><span class="qi-faq__icon" aria-hidden="true"></span><span>Starting from scratch in 2026 with basic coding and basic finance, what roadmap should you follow?</span></summary>
    <div class="qi-faq__answer" itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
      <p itemprop="text">Coding skills are constructive, but understanding finance is now extremely important, because without it, knowing what you actually want stays unclear. Put more time into finance, and specifically market microstructure if you are aiming at quant trading. A good starting point is Trading and Exchanges by Larry Harris, along with the microstructure content and webinars on the QuantInsti portal.</p>
    </div>
  </details>
 
  <details class="qi-faq__item" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
    <summary itemprop="name"><span class="qi-faq__icon" aria-hidden="true"></span><span>What roles does the industry need most in 2026?</span></summary>
    <div class="qi-faq__answer" itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
      <p itemprop="text">People who can leverage agents really well, meaning orchestration and agentic development rather than simply chatting with an agent. Combine that ability with a deep, rather than shallow, understanding of what you are doing, and you are in strong demand.</p>
    </div>
  </details>
 
  <details class="qi-faq__item" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
    <summary itemprop="name"><span class="qi-faq__icon" aria-hidden="true"></span><span>How is algo trading changing for retail and individual traders?</span></summary>
    <div class="qi-faq__answer" itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
      <p itemprop="text">A significant democratisation is underway. You no longer need to buy high-end servers, since cloud and LLMs have lowered the barrier. Alpha generation from alternative data, such as annual reports and earnings calls through NLP, once needed institutional resources and is now possible with a free ChatGPT or Claude account. What has become harder, and more valuable, is the skill to validate those outputs and the judgment to decide which ideas to pursue.</p>
    </div>
  </details>
</header></section>
 
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    { "@type": "Question", "name": "How has the journey into algo trading changed over the last few years?", "acceptedAnswer": { "@type": "Answer", "text": "It has been constantly transitioning since iRage began in 2009, with each phase bringing new tools, infrastructure, and strategy styles. The biggest shift, from 2023 onwards, is the rise of LLMs. Predictions have become cheap while judgment has become scarce, so the game has moved away from the destination and towards a disciplined process." } },
    { "@type": "Question", "name": "A lot of people start with indicators, strategies, and tools. Where should they focus first?", "acceptedAnswer": { "@type": "Answer", "text": "None of those. Any base-level LLM will hand you a plethora of indicators, strategies, and tools, so they are not the alpha. What matters is the thought process you bring: what is the flow, and how do you form judgment? Judgment lives in deployment and in risk assessment, which comes largely from experience." } },
    { "@type": "Question", "name": "For someone entering the field, what proof matters most: certificates, projects, GitHub, live trading, or conceptual clarity?", "acceptedAnswer": { "@type": "Answer", "text": "Ideally all of it, but if you must prioritise: conceptual clarity first, then something you can demonstrate. Discretionary live-trading experience is of limited value for quant and algo roles, where modelling and statistical exposure matter more." } },
    { "@type": "Question", "name": "What distinguishes the top graduates who transition into professional quant research or institutional roles?", "acceptedAnswer": { "@type": "Answer", "text": "Making the most of the journey itself through regular, uninterrupted study over the six-to-nine-month programme, and identifying the opportunities that overlap your background with where you want to be, then building both the skills and the demonstrable proof to show it." } },
    { "@type": "Question", "name": "What are common mistakes people make when transitioning into an algo trading career?", "acceptedAnswer": { "@type": "Answer", "text": "Not knowing what you actually want to build a career in. Researchers, developers, and traders who are genuinely good all command a premium because they enjoy the work. Ask whether you will actually enjoy the grunt work and the process." } },
    { "@type": "Question", "name": "Where can AI genuinely help, and what should not be outsourced to it?", "acceptedAnswer": { "@type": "Answer", "text": "AI is a great enabler for coding, documentation, backtesting, research, and debugging. Three things cannot be left to AI: hypothesis formation, validating what is actually deployable, and the risk aspect." } },
    { "@type": "Question", "name": "How important is Python for someone serious about algorithmic trading?", "acceptedAnswer": { "@type": "Answer", "text": "Very important. Python remains the lingua franca of algo trading. HFT systems are often built in C++ or on hardware, but for medium and low-frequency work Python is the most popular choice, and LLMs generate a lot of Python by default." } },
    { "@type": "Question", "name": "Starting from scratch in 2026 with basic coding and basic finance, what roadmap should you follow?", "acceptedAnswer": { "@type": "Answer", "text": "Understanding finance is now extremely important. Put more time into finance and market microstructure. A good starting point is Trading and Exchanges by Larry Harris, along with the microstructure content on the QuantInsti portal." } },
    { "@type": "Question", "name": "What roles does the industry need most in 2026?", "acceptedAnswer": { "@type": "Answer", "text": "People who can leverage agents really well, meaning orchestration and agentic development, combined with a deep understanding of what they are doing." } },
    { "@type": "Question", "name": "How is algo trading changing for retail and individual traders?", "acceptedAnswer": { "@type": "Answer", "text": "A significant democratisation is underway through cloud and LLMs. Alpha generation from alternative data that once needed institutional resources is now possible with a free ChatGPT or Claude account. The valuable skill now is validating outputs and choosing which ideas to pursue." } }
  ]
}
</script>
 
<!--kg-card-end: html--><h2 id="next-steps">Next Steps</h2><p>If you are just getting started with algorithmic trading, begin with the <a href="https://quantra.quantinsti.com/learning-track/guide-quantitative-trading-beginners">Quantitative Trading Free Learning Track</a>. It includes beginner-friendly courses covering data basics, trading strategies, and coding for finance.</p><p>For those looking for a comprehensive, guided journey with mentorship, live lectures, and career support, the <a href="https://www.quantinsti.com/epat">Executive Programme in Algorithmic Trading (EPAT)</a> provides a complete foundation for launching or accelerating a career in this field.</p><p><strong>Schedule an EPAT counselling call.</strong> To understand if EPAT is the right choice for you, talk to one of our specialists who have counselled thousands of learners over the past decade and helped them make the right career decision.</p><!--kg-card-begin: html--><div class="calendly-inline-widget" data-url="https://calendly.com/counsellor-1/speak-to-epat-counsellors?month=2025-04&embed_type=Inline&hide_gdpr_banner=1" style="min-width:320px;height:630px;"></div>
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js"></script>
<!--kg-card-end: html--><p>Disclaimer: This webinar and recap are for educational and informational purposes only. Nothing discussed constitutes financial advice. Please conduct your own research and consult a qualified financial advisor before making any investment decisions.</p>]]></content:encoded></item><item><title><![CDATA[Top HFT, Prop Trading and Quant Firms in 2026]]></title><description><![CDATA[Explore the top HFT, prop trading and quant firms in 2026 across India, US, UK, Singapore and UAE, plus hiring trends, pay and skills needed to break in.]]></description><link>https://www.quantinsti.com/articles/hft-prop-trading-firms/</link><guid isPermaLink="false">6a44d77774e6f000074e70f8</guid><category><![CDATA[Quant Jobs]]></category><category><![CDATA[Quant Roles]]></category><dc:creator><![CDATA[MOHIT KARWAL]]></dc:creator><pubDate>Wed, 01 Jul 2026 09:49:19 GMT</pubDate><content:encoded><![CDATA[<h2 id="top-firms-in-quantitative-trading-hft-and-prop-trading">Top Firms in Quantitative Trading, HFT and Prop Trading</h2><p>If you are exploring a career in quantitative trading, this guide helps you understand which firms matter, what they are known for, where they operate, and what skills candidates need in 2026. It covers global market makers, India-focused HFT firms, quantitative investment firms, compensation trends, emerging hubs and the growing role of machine learning in trading.</p><p>This guide is written for a global audience. India-linked presence is called out for each firm because QuantInsti places students and professionals worldwide, with a significant proportion based in or targeting India’s quant and algo trading market. Readers from other regions can use the main firm descriptions and the Firms to Research by Candidate Profile table and set aside the India-specific callouts.</p><!--kg-card-begin: html-->
<style>
  .qi-tbl-outer {
    margin: 32px 0 44px;
    font-family: 'Open Sans', Arial, sans-serif;
  }
  .qi-tbl-outer table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(0, 12, 75, 0.10);
    font-size: 14px;
  }
 
  /* ── header ── */
  .qi-tbl-outer thead tr {
    background: #edf0f9;
  }
  .qi-tbl-outer thead th {
    padding: 15px 18px;
    color: #000000;
    font-family: 'Montserrat', 'Open Sans', Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-align: left;
    white-space: nowrap;
    border: none;
    border-bottom: 3px solid #94C94B;
  }
  .qi-tbl-outer thead th:first-child {
    border-radius: 12px 0 0 0;
  }
  .qi-tbl-outer thead th:last-child {
    border-radius: 0 12px 0 0;
  }
 
  /* ── body rows ── */
  .qi-tbl-outer tbody tr {
    transition: background 0.15s ease;
    border-bottom: 1px solid #edf0f9;
  }
  .qi-tbl-outer tbody tr:last-child {
    border-bottom: none;
  }
  .qi-tbl-outer tbody tr:nth-child(odd) {
    background: #ffffff;
  }
  .qi-tbl-outer tbody tr:nth-child(even) {
    background: #f5f7ff;
  }
  .qi-tbl-outer tbody tr:hover {
    background: #eaedff;
  }
  .qi-tbl-outer tbody td {
    padding: 14px 18px;
    vertical-align: middle;
    color: #333;
    line-height: 1.45;
    border: none;
  }
 
  /* ── firm name column ── */
  .qi-firm-cell {
    display: flex;
    align-items: center;
    gap: 10px;
    white-space: nowrap;
  }
  .qi-firm-bar {
    width: 4px;
    height: 28px;
    border-radius: 3px;
    background: #003B7C;
    flex-shrink: 0;
  }
  .qi-firm-name {
    font-family: 'Montserrat', 'Open Sans', Arial, sans-serif;
    font-weight: 700;
    font-size: 14px;
    color: #003B7C;
  }
 
  /* ── HQ pill ── */
  .qi-hq {
    display: inline-block;
    background: #f0f3fb;
    color: #444;
    font-size: 12.5px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 20px;
    white-space: nowrap;
  }
 
  /* ── India relevance ── */
  .qi-india {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: #1a3a6b;
    font-weight: 600;
  }
  .qi-india-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #94C94B;
    flex-shrink: 0;
  }
 
  /* ── best known for ── */
  .qi-known {
    font-size: 13px;
    color: #444;
  }
 
  /* ── India origin badge ── */
  .qi-badge-india {
    display: inline-block;
    background: #94C94B;
    color: #ffffff;
    font-size: 10px;
    font-weight: 800;
    font-family: 'Montserrat', Arial, sans-serif;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 4px;
    margin-left: 4px;
    vertical-align: middle;
    line-height: 1.3;
  }
 
  /* ── responsive ── */
  @media (max-width: 600px) {
    .qi-tbl-outer table { font-size: 12px; }
    .qi-tbl-outer thead th,
    .qi-tbl-outer tbody td { padding: 10px 12px; }
    .qi-firm-name { font-size: 12px; }
    .qi-firm-bar { height: 22px; }
  }
</style>
 
<div class="qi-tbl-outer">
  <table aria-label="Top HFT and Prop Trading Firms: Quick Reference">
    <thead>
      <tr>
        <th>Firm</th>
        <th>HQ</th>
        <th>India Relevance</th>
        <th>Best Known For</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>
          <div class="qi-firm-cell">
            <div class="qi-firm-bar"></div>
            <span class="qi-firm-name">Jane Street</span>
          </div>
        </td>
        <td><span class="qi-hq">New York</span></td>
        <td><span class="qi-india"><span class="qi-india-dot"></span>Global benchmark</span></td>
        <td><span class="qi-known">ETFs, options, market-making</span></td>
      </tr>
      <tr>
        <td>
          <div class="qi-firm-cell">
            <div class="qi-firm-bar"></div>
            <span class="qi-firm-name">Citadel Securities</span>
          </div>
        </td>
        <td><span class="qi-hq">Miami</span></td>
        <td><span class="qi-india"><span class="qi-india-dot"></span>Gurugram</span></td>
        <td><span class="qi-known">Equities, options, retail order flow</span></td>
      </tr>
      <tr>
        <td>
          <div class="qi-firm-cell">
            <div class="qi-firm-bar"></div>
            <span class="qi-firm-name">HRT</span>
          </div>
        </td>
        <td><span class="qi-hq">New York</span></td>
        <td><span class="qi-india"><span class="qi-india-dot"></span>BKC, Mumbai</span></td>
        <td><span class="qi-known">Automated market-making</span></td>
      </tr>
      <tr>
        <td>
          <div class="qi-firm-cell">
            <div class="qi-firm-bar"></div>
            <span class="qi-firm-name">Optiver</span>
          </div>
        </td>
        <td><span class="qi-hq">Amsterdam</span></td>
        <td><span class="qi-india"><span class="qi-india-dot"></span>BKC, Mumbai</span></td>
        <td><span class="qi-known">Options market-making</span></td>
      </tr>
      <tr>
        <td>
          <div class="qi-firm-cell">
            <div class="qi-firm-bar"></div>
            <span class="qi-firm-name">Tower Research</span>
          </div>
        </td>
        <td><span class="qi-hq">New York</span></td>
        <td><span class="qi-india"><span class="qi-india-dot"></span>Gurugram, GIFT City</span></td>
        <td><span class="qi-known">Low-latency trading</span></td>
      </tr>
      <tr>
        <td>
          <div class="qi-firm-cell">
            <div class="qi-firm-bar" style="background:#94C94B;"></div>
            <span class="qi-firm-name">Graviton</span>
            <span class="qi-badge-india">India</span>
          </div>
        </td>
        <td><span class="qi-hq">India</span></td>
        <td><span class="qi-india"><span class="qi-india-dot"></span>Gurugram, GIFT City</span></td>
        <td><span class="qi-known">India-origin HFT</span></td>
      </tr>
    </tbody>
  </table>
</div>
 
 <!--kg-card-end: html--><h2 id="global-market-making-and-hft-giants">Global Market-Making and HFT Giants</h2><p>The biggest story in this part of the industry is no longer only speed. It is scale. Several leading firms generated record or near-record trading revenues in 2025, and the largest private market makers now rival major Wall Street banks in annual trading revenue.</p><h3 id="1-jane-street">1. Jane Street</h3><p>Headquarters: New York</p><p>Other major offices: London, Singapore, Hong Kong and other global hubs</p><p>Known for: ETFs, options, fixed income, market-making, quantitative trading and increasingly medium-frequency machine-driven strategies</p><p>Jane Street is one of the most closely watched firms in global quantitative trading. Bloomberg reported that Jane Street generated about $39.6 billion in net trading revenue in 2025, ahead of several major banks' trading divisions, and followed this with a reported $16.1 billion in trading revenue in Q1 2026. Because Jane Street is private, these figures should be treated as reported figures, not company-published financial statements.</p><h3 id="2-citadel-securities">2. Citadel Securities</h3><p>Headquarters: Miami</p><p>Major offices: New York, Chicago, London, Singapore and other global hubs</p><p>India: Gurugram<br><br>Known for: Global market-making, equities, options, fixed income, ETFs and retail order flow</p><p>Citadel Securities remains one of the most influential market makers globally. Reuters reported that the firm generated about $12.2 billion in trading revenue in 2025, a record for the firm. It is also widely known for handling a large share of US retail equity order flow.</p><p>For candidates, Citadel Securities is typically associated with extremely high standards in quantitative reasoning, coding, systems design and trading judgement. Its India hiring and engineering footprint make it particularly relevant for Indian candidates targeting global market-making roles.</p><h3 id="3-hudson-river-trading">3. Hudson River Trading</h3><p>Headquarters: New York</p><p>Other offices: Chicago, Austin, Boulder, Boston, Seattle, Miami, San Francisco, London, Dublin and Singapore</p><p>India: BKC, Mumbai</p><p>Known for: Automated market-making, trading infrastructure and quantitative research</p><p>Hudson River Trading, or HRT, is another major technology-led trading firm. Reuters reported that HRT generated around $12.3 billion in net trading revenue in 2025, making it one of the largest private trading firms globally by reported trading revenue.</p><p>HRT is especially relevant for candidates with strong software engineering, systems, C++ and distributed infrastructure skills, along with quantitative research ability.</p><h3 id="4-optiver">4. Optiver</h3><p>Headquarters: Amsterdam</p><p>Major offices: Chicago, New York, London, Singapore, Sydney and Mumbai</p><p>India: Mumbai, BKC. Optiver’s Mumbai office opened in 2024.</p><p>Known for: Options market-making, trading research, risk-taking and technology-led liquidity provision</p><p>Optiver's own 2025 financial disclosure reported €4.556 billion in net trading income and €1.769 billion in net profit attributable to equity holders. These company-disclosed numbers make Optiver one of the more transparent major private market makers.</p><p>For candidates, Optiver is known for probability, trading games, fast numerical reasoning, market-making simulations and strong engineering interviews.</p><h3 id="5-imc-trading">5. IMC Trading</h3><p>Headquarters: Amsterdam</p><p>Major offices: Chicago, Sydney, Singapore and other global hubs</p><p>India: Mumbai. IMC’s Mumbai office opened in 2021, after the firm began actively trading in India in the late 2000s.</p><p>Known for: Global market-making, quant research and technology-driven trading</p><p>IMC is one of the longest-established market-making firms globally, founded in 1989. The firm says it has more than 1,900 employees, 10 offices, and access to 120+ trading venues.</p><p>India has become a visible hiring market for IMC. Economic Times, citing Bloomberg reporting, said IMC offered India interns up to ₹12.5 lakh per month in 2025. These are media-reported figures for specific, highly selective roles and are not a standard starting point for all quant positions.</p><h3 id="6-xtx-markets">6. XTX Markets</h3><p>Headquarters: London</p><p>Other offices: Global presence including Singapore and Mumbai</p><p>India: Mumbai, BKC</p><p>Known for: Machine-learning-driven price forecasts and liquidity provision</p><p>XTX is one of the clearest examples of machine learning becoming central to market-making. The firm says it uses machine-learning technology to produce forecasts across more than 53,000 financial instruments. Media reports based on UK filings have also highlighted XTX's 2025 scale, including roughly £3.9 billion in revenue and £1.7 billion in profit.</p><p>Candidates interested in ML-heavy quant research, infrastructure and large-scale data systems should study XTX closely.</p><h3 id="7-drw-trading">7. DRW Trading</h3><p>Headquarters: Chicago</p><p>Major offices: London, Singapore and other locations</p><p>Known for: Multi-asset trading, liquidity provision, risk-taking and crypto through Cumberland</p><p>DRW spans ETFs, rates, commodities, cryptoassets and other markets. Its Cumberland arm is one of the better-known institutional crypto liquidity providers. Crypto is no longer just a side experiment for many trading firms, but it remains a highly regulated and jurisdiction-dependent business.</p><h3 id="8-susquehanna-international-group-sig-">8. Susquehanna International Group (SIG)</h3><p>Headquarters: Bala Cynwyd, Pennsylvania</p><p>Major offices: US, Dublin, Singapore and other hubs</p><p>Known for: Options trading, derivatives, game theory and decision science</p><p>SIG is one of the oldest and most respected options-focused trading firms. It is well known among candidates for probability, poker-style decision-making, market-making games and trading judgement interviews.</p><h3 id="9-jump-trading">9. Jump Trading</h3><p>Headquarters: Chicago</p><p>Major offices: London, Singapore and other hubs</p><p>India: GIFT City and Gurugram<br><br>Known for: HFT, futures, market-making, infrastructure and digital assets through Jump Crypto</p><p>Jump Trading remains one of the most technically sophisticated trading firms globally. In India, its GIFT City presence makes it part of the emerging IFSC-linked quant trading ecosystem.</p><h3 id="10-tower-research-capital">10. Tower Research Capital</h3><p>Headquarters: New York</p><p>Major offices: London, Singapore, Gurugram and other hubs</p><p>India: Gurugram and GIFT City</p><p>Known for: Low-latency trading, systems engineering and quantitative research</p><p>Tower is one of the most recognised HFT firms among Indian engineering candidates. Its India presence, particularly in Gurugram and GIFT City, makes it a visible name in the domestic quant hiring market.</p><h3 id="11-qube-research-technologies">11. Qube Research &amp; Technologies</h3><p>Headquarters: London</p><p>India: Mumbai<br><br>Known for: Systematic trading, quant research and multi-strategy investing</p><p>Business Standard reported in May 2026 that Qube Research &amp; Technologies received in-principle approval from IFSCA to establish operations in GIFT City's special economic zone, making it the first global HFT to take the SEZ route rather than the domestic tariff area. This is important because GIFT City continues to evolve as a base for international financial services, trading infrastructure and India-linked quant operations.</p><h3 id="12-virtu-financial">12. Virtu Financial</h3><p>Headquarters: New York</p><p>Known for: Listed market-making firm, execution services, global liquidity provision. Virtu provides liquidity across thousands of securities and hundreds of venues globally.</p><h3 id="13-flow-traders">13. Flow Traders</h3><p>Headquarters: Amsterdam</p><p>Major offices: New York, London, Singapore and other hubs</p><p>Known for: ETP liquidity provision and crypto ETP market-making</p><p>Flow Traders' 2025 annual reporting showed €485.8 million in net trading income and €133.6 million in net profit for the year. It remains an important name in ETP liquidity provision and has expanded into crypto exchange-traded products.</p><h3 id="14-akuna-capital">14. Akuna Capital</h3><p>Headquarters: Chicago</p><p>Major offices: London and Singapore</p><p>Known for: Options market-making and derivatives trading</p><p>Akuna is a recognised derivatives trading firm, particularly relevant to candidates interested in options, trading systems and market-making.</p><h3 id="15-mako-trading">15. Mako Trading</h3><p>Headquarters: London</p><p>Major offices: Singapore</p><p>Known for: Options market-making and derivatives trading</p><p>Mako is a long-running derivatives trading firm and remains relevant in the options market-making ecosystem.</p><h3 id="16-maven-securities">16. Maven Securities</h3><p>Headquarters: London</p><p>Major offices: Chicago and other hubs</p><p>Known for: Technology-led market-making and systematic trading</p><p>Maven is another London-based firm worth tracking for candidates interested in proprietary trading, market-making and quant roles.</p><hr><h2 id="global-banks-with-electronic-trading-and-market-making-desks">Global Banks with Electronic Trading and Market-Making Desks</h2><p>It is better to avoid calling large bank desks "proprietary trading arms" too loosely. In the US and several other jurisdictions, post-crisis rules such as the Volcker Rule generally restrict banking entities from proprietary trading, while allowing activities such as market-making, underwriting, hedging and client facilitation under defined conditions.</p><p>So, for banks, the cleaner term is electronic trading and market-making desks, not pure prop trading arms.</p><h3 id="goldman-sachs">Goldman Sachs</h3><p>Goldman Sachs remains a major global markets participant across equities, fixed income, currencies, commodities, derivatives, electronic trading and client market-making. It has a major India presence through Bengaluru, Hyderabad and Mumbai operations, though candidates should distinguish between front-office global markets roles, engineering roles and support functions.</p><h3 id="morgan-stanley">Morgan Stanley</h3><p>Morgan Stanley is a major global markets and investment banking firm with electronic trading, derivatives, prime brokerage, risk and technology functions across global hubs. Like Goldman Sachs, it is relevant for candidates who want exposure to institutional markets, but its role structure differs from independent HFT and prop trading firms.</p><hr><h2 id="global-quant-firms-with-major-india-linked-hiring">Global Quant Firms with Major India-Linked Hiring</h2><h3 id="worldquant">WorldQuant</h3><p>WorldQuant is a global quantitative asset management firm with a strong India talent footprint. WorldQuant lists Bengaluru, Delhi and Mumbai research offices. It is particularly relevant for candidates interested in alpha research, data science, statistical modelling and systematic investing.</p><h3 id="millennium-management">Millennium Management</h3><p>Millennium is a global multi-strategy investment firm. It is not a pure HFT shop, but its quant, data, technology and portfolio-management functions make it relevant for candidates interested in systematic investing and pod-based hedge fund structures.</p><hr><h2 id="india-origin-and-india-focused-quant-trading-firms">India-Origin and India-Focused Quant Trading Firms</h2><p>India's HFT and quant trading ecosystem has become much more visible over the past few years. Global firms are expanding in India, while domestic firms are increasingly competitive on compensation, campus hiring and market share.</p><h3 id="1-graviton-research-capital">1 . Graviton Research Capital</h3><p>India presence: Gurugram, GIFT City and Singapore</p><p>Known for: HFT, quantitative research, low-latency systems and campus hiring</p><p>Graviton is one of India's best-known homegrown HFT firms and is frequently discussed alongside global firms in the Indian quant hiring market. It is especially relevant for candidates from strong engineering, mathematics and competitive programming backgrounds.</p><h3 id="2-nk-securities-research">2. NK Securities Research</h3><p>India presence: India and Singapore-linked operations</p><p>Known for: HFT, cash and derivatives trading, low-latency strategies</p><p>NK Securities is one of India's significant domestic HFT names. It is often mentioned in the context of GIFT City and India's growing proprietary trading ecosystem.</p><h3 id="3-irage">3. iRage</h3><p>India presence: Mumbai and GIFT City</p><p>Known for: HFT, market-making, proprietary capital, low-latency systems and institutional algo infrastructure</p><p>Founded in 2009, shortly after Direct Market Access was introduced in Indian markets, iRage is one of India's longest-running HFT firms. QuantInsti was established in 2010 as the educational branch of iRage, and QuantInsti's own website describes it as founded by partners of iRage. This lineage is relevant for EPAT aspirants because the programme's roots are linked to a working Indian algorithmic and high-frequency trading practice.</p><h3 id="4-alphagrep-securities">4. AlphaGrep Securities</h3><p>India presence: Mumbai, Gurugram, Bengaluru and GIFT City</p><p>Global presence: Singapore, London, Shanghai, Chicago and other offices</p><p>Known for: Quantitative trading, market-making and systematic strategies</p><p>AlphaGrep describes itself as a quantitative trading and investment firm that trades across asset classes on more than 30 exchanges globally. For candidates, AlphaGrep is relevant because of its work across quantitative trading, research and technology-led market participation.</p><h3 id="5-quadeye-securities">5. Quadeye Securities</h3><p>India presence: Gurugram, Kolkata and GIFT City.</p><p>Global/affiliate presence includes Singapore, New York and Hong Kong.</p><p>Known for: HFT, quantitative research, campus hiring and competitive compensation</p><p>Quadeye is one of the most visible Indian HFT recruiters. Economic Times, citing Bloomberg reporting, said Quadeye paid new hires up to ₹7.5 lakh per month in 2025, roughly 50% higher than the previous year. These are media-reported figures for specific roles, and compensation varies considerably by position and individual.<br></p><h3 id="6-estee-advisors">6. Estee Advisors</h3><p>India presence: Gurugram and GIFT City</p><p>Known for: Quantitative trading, systematic strategies and trading technology</p><p>Estee Advisors is a prominent India-based quantitative trading and investment firm. It is relevant for candidates interested in systematic strategies, trading infrastructure and India’s quant trading ecosystem.</p><h3 id="7-dolat-group">7. Dolat Group</h3><p>India presence: Mumbai India</p><p>Known for: Trading across asset classes and technology-led market participation</p><p>Dolat is another important India-linked trading name, though public information about detailed strategy mix and compensation is limited compared with some larger firms.</p><h3 id="other-india-relevant-firms-to-track">Other India-relevant firms to track</h3><p>Candidates should also track Da Vinci Derivatives, Quantbox Research, Maverick Derivatives, Optimus Prime Securities and other newer or lower-public-profile firms active in India's quant trading ecosystem. Public-scale data is limited for many of these firms, so candidates should rely on official career pages, alumni conversations, referrals and interview experience reports.</p><hr><h2 id="where-quant-trading-firms-sit-in-india">Where Quant Trading Firms Sit in India</h2><p>Three locations appear repeatedly in India's quant trading ecosystem:</p><h3 id="mumbai-maharashtra">Mumbai, Maharashtra</h3><p>Mumbai remains India's core financial-market hub. BKC hosts several global and domestic trading, broking and asset-management firms, including teams linked to Optiver, HRT, Jump and AlphaGrep.</p><h3 id="gurugram-national-capital-region">Gurugram, National Capital Region</h3><p>Gurugram has become a serious quant and trading-technology cluster. Tower Research and Citadel Securities have both been associated with Gurugram operations, and several domestic firms also recruit heavily from North Indian engineering campuses.</p><h3 id="gift-city-gujarat">GIFT City, Gujarat</h3><p>GIFT City is India's international financial services centre. It is increasingly relevant for HFT, international exchanges, trading operations and India-linked quant activity. Firms such as Jump, Tower, Graviton and NK Securities have been associated with GIFT City-linked operations, and QRT's reported SEZ approval marks another sign of global interest.</p><p>Bengaluru also matters as an engineering and quant technology hub, even when trading desks are located elsewhere.</p><hr><h2 id="quantitative-investing-firms">Quantitative Investing Firms</h2><p>Not every quantitative firm is an HFT or prop trading firm. Some use quantitative models for longer-term investing, portfolio construction, factor exposure, risk management and systematic allocation.</p><h3 id="united-states">United States</h3><ul><li><strong>AQR Capital Management</strong><br>AQR is a global investment management firm known for quantitative research, factor investing and systematic portfolio construction.</li><li><strong>Renaissance Technologies</strong><br>Renaissance is one of the most famous quantitative investment firms globally, best known for the Medallion Fund, which remains closed to outside investors.</li><li><strong>Two Sigma</strong><br>Two Sigma applies data science, engineering and quantitative methods to investment management. It is relevant for candidates interested in systematic investing rather than pure low-latency trading.</li></ul><h3 id="united-kingdom">United Kingdom</h3><ul><li><strong>Winton</strong><br>Winton focuses on statistical and mathematical approaches to investment management.</li><li><strong>Man AHL</strong><br>Part of Man Group, Man AHL uses quantitative and systematic methods across multiple strategies.</li><li><strong>Marshall Wace</strong><br>Marshall Wace is a global alternative investment manager known for systematic and discretionary strategies.</li></ul><h3 id="singapore-and-uae">Singapore and UAE</h3><ul><li><strong>GIC</strong><br>Singapore's sovereign wealth fund uses quantitative methods across parts of its long-term investment process.</li><li><strong>Dymon Asia Capital</strong><br>Dymon Asia is a Singapore-based alternative investment manager with macro and multi-strategy capabilities.</li><li><strong>Abu Dhabi Investment Authority</strong><br>ADIA uses quantitative approaches as part of its diversified global investment process.</li><li><strong>Balyasny Asset Management</strong><br>Balyasny is a global multi-strategy investment firm with a growing footprint across major financial hubs, including the Middle East.</li></ul><hr><h2 id="ai-and-machine-learning-the-new-hiring-differentiator">AI and Machine Learning: The New Hiring Differentiator</h2><p>The 2026 reality is that technology in quant trading is no longer only about speed, co-location and hardware. The research and forecasting layer has shifted strongly toward machine learning.</p><p>Machine learning is especially relevant in:</p><ul><li>Order-flow prediction</li><li>Quote optimisation</li><li>Regime detection</li><li>Feature engineering</li><li>Signal validation</li><li>News and earnings-data processing</li><li>Portfolio construction</li><li>Simulation and research workflows</li></ul><p>That does not mean HFT execution has become a black-box LLM problem. The final order path in low-latency strategies still depends on deterministic engineering, exchange connectivity, risk controls, hardware-aware optimisation and compliance checks.</p><p>For EPAT aspirants and working quants, the practical implication is clear: Python and statistics are now baseline skills, while machine learning workflows, model validation and market microstructure awareness increasingly separate strong candidates from average ones.</p><hr><h2 id="crypto-and-digital-assets-a-maturing-but-regulated-asset-class">Crypto and Digital Assets: A Maturing but Regulated Asset Class</h2><p>Several firms on this list now treat crypto market-making as a standard line of business rather than a pure experiment. DRW has Cumberland, Jump has Jump Crypto, Flow Traders is active in crypto ETP liquidity, and several crypto-native firms such as Wintermute and GSR operate in parallel.</p><p>That said, crypto trading remains highly jurisdiction-dependent. Candidates should track regulatory developments carefully, especially in the US, EU, Singapore, Dubai and India. A firm being active in digital assets does not mean the same roles, permissions or products are available in every jurisdiction.</p><hr><h2 id="compensation-and-hiring-in-2026">Compensation and Hiring in 2026</h2><p>Pay at the top of this industry remains extraordinary, but it is important to separate official numbers from media reports and crowd-sourced estimates.</p><h3 id="india">India</h3><p>Economic Times, citing Bloomberg reporting, said IMC offered India interns up to ₹12.5 lakh per month in 2025, while Quadeye paid some new hires up to ₹7.5 lakh per month. These numbers attracted attention because they are far above normal entry-level finance compensation in India.</p><p>These figures reflect exceptional, role-specific packages reported by the media and should not be read as a typical starting salary in this field.</p><h3 id="global-markets">Global markets</h3><p>In the US and Europe, entry-level trader, quant researcher and quant developer compensation at top firms can be extremely high, often including base salary, signing bonus and performance-linked bonus. But these numbers vary widely by firm, year, role, performance and location.</p><h3 id="important-compensation-disclaimer">Important compensation disclaimer</h3><p>Compensation data in this industry comes from a mix of sources: audited company reports, regulatory filings, media stories based on private information, and crowd-sourced platforms. The figures that appear in this article are labelled by source type. Non-official figures reflect what is publicly reported or estimated; individual packages depend on role, firm, year, performance and contract structure.<br></p><p>Also remember that total compensation is not the same as in-hand pay. Bonuses, deferrals, clawbacks, garden leave, non-compete restrictions and tax treatment can materially change what a candidate actually receives.</p><hr><h2 id="firms-to-research-by-candidate-profile">Firms to Research by Candidate Profile</h2><!--kg-card-begin: html--><style>
  .qi-profile-wrap {
    margin: 32px 0 44px;
    font-family: 'Open Sans', Arial, sans-serif;
  }
  .qi-profile-wrap table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(0, 12, 75, 0.10);
    font-size: 14px;
  }
  .qi-profile-wrap thead tr {
    background: #edf0f9;
  }
  .qi-profile-wrap thead th {
    padding: 15px 20px;
    color: #000000;
    font-family: 'Montserrat', 'Open Sans', Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-align: left;
    border: none;
    border-bottom: 3px solid #94C94B;
  }
  .qi-profile-wrap thead th:first-child { border-radius: 12px 0 0 0; }
  .qi-profile-wrap thead th:last-child  { border-radius: 0 12px 0 0; }
 
  .qi-profile-wrap tbody tr {
    transition: background 0.15s;
    border-bottom: 1px solid #edf0f9;
  }
  .qi-profile-wrap tbody tr:last-child { border-bottom: none; }
  .qi-profile-wrap tbody tr:nth-child(odd)  { background: #ffffff; }
  .qi-profile-wrap tbody tr:nth-child(even) { background: #f5f7ff; }
  .qi-profile-wrap tbody tr:hover { background: #eaedff; }
 
  .qi-profile-wrap tbody td {
    padding: 14px 20px;
    vertical-align: middle;
    color: #333;
    border: none;
    line-height: 1.45;
  }
 
  /* left column: profile label */
  .qi-profile-label {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .qi-profile-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #000C4B;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .qi-profile-icon svg {
    width: 16px;
    height: 16px;
    fill: #94C94B;
  }
  .qi-profile-text {
    font-family: 'Montserrat', 'Open Sans', Arial, sans-serif;
    font-weight: 700;
    font-size: 13px;
    color: #003B7C;
    line-height: 1.3;
  }
 
  /* right column: firm chips */
  .qi-firms-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }
  .qi-chip {
    display: inline-block;
    background: #f0f3fb;
    color: #003B7C;
    font-size: 12px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 20px;
    border: 1px solid #d6ddf5;
    white-space: nowrap;
    line-height: 1.4;
  }
  .qi-chip-green {
    background: #f0fae0;
    color: #3a6b00;
    border-color: #b8e07a;
  }
 
  @media (max-width: 600px) {
    .qi-profile-wrap table { font-size: 12px; }
    .qi-profile-wrap thead th,
    .qi-profile-wrap tbody td { padding: 10px 12px; }
    .qi-profile-text { font-size: 11.5px; }
    .qi-chip { font-size: 11px; padding: 3px 8px; }
    .qi-profile-icon { width: 26px; height: 26px; }
  }
</style>
 
<div class="qi-profile-wrap">
  <table aria-label="Firms to Research by Candidate Profile">
    <thead>
      <tr>
        <th style="width:36%;">Candidate Profile</th>
        <th>Best-Fit Firms to Study</th>
      </tr>
    </thead>
    <tbody>
 
      <tr>
        <td>
          <div class="qi-profile-label">
            <div class="qi-profile-icon">
              <!-- Code / engineering icon -->
              <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M8.293 6.293 2.586 12l5.707 5.707 1.414-1.414L5.414 12l4.293-4.293zm7.414 0-1.414 1.414L18.586 12l-4.293 4.293 1.414 1.414L21.414 12z"/></svg>
            </div>
            <span class="qi-profile-text">Strong C++ or low-latency systems engineer</span>
          </div>
        </td>
        <td>
          <div class="qi-firms-list">
            <span class="qi-chip">HRT</span>
            <span class="qi-chip">Tower Research</span>
            <span class="qi-chip">Jump Trading</span>
            <span class="qi-chip">Citadel Securities</span>
            <span class="qi-chip">Optiver</span>
          </div>
        </td>
      </tr>
 
      <tr>
        <td>
          <div class="qi-profile-label">
            <div class="qi-profile-icon">
              <!-- Probability / math icon -->
              <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm-7 14-4-4 1.41-1.41L12 14.17l6.59-6.59L20 9l-8 8z"/></svg>
            </div>
            <span class="qi-profile-text">Probability / math-heavy trader</span>
          </div>
        </td>
        <td>
          <div class="qi-firms-list">
            <span class="qi-chip">Jane Street</span>
            <span class="qi-chip">Optiver</span>
            <span class="qi-chip">SIG</span>
            <span class="qi-chip">IMC</span>
          </div>
        </td>
      </tr>
 
      <tr>
        <td>
          <div class="qi-profile-label">
            <div class="qi-profile-icon">
              <!-- ML / brain icon -->
              <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17.93V18h-2v1.93C7.05 19.44 4.56 16.95 4.07 14H6v-2H4.07C4.56 9.05 7.05 6.56 10 6.07V8h2V6.07c2.95.49 5.44 2.98 5.93 5.93H16v2h1.93c-.49 2.95-2.98 5.44-5.93 5.93z"/></svg>
            </div>
            <span class="qi-profile-text">ML / research-focused candidate</span>
          </div>
        </td>
        <td>
          <div class="qi-firms-list">
            <span class="qi-chip">XTX</span>
            <span class="qi-chip">Jane Street</span>
            <span class="qi-chip">HRT</span>
            <span class="qi-chip">AQR</span>
            <span class="qi-chip">Two Sigma</span>
          </div>
        </td>
      </tr>
 
      <tr>
        <td>
          <div class="qi-profile-label">
            <div class="qi-profile-icon" style="background:#94C94B;">
              <!-- India / location icon -->
              <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill:#003B7C;"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/></svg>
            </div>
            <span class="qi-profile-text">India-focused quant aspirant</span>
          </div>
        </td>
        <td>
          <div class="qi-firms-list">
            <span class="qi-chip qi-chip-green">Graviton</span>
            <span class="qi-chip qi-chip-green">NK Securities</span>
            <span class="qi-chip qi-chip-green">iRage</span>
            <span class="qi-chip qi-chip-green">AlphaGrep</span>
            <span class="qi-chip qi-chip-green">Quadeye</span>
            <span class="qi-chip qi-chip-green">Estee Advisors</span>
          </div>
        </td>
      </tr>
 
      <tr>
        <td>
          <div class="qi-profile-label">
            <div class="qi-profile-icon">
              <!-- Chart / investing icon -->
              <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3.5 18.49 9.5 12.48l4 4L22 6.92l-1.41-1.41-7.09 7.97-4-4L2 16.99z"/></svg>
            </div>
            <span class="qi-profile-text">Systematic investing path</span>
          </div>
        </td>
        <td>
          <div class="qi-firms-list">
            <span class="qi-chip">AQR</span>
            <span class="qi-chip">Two Sigma</span>
            <span class="qi-chip">Winton</span>
            <span class="qi-chip">Man AHL</span>
            <span class="qi-chip">Marshall Wace</span>
            <span class="qi-chip">WorldQuant</span>
          </div>
        </td>
      </tr>
 
      <tr>
        <td>
          <div class="qi-profile-label">
            <div class="qi-profile-icon">
              <!-- Crypto icon -->
              <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5zm0 4 4 8H8z"/></svg>
            </div>
            <span class="qi-profile-text">Crypto market-making interest</span>
          </div>
        </td>
        <td>
          <div class="qi-firms-list">
            <span class="qi-chip">Cumberland / DRW</span>
            <span class="qi-chip">Jump Crypto</span>
            <span class="qi-chip">Flow Traders</span>
            <span class="qi-chip">Wintermute</span>
            <span class="qi-chip">GSR</span>
          </div>
        </td>
      </tr>
 
      <tr>
        <td>
          <div class="qi-profile-label">
            <div class="qi-profile-icon">
              <!-- Bank icon -->
              <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M4 10v7h3v-7zm6 0v7h3v-7zm-8 9h19v-3H2zm14-9v7h3v-7zM11.5 1 2 6v2h19V6z"/></svg>
            </div>
            <span class="qi-profile-text">Bank markets path</span>
          </div>
        </td>
        <td>
          <div class="qi-firms-list">
            <span class="qi-chip">Goldman Sachs</span>
            <span class="qi-chip">Morgan Stanley</span>
            <span class="qi-chip" style="color:#888;border-color:#ddd;background:#fafafa;">+ other global markets desks</span>
          </div>
        </td>
      </tr>
 
    </tbody>
  </table>
</div><!--kg-card-end: html--><hr><h2 id="how-to-get-hired-breaking-into-a-prop-trading-or-hft-career">How to Get Hired: Breaking Into a Prop Trading or HFT Career</h2><p>A few patterns hold across nearly every firm on this list.</p><h3 id="1-build-the-technical-base">1. Build the technical base</h3><p>Most firms expect strong programming ability. Depending on the role, that may mean Python, C++, Java, Rust or strong general software-engineering fundamentals. Quant research roles usually require Python, statistics, data analysis and numerical reasoning. Trading systems roles often demand C++, networking, operating systems and performance optimisation.</p><h3 id="2-master-probability-and-statistics">2. Master probability and statistics</h3><p>Probability, statistics, expected value, distributions, conditional reasoning and estimation appear repeatedly in interviews. Many firms test how you think under uncertainty rather than whether you memorised formulas.</p><h3 id="3-understand-market-microstructure">3. Understand market microstructure</h3><p>Market microstructure has become more important, not less. Candidates should understand order books, spreads, queues, liquidity, adverse selection, market impact, exchange rules and transaction costs.</p><h3 id="4-learn-backtesting-properly">4. Learn backtesting properly</h3><p>Backtesting is not just running a strategy on historical prices. Strong candidates understand look-ahead bias, survivorship bias, transaction costs, slippage, parameter overfitting, walk-forward testing and regime changes.</p><h3 id="5-add-machine-learning-carefully">5. Add machine learning carefully</h3><p>Machine learning is now a differentiator, but only when candidates can explain how it fits a trading problem. Firms value candidates who can discuss feature engineering, validation, overfitting, leakage, interpretability and why not every model belongs in live trading.</p><h3 id="6-build-visible-project-work">6. Build visible project work</h3><p>Non-IIT and non-campus candidates can still break in, but they need stronger proof of skill. Useful projects include:</p><ul><li>Limit order book simulator</li><li>Options market-making simulator</li><li>Statistical arbitrage research notebook</li><li>Event-driven backtester</li><li>Execution cost analysis project</li><li>ML-based signal validation project</li><li>Exchange rule and market microstructure case study</li></ul><h3 id="7-do-not-over-index-on-mba-cfa-or-finance-credentials">7. Do not over-index on MBA, CFA or finance credentials</h3><p>Most quant and trading roles care more about math, coding, statistics, research skill and trading judgement than traditional finance credentials. Finance knowledge helps, but it is rarely enough without technical depth.</p><hr><h2 id="types-of-algorithmic-trading-firms">Types of Algorithmic Trading Firms</h2><h3 id="1-high-frequency-trading-firms"><strong>1. High-Frequency Trading Firms</strong></h3><p>HFT firms use advanced infrastructure and algorithms to execute large numbers of orders at very high speeds. Their goal is usually to capture small inefficiencies repeatedly while managing latency, risk and transaction costs.</p><p><strong>Key features:</strong></p><ul><li>Low-latency infrastructure</li><li>Co-location with exchanges</li><li>High-speed market data</li><li>Market-making and arbitrage strategies</li><li>Strict risk controls</li><li>Heavy engineering and systems focus</li></ul><h3 id="2-proprietary-trading-firms"><strong>2. Proprietary Trading Firms</strong></h3><p>Prop trading firms use their own capital to trade. They may run HFT, medium-frequency, statistical arbitrage, options, futures, crypto or multi-asset strategies.</p><p><strong>Key features:</strong></p><ul><li>Firm capital, not client capital</li><li>Research-led strategy development</li><li>Strong risk management</li><li>Compensation often linked to trading performance</li></ul><h3 id="3-market-makers"><strong>3. Market Makers</strong></h3><p>Market makers provide liquidity by continuously quoting buy and sell prices. They earn spreads while managing inventory and adverse selection risk.</p><p><strong>Key features:</strong></p><ul><li>Continuous bid and offer quoting</li><li>Automated risk and inventory management</li><li>Strong market microstructure focus</li><li>Active across listed and sometimes OTC markets</li></ul><h3 id="4-quantitative-hedge-funds"><strong>4. Quantitative Hedge Funds</strong></h3><p>Quant hedge funds use statistical, mathematical and machine-learning models to allocate capital and manage portfolios. They often have longer holding periods than HFT firms.</p><p><strong>Key features:</strong></p><ul><li>Data-driven portfolio construction</li><li>Client or investor capital</li><li>Factor models, statistical arbitrage, trend-following and market-neutral strategies</li><li>Risk-adjusted returns and capacity management</li></ul><h3 id="where-epat-fits-in">Where EPAT Fits In</h3><p>For learners trying to move into algorithmic trading, EPAT can help structure preparation across Python, statistics, machine learning, backtesting, strategy development and market microstructure. It is especially relevant for candidates who already have some technical or markets background but need a clearer roadmap for quant trading roles.</p><h2 id="quantinsti-s-placement-partners">QuantInsti’s Placement Partners</h2><p>QuantInsti has collaborated with over 350 firms globally in the last 14 years to bring career opportunities to EPAT certified participants. If you're mapping out a path toward one of these firms, reading some of the best <a href="https://www.quantinsti.com/algo-trading-ebook">Algorithmic Trading books</a> can help you build the foundational knowledge that quant hiring processes expect.</p><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/07/Placement-Partners-QuantInsti-1.png" class="kg-image" alt="QuantInsti has collaborated with over 350 firms globally"><figcaption>QuantInsti’s Placement Partners</figcaption></figure><p>Know more about <a href="https://www.quantinsti.com/quant-jobs">QuantInsti’s placement opportunities</a> here.</p><p>Become our placement partner and benefit from our talent pool of exceptional quantitative professionals. Know more about <a href="https://www.quantinsti.com/corporate-placement-assistance">quant hiring</a> here.</p><h3 id="ready-to-see-your-name-on-the-payroll-of-these-top-firms">Ready to see your name on the payroll of these top firms?</h3><p>Don't just read the list - join it. Join thousands of successful alumni who have transitioned into roles at the world's leading <a href="https://www.quantinsti.com/articles/proprietary-trading-desk/">proprietary trading desks</a> through the EPAT.</p><p>Check Your Eligibility for the Next EPAT Cohort</p><!--kg-card-begin: html--><p style="text-align:left;">
  <button onclick="window.location.href='https://www.quantinsti.com/epat#calendly-section'" style="background-color:#92c94a; font-weight:600; color:#ffffff; padding:12px 20px; border-radius:5px; border:none; cursor:pointer;">
    Enquire Here
  </button>
</p>
<!--kg-card-end: html--><hr><h2 id="frequently-asked-questions">Frequently Asked Questions</h2><!--kg-card-begin: html--><!-- ============================================================
     FAQ SECTION: Collapsible Accordion
     Uses native details/summary elements. No JavaScript needed.
     Paste into a Ghost HTML card where the FAQ section belongs.
     ============================================================ -->

<style>
  .qi-faq {
    margin: 36px 0 44px;
    font-family: 'Open Sans', Arial, sans-serif;
  }
  .qi-faq-title {
    font-family: 'Montserrat', 'Open Sans', Arial, sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: #000C4B;
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 3px solid #94C94B;
    display: inline-block;
  }

  /* ── each item ── */
  .qi-faq details {
    border: 1px solid #e2e6f0;
    border-radius: 8px;
    margin-bottom: 8px;
    background: #ffffff;
    overflow: hidden;
    transition: box-shadow 0.2s ease;
  }
  .qi-faq details:hover {
    box-shadow: 0 2px 12px rgba(0, 12, 75, 0.08);
  }
  .qi-faq details[open] {
    border-color: #94C94B;
    box-shadow: 0 2px 16px rgba(0, 12, 75, 0.10);
  }

  /* ── question row ── */
  .qi-faq summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 20px;
    cursor: pointer;
    list-style: none;
    user-select: none;
    -webkit-user-select: none;
  }
  .qi-faq summary::-webkit-details-marker { display: none; }
  .qi-faq summary::marker { display: none; }

  .qi-faq-q {
    font-family: 'Montserrat', 'Open Sans', Arial, sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #003B7C;
    line-height: 1.4;
    flex: 1;
  }
  .qi-faq details[open] .qi-faq-q {
    color: #000C4B;
  }

  /* ── chevron icon ── */
  .qi-faq-chevron {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    fill: none;
    stroke: #94C94B;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform 0.25s ease;
  }
  .qi-faq details[open] .qi-faq-chevron {
    transform: rotate(180deg);
  }

  /* ── answer body ── */
  .qi-faq-body {
    padding: 0 20px 18px 20px;
    font-size: 14px;
    line-height: 1.7;
    color: #444;
    border-top: 1px solid #f0f2f9;
  }
  .qi-faq-body p {
    margin: 12px 0 0;
  }
  .qi-faq-body p:first-child {
    margin-top: 14px;
  }

  /* ── left accent on open item ── */
  .qi-faq details[open] summary {
    background: #f7f9ff;
    border-left: 4px solid #94C94B;
    padding-left: 16px;
  }
  .qi-faq details summary {
    border-left: 4px solid transparent;
    padding-left: 16px;
  }
</style>

  <details>
    <summary>
      <span class="qi-faq-q">Which are the top HFT and prop trading firms in India?</span>
      <svg class="qi-faq-chevron" viewbox="0 0 24 24"><polyline points="6 9 12 15 18 9"/></svg>
    </summary>
    <div class="qi-faq-body">
      <p>Some of the most visible India-linked HFT and prop trading firms include Graviton Research Capital, NK Securities, iRage, AlphaGrep Securities, Quadeye Securities, Estee Advisors, Tower Research Capital, Jump Trading, Optiver, Citadel Securities and Hudson River Trading. Their India presence varies by firm, with Mumbai, Gurugram and GIFT City emerging as key hubs.</p>
    </div>
  </details>

  <details>
    <summary>
      <span class="qi-faq-q">Which global HFT firms have a presence in India?</span>
      <svg class="qi-faq-chevron" viewbox="0 0 24 24"><polyline points="6 9 12 15 18 9"/></svg>
    </summary>
    <div class="qi-faq-body">
      <p>Several global trading firms have built or reported India-linked operations, including Optiver, Tower Research Capital, Jump Trading, Citadel Securities, Hudson River Trading and Qube Research & Technologies. Some operate through Mumbai or Gurugram, while others are connected to GIFT City's growing trading and financial-services ecosystem.</p>
    </div>
  </details>

  <details>
    <summary>
      <span class="qi-faq-q">What roles do HFT and prop trading firms hire for?</span>
      <svg class="qi-faq-chevron" viewbox="0 0 24 24"><polyline points="6 9 12 15 18 9"/></svg>
    </summary>
    <div class="qi-faq-body">
      <p>These firms typically hire for roles such as quant trader, quant researcher, quant developer, software engineer, trading systems engineer, data scientist, risk analyst and infrastructure engineer. The exact role depends on the firm's strategy. Low-latency firms usually value C++, systems and performance optimisation, while research-heavy firms may focus more on Python, statistics, machine learning and market data analysis.</p>
    </div>
  </details>

  <details>
    <summary>
      <span class="qi-faq-q">What skills do I need to get into an HFT or prop trading firm?</span>
      <svg class="qi-faq-chevron" viewbox="0 0 24 24"><polyline points="6 9 12 15 18 9"/></svg>
    </summary>
    <div class="qi-faq-body">
      <p>The core skills are programming, probability, statistics, mental math, data analysis, market microstructure and backtesting. For engineering roles, C++, operating systems, networking and low-latency systems are important. For research roles, Python, statistical modelling, machine learning, feature engineering and validation matter more.</p>
    </div>
  </details>

  <details>
    <summary>
      <span class="qi-faq-q">Do I need to be from an IIT or top engineering college to get hired?</span>
      <svg class="qi-faq-chevron" viewbox="0 0 24 24"><polyline points="6 9 12 15 18 9"/></svg>
    </summary>
    <div class="qi-faq-body">
      <p>A top campus can help, especially for fresher roles, but it is not the only path. Off-campus candidates can still get noticed through strong projects, referrals, coding ability, probability preparation and evidence of real trading or research work. A strong limit order book simulator, backtesting project, options model or market microstructure study can make a profile more credible.</p>
    </div>
  </details>

  <details>
    <summary>
      <span class="qi-faq-q">How much do HFT and prop trading firms pay in India?</span>
      <svg class="qi-faq-chevron" viewbox="0 0 24 24"><polyline points="6 9 12 15 18 9"/></svg>
    </summary>
    <div class="qi-faq-body">
      <p>Compensation at top HFT and prop trading firms can be very high, but the numbers vary widely by firm, role, seniority, campus, performance and market cycle. Some media reports have highlighted exceptional intern or fresher packages at firms like IMC and Quadeye, but these should not be treated as standard salary bands. Candidates should separate media-reported figures from official compensation data and crowd-sourced estimates.</p>
    </div>
  </details>

  <details>
    <summary>
      <span class="qi-faq-q">What is the difference between a prop trading firm and a hedge fund?</span>
      <svg class="qi-faq-chevron" viewbox="0 0 24 24"><polyline points="6 9 12 15 18 9"/></svg>
    </summary>
    <div class="qi-faq-body">
      <p>A prop trading firm trades the firm's own capital and usually focuses on market-making, arbitrage, HFT, options, futures or systematic strategies. A hedge fund manages external investor capital and usually works with broader portfolio construction, risk management and longer investment horizons. Both can use quantitative methods, but the business model and day-to-day work can be very different.</p>
    </div>
  </details>

  <details>
    <summary>
      <span class="qi-faq-q">Are HFT firms only looking for traders?</span>
      <svg class="qi-faq-chevron" viewbox="0 0 24 24"><polyline points="6 9 12 15 18 9"/></svg>
    </summary>
    <div class="qi-faq-body">
      <p>No. Many HFT and market-making firms are as much technology companies as trading firms. They hire engineers, researchers, infrastructure specialists, data scientists, FPGA engineers, risk professionals and operations specialists. In many firms, the engineering and research teams are central to trading performance.</p>
    </div>
  </details>

  <details>
    <summary>
      <span class="qi-faq-q">Is machine learning important for HFT and quant trading roles?</span>
      <svg class="qi-faq-chevron" viewbox="0 0 24 24"><polyline points="6 9 12 15 18 9"/></svg>
    </summary>
    <div class="qi-faq-body">
      <p>Yes, but it depends on the role. Machine learning is increasingly used in areas like order-flow prediction, signal research, regime detection, quote optimisation and data processing. However, low-latency execution still depends on deterministic systems, strong engineering, exchange connectivity and risk controls. Candidates should understand both the possibilities and the limits of machine learning in live trading.</p>
    </div>
  </details>

  <details>
    <summary>
      <span class="qi-faq-q">What projects can help me build a profile for quant trading roles?</span>
      <svg class="qi-faq-chevron" viewbox="0 0 24 24"><polyline points="6 9 12 15 18 9"/></svg>
    </summary>
    <div class="qi-faq-body">
      <p>Useful projects include a limit order book simulator, event-driven backtester, options pricing model, statistical arbitrage notebook, execution cost analysis, market impact study, pairs trading research, or an ML-based signal validation project. The best projects show clean assumptions, proper testing, transaction costs, risk controls and awareness of real market constraints.</p>
    </div>
  </details>

  <details>
    <summary>
      <span class="qi-faq-q">Why is GIFT City important for HFT and quant firms?</span>
      <svg class="qi-faq-chevron" viewbox="0 0 24 24"><polyline points="6 9 12 15 18 9"/></svg>
    </summary>
    <div class="qi-faq-body">
      <p>GIFT City is India's international financial services centre. It is becoming relevant for trading firms because it supports international financial services, exchange access, trading operations and India-linked quant activity. Several domestic and global firms have been associated with GIFT City-linked operations, making it an important location to track.</p>
    </div>
  </details>

  <details>
    <summary>
      <span class="qi-faq-q">How should I choose which firms to apply to?</span>
      <svg class="qi-faq-chevron" viewbox="0 0 24 24"><polyline points="6 9 12 15 18 9"/></svg>
    </summary>
    <div class="qi-faq-body">
      <p>Start with your strongest skill set. If you are strong in C++ and systems, study firms like HRT, Tower, Jump and Citadel Securities. If you enjoy probability, games and trading judgement, look at Jane Street, Optiver, SIG and IMC. If you prefer machine learning and research, study XTX, HRT, AQR, Two Sigma and WorldQuant. If you want an India-focused path, track Graviton, NK Securities, iRage, AlphaGrep, Quadeye and Estee Advisors.</p>
    </div>
  </details>
<!--kg-card-end: html--><h2 id="interested-in-quant-trading">Interested in Quant Trading?</h2><p>Schedule a call to discuss a personalized career roadmap.</p><!--kg-card-begin: html--><div class="calendly-inline-widget" data-url="https://calendly.com/counsellor-1/speak-to-epat-counsellors?month=2025-04&embed_type=Inline&hide_gdpr_banner=1" style="min-width:320px;height:630px;"></div>
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js"></script>
<!--kg-card-end: html--><h3 id="references-">References:</h3><p>The key figures in this article are supported by the following sources. Source links are listed below</p><ul><li>Bloomberg, April 2026 (<a href="http://bloomberg.com/news/articles/2026-04-24">bloomberg.com/news/articles/2026-04-24</a>) - Jane Street 2025 net trading revenue of $39.6B. Bloomberg, March 2026 (bloomberg.com/news/articles/2026-03-24) - Citadel Securities 2025 record of $12.2B. Bloomberg, January 2026 (bloomberg.com/news/articles/2026-01-13) - HRT 2025 revenue estimated at $12.3B.</li><li><a href="https://www.bloomberg.com/news/articles/2026-05-08/jane-street-pulls-in-record-16-1-billion-quarterly-trading-haul">Bloomberg, May 2026</a> — Jane Street Q1 2026 trading revenue of $16.1B.</li><li><a href="https://www.optiver.com/working-at-optiver/results-for-2025/">Optiver, 2025 financial results</a> — Company-disclosed: €4.556B net trading income and €1.769B net profit for 2025.</li><li><a href="https://www.business-standard.com/amp/markets/news/british-hedge-fund-qube-research-tech-first-to-set-up-shop-in-gift-sez-126052101976_1.html">Business Standard, May 2026</a> — QRT in-principle IFSCA approval for GIFT City SEZ operations.</li><li><a href="https://economictimes.indiatimes.com">Economic Times (Bloomberg), 2025</a> — IMC intern stipend of up to ₹12.5 lakh/month and Quadeye new-hire pay of up to ₹7.5 lakh/month, media-reported figures.</li></ul><!--kg-card-begin: html--><style>
  .qi-disclaimer {
    margin: 40px 0 20px;
    background: #f7f8fc;
    border: 1px solid #e2e6f0;
    border-left: 4px solid #94C94B;
    border-radius: 8px;
    padding: 20px 24px;
    font-family: 'Open Sans', Arial, sans-serif;
  }
  .qi-disclaimer-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
  }
  .qi-disclaimer-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    fill: #94C94B;
  }
  .qi-disclaimer-title {
    font-family: 'Montserrat', 'Open Sans', Arial, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: #444;
    margin: 0;
  }
  .qi-disclaimer p {
    font-size: 12px;
    line-height: 1.65;
    color: #666;
    margin: 0 0 8px;
  }
  .qi-disclaimer p:last-child {
    margin-bottom: 0;
  }
  .qi-disclaimer-updated {
    display: inline-block;
    margin-top: 12px;
    font-size: 11px;
    color: #888;
    font-style: italic;
  }
</style>

<div class="qi-disclaimer" role="note" aria-label="Disclaimer">
  <div class="qi-disclaimer-header">
    <svg class="qi-disclaimer-icon" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
      <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/>
    </svg>
    <span class="qi-disclaimer-title">Disclaimer</span>
  </div>

  <p>This article is for general informational and educational purposes only. It is not financial, investment, legal or tax advice, and should not be treated as a recommendation to apply to, invest in, trade with, or engage with any firm mentioned.</p>

  <p>The firms listed are included for industry awareness and career research. Inclusion does not imply endorsement, partnership, affiliation, hiring assurance or verification of all current business activities by QuantInsti.</p>

  <p>The information is based on publicly available sources such as company disclosures, regulatory filings, official career pages, media reports and public market information available at the time of writing. Since many HFT, prop trading and quant firms are privately held, revenue, compensation, hiring, location and market-presence details should be treated as reported or indicative unless directly disclosed by the company.</p>

  <p>Compensation figures can vary widely by role, seniority, location, market cycle, performance, bonus structure, tax treatment and contract terms. Reported salary or stipend figures are not guaranteed or standard pay bands.</p>

  <p>This article does not rank or recommend retail funded-account, challenge-based or simulated trading platforms. These are different from proprietary trading employers that hire salaried traders, quants, researchers and engineers.</p>

  <p>References to fund offerings, crypto-related activities, GIFT City developments, regulatory matters or legal proceedings are included only as business and industry context. Readers should independently verify all details from official company, regulatory and exchange sources before making any career, trading, investment or business decision.</p>

  <span class="qi-disclaimer-updated">Last updated: June 2026. Information may change over time.</span>
</div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Trend-Following Strategies in Major Currency Markets: A Walk-Forward Validation Study | EPAT Project]]></title><description><![CDATA[An EPAT project walk-forward tests time-series momentum, MA crossover, and breakout strategies across seven FX pairs from 2003 to 2025, finding limited but real tradeability.]]></description><link>https://www.quantinsti.com/articles/trend-following-strategies-major-currency-markets-epat-project/</link><guid isPermaLink="false">6a38eedd74e6f000074e7009</guid><category><![CDATA[Algo Trading Projects]]></category><dc:creator><![CDATA[MOHIT KARWAL]]></dc:creator><pubDate>Thu, 25 Jun 2026 11:45:01 GMT</pubDate><content:encoded><![CDATA[<p><strong>TL;DR</strong> This project tests whether trend-following, a strategy family with decades of documented success in futures markets, transfers to spot FX. Three approaches (time-series momentum, moving-average crossover, and channel breakout) were backtested across the seven major currency pairs from 2003 to 2025, using 23 rolling walk-forward windows (3-year train, 1-year test), with parameters chosen for neighbourhood stability rather than peak historical Sharpe ratio.</p><p>The verdict is <strong>limited tradeability</strong>. Only 2 of 7 pairs, USDJPY and EURUSD, both using time-series momentum, clear the 0.5 Sharpe tradeability bar (0.78 and 0.54, respectively). The best multi-currency portfolio, an equal-weighted blend of each pair's best strategy, lands at a 0.43 Sharpe and 1.24% CAGR, just under the threshold. The strategies do show a genuine crisis-alpha effect, averaging 6.20% during the 2008 GFC, 2020 COVID, and 2022 rate-hike windows, and leverage reliably makes things worse rather than better once financing costs and compounding asymmetry are modelled realistically.</p><h3 id="about-the-author"><strong>About the Author</strong></h3><!--kg-card-begin: html--><div style="max-width:860px; margin:24px 0; font-family:Georgia, 'Times New Roman', serif; color:#2f3b45;"> <div style="border:1px solid #dbe5ea; border-radius:12px; background:#ffffff; padding:16px 18px; overflow:hidden;"> <a href="https://github.com/dfjmax" target="_blank" rel="noopener noreferrer"> <img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/1743857138608.jpeg" alt="Max Di Franco" style="float:left; width:135px; height:135px; object-fit:cover; border-radius:10px; margin:4px 18px 10px 0;"> </a> <p style="margin:0 0 10px 0; font-size:18px; line-height:1.75;"> <a href="https://github.com/dfjmax" target="_blank" rel="noopener noreferrer" style="color:#2f6ea5; text-decoration:none; font-weight:700;">Max Di Franco</a> is a Senior Software Engineer specializing in Kotlin, architecture, and delivery, currently working with Albert Heijn in Amsterdam. He holds a degree in Computer Engineering from Universidad Nacional de La Matanza in Argentina, and is currently pursuing QuantInsti's Executive Programme in Algorithmic Trading (EPAT), focused on quantitative trading, machine learning, and financial markets. </p> <p style="margin:0; font-size:18px; line-height:1.75;"> Over more than a decade in software engineering, Max has built backend and microservice architectures for major financial and logistics organizations including ABN AMRO Bank, Ahold Delhaize, KLM Royal Dutch Airlines, and ING Nederland, with deep expertise in Kotlin, Spring Framework, Apache Kafka, and Docker. He is now bringing that engineering rigor to algorithmic trading and quantitative finance. </p> </div> </div><!--kg-card-end: html--><hr><h2 id="project-idea-and-motivation"><strong>Project Idea and Motivation</strong></h2><p>The project topic is trend-following strategies in major currency markets. Trend-following has demonstrated long-term efficacy across a wide range of asset classes (Moskowitz, Ooi &amp; Pedersen, 2012; Hurst, Ooi &amp; Pedersen, 2017), and Shi &amp; Lian (2025) provide a modern, practitioner-oriented framework showing that combining multiple time scales with volatility targeting can enhance performance, particularly in futures markets.</p><p>That last word, futures, is the open question this project sets out to test. Futures returns embed roll yields and term premia that are simply absent in spot FX. So how much of the documented "trend premium" actually transfers to currency spot markets, where there's no futures curve to harvest carry from? This project empirically tests which trend-following specifications, if any, deliver robust, risk-adjusted performance in major spot FX pairs, using nothing but price action, volatility targeting, and realistic swap and transaction costs.</p><hr><h2 id="methodology-overview"><strong>Methodology Overview</strong></h2><h3 id="data-and-universe"><strong>Data and Universe</strong></h3><!--kg-card-begin: html--><div style="max-width:860px; margin:20px 0; font-family:Georgia, 'Times New Roman', serif; overflow-x:auto;"> <table style="width:100%; border-collapse:collapse; font-size:16px; color:#2f3b45;"> <thead> <tr style="background:#1f4e79; color:#ffffff;"> <th style="text-align:left; padding:10px 14px; border:1px solid #dbe5ea;">Component</th> <th style="text-align:left; padding:10px 14px; border:1px solid #dbe5ea;">Source</th> <th style="text-align:left; padding:10px 14px; border:1px solid #dbe5ea;">Period</th> </tr> </thead> <tbody> <tr style="background:#ffffff;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">FX Prices</td> <td style="padding:9px 14px; border:1px solid #dbe5ea;">Stooq</td> <td style="padding:9px 14px; border:1px solid #dbe5ea;">2000-2026</td> </tr> <tr style="background:#eaf1f8;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">Interest Rates</td> <td style="padding:9px 14px; border:1px solid #dbe5ea;">FRED (Central Bank Rates)</td> <td style="padding:9px 14px; border:1px solid #dbe5ea;">2000-2026</td> </tr> <tr style="background:#ffffff;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">FX Pairs</td> <td style="padding:9px 14px; border:1px solid #dbe5ea;">7 major pairs</td> <td style="padding:9px 14px; border:1px solid #dbe5ea;">2000-2026</td> </tr> </tbody> </table> </div><!--kg-card-end: html--><p>The seven pairs are EURUSD, USDJPY, GBPUSD, USDCHF, AUDUSD, USDCAD, and NZDUSD. Stooq was used in place of Yahoo Finance for the final analysis specifically because it extends back to 2000 rather than 2007, which makes the 2008 Global Financial Crisis available for crisis-alpha testing rather than just COVID and the 2022 rate-hike cycle.</p><h3 id="strategies-tested"><strong>Strategies Tested</strong></h3><p>Three trend-following signal methodologies were implemented, each inheriting from a shared base backtest class with volatility-targeted position sizing, FX swap costs from interest rate differentials, and transaction costs on every position change:</p><ul><li><strong>Time-Series Momentum (TSM):</strong> go long if the cumulative return over the lookback period is positive, short if negative.</li><li><strong>Moving-Average Crossover (MA):</strong> go long when the fast moving average crosses above the slow moving average, short on the reverse cross.</li><li><strong>Channel Breakout:</strong> go long when price breaks above the rolling high, short when it breaks below the rolling low.</li></ul><!--kg-card-begin: html--><div style="max-width:860px; margin:20px 0; font-family:Georgia, 'Times New Roman', serif; overflow-x:auto;"> <table style="width:100%; border-collapse:collapse; font-size:16px; color:#2f3b45;"> <thead> <tr style="background:#1f4e79; color:#ffffff;"> <th style="text-align:left; padding:10px 14px; border:1px solid #dbe5ea;">Strategy</th> <th style="text-align:left; padding:10px 14px; border:1px solid #dbe5ea;">Parameters Tested</th> </tr> </thead> <tbody> <tr style="background:#ffffff;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">TSM</td> <td style="padding:9px 14px; border:1px solid #dbe5ea;">Lookback: 63, 126, 252 days</td> </tr> <tr style="background:#eaf1f8;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">MA Crossover</td> <td style="padding:9px 14px; border:1px solid #dbe5ea;">Fast: 20, 30, 50 / Slow: 100, 150, 200</td> </tr> <tr style="background:#ffffff;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">Breakout</td> <td style="padding:9px 14px; border:1px solid #dbe5ea;">Channel: 20, 40, 60 days</td> </tr> </tbody> </table> </div><!--kg-card-end: html--><p>All strategies were also tested across a volatility-target grid of 5%, 10%, 15%, and 20% annualized.</p><h3 id="walk-forward-validation-setup"><strong>Walk-Forward Validation Setup</strong></h3><p>Rather than fitting each strategy once to the full history, each specification was run through 23 rolling walk-forward windows: a 3-year training period followed by a 1-year out-of-sample test, stepped forward one year at a time from 2003 to 2025. Parameters for each window were chosen using neighborhood stability scoring on the training data alone, not by picking whichever combination produced the best historical Sharpe, with constraints of a minimum of 5 trades and a maximum 25% drawdown. This matters because parameters are never re-selected using fold results, which avoids look-ahead bias and produces a meaningfully more conservative, more honest out-of-sample picture than a single in-sample fit would.</p><hr><h2 id="results"><strong>Results</strong></h2><h3 id="single-strategy-performance"><strong>Single-Strategy Performance</strong></h3><p>Across all 21 strategy-pair combinations (3 strategies x 7 pairs), only 2 cleared the Sharpe 0.5 tradeability threshold, both on time-series momentum.</p><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig01_best_strategy_per_pair-1.png" class="kg-image" alt="Out-of-sample Sharpe ratio by strategy and FX pair (median across 23 walk-forward folds)."><figcaption><em>Figure 1: Out-of-sample Sharpe ratio by strategy and FX pair (median across 23 walk-forward folds).</em></figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig02_sharpe_heatmap_strategy_pair-2.png" class="kg-image" alt="Best strategy per pair by median out-of-sample Sharpe, with the 0.5 tradeability line marked."><figcaption><em>Figure 2: Best strategy per pair by median out-of-sample Sharpe, with the 0.5 tradeability line marked.</em></figcaption></figure><!--kg-card-begin: html--><div style="max-width:860px; margin:20px 0; font-family:Georgia, 'Times New Roman', serif; overflow-x:auto;"> <table style="width:100%; border-collapse:collapse; font-size:16px; color:#2f3b45;"> <thead> <tr style="background:#1f4e79; color:#ffffff;"> <th style="text-align:left; padding:10px 14px; border:1px solid #dbe5ea;">Pair</th> <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">Best Strategy</th> <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">Sharpe</th> <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">Status</th> </tr> </thead> <tbody> <tr style="background:#ffffff;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">USDJPY</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">TSM</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; font-weight:700; color:#1f4e79;">0.78</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; color:#2e7d32; font-weight:700;">TRADE</td> </tr> <tr style="background:#eaf1f8;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">EURUSD</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">TSM</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; font-weight:700; color:#1f4e79;">0.54</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; color:#2e7d32; font-weight:700;">TRADE</td> </tr> <tr style="background:#ffffff;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">GBPUSD</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">Breakout</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.31</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; color:#b8860b;">WATCH</td> </tr> <tr style="background:#eaf1f8;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">NZDUSD</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">Breakout</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.20</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; color:#b8860b;">WATCH</td> </tr> <tr style="background:#ffffff;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">USDCHF</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">MA</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.19</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; color:#b8860b;">WATCH</td> </tr> <tr style="background:#eaf1f8;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">USDCAD</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">Breakout</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.14</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; color:#b8860b;">WATCH</td> </tr> <tr style="background:#ffffff;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">AUDUSD</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">MA</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.09</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; color:#b8860b;">WATCH</td> </tr> </tbody> </table> </div>
Table 1: Best strategy per pair by median out-of-sample Sharpe ratio. Tradeable threshold is Sharpe > 0.5.<!--kg-card-end: html--><p></p><p>USDJPY TSM is the standout, comfortably exceeding the 0.78 threshold. EURUSD TSM also clears it at 0.54. The remaining five pairs are all positive but sub-threshold, and AUDUSD is weak across every strategy tested on it, consistent with its character as a carry-sensitive pair where swap costs eat into trend signals.</p><h3 id="multi-currency-portfolio-construction"><strong>Multi-Currency Portfolio Construction</strong></h3><p>Two portfolio construction approaches were tested on top of the single-strategy results: equal weighting all seven pairs, and risk parity (inverse-volatility weighting). Six per-strategy portfolios were built (TSM, MA, and Breakout, each equal-weighted and risk-parity-weighted), plus two "best strategy" portfolios that pick whichever of the three strategies performed best on each pair, based on out-of-sample Sharpe, before combining.</p><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig03_portfolio_equity_curves-1.png" class="kg-image" alt="Portfolio equity curves, out-of-sample, 2003-2025."><figcaption><em>Figure 3: Portfolio equity curves, out-of-sample, 2003-2025.</em></figcaption></figure><!--kg-card-begin: html--><div style="max-width:860px; margin:20px 0; font-family:Georgia, 'Times New Roman', serif; overflow-x:auto;"> <table style="width:100%; border-collapse:collapse; font-size:15px; color:#2f3b45;"> <thead> <tr style="background:#1f4e79; color:#ffffff;"> <th style="text-align:left; padding:10px 12px; border:1px solid #dbe5ea;">Portfolio</th> <th style="text-align:center; padding:10px 12px; border:1px solid #dbe5ea;">CAGR</th> <th style="text-align:center; padding:10px 12px; border:1px solid #dbe5ea;">Sharpe</th> <th style="text-align:center; padding:10px 12px; border:1px solid #dbe5ea;">Sortino</th> <th style="text-align:center; padding:10px 12px; border:1px solid #dbe5ea;">Max DD</th> <th style="text-align:center; padding:10px 12px; border:1px solid #dbe5ea;">Calmar</th> </tr> </thead> <tbody> <tr style="background:#ffffff;"> <td style="padding:8px 12px; border:1px solid #dbe5ea; font-weight:700; color:#1f4e79;">Best Strategy EW</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">1.24%</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea; font-weight:700; color:#1f4e79;">0.43</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.46</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">-8.25%</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.15</td> </tr> <tr style="background:#eaf1f8;"> <td style="padding:8px 12px; border:1px solid #dbe5ea;">Best Strategy RP</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">1.69%</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.38</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.42</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">-9.62%</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.18</td> </tr> <tr style="background:#ffffff;"> <td style="padding:8px 12px; border:1px solid #dbe5ea;">MA Equal Weight</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.85%</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.33</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.34</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">-8.07%</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.11</td> </tr> <tr style="background:#eaf1f8;"> <td style="padding:8px 12px; border:1px solid #dbe5ea;">MA Risk Parity</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">1.06%</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.30</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.32</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">-12.45%</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.09</td> </tr> <tr style="background:#ffffff;"> <td style="padding:8px 12px; border:1px solid #dbe5ea;">Breakout Equal Weight</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.86%</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.26</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.29</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">-7.24%</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.12</td> </tr> <tr style="background:#eaf1f8;"> <td style="padding:8px 12px; border:1px solid #dbe5ea;">Breakout Risk Parity</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.78%</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.20</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.24</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">-7.83%</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.10</td> </tr> <tr style="background:#ffffff;"> <td style="padding:8px 12px; border:1px solid #dbe5ea;">TSM Risk Parity</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.84%</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.20</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.24</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">-15.87%</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.05</td> </tr> <tr style="background:#eaf1f8;"> <td style="padding:8px 12px; border:1px solid #dbe5ea;">TSM Equal Weight</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.42%</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.16</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.18</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">-8.91%</td> <td style="text-align:center; padding:8px 12px; border:1px solid #dbe5ea;">0.05</td> </tr> </tbody> </table> </div> *Table 2: Multi-currency portfolio performance summary, all seven pairs, out-of-sample.*<!--kg-card-end: html--><p>Best Strategy: Equal Weight has the highest risk-adjusted return, with a Sharpe ratio of 0.43, still short of the 0.5 portfolio tradeability bar. Risk parity underperforms equal weight on Sharpe (0.38 vs 0.43) but delivers a higher CAGR (1.69% vs 1.24%), a reminder that the two objectives, risk-adjusted consistency and raw growth, aren't always served by the same weighting scheme. Picking the best strategy per pair clearly adds value over committing to a single strategy across all seven, and TSM is the weakest at the portfolio level despite owning the two best individual pairs.</p><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig04_strategy_correlation_matrix-1.png" class="kg-image" alt="Average pairwise correlation between TSM, MA, and Breakout strategy returns."><figcaption><em>Figure 4: Average pairwise correlation between TSM, MA, and Breakout strategy returns.</em></figcaption></figure><p>The three approaches are moderately to highly correlated (0.55 to 0.69), which means combining them provides less diversification than it might suggest on paper. All three trend-following styles are largely capturing the same underlying factor.</p><h3 id="crisis-alpha-analysis"><strong>Crisis Alpha Analysis</strong></h3><p>Four historical crisis windows were defined to test whether trend-following delivers the "crisis alpha" it's often credited with in the futures literature.</p><!--kg-card-begin: html--><div style="max-width:860px; margin:20px 0; font-family:Georgia, 'Times New Roman', serif; overflow-x:auto;"> <table style="width:100%; border-collapse:collapse; font-size:16px; color:#2f3b45;"> <thead> <tr style="background:#1f4e79; color:#ffffff;"> <th style="text-align:left; padding:10px 14px; border:1px solid #dbe5ea;">Crisis</th> <th style="text-align:left; padding:10px 14px; border:1px solid #dbe5ea;">Period</th> <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">Duration</th> </tr> </thead> <tbody> <tr style="background:#ffffff;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">2008 GFC</td> <td style="padding:9px 14px; border:1px solid #dbe5ea;">Oct 2007 - Mar 2009</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">17 months</td> </tr> <tr style="background:#eaf1f8;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">2011 Euro Debt</td> <td style="padding:9px 14px; border:1px solid #dbe5ea;">Jul-Dec 2011</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">6 months</td> </tr> <tr style="background:#ffffff;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">2020 COVID</td> <td style="padding:9px 14px; border:1px solid #dbe5ea;">Feb-Dec 2020</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">10 months</td> </tr> <tr style="background:#eaf1f8;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">2022 Rate Hike</td> <td style="padding:9px 14px; border:1px solid #dbe5ea;">Jan-Dec 2022</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">12 months</td> </tr> </tbody> </table> </div> *Table 3: Crisis periods analyzed. The 2020 COVID window was extended through December to capture the full FX trend cycle, not just the equity crash bottom.*<!--kg-card-end: html--><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig05_crisis_equity_curves-1.png" class="kg-image" alt="Portfolio equity curves with crisis periods highlighted."><figcaption><em>Figure 5: Portfolio equity curves with crisis periods highlighted.</em></figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig06_crisis_vs_noncrisis_returns-1.png" class="kg-image" alt="Annualized returns, crisis periods versus non-crisis periods, by portfolio."><figcaption><em>Figure 6: Annualized returns, crisis periods versus non-crisis periods, by portfolio.</em></figcaption></figure><p>Best Strategy Risk Parity delivered the highest average crisis alpha at 6.20% across the four crises: +6.91% in the 2008 GFC, +7.44% during COVID, +10.20% during the 2022 rate-hike cycle, and a much more muted +0.26% during the 2011 Euro debt crisis. Risk parity weighting outperforms equal weighting for most strategy pairs, particularly during crises, even though it lags slightly on the full-sample Sharpe ratio. Statistical significance was confirmed for the COVID-19 period (p=0.039 for Best Strategy Risk Parity), but not consistently across the other three crises, several of which were directionally positive without reaching conventional significance.</p><h3 id="leverage-sensitivity"><strong>Leverage Sensitivity</strong></h3><p>With a path-dependent leverage model, 3% annual financing cost plus liquidation risk at equity wipeout, the Sharpe ratio decreases as leverage increases. That's a meaningfully different result than the naive return-times-leverage approach, which keeps Sharpe flat by construction since both return and volatility scale together.</p><!--kg-card-begin: html--><div style="max-width:860px; margin:20px 0; font-family:Georgia, 'Times New Roman', serif; overflow-x:auto;"> <table style="width:100%; border-collapse:collapse; font-size:16px; color:#2f3b45;"> <thead> <tr style="background:#1f4e79; color:#ffffff;"> <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">Leverage</th> <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">CAGR</th> <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">Max DD</th> <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">Sharpe</th> <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">Calmar</th> </tr> </thead> <tbody> <tr style="background:#ffffff;"> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; font-weight:700; color:#1f4e79;">1x</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">1.69%</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-9.62%</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; font-weight:700; color:#1f4e79;">0.38</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.18</td> </tr> <tr style="background:#eaf1f8;"> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">2x</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.13%</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-24.01%</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.06</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.01</td> </tr> <tr style="background:#ffffff;"> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">3x</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; color:#b00020;">-1.63%</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-49.30%</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-0.04</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-0.03</td> </tr> <tr style="background:#eaf1f8;"> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">5x</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; color:#b00020;">-5.70%</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-80.16%</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-0.13</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-0.07</td> </tr> <tr style="background:#ffffff;"> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">10x</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; color:#b00020;">-18.46%</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-99.33%</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-0.19</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-0.19</td> </tr> </tbody> </table> </div> *Table 4: Leverage degradation example, Best Strategy Risk Parity portfolio. At 3x leverage, CAGR turns negative as financing costs exceed strategy returns.*<!--kg-card-end: html--><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig07_sharpe_vs_leverage-1.png" class="kg-image" alt="Sharpe ratio versus leverage, all eight portfolios, 1x to 10x."><figcaption><em>Figure 7: Sharpe ratio versus leverage, all eight portfolios, 1x to 10x.</em></figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig08_calmar_vs_leverage-1.png" class="kg-image" alt="Calmar ratio versus leverage, all eight portfolios, 1x to 10x."><figcaption><em>Figure 8: Calmar ratio versus leverage, all eight portfolios, 1x to 10x.</em></figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig09_maxdd_vs_leverage-1.png" class="kg-image" alt="Maximum drawdown versus leverage, all eight portfolios, 1x to 10x."><figcaption><em>Figure 9: Maximum drawdown versus leverage, all eight portfolios, 1x to 10x.</em></figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig10_cagr_vs_leverage-1.png" class="kg-image" alt="CAGR versus leverage, all eight portfolios, 1x to 10x."><figcaption><em>Figure 10: CAGR versus leverage, all eight portfolios, 1x to 10x.</em></figcaption></figure><p>The degradation comes from two compounding effects: financing drag, borrowing at 3% per annum on (leverage - 1) times capital steadily reduces net returns, and compounding asymmetry, where larger drawdowns at higher leverage take disproportionately longer to recover from. Every single portfolio tested has the same optimal leverage: 1x. Since the unlevered Sharpe is already below the 0.5 tradeability bar, leverage never helps; it only adds cost.</p><hr><h2 id="edge-diagnosis"><strong>Edge Diagnosis</strong></h2><p>Pulling the findings from every earlier notebook together, four diagnostic questions summarize where this strategy family's edge actually lives:</p><p><strong>Is there any edge at all?</strong> Yes, but it's thin. Overall out-of-sample Sharpe across all combinations is 0.14, with all 7 pairs and all 3 strategies showing positive (if often marginal) returns. The best single pair-strategy combination is TSM on USDJPY at 0.78 Sharpe; the best portfolio is Best Strategy Equal Weight at 0.43.</p><p><strong>Is the edge concentrated in a few regimes?</strong> Largely, yes. Tagging each day by the underlying pair's 252-day rolling return regime (Strong Down, Weak Down, Flat, Weak Up, Strong Up) shows 4 of 5 regimes are positive, with Flat markets the exception at a -0.06 Sharpe ratio. Strong Down is actually the best regime at 0.50 Sharpe, consistent with the crisis-alpha results above: these strategies work when markets are trending hard in either direction, and struggle when they're range-bound.</p><p><strong>Does leverage destroy the edge through costs?</strong> No, more precisely, leverage destroys the edge, but base-level transaction and swap costs are manageable. The real cost problem only shows up once leverage is added, per the Leverage Sensitivity results above.</p><p><strong>Is the edge diluted by poor portfolio construction?</strong> Partially. Strategy correlations of 0.55 to 0.69 limit the diversification benefit of combining TSM, MA, and Breakout. That said, the Best Strategy selection approach, picking whichever strategy performed best per pair, does outperform any single-strategy portfolio, so construction choices aren't the main bottleneck here.</p><p><strong>Overall: a broad but thin edge.</strong> Positive across most pairs, strategies, and regimes, but not strong enough in aggregate to clear a standard tradeability bar outside of two specific pair-strategy combinations.</p><hr><h2 id="discussion-and-limitations"><strong>Discussion and Limitations</strong></h2><ol><li><strong>Limited portfolio tradeability.</strong> The best portfolio Sharpe (0.43) falls short of the 0.5 threshold, and only two of seven individual pairs are tradeable on that same basis.</li><li><strong>Parameter stability approach.</strong> Neighborhood stability scoring guards against overfitting but may be overly conservative; alternative approaches, such as Bayesian model averaging, could yield different results.</li><li><strong>No transaction cost optimization.</strong> Fixed transaction costs were assumed throughout; real-world costs, including slippage and market impact, may vary significantly by pair and by trade size.</li><li><strong>No slippage modeling.</strong> The backtest assumes perfect execution at closing prices; live execution would incur additional costs not captured here.</li><li><strong>Interest rate data quality.</strong> Swap calculations depend on accurate central bank rate data from FRED; gaps or delays in that data could affect results.</li><li><strong>No live trading results.</strong> Everything here is historical. Live performance would likely be worse once implementation costs are factored in.</li><li><strong>Limited FX pairs.</strong> Only the seven major pairs were tested; emerging-market and exotic pairs, which often carry different trend and carry dynamics, were not included.</li><li><strong>Statistical significance.</strong> Crisis alpha was statistically significant only for the COVID-19 period. The other three crises were directionally positive but didn't reach conventional significance thresholds.</li><li><strong>High strategy correlation.</strong> A correlation of 0.55 to 0.69 between TSM, MA, and Breakout limits the real diversification benefit of running all three.</li><li><strong>Leverage model assumptions.</strong> The path-dependent leverage model assumes a 3% borrowing cost and immediate liquidation at equity wipeout; real-world margin requirements and financing terms vary by broker and regime.</li></ol><hr><h2 id="conclusion"><strong>Conclusion</strong></h2><p>After walk-forward validation with stable parameter selection across 23 years of out-of-sample data (2003-2025), the overall verdict is <strong>limited tradeability</strong>.</p><!--kg-card-begin: html--><div style="max-width:860px; margin:20px 0; font-family:Georgia, 'Times New Roman', serif; overflow-x:auto;"> <table style="width:100%; border-collapse:collapse; font-size:16px; color:#2f3b45;"> <thead> <tr style="background:#1f4e79; color:#ffffff;"> <th style="text-align:left; padding:10px 14px; border:1px solid #dbe5ea;">Metric</th> <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">Result</th> <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">Threshold</th> <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">Status</th> </tr> </thead> <tbody> <tr style="background:#ffffff;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">Best Portfolio Sharpe</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.43 (Best Str. EW)</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">&gt; 0.5</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; color:#b00020; font-weight:700;">FAIL</td> </tr> <tr style="background:#eaf1f8;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">Tradeable Pairs</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">2 of 7</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; color:#b8860b; font-weight:700;">PARTIAL</td> </tr> <tr style="background:#ffffff;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">Best Single Pair Sharpe</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.78 (TSM USDJPY)</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">&gt; 0.5</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; color:#2e7d32; font-weight:700;">PASS</td> </tr> <tr style="background:#eaf1f8;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">Avg Crisis Alpha</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">6.20% (Best Str. RP)</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">&gt; 0%</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; color:#2e7d32; font-weight:700;">PASS</td> </tr> <tr style="background:#ffffff;"> <td style="padding:9px 14px; border:1px solid #dbe5ea;">Max Drawdown</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-7.24% to -15.87%</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">&lt; -20%</td> <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; color:#2e7d32; font-weight:700;">ACCEPTABLE</td> </tr> </tbody> </table> </div> 
Table 5: Final verdict summary against pre-defined tradeability thresholds.<!--kg-card-end: html--><p>Five insights stand out. First, TSM dominates among the pairs that do work: both tradeable pairs, USDJPY and EURUSD, use time-series momentum, confirming that momentum signals perform best on liquid, trending pairs. Second, selecting parameters for neighborhood stability rather than peak historical Sharpe reduced out-of-sample performance relative to a naive fit, which is itself informative: the raw, unvalidated results were partly a product of overfitting. Third, the 0.55 to 0.69 correlation among TSM, MA, and Breakout confirms that all three approaches largely capture the same trend factor, which caps the diversification benefit of running them together. Fourth, FX swap costs from interest rate differentials are a real drag, especially on carry-sensitive pairs like AUDUSD and NZDUSD. Fifth, leverage hurts rather than helps at every level tested, since financing costs and compounding asymmetry erode risk-adjusted returns faster than raw returns scale up.</p><p>None of that erases the project's most encouraging finding: a genuine, if not always statistically airtight, crisis-alpha effect. Best Strategy Risk Parity's 6.20% average return across four historical crises, with the COVID-19 result reaching statistical significance at p=0.039, is consistent with the broader crisis-alpha hypothesis from the trend-following literature, even in an asset class, spot FX, where the rest of the strategy's edge turned out to be thinner than the futures-market literature might suggest.</p><hr><h2 id="frequently-asked-questions"><strong>Frequently Asked Questions</strong></h2><p><strong>Q1. What is the main objective of this project?</strong> The project tests whether trend-following strategies, time-series momentum, moving-average crossover, and channel breakout deliver robust, risk-adjusted performance on major spot FX pairs, using walk-forward validation rather than a single in-sample fit.</p><p><strong>Q2. Why test FX spot markets specifically, rather than futures?</strong> Most of the published evidence for trend-following comes from futures markets, where returns embed roll yields and term premia. Spot FX has no futures curve to harvest carry from, so this project asks how much of that documented "trend premium" survives once the futures curve is gone.</p><p><strong>Q3. What three strategies were compared, and how do they differ?</strong> Time-series momentum trades the sign of cumulative return over a lookback window. Moving-average crossover trades when a fast MA crosses a slow MA. Channel breakout trades when price breaks a rolling high/low channel. All three use volatility-targeted position sizing on top of the core signal.</p><p><strong>Q4. How was walk-forward validation set up?</strong> 23 rolling windows of 3-year training and 1-year out-of-sample testing, stepped forward annually from 2003 to 2025. Parameters were chosen during training using neighborhood stability scoring, rather than re-selected from test-fold results, thereby avoiding look-ahead bias.</p><p><strong>Q5. Which pairs and strategies were actually tradeable?</strong> Only two of seven: time-series momentum on USDJPY (0.78 Sharpe) and on EURUSD (0.54 Sharpe), both clearing the 0.5 tradeability threshold. The other five pairs were positive but below that bar.</p><p><strong>Q6. Why did portfolio-level performance fall short of the best single-pair results?</strong> Combining all seven pairs dilutes the two strong TSM pairs with five weaker ones. Even the best portfolio construction, picking each pair's best strategy and equal-weighting the results, landed at a 0.43 Sharpe, just under the 0.5 bar that USDJPY and EURUSD individually clear.</p><p><strong>Q7. What happened during crisis periods such as 2008 and COVID-19?</strong> The strategies delivered positive crisis alpha in three of the four crises tested: +6.91% in the 2008 GFC, +7.44% during COVID, and +10.20% during the 2022 rate-hike cycle for the best-performing portfolio. The 2011 Euro debt crisis was mixed. Only the COVID result reached conventional statistical significance.</p><p><strong>Q8. Why does leverage hurt rather than help here?</strong> A realistic, path-dependent leverage model with 3% annual financing costs and liquidation risk shows Sharpe declining at every leverage level above 1x. Financing drag and the fact that larger drawdowns compound harder both work against the strategy as leverage rises, since the base Sharpe was already below the tradeability threshold to begin with.</p><p><strong>Q9. What is neighborhood stability scoring, and why does it matter here?</strong> Instead of selecting the parameter combination with the single best historical Sharpe ratio, the project ranks parameters by how consistently well neighboring parameter values also perform. This reduces the risk of picking a single lucky combination, and the resulting out-of-sample numbers are noticeably more conservative than a naive best-Sharpe fit would have produced.</p><p><strong>Q10. What are the main limitations and future directions?</strong> The main limitations are the absence of transaction cost optimization, slippage modeling, and live trading validation, as well as a strategy universe limited to seven major pairs and a high correlation among the three trend-following styles tested. Future work could expand to emerging-market and exotic pairs, test alternative parameter-selection methods such as Bayesian model averaging, and validate the findings through live or paper trading.</p><hr><h3 id="next-steps">Next Steps</h3><p>If you'd like to go deeper into trend-following and walk-forward validation, here are concise resources to guide your build:</p><p>Start with the foundations in<a href="https://blog.quantinsti.com/momentum-trading-strategies/"> Momentum Trading: Types, Strategies, and More</a>, then see how time-series momentum has been applied in a similar EPAT project in<a href="https://blog.quantinsti.com/trend-following-strategy-futures-time-series-momentum-continuous-forecasts-project-jirong-huang/"> Trend-Following Strategy in Futures Using Time Series Momentum and Continuous Forecasts</a>.</p><p>For the other two signal methodologies used here, read<a href="https://blog.quantinsti.com/donchian-channel-strategy/"> Donchian Channels: How to Turn a Simple Idea Into Working Strategies</a> for channel breakout logic, and explore portfolio weighting choices in<a href="https://blog.quantinsti.com/risk-parity-portfolio/"> Risk Parity Portfolio: Strategy, Example and Python Implementation</a>.</p><p>For the validation methodology this project leans on throughout, read<a href="https://blog.quantinsti.com/walk-forward-optimization-introduction/"> Walk-Forward Optimization: How It Works, Its Limitations, and Backtesting Implementation</a>. Browse<a href="https://www.quantinsti.com/articles/algo-trading-projects/"> Algorithmic Trading Projects</a> to shortlist your next build.</p><p>For a structured, hands-on learning path, explore<a href="https://quantra.quantinsti.com/"> Quantra's</a> courses on momentum and portfolio construction.</p><p><strong>Looking for a structured, hands-on path guided by expert practitioners?</strong></p><p>EPAT offers a practitioner-led curriculum in Python-based algorithmic trading. You'll learn core strategies you can adapt to higher-frequency settings, work with broker APIs such as Alpaca, and build mentored live projects. Learn more or register here for our<a href="https://www.quantinsti.com/epat"> Executive Programme in Algorithmic Trading (EPAT)</a>.</p><h3 id="schedule-an-epat-counselling-call"><strong>Schedule an EPAT counselling call</strong></h3><p>To understand if EPAT is the right choice for you, talk to one of our specialists who have counselled thousands of learners over the past decade and helped them make the right career decision.</p><!--kg-card-begin: html--><div class="calendly-inline-widget" data-url="https://calendly.com/counsellor-1/speak-to-epat-counsellors?month=2025-04&embed_type=Inline&hide_gdpr_banner=1" style="min-width:320px;height:630px;"></div>
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js"></script>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Predicting Market Direction Using Logistic Regression and Machine Learning Models: Evidence from Equity and Commodity Markets | EPAT Project]]></title><description><![CDATA[An EPAT project compares Logistic Regression, Random Forest, and XGBoost on the S&P 500 and Brent Crude, testing machine learning trading signals against buy and hold from 2022 to 2025.]]></description><link>https://www.quantinsti.com/articles/market-direction-prediction-machine-learning-epat-project/</link><guid isPermaLink="false">6a326a4e74e6f000074e6edb</guid><category><![CDATA[Algo Trading Projects]]></category><dc:creator><![CDATA[MOHIT KARWAL]]></dc:creator><pubDate>Mon, 22 Jun 2026 11:50:37 GMT</pubDate><content:encoded><![CDATA[<p><strong>TL;DR</strong> This project evaluates whether machine learning models can outperform a linear benchmark at predicting next-day market direction, testing Logistic Regression, Random Forest, and XGBoost on the S&amp;P 500 and Brent Crude Oil. Thirteen price-based features covering returns, momentum, volatility, and volume were built strictly from data available at each day's close, and models were trained on 2015 to 2022 data before being backtested out of sample from 2022 to 2025, with a 5 basis point one-way transaction cost on every position change.</p><p>On the S&amp;P 500, Random Forest was the standout, returning 22.41% against Buy and Hold's 23.15%, but with a higher Sharpe ratio of 0.407 and a smaller max drawdown of -21.23%. On Brent Crude, the picture reversed sharply: all three models lost money during the test period, undercut by a geopolitical oil price shock that price-based features alone could not anticipate. The results point to a narrow, transaction-cost-sensitive edge for ML in liquid equity markets, and a clear need for macro and fundamental features when trading commodities.</p><h3 id="about-the-author"><strong>About the Author</strong></h3><!--kg-card-begin: html--><div style="max-width:860px; margin:24px 0; font-family:Georgia, 'Times New Roman', serif; color:#2f3b45;">
  <div style="border:1px solid #dbe5ea; border-radius:12px; background:#ffffff; padding:16px 18px; overflow:hidden;">
    <a href="https://www.linkedin.com/in/chetan-gundu-b5baa3228/" target="_blank" rel="noopener noreferrer">
      <img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/Chetan-Blog-Photo.jpeg" alt="Chetan Gundu" style="float:left; width:135px; height:135px; object-fit:cover; border-radius:10px; margin:4px 18px 10px 0;">
    </a>
    <p style="margin:0 0 10px 0; font-size:18px; line-height:1.75;">
      <a href="https://www.linkedin.com/in/chetan-gundu-b5baa3228/" target="_blank" rel="noopener noreferrer" style="color:#2f6ea5; text-decoration:none; font-weight:700;">Chetan Gundu</a>
      is pursuing a Bachelor of Economics, majoring in Financial Economics with a double major in Finance, at the University of Sydney (2023-2026), where he holds a Distinction-level weighted average mark. He completed his pre-university studies in Mathematics, Physics, and Chemistry at FIITJEE, and his schooling at Silver Oaks International Schools.
    </p>
    <p style="margin:0; font-size:18px; line-height:1.75;">
      Chetan completed this project as part of QuantInsti's Executive Programme in Algorithmic Trading (EPAT), mentored by Sanya Modi, and holds the EPAT Certificate of Excellence along with QuantInsti's Python for Trading primer certification. He has also completed Forage virtual experience programs with J.P. Morgan (Investment Banking and Project Analysis), Citi (Markets Quantitative Analysis), and Bank of America (Global Markets Sales and Trading Analysis), as well as the McKinsey.org Forward Program. He is currently open to Financial Analyst, Equity Analyst, and internship roles.
    </p>
  </div>
</div><!--kg-card-end: html--><hr><h2 id="introduction-and-motivation"><strong>Introduction and Motivation </strong></h2><p>Financial markets are characterised by a multitude of factors like non-linear dynamics, regime dependence, and complex interaction effects that are poorly captured by classical linear econometric models. While logistic regression gives us interpretability and a clear baseline framework to analyse market performance and direction, its strong functional form assumptions limit its ability to model the higher order feature interactions present in real-world market data. This project aims to evaluate whether machine learning models can generate economically meaningful, risk-adjusted trading signals, and consequently returns, beyond what a linear benchmark can yield.</p><p>The study is motivated by Gu, Kelly and Xiu (2020), who demonstrated that machine learning methods produce statistically significant out-of-sample return predictability in equities, and by Fischer and Krauss (2018), who showed similar gains in daily direction prediction. A key practical concern, however, is whether these statistical gains survive the presence of transaction costs and regime changes in a live trading setting. To test this, the project uses two different asset classes: the S&amp;P 500, a highly efficient equity index, and Brent Crude Oil, a commodity driven heavily by geopolitical factors and supply-demand dynamics, providing a richer basis for comparison.</p><hr><h2 id="data-and-methodology"><strong>Data and Methodology </strong></h2><p>Daily OHLCV data was downloaded from Yahoo Finance for both the S&amp;P 500 and Brent Crude from January 2015 to December 2025. The dataset was split into a training period from 2015 to 2022 (approximately 1,740 observations) and an out-of-sample test period from 2022 to 2025 (approximately 752-753 observations). This split ensures the testing period covers a genuinely challenging and distinct market regime: a bear market driven by Federal Reserve rate hikes, an oil price shock from the Russia-Ukraine conflict, and the subsequent recovery</p><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig01a_sp500_price.png" class="kg-image" alt="Figure 1a: S&amp;P 500 closing price (2015-2025) with train/test split."><figcaption>Figure 1a: S&amp;P 500 closing price (2015-2025) with train/test split.</figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig01b_brent_price-1.png" class="kg-image" alt="Figure 1b: Brent Crude Oil closing price (2015-2025) with train/test split."><figcaption>Figure 1b: Brent Crude Oil closing price (2015-2025) with train/test split.</figcaption></figure><p>Thirteen price-based features were built using only data available at each day's close, strictly avoiding any look-ahead bias. These include lagged log returns at horizons of 1, 2, 3, 5, 10, and 21 days. Momentum indicators include RSI-14, MACD differential, and 10-day rate of change; volatility measures include 21-day realised volatility, ATR-14, and Bollinger Band width; and a volume ratio relative to the 20-day moving average. The binary target variable is defined as 1 if the next day's return is positive, and 0 otherwise.</p><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig02_feature_distributions.png" class="kg-image" alt="Figure 2: Distribution of all 13 engineered features on the S&amp;P 500 training set (2015-2022)"><figcaption>Figure 2: Distribution of all 13 engineered features on the S&amp;P 500 training set (2015-2022).</figcaption></figure><p></p><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig03_correlation_matrix.png" class="kg-image" alt="Figure 3: Feature correlation matrix (training set)."><figcaption>Figure 3: Feature correlation matrix (training set).</figcaption></figure><p>Three models were trained and evaluated under identical conditions using an object-oriented Python pipeline: Logistic Regression as the econometric benchmark, Random Forest (300 trees, max depth of 5), and XGBoost (300 estimators, learning rate of 0.05, max depth of 4). A StandardScaler was fitted exclusively on training data and applied to test data without re-fitting, ensuring no information leakage. Each model's signals are converted into a long/flat trading strategy, with a 5 basis point one-way transaction cost applied on every position change.</p><hr><h2 id="results"><strong>Results </strong></h2><h3 id="sp-500"><strong>S&amp;P 500 </strong></h3><p>All three models achieved directional accuracy marginally above the 50% baseline, with Random Forest performing best at 51.6% accuracy and an AUC-ROC of 0.4905. In the backtest, Random Forest generated a total return of 22.41% versus Buy and Hold's 23.15%, with a superior Sharpe ratio of 0.407 against 0.399. Max drawdown was also smaller at -21.23% versus -25.38%, and its Calmar ratio of 0.331 exceeded the benchmark's 0.285, indicating a better return per unit of drawdown risk. Logistic Regression came a close second, earning 20.71% with a Sharpe of 0.366 from just 44 trades. XGBoost, despite similar statistical accuracy, significantly underperformed: 270 trades eroded returns through transaction costs, producing a total return of only 8.31%.</p><!--kg-card-begin: html--><div style="max-width:860px; margin:20px 0; font-family:Georgia, 'Times New Roman', serif; overflow-x:auto;">
  <table style="width:100%; border-collapse:collapse; font-size:16px; color:#2f3b45;">
    <thead>
      <tr style="background:#1f4e79; color:#ffffff;">
        <th style="text-align:left; padding:10px 14px; border:1px solid #dbe5ea;">Metric</th>
        <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">LR</th>
        <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">RF</th>
        <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">XGBoost</th>
        <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">Buy &amp; Hold</th>
      </tr>
    </thead>
    <tbody>
      <tr style="background:#ffffff;">
        <td style="padding:9px 14px; border:1px solid #dbe5ea;">Total Return</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">20.71%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; font-weight:700; color:#1f4e79;">22.41%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">8.31%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">23.15%</td>
      </tr>
      <tr style="background:#eaf1f8;">
        <td style="padding:9px 14px; border:1px solid #dbe5ea;">Ann. Return</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">6.52%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; font-weight:700; color:#1f4e79;">7.02%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">2.72%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">7.24%</td>
      </tr>
      <tr style="background:#ffffff;">
        <td style="padding:9px 14px; border:1px solid #dbe5ea;">Sharpe Ratio</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.366</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; font-weight:700; color:#1f4e79;">0.407</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.174</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.399</td>
      </tr>
      <tr style="background:#eaf1f8;">
        <td style="padding:9px 14px; border:1px solid #dbe5ea;">Max Drawdown</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-24.19%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; font-weight:700; color:#1f4e79;">-21.23%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-18.10%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-25.38%</td>
      </tr>
      <tr style="background:#ffffff;">
        <td style="padding:9px 14px; border:1px solid #dbe5ea;">Calmar Ratio</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.269</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; font-weight:700; color:#1f4e79;">0.331</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.150</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">0.285</td>
      </tr>
      <tr style="background:#eaf1f8;">
        <td style="padding:9px 14px; border:1px solid #dbe5ea;">No. of Trades</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">44</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">84</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">270</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">1</td>
      </tr>
    </tbody>
  </table>
</div><!--kg-card-end: html--><p><em>Table 1: S&amp;P 500 backtest performance, net of 5bps transaction cost, test period 2022-2025.</em></p><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig04a_lr_features_sp500.png" class="kg-image" alt="Figure 4a: Logistic Regression - S&amp;P 500 feature importance."><figcaption>Figure 4a: Logistic Regression - S&amp;P 500 feature importance.</figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig04b_rf_features_sp500.png" class="kg-image" alt="Figure 4b: Random Forest - S&amp;P 500 feature importance."><figcaption>Figure 4b: Random Forest - S&amp;P 500 feature importance.</figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig04c_xgb_features_sp500.png" class="kg-image" alt="Figure 4c: XGBoost - S&amp;P 500 feature importance."><figcaption>Figure 4c: XGBoost - S&amp;P 500 feature importance.</figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig05a_lr_equity_sp500-1.png" class="kg-image" alt="Figure 5a: Logistic Regression - S&amp;P 500 equity curve and drawdown (2022-2025)"><figcaption><em>Figure 5a: Logistic Regression - S&amp;P 500 equity curve and drawdown (2022-2025).</em></figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig05b_rf_equity_sp500-1.png" class="kg-image" alt="Figure 5b: Random Forest - S&amp;P 500 equity curve and drawdown (2022-2025)."><figcaption>Figure 5b: Random Forest - S&amp;P 500 equity curve and drawdown (2022-2025).</figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig05c_xgb_equity_sp500-1.png" class="kg-image" alt="Figure 5c: XGBoost - S&amp;P 500 equity curve and drawdown (2022-2025)"><figcaption>Figure 5c: XGBoost - S&amp;P 500 equity curve and drawdown (2022-2025)</figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig06_all_models_sp500-1.png" class="kg-image" alt="Figure 6: S&amp;P 500, all three models vs Buy &amp; Hold (2022-2025)."><figcaption><em>Figure 6: S&amp;P 500, all three models vs Buy &amp; Hold (2022-2025).</em></figcaption></figure><h3 id="brent-crude-brent-crude-"><strong>Brent Crude {#brent-crude}</strong></h3><p>Results on Brent Crude were markedly different and constitute the most important finding of this study. All three models lost money during the testing period, despite the Brent Buy and Hold strategy itself losing only 5.81%. XGBoost was the least-bad performer with a total return of -10.63% (Sharpe of -0.137), while Logistic Regression lost 24.53% and Random Forest lost 39.08%. Notably, XGBoost achieved the highest statistical performance on Brent, with an accuracy of 51.39% and an AUC-ROC of 0.5196, the only model across both assets to exceed an AUC of 0.50, yet this did not translate into net positive trading returns.</p><p>The root cause is clear from the equity curve: Brent spiked dramatically to approximately $130 a barrel in early 2022 following the Russia-Ukraine conflict, then entered a prolonged decline back to $70-75 by the end of 2025. This geopolitical shock was fundamentally unpredictable from price-based features alone. Models trained on 2015-2022 data had no exposure to this type of regime, and the long/flat strategy repeatedly signalled long trades in a declining market. High trade counts, ranging from 173 to 300, further amplified the losses through excessive transaction costs.</p><!--kg-card-begin: html--><div style="max-width:860px; margin:20px 0; font-family:Georgia, 'Times New Roman', serif; overflow-x:auto;">
  <table style="width:100%; border-collapse:collapse; font-size:16px; color:#2f3b45;">
    <thead>
      <tr style="background:#1f4e79; color:#ffffff;">
        <th style="text-align:left; padding:10px 14px; border:1px solid #dbe5ea;">Metric</th>
        <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">LR</th>
        <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">RF</th>
        <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">XGBoost</th>
        <th style="text-align:center; padding:10px 14px; border:1px solid #dbe5ea;">Buy &amp; Hold</th>
      </tr>
    </thead>
    <tbody>
      <tr style="background:#ffffff;">
        <td style="padding:9px 14px; border:1px solid #dbe5ea;">Total Return</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-24.53%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-39.08%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; font-weight:700; color:#1f4e79;">-10.63%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-5.81%</td>
      </tr>
      <tr style="background:#eaf1f8;">
        <td style="padding:9px 14px; border:1px solid #dbe5ea;">Ann. Return</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-9.00%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-15.30%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; font-weight:700; color:#1f4e79;">-3.70%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-1.99%</td>
      </tr>
      <tr style="background:#ffffff;">
        <td style="padding:9px 14px; border:1px solid #dbe5ea;">Sharpe Ratio</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-0.298</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-0.524</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; font-weight:700; color:#1f4e79;">-0.137</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-0.056</td>
      </tr>
      <tr style="background:#eaf1f8;">
        <td style="padding:9px 14px; border:1px solid #dbe5ea;">Max Drawdown</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-58.52%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-58.67%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea; font-weight:700; color:#1f4e79;">-44.65%</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">-45.94%</td>
      </tr>
      <tr style="background:#ffffff;">
        <td style="padding:9px 14px; border:1px solid #dbe5ea;">No. of Trades</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">205</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">173</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">300</td>
        <td style="text-align:center; padding:9px 14px; border:1px solid #dbe5ea;">1</td>
      </tr>
    </tbody>
  </table>
</div><!--kg-card-end: html--><p><em>Table 2: Brent Crude backtest performance, net of 5bps transaction cost, test period 2022-2025.</em></p><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig07a_lr_features_brent.png" class="kg-image" alt="Figure 7a: Logistic Regression - Brent Crude feature importance."><figcaption>Figure 7a: Logistic Regression - Brent Crude feature importance.</figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig07b_rf_features_brent.png" class="kg-image" alt="Figure 7b: Random Forest - Brent Crude feature importance."><figcaption>Figure 7b: Random Forest - Brent Crude feature importance.</figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig07c_xgb_features_brent.png" class="kg-image" alt="Figure 7c: XGBoost - Brent Crude feature importance."><figcaption>Figure 7c: XGBoost - Brent Crude feature importance.</figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig08a_lr_equity_brent-1.png" class="kg-image" alt="Figure 8a: Logistic Regression - Brent Crude equity curve and drawdown (2022-2025)."><figcaption>Figure 8a: Logistic Regression - Brent Crude equity curve and drawdown (2022-2025).</figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig08b_rf_equity_brent-1.png" class="kg-image" alt="Figure 8b: Random Forest - Brent Crude equity curve and drawdown (2022-2025)."><figcaption>Figure 8b: Random Forest - Brent Crude equity curve and drawdown (2022-2025).</figcaption></figure><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig09_all_models_brent-1.png" class="kg-image" alt="Figure 9: Brent Crude, all three models vs Buy &amp; Hold (2022-2025)."><figcaption>Figure 9: Brent Crude, all three models vs Buy &amp; Hold (2022-2025).</figcaption></figure><hr><h2 id="feature-importance"><strong>Feature Importance </strong></h2><p>Across both assets, short-term lagged returns, particularly ret_1d, consistently ranked among the most important features, pointing to short-horizon momentum effects. On the S&amp;P 500, ATR-14 (volatility) was the second most important feature for Logistic Regression, while Random Forest also weighted ret_10d and volume_ratio highly. On Brent, the feature importance profile shifted: RSI-14 topped Logistic Regression, and Bollinger Band width dominated XGBoost, suggesting that volatility expansion signals carry more predictive power in commodities than in equities. This fits an intuitive lens, since oil markets are characterised by sharper volatility regimes tied to supply events, and wider Bollinger Bands signal a breakout environment where directional prediction may be more feasible.</p><hr><h2 id="discussion-and-limitations"><strong>Discussion and Limitations </strong></h2><p>The results support a nuanced conclusion: machine learning does add marginal, measurable value over linear models in liquid equity markets, but that value is small, regime-dependent, and highly sensitive to transaction costs. Random Forest on the S&amp;P 500 was the only model to exceed Buy and Hold on a risk-adjusted basis, yet its Sharpe advantage over the benchmark was just 0.008. These marginal gains are consistent with Gu, Kelly and Xiu (2020), who found incremental but persistent ML improvements in highly efficient markets. Walk-forward validation reinforced this point: Logistic Regression's accuracy improved to 53.47% under rolling retraining, but returns fell to just 7.95% versus Buy and Hold's 26.89%, showing that even accurate signals deteriorate once the model has to adapt to changing regimes in real time.</p><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/06/fig10_rf_vs_bh_both-1.png" class="kg-image" alt="Figure 10: Random Forest vs Buy &amp; Hold: S&amp;P 500 (top) vs Brent Crude (bottom), 2022-2025."><figcaption><em>Figure 10: Random Forest vs Buy &amp; Hold: S&amp;P 500 (top) vs Brent Crude (bottom), 2022-2025.</em></figcaption></figure><p>The results from Brent expose the most critical limitation of this approach: purely price-based features are insufficient for commodities. Oil prices are fundamentally driven by OPEC production decisions, geopolitical events, and macroeconomic demand, none of which are captured by lagged returns or technical indicators. Incorporating macro features such as inventory levels, USD strength, or geopolitical risk indices would likely improve commodity performance substantially. Transaction costs are also a major limitation: XGBoost's tendency to trade frequently, at 270 trades on the S&amp;P 500 and 300 on Brent, suggests that a probability threshold above 0.55 for signal generation, or a minimum holding period constraint, would reduce turnover and improve net performance.</p><h3 id="references">References</h3><p>Gu, S., Kelly, B., &amp; Xiu, D. (2020). Empirical asset pricing via machine learning. The Review of Financial Studies, 33(5), 2223–2273. Fischer, T., &amp; Krauss, C. (2018). Deep learning with long short-term memory networks for financial market predictions. European Journal of Operational Research, 270(2), 654–669. Breiman, L. (2001). Random forests. Machine Learning, 45(1), 5–32. Chen, T., &amp; Guestrin, C. (2016). XGBoost: A scalable tree boosting system. Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. 785–794.</p><hr><h2 id="downloads">Downloads</h2><p>Download the Complete Project and Python Notebook below:</p><!--kg-card-begin: html--><p style="text-align: left;"><a href="https://www.quantinsti.com/articles/market-direction-prediction-machine-learning-epat-project" class="download-button button"> Visit blog to download </a></p><!--kg-card-end: html--><hr><h2 id="conclusion"><strong>Conclusion </strong></h2><p>This project demonstrates that machine learning models can generate marginal but real improvements over conventional logistic regression in predicting short-term equity market direction on indices like the S&amp;P 500. Random Forest proved the most robust model, achieving a higher Sharpe ratio and a lower maximum drawdown than a passive Buy and Hold strategy over the 2022-2025 test period. However, these gains are small and do not extend to commodity markets, where geopolitical shocks render price-based ML models ineffective. The study underscores that model design must be elastic, accounting for transaction costs, regime sensitivity, and the fundamental information content available in the chosen feature set. Future work should incorporate macro and alternative data, apply probabilistic position sizing mechanisms, and extend the asset universe to test more robust cross-asset generalisability with greater rigour.</p><hr><h2 id="frequently-asked-questions"><strong>Frequently Asked Questions </strong></h2><p><strong>Q1. What is the main objective of this project?</strong> The project tests whether Logistic Regression, Random Forest, and XGBoost can generate economically meaningful, risk-adjusted trading signals beyond a linear benchmark, using the S&amp;P 500 and Brent Crude Oil as two contrasting test cases.</p><p><strong>Q2. Why compare an equity index against a commodity?</strong> The S&amp;P 500 represents a highly efficient, liquid equity market, while Brent Crude is heavily influenced by geopolitical and supply-demand shocks. Testing both reveals whether ML gains generalise across asset classes or are specific to market structure.</p><p><strong>Q3. What features were used as model inputs?</strong> Thirteen price-based features built strictly from data available at each day's close: lagged log returns at six horizons, momentum indicators (RSI-14, MACD differential, 10-day rate of change), volatility measures (realised volatility, ATR-14, Bollinger Band width), and a 20-day volume ratio.</p><p><strong>Q4. How were the three models configured?</strong> Logistic Regression served as the econometric benchmark, Random Forest used 300 trees with a max depth of 5, and XGBoost used 300 estimators with a learning rate of 0.05 and a max depth of 4. All three were trained on 2015-2022 data and tested out of sample from 2022-2025.</p><p><strong>Q5. Which model performed best on the S&amp;P 500, and why?</strong> Random Forest, with a 22.41% total return, a Sharpe ratio of 0.407, and a smaller drawdown than Buy and Hold. Its edge came from balancing reasonable accuracy with a moderate trade count of 84, avoiding the transaction cost drag that hurt XGBoost.</p><p><strong>Q6. Why did all three models lose money on Brent Crude?</strong> Brent spiked to roughly $130 a barrel after the Russia-Ukraine conflict before declining steadily through 2025. This geopolitical shock was not predictable from price-based features alone, so the long/flat strategy kept signalling long positions in a falling market.</p><p><strong>Q7. What does an AUC-ROC just above 0.50 actually mean here?</strong> It means the model's ability to separate up days from down days is only marginally better than a coin flip. XGBoost's 0.5196 AUC on Brent was the best result across both assets, yet still translated into a net loss once trading costs were applied.</p><p><strong>Q8. How did walk-forward validation change the results?</strong> Under rolling retraining, Logistic Regression's accuracy improved to 53.47%, but returns fell to 7.95% against Buy and Hold's 26.89%. This shows that even a more accurate signal can underperform once the model must continuously adapt to a shifting regime.</p><p><strong>Q9. What are the main limitations of this project?</strong> The reliance on purely price-based features, which misses macro drivers like OPEC decisions and USD strength; sensitivity to transaction costs, especially for high-turnover models like XGBoost; and a long/flat structure that cannot express a short view during sustained downtrends.</p><p><strong>Q10. What improvements are planned for future work?</strong> Incorporating macro and alternative data such as inventory levels and geopolitical risk indices, applying probabilistic position sizing instead of a binary long/flat rule, raising the signal threshold or adding a minimum holding period to cut turnover, and extending the asset universe for broader cross-asset testing.</p><hr><h2 id="next-steps"><strong>Next Steps </strong></h2><p>If you'd like to go deeper into machine learning for market direction prediction, here are concise resources to guide your build:</p><p>Start with the foundations in<a href="https://blog.quantinsti.com/machine-learning-logistic-regression-python/"> Machine Learning Logistic Regression: Python, Trading and More</a>, then move into tree-based models with<a href="https://blog.quantinsti.com/random-forest-algorithm-in-python/"> Random Forest Algorithm in Trading Using Python</a> and<a href="https://blog.quantinsti.com/xgboost-python/"> Introduction to XGBoost in Python</a>.</p><p>For validation methodology, read<a href="https://blog.quantinsti.com/walk-forward-optimization-introduction/"> Walk-Forward Optimization: How It Works, Its Limitations, and Backtesting Implementation</a> and the follow-up walkthrough,<a href="https://blog.quantinsti.com/walk-forward-optimization-python-xgboost-stock-prediction/"> Implement Walk-Forward Optimization with XGBoost for Stock Price Prediction in Python</a>.</p><p>See how a similar ML-plus-technical-indicator approach plays out on another commodity in<a href="https://blog.quantinsti.com/predicting-stock-trends-technical-analysis-random-forests/"> Predicting Stock Trends Using Technical Analysis and Random Forests</a> and the Brent oil-focused<a href="https://www.quantinsti.com/articles/epat-project-oil-commodity-futures-candlestick-machine-learning-strategy-chytil-mario/"> Mid-Frequency Oil Futures Trading Strategy Using Candlestick Patterns and Machine Learning | EPAT Project</a>. Browse<a href="https://www.quantinsti.com/articles/algo-trading-projects/"> Algorithmic Trading Projects</a> to shortlist your next build.</p><p>For a structured, hands-on learning path, explore<a href="https://quantra.quantinsti.com/"> Quantra's Machine Learning &amp; Deep Learning in Trading</a> learning track.</p><p><strong>Looking for a structured, hands-on path guided by expert practitioners?</strong></p><p>EPAT offers a practitioner-led curriculum in Python-based algorithmic trading. You'll learn core strategies you can adapt to higher-frequency settings, work with broker APIs such as Alpaca, and build mentored live projects. Learn more or register here for our<a href="https://www.quantinsti.com/epat"> Executive Programme in Algorithmic Trading (EPAT)</a>.</p><h3 id="schedule-an-epat-counselling-call"><strong>Schedule an EPAT counselling call</strong></h3><p>To understand if EPAT is the right choice for you, talk to one of our specialists who have counselled thousands of learners over the past decade and helped them make the right career decision.</p><!--kg-card-begin: html--><div class="calendly-inline-widget" data-url="https://calendly.com/counsellor-1/speak-to-epat-counsellors?month=2025-04&embed_type=Inline&hide_gdpr_banner=1" style="min-width:320px;height:630px;"></div>
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js"></script>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[The End of the PDT Rule: What US Retail Traders Need to Know About FINRA's June 4, 2026 Changes]]></title><description><![CDATA[FINRA is removing the PDT rule from June 4, 2026. Learn how the $25,000 minimum, day trading limits, and margin rules are changing for US retail traders.]]></description><link>https://www.quantinsti.com/articles/finra-pdt-rule-removal-2026/</link><guid isPermaLink="false">6a01b4f374e6f000074e6d85</guid><category><![CDATA[Algo Trading Business]]></category><category><![CDATA[Learn Algo Trading]]></category><dc:creator><![CDATA[MOHIT KARWAL]]></dc:creator><pubDate>Wed, 13 May 2026 07:16:47 GMT</pubDate><content:encoded><![CDATA[<p>Listen to the Podcast!</p><!--kg-card-begin: html--><div style="width:100%;max-width:750px;margin:16px 0 24px 0;">
  <iframe src="https://open.spotify.com/embed/episode/12Hws3JRx1w9oA9aPqcIMK?utm_source=generator?theme=0" width="100%" height="120" frameborder="0" allowfullscreen allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy" style="display:block!important;border:0;border-radius:16px;height:120px!important;min-height:0!important;max-height:120px!important;width:100%!important;">
  </iframe>
</div><!--kg-card-end: html--><h2 id="introduction">Introduction</h2><p>For over two decades, a single rule shaped the landscape of US retail day trading more than almost any other: the Pattern Day Trader (PDT) rule.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/05/Pattern-Day-Trader--PDT--rule-1.png" class="kg-image" alt="Pattern Day Trader (PDT) rule"></figure><p>Embedded in FINRA Rule 4210, this requirement mandated that any trader who executed four or more day trades within a five-business-day rolling window in a margin account - a "Pattern Day Trader" - maintain a minimum of $25,000 in equity in that account at all times.</p><p>Fall below the threshold and you could no longer day trade. For millions of retail traders without $25,000 to dedicate to a brokerage account, it wasn't a warning - it was a wall.</p><p>That wall comes down on June 4, 2026.</p><p>The SEC approved FINRA's proposed amendments to Rule 4210 on April 14, 2026. The changes replace the PDT framework entirely, substituting a modernised intraday margin standard that better reflects how trading actually works in today's markets. Here's a comprehensive breakdown of what's changing, what isn't, and what it means if you trade US markets.</p><hr><h2 id="what-was-the-pdt-rule">What Was the PDT Rule?</h2><p>The Pattern Day Trader rule was introduced in 2001 by FINRA (operating at the time as NASD), in the aftermath of the dot-com bubble. The concern driving the rule was straightforward: retail traders with small accounts were using margin to take on excessive intraday leverage, frequently blowing up their portfolios and contributing to market instability.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/05/Pattern-Day-Trader-1.png" class="kg-image" alt="Pattern Day Trader"></figure><p>The regulatory response was to create a special category - the "Pattern Day Trader" - and impose heightened requirements on anyone who met the definition.</p><p><strong>The definition:</strong><br> A Pattern Day Trader was any customer who executed four or more day trades within any five consecutive business days in a margin account, <em>provided</em> those day trades represented more than 6% of their total trades over that period. (The 6% threshold was a small carve-out that rarely applied in practice.)</p><p><strong>The requirements:</strong></p><ul><li>A minimum equity balance of <strong>$25,000</strong> in the margin account, maintained at all times</li><li>The ability to trade up to <strong>4x day-trading buying power</strong> (calculated as prior-day equity minus maintenance margin, multiplied by four)</li><li>If a margin call arose from PDT activity, the trader had five business days to meet it - or trading was restricted to a cash-available basis for 90 days</li></ul><p>For accounts that didn't meet the $25,000 threshold, the restriction was simple: no pattern day trading allowed.</p><hr><h2 id="what-is-changing-from-june-4-2026">What Is Changing from June 4, 2026?</h2><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/05/FINRA-Rule-4210-Amendment-1.png" class="kg-image" alt="FINRA Rule 4210 Amendment"></figure><p>The amendment to FINRA Rule 4210 eliminates the entire Pattern Day Trader framework and replaces it with what FINRA calls an <strong>intraday margin standard</strong>. Here are the specific changes:</p><h3 id="1-the-pdt-designation-is-abolished">1. The PDT Designation Is Abolished</h3><p>Broker-dealers are no longer required - or permitted - to classify customers as "Pattern Day Traders." The definition, the tracking obligation, and all requirements tied to that label are removed from the rule.</p><p>You can execute as many day trades as your account supports without hitting a trigger count. There is no four-in-five-days threshold anymore.</p><h3 id="2-the-25-000-minimum-is-removed">2. The $25,000 Minimum Is Removed</h3><p>The mandatory minimum equity requirement of $25,000 that was tied to PDT status no longer exists in the rule. Retail traders with smaller accounts can now day trade in margin accounts without needing to maintain a specific dollar floor.</p><p>This is arguably the most impactful change for retail traders who have been shut out of intraday trading by the equity requirement.</p><h3 id="3-the-4x-day-trading-buying-power-is-eliminated">3. The 4x Day-Trading Buying Power Is Eliminated</h3><p>The special "day-trading buying power" calculation - which gave PDT accounts 4x leverage on intraday trades - is removed. All accounts will now operate under standard Regulation T margin requirements (generally 2x for standard margin, or 50% initial margin on equity positions).</p><h3 id="4-a-new-intraday-margin-monitoring-framework-is-introduced">4. A New Intraday Margin Monitoring Framework Is Introduced</h3><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/05/New-Intraday-Margin-Monitoring-Framework.png" class="kg-image" alt="New Intraday Margin Monitoring Framework"></figure><p>This is the substantive replacement. Under the new rule, broker-dealers must monitor the <strong>intraday margin positions</strong> of all customer margin accounts - not just those of designated PDT traders.</p><p>Member firms must either:</p><ul><li>Implement real-time systems to prevent trades that would create an intraday margin deficit, or</li><li>Calculate end-of-day intraday margin positions and issue margin calls for any deficits that occurred</li></ul><p>The margin calculation is based on a customer's actual open position exposure during the trading day - a dynamic, real-time assessment rather than a static prior-day equity figure multiplied by a fixed factor.</p><hr><h2 id="what-is-not-changing">What Is NOT Changing?</h2><p>It's important to be clear about what remains in place:</p><p><strong>Standard margin requirements still apply.</strong> <br>Regulation T's initial margin requirement (typically 50% for equity securities) remains. FINRA's maintenance margin requirements - generally 25% of current market value for long positions - remain.</p><p><strong>Margin calls still happen.</strong> <br>The new intraday monitoring framework may result in margin calls being issued faster and more dynamically than before - potentially in real time if a broker implements real-time blocking.</p><p><strong>A margin account is still required.</strong> <br>To use margin for day trading, you still need a margin account with your broker. Cash accounts remain subject to settlement rules (T+1 settlement for equity trades as of 2024).</p><p><strong>Broker implementation timelines vary.</strong> <br>FINRA has given member firms up to 18 months - until October 20, 2027 - to phase in the new framework. Your broker may not change their systems on June 4, 2026. Check directly with your brokerage for their specific timeline.<br><br><strong>Intraday margin deficits can still result in a 90-day freeze.</strong> <br>Under the new framework, if an intraday margin deficit is not met by the close of business on the 5th business day after it occurs, the account is frozen from creating or increasing any short position or debit balance for 90 days. There is a small-deficit carve-out: if the shortfall is the lesser of 5% of account equity or $1,000, this 90-day restriction does not apply.<br></p><hr><h2 id="why-this-matters-for-retail-traders">Why This Matters for Retail Traders</h2><p>The PDT rule has been debated for over two decades. Supporters argued it protected inexperienced traders from leveraged blowups. Critics - and there were many - argued it was paternalistic, inequitable, and primarily served to disadvantage smaller retail traders while institutional and high-net-worth participants operated without similar constraints.</p><p>The removal addresses a legitimate structural inequity: under the old rule, a trader with $26,000 could day trade freely, while a trader with $24,999 doing the exact same activity was penalised. The determining factor wasn't risk, strategy quality, or trading acumen - it was a fixed dollar figure set in 2001.</p><p>The new intraday margin standard is, in principle, more proportionate: it assesses actual exposure rather than applying a blunt threshold.</p><p>For US retail traders, the practical implications are significant:</p><ul><li><strong>Smaller accounts can now access intraday margin.</strong> The $25K barrier is gone.</li><li><strong>Strategy design is no longer constrained by a trade count.</strong> Systematic and algorithmic traders who deliberately kept intraday trades below four per five days to avoid PDT status no longer need that constraint.</li><li><strong>Risk management discipline becomes more important, not less.</strong> The removal of the PDT guardrail means traders need to be more thoughtful about their own margin usage and position sizing. Brokers will monitor intraday exposure, but traders should be doing the same.</li></ul><hr><h2 id="what-should-you-do-before-and-after-june-4">What Should You Do Before (and After) June 4?</h2><h3 id="step-1-read-the-actual-rule"><strong>Step 1: Read the actual rule</strong></h3><p>Go to the official source:<a href="https://www.finra.org/rules-guidance/rulebooks/finra-rules/4210"> FINRA Rule 4210</a>. On the right side of the page, use the version selector. Select the version applicable through June 3, 2026 (current), and compare it with the version effective from June 4, 2026. Reading the primary source is always the best starting point.</p><h3 id="step-2-talk-to-your-broker"><strong>Step 2: Talk to your broker</strong></h3><p>Ask your brokerage how they are implementing the new intraday margin framework, and when. Given the 18-month phase-in allowance, your broker's platform may still show PDT rules or restrictions even after June 4. Get their timeline and understand how they'll communicate intraday margin situations to you.</p><h3 id="step-3-revisit-your-trading-strategies"><strong>Step 3: Revisit your trading strategies</strong></h3><p>If you've built systematic strategies specifically designed to stay within the PDT trade count limits - you may want to evaluate whether those constraints should be relaxed or removed. This is also a good moment to build in explicit intraday margin tracking to your strategy framework.</p><h3 id="step-4-build-margin-literacy"><strong>Step 4: Build margin literacy</strong></h3><p>Understand the new intraday margin concept. Know how your broker calculates your intraday buying power under the new rules. Know what triggers a margin call under the new framework. This knowledge is foundational to trading safely in a margin environment.</p><hr><h2 id="a-note-for-algorithmic-and-systematic-traders">A Note for Algorithmic and Systematic Traders</h2><p>For those building rule-based or automated strategies, the PDT rule elimination opens up new possibilities - but also new responsibilities.</p><p>The old rule effectively limited trade frequency for undercapitalised accounts, which had the unintended effect of forcing some traders to think carefully about trade selection. With that external constraint removed, the internal discipline of your strategy - position sizing, drawdown management, intraday exposure limits - matters even more.</p><p>The most robust systematic trading frameworks already incorporate dynamic risk controls that account for real-time exposure. The new regulatory framework is essentially requiring brokers to catch up to what good traders already do.</p><p>Understanding margin mechanics, backtesting with realistic margin assumptions, and building strategies that respect risk limits at the position and portfolio level are foundational skills in algorithmic trading.</p><hr><h3 id="summary-key-points-at-a-glance">Summary: Key Points at a Glance</h3><!--kg-card-begin: html--><table style="width:100%;border-collapse:collapse;font-family:sans-serif;font-size:0.92rem;">
  <thead>
    <tr>
      <th style="padding:0.8rem 1rem;text-align:left;font-size:0.7rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#888;border-bottom:2px solid #0f1117;background-color:#f2f2f0 !important;background:#f2f2f0 !important;">Feature</th>
      <th style="padding:0.8rem 1rem;text-align:left;font-size:0.7rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#c8522a;border-bottom:2px solid #0f1117;background-color:#f2f2f0 !important;background:#f2f2f0 !important;">Before June 4, 2026</th>
      <th style="padding:0.8rem 1rem;text-align:left;font-size:0.7rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#2a6645;border-bottom:2px solid #0f1117;background-color:#f2f2f0 !important;background:#f2f2f0 !important;">From June 4, 2026</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="padding:0.95rem 1rem;font-weight:600;color:#0f1117;border-bottom:1px solid #e2ddd8;vertical-align:top;">PDT Designation</td>
      <td style="padding:0.95rem 1rem;color:#7a1a1a;background-color:#fdf0ee !important;background:#fdf0ee !important;border-bottom:1px solid #e2ddd8;vertical-align:top;">Yes — triggered by 4+ day trades in 5 days</td>
      <td style="padding:0.95rem 1rem;background-color:#eaf5ee !important;background:#eaf5ee !important;border-bottom:1px solid #e2ddd8;vertical-align:top;"><span style="display:inline-block;background-color:#d2ede0;color:#1a5e38;font-size:0.78rem;font-weight:700;padding:0.2em 0.75em;border-radius:20px;">Eliminated</span></td>
    </tr>
    <tr>
      <td style="padding:0.95rem 1rem;font-weight:600;color:#0f1117;border-bottom:1px solid #e2ddd8;vertical-align:top;">$25,000 Equity Requirement</td>
      <td style="padding:0.95rem 1rem;color:#7a1a1a;background-color:#fdf0ee !important;background:#fdf0ee !important;border-bottom:1px solid #e2ddd8;vertical-align:top;">Required for PDT accounts</td>
      <td style="padding:0.95rem 1rem;background-color:#eaf5ee !important;background:#eaf5ee !important;border-bottom:1px solid #e2ddd8;vertical-align:top;"><span style="display:inline-block;background-color:#f8d7d7;color:#7a1a1a;font-size:0.78rem;font-weight:700;padding:0.2em 0.75em;border-radius:20px;">Removed</span></td>
    </tr>
    <tr>
      <td style="padding:0.95rem 1rem;font-weight:600;color:#0f1117;border-bottom:1px solid #e2ddd8;vertical-align:top;">Day-Trading Buying Power (4×)</td>
      <td style="padding:0.95rem 1rem;color:#7a1a1a;background-color:#fdf0ee !important;background:#fdf0ee !important;border-bottom:1px solid #e2ddd8;vertical-align:top;">Available to PDT accounts</td>
      <td style="padding:0.95rem 1rem;background-color:#eaf5ee !important;background:#eaf5ee !important;border-bottom:1px solid #e2ddd8;vertical-align:top;"><span style="display:inline-block;background-color:#f8d7d7;color:#7a1a1a;font-size:0.78rem;font-weight:700;padding:0.2em 0.75em;border-radius:20px;">Removed</span></td>
    </tr>
    <tr>
      <td style="padding:0.95rem 1rem;font-weight:600;color:#0f1117;border-bottom:1px solid #e2ddd8;vertical-align:top;">Intraday Margin Monitoring</td>
      <td style="padding:0.95rem 1rem;color:#7a1a1a;background-color:#fdf0ee !important;background:#fdf0ee !important;border-bottom:1px solid #e2ddd8;vertical-align:top;">Applied only to PDT accounts</td>
      <td style="padding:0.95rem 1rem;background-color:#eaf5ee !important;background:#eaf5ee !important;border-bottom:1px solid #e2ddd8;vertical-align:top;"><span style="display:inline-block;background-color:#d2ede0;color:#1a5e38;font-size:0.78rem;font-weight:700;padding:0.2em 0.75em;border-radius:20px;">Required for all margin accounts</span></td>
    </tr>
    <tr>
      <td style="padding:0.95rem 1rem;font-weight:600;color:#0f1117;border-bottom:1px solid #e2ddd8;vertical-align:top;">Margin Basis</td>
      <td style="padding:0.95rem 1rem;color:#7a1a1a;background-color:#fdf0ee !important;background:#fdf0ee !important;border-bottom:1px solid #e2ddd8;vertical-align:top;">Prior-day equity × 4</td>
      <td style="padding:0.95rem 1rem;background-color:#eaf5ee !important;background:#eaf5ee !important;border-bottom:1px solid #e2ddd8;vertical-align:top;"><span style="display:inline-block;background-color:#d2ede0;color:#1a5e38;font-size:0.78rem;font-weight:700;padding:0.2em 0.75em;border-radius:20px;">Real-time intraday exposure</span></td>
    </tr>
    <tr>
      <td style="padding:0.95rem 1rem;font-weight:600;color:#0f1117;vertical-align:top;">Trade Count Tracking</td>
      <td style="padding:0.95rem 1rem;color:#7a1a1a;background-color:#fdf0ee !important;background:#fdf0ee !important;vertical-align:top;">Required by brokers</td>
      <td style="padding:0.95rem 1rem;background-color:#eaf5ee !important;background:#eaf5ee !important;vertical-align:top;"><span style="display:inline-block;background-color:#f8d7d7;color:#7a1a1a;font-size:0.78rem;font-weight:700;padding:0.2em 0.75em;border-radius:20px;">No longer required</span></td>
    </tr>
  </tbody>
</table><!--kg-card-end: html--><hr><h3 id="conclusion">Conclusion</h3><p>The elimination of the PDT rule on June 4, 2026 marks the most significant change to US retail day trading regulation in over two decades. For traders who have been held back by the $25,000 threshold, it removes a long-standing barrier.</p><p>But the change is not a relaxation of risk standards - it's a modernisation of them. The new intraday margin framework demands that both brokers and traders operate with a clearer, real-time understanding of market exposure. That's a higher standard of financial literacy, not a lower one.</p><p>If you're a trader in the US - whether you've been active or sitting on the sidelines - June 4 is worth marking on your calendar. Understand the new rules, know how your broker is implementing them, and make sure your trading approach is built on a rigorous foundation.</p><hr><h3 id="serious-about-learning">Serious about learning?</h3><p>For a structured pathway that covers machine learning, deep learning, and their application in trading, the <strong><a href="https://www.quantinsti.com/epat">Executive Programme in Algorithmic Trading (EPAT)</a></strong> provides a comprehensive curriculum with a focus on practical implementation and real-world trading workflows.</p><p>Connect with an EPAT career counsellor to explore how it aligns with your background and goals:</p><!--kg-card-begin: html--><div class="calendly-inline-widget" data-url="https://calendly.com/counsellor-1/speak-to-epat-counsellors?month=2025-04&embed_type=Inline&hide_gdpr_banner=1" style="min-width:320px;height:630px;"></div>
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js"></script><!--kg-card-end: html--><hr><!--kg-card-begin: html--><p><em><small>Disclaimer: All investments and trading in the stock market involve risk. Any decision to place trades in the financial markets, including trading in stock or options or other financial instruments, is a personal decision that should only be made after thorough research, including a personal risk and financial assessment and the engagement of professional assistance to the extent you believe necessary. The trading strategies or related information mentioned in this article is for informational purposes only.</small></em></p><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[AI Forex Backtesting with LLM Regime Labels: DeepSeek vs KMeans in Python]]></title><description><![CDATA[ Learn how to build an AI-powered forex backtest using DeepSeek LLM regime labels vs KMeans. Includes Python code, walk-forward optimization, and OOS results.]]></description><link>https://www.quantinsti.com/articles/ai-forex-backtest-llm-regime-labels-deepseek-python/</link><guid isPermaLink="false">69e27f1174e6f000074e6ba2</guid><category><![CDATA[AI for Trading]]></category><dc:creator><![CDATA[Jose Carlos Gonzales Tanaka]]></dc:creator><pubDate>Fri, 08 May 2026 11:46:39 GMT</pubDate><content:encoded><![CDATA[<p>Author: <a href="https://www.linkedin.com/in/jose-carlos-gonzales-tanaka/">José Carlos Gonzáles Tanaka</a></p><p><strong>TL;DR: </strong>This post builds a forex backtest where a DeepSeek LLM labels market regimes from compact numeric summaries. We compare it to a KMeans baseline, apply monthly walk-forward optimization, and report out-of-sample results from 2023 onward.</p><p><strong>What is LLM regime labeling?</strong></p><p>LLM regime labeling is the use of a large language model to classify current market conditions into discrete states such as trend, range, or high volatility from compact numeric summaries of recent price behaviour. In this project, the LLM does not generate trading rules. It only assigns a regime label that the strategy then uses in a fully deterministic way.</p><p><strong>Prerequisites</strong></p><p>To fully grasp the regime-labeling approach in this blog, it helps to have a basic familiarity with clustering methods and market regimes. For foundational reading, you can check <a href="https://blog.quantinsti.com/markov-model/">Markov processes</a> and <a href="https://blog.quantinsti.com/intro-hidden-markov-chains/">Hidden Markov Chains</a> that will serve you on understanding how to identify <a href="https://blog.quantinsti.com/regime-adaptive-trading-python/">Market Regimes using Hidden Markov</a> models to trade.</p><p><strong>What you will get:</strong></p><ul><li>A complete Python script that runs a 2023+ out-of-sample FX backtest with monthly walk-forward optimization.</li><li>A baseline regime classifier (KMeans) and an LLM-based classifier (DeepSeek) that use the same feature set.</li><li>A clear comparison of equity curves and key metrics (CAGR, Sharpe, Sortino, Calmar, MaxDD, win rate).</li><li>A practical checklist of tweaks to improve LLM-based regime labeling performance and robustness.</li></ul><h2 id="what-this-project-builds">What this project builds</h2><p>This project demonstrates a practical way to combine an LLM with a quantitative trading workflow without letting the LLM touch raw price history. Here, we use DeepSeek, a third-party large language model accessed through an API, for a narrow task: labeling each period as a market regime (trend up/down, range, high/low volatility) from a compact numeric summary. The trading rules remain fully deterministic.</p><p>To reduce overfitting, we evaluate performance out-of-sample (OOS) starting in 2023 and use monthly walk-forward optimization (WFO). Every month, we tune a small set of parameters using only prior data, then trade the next month with the chosen parameters.</p><h2 id="what-the-script-does-in-plain-english-">What the script does (in plain English)</h2><ul><li>Step 1: Download daily EURUSD data and compute simple features (returns, volatility, trend score, ATR proxy, z-score).</li><li>Step 2: Create regime labels in two ways:</li><li>a non-LLM baseline using KMeans clustering, and</li><li>an LLM version using DeepSeek.</li><li>Step 3: For each month in 2023+, optimize a few parameters on a trailing training window (default: 3 years).</li><li>Step 4: Trade the next month, stitch months together, and produce an equity curve.</li></ul><h2 id="full-python-script-explained-in-parts">Full Python script explained in parts</h2><p>First, we’ll explain the script in the same order it’s written. After each explanation, we’ll show the exact code block so you can match the narrative to the implementation. This section is meant to be readable even if you’re a beginner in Python.</p><p>Let's import the corresponding libraries:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/39d7f9adab36634a9be0f8d468727cee.js"></script><!--kg-card-end: html--><h3 id="configure-settings-and-api-access">Configure Settings and API Access</h3><p>Next, the script begins with a short settings block. This is where you choose the FX symbol, the historical data range, transaction costs, and the walk-forward optimization grid. In this script, the data starts in 2006, while the out-of-sample evaluation begins in 2023.. It also includes the DeepSeek configuration (API key, base URL, and model).</p><p>In addition, the optimization grid is intentionally small so the experiment stays readable and the walk-forward loop does not become a “hyper-parameter monster.”</p><p>Then, once these settings are fixed, the rest of the script can run end-to-end without changing any trading logic.</p><p>Please find below the code for this part:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/57372d5dc1a00487d4cd424dd4b35c03.js"></script><!--kg-card-end: html--><h3 id="download-data-and-engineer-features">Download Data and Engineer Features</h3><p>Then the script downloads daily price data and converts raw OHLC data into a compact, easy-to-interpret feature set.</p><p>After that, it computes the signals used everywhere else: daily log returns, rolling annualized volatility, a 20-day trend score (mean/std of returns), an ATR-style range proxy, and a 20-day z-score (distance from the moving average).</p><p>Finally, both the baseline and the LLM see these same features, which makes the comparison fair: the labeling method is the main difference.</p><p>Here is the code for this part:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/60ef332144269140701795bf04961443.js"></script><!--kg-card-end: html--><h3 id="baseline-regime-labels-with-kmeans">Baseline Regime Labels with KMeans</h3><p>Next, we create a non-LLM baseline using KMeans clustering on rolling window summaries. To avoid leakage, the KMeans model is fit only on the pre-2023 period.</p><p>In addition, the clusters are converted into named regimes using simple heuristics: the most positive trend cluster becomes TREND_UP, the most negative becomes TREND_DOWN, the highest volatility cluster becomes HIGH_VOL, the lowest becomes LOW_VOL, and the remaining one becomes RANGE.</p><p>Then, labels are forward-filled until the next labeling date so the strategy has a regime label each day.</p><p>Find below the code for this part:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/22c05149890e7ad0c411234817c48e05.js"></script><!--kg-card-end: html--><h2 id="llm-regime-labels-with-deepseek-and-caching">LLM Regime Labels with DeepSeek and Caching</h2><p>Then, we build the LLM regime labeler using DeepSeek. Instead of sending a long price history, the model receives only a compact numeric summary of the last N days (mean return, volatility, trend score, ATR proxy, z-score, and a drawdown proxy).</p><p>For a broader treatment of LLM applications in systematic trading, see QuantInsti’s related learning resources on trading with LLMs such as Agentic <a href="https://quantra.quantinsti.com/course/agentic-ai-trading">AI for Trading</a>.</p><p>In addition, the prompt requests a single label from a fixed set and expects strict JSON output, which makes the labeling step easier to parse and audit.</p><p>After that, the script caches each labeled date in a JSON file so reruns do not spend tokens on the same periods again.</p><p>Check the code:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/97f1dfe735d8702670af47a36e57be79.js"></script><!--kg-card-end: html--><h3 id="strategy-logic-and-position-sizing">Strategy Logic and Position Sizing</h3><p>Next, the strategy converts regime labels into daily positions using simple regime-conditioned rules.</p><p>For trend regimes it takes directional exposure (long in TREND_UP, short in TREND_DOWN). For RANGE it mean-reverts using the z-score: it fades short when price is far above the mean and fades long when price is far below the mean. For HIGH_VOL and UNCERTAIN it stays flat by default, while LOW_VOL uses a smaller trend-following position.</p><p>Then, to reduce lookahead bias, positions are shifted by one day so trades are assumed to execute on the next bar.</p><p>See below the code section:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/98df903e120c8ef88477a91f730b022a.js"></script><!--kg-card-end: html--><h3 id="performance-metrics">Performance Metrics</h3><p>Then, we define the evaluation metrics used later in the Results section: CAGR, annual volatility, Sharpe, Sortino, Calmar, max drawdown, and win rate.</p><p>These metrics help compare not only returns, but also the risk taken to earn them.</p><p>See below the code script:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/9be47d9cff5afcebfdccbe87e8c902d4.js"></script><!--kg-card-end: html--><h3 id="monthly-walk-forward-optimization">Monthly Walk-Forward Optimization</h3><p>After that, the script runs monthly walk-forward optimization. Each month in 2023+, it trains on the trailing TRAIN_YEARS of data, tries a small parameter grid, and selects the set with the best training Sharpe.</p><p>If you want a deeper explanation of the methodology itself, see QuantInsti’s guide to <a href="https://blog.quantinsti.com/walk-forward-optimization-introduction/">walk-forward optimization</a> before applying the code in this project.</p><p>Then it trades the next month with those chosen parameters and stitches the monthly results into one out-of-sample equity curve.</p><p>At this stage, the optimizer is tuning only these knobs: z_thr (z-score entry threshold in RANGE), range_size (RANGE position size), lowvol_size (LOW_VOL sizing), and highvol_size (HIGH_VOL sizing, often 0.0).</p><p>Check the code:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/7129f3686423c1a9b1e0e6ae75ec93b3.js"></script><!--kg-card-end: html--><h3 id="putting-the-full-workflow-together">Putting the Full Workflow Together</h3><p>Finally, main() wires everything together: data → features → regimes → monthly walk-forward → equity curves. It prints metrics, plots both curves, and saves CSV files for equity and monthly parameter choices.</p><p>Visualize the code below:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/29b991f1c002c1cd3c3828325441f00e.js"></script><!--kg-card-end: html--><h2 id="results-oos-from-2023-llm-vs-non-llm">Results (OOS from 2023): LLM vs non-LLM</h2><p>Check the plot:</p><figure class="kg-card kg-image-card kg-width-full"><img src="data:image/png;base64,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P/5400K3ceNGNGvWLMywWzY0rfwiIAIiUFICMajQlVREpRcBERCB4hPgTNT169fjl19+wYIFC3D33XejT58+plVuwIABRhHbu3cvHnzwQSxfvhxPP/00Hn300bAbcGwdW+Rmz56NTZs2ma5YdrVecskl4DU4uWLFihX44osvMHbsWLz11lth5+tABERABEpKQApdSYkpvQiIgNUEZs6ciYYNG4JKGWegfvjhh2ZGK5cuYZcpZ7ty2ZJx48ahVatWePbZZ41SFgqFM10HDx6M/v37o169erj33ntNNCdFUKG7+eab0bx5c5x77rn48ssvccQRR5h4WWVMQJcTgUpEQApdJSpsiSoCIlA0galTp4KTH2jYCsfu0VmzZpl15bhUiX/20KFDwW5WToKgAshJETwndHeIRx55xLTOMdxfh467T9x5551g6xzH2/EabK3jmnb+teWKgAiIQGkIxJXmJJ0jAiJgCMgSAREQAREQgUAQkEIXiGJQJkRABERABERABOwlUP6SSaErf8a6gwiIgAiIgAiIgAiUKwEpdOWKVxcXAREQgYohoLuIgAhUbgJS6Cp3+Ut6ERABERABERABCwhIobOgECtGBN1FBERABERABEQgqASk0AW1ZJQvERABERABEYhFAspzVAhIoYsKdt1UBERABERABERABMqOgBS6smOpK4mACFQMAd1FBERABESgAAEpdAWA6FAEREAEREAEREAEYo2AFLpIJaYwERABERABERABEYghAlLoYqiwlFUREAEREIFgEVBuRCAoBP4fAAD//+ARltEAAAAGSURBVAMArDvBH8YILFgAAAAASUVORK5CYII=" class="kg-image" alt="equities_performances"></figure><p>Quick performance summary (Quantstats-style metrics for OOS 2023+):</p><!--kg-card-begin: html--><p class="demoTitle">&nbsp;</p>
<table>
<tbody>
<tr>
<td>
<p><strong>Strategy</strong></p>
</td>
<td>
<p><strong>Final Equity</strong></p>
</td>
<td>
<p><strong>Peak Equity</strong></p>
</td>
<td>
<p><strong>CAGR</strong></p>
</td>
<td>
<p><strong>Annual Volatility</strong></p>
</td>
<td>
<p><strong>Sharpe</strong></p>
</td>
<td>
<p><strong>Sortino</strong></p>
</td>
<td>
<p><strong>Calmar</strong></p>
</td>
<td>
<p><strong>Max Drawdown</strong></p>
</td>
<td>
<p><strong>Win Rate</strong></p>
</td>
</tr>
<tr>
<td>
<p><span style="font-weight: 400;">Non-LLM (KMeans) + monthly WFO</span></p>
</td>
<td>
<p><span style="font-weight: 400;">1.091</span></p>
</td>
<td>
<p><span style="font-weight: 400;">1.160</span></p>
</td>
<td>
<p><span style="font-weight: 400;">2.63%</span></p>
</td>
<td>
<p><span style="font-weight: 400;">5.05%</span></p>
</td>
<td>
<p><span style="font-weight: 400;">0.541</span></p>
</td>
<td>
<p><span style="font-weight: 400;">0.884</span></p>
</td>
<td>
<p><span style="font-weight: 400;">0.268</span></p>
</td>
<td>
<p><span style="font-weight: 400;">-9.82%</span></p>
</td>
<td>
<p><span style="font-weight: 400;">38.72%</span></p>
</td>
</tr>
<tr>
<td>
<p><span style="font-weight: 400;">LLM (DeepSeek) + monthly WFO</span></p>
</td>
<td>
<p><span style="font-weight: 400;">1.203</span></p>
</td>
<td>
<p><span style="font-weight: 400;">1.277</span></p>
</td>
<td>
<p><span style="font-weight: 400;">5.69%</span></p>
</td>
<td>
<p><span style="font-weight: 400;">6.40%</span></p>
</td>
<td>
<p><span style="font-weight: 400;">0.898</span></p>
</td>
<td>
<p><span style="font-weight: 400;">1.578</span></p>
</td>
<td>
<p><span style="font-weight: 400;">0.663</span></p>
</td>
<td>
<p><span style="font-weight: 400;">-8.59%</span></p>
</td>
<td>
<p><span style="font-weight: 400;">41.92%</span></p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p><!--kg-card-end: html--><p>How to read this table: CAGR is the annualized growth rate, AnnVol is annualized volatility, Sharpe and Sortino measure risk-adjusted returns (Sortino focuses on downside risk), Calmar relates return to drawdown, MaxDD is the worst peak-to-trough loss, and WinRate is the share of positive days.</p><p>Why might the LLM have done better in this window? One possible explanation is that the DeepSeek labels combine multiple signals at once, including trend strength, volatility, drawdown proxy, and z-score, instead of relying on distance-based clustering alone. That may help the strategy adapt more cleanly around regime transitions. Even so, this result comes from a single pair over a limited OOS period, so it should be treated as an encouraging result rather than a confirmed edge.</p><p>The equity curves you generated cover 2023-01-02 to 2026-03-31 (OOS). To make the comparison fair, both curves are rebased to start at 1.0 on the first OOS date.</p><p>At a high level, the LLM-labeled strategy produced a higher terminal equity and a higher peak equity over this OOS window. That suggests the LLM regime labels (combined with monthly WFO) were more useful than the KMeans regimes for deciding when to apply trend-following vs range mean-reversion behaviors.</p><h2 id="interpreting-the-differences">Interpreting the differences</h2><p>Why might the LLM version outperform? In this setup, the LLM acts as a flexible classifier that makes “soft” judgments from multiple signals at once (trend score, volatility, drawdown proxy, z-score). KMeans can be sensitive to scaling, cluster shapes, and may not separate regimes cleanly when the market transitions between states.</p><p>However, treat this as a hypothesis generator, not a final conclusion. This OOS window is relatively short and includes a specific FX regime mix. The monthly WFO also introduces the risk of mild overfitting if the parameter grid is too large or the training objective is not aligned with your real-world constraints (e.g., drawdown limits). In addition, the flat 1 bps transaction-cost assumption may understate real execution costs in some market conditions, and daily EURUSD data from public sources may not perfectly reflect tradable close prices.</p><h2 id="10-practical-tweaks-to-improve-the-llm-based-strategy">10 practical tweaks to improve the LLM-based strategy</h2><p>Below are concrete, implementation-level tweaks that may improve performance or robustness when you use an LLM for regime labeling. These focus on reducing label noise, improving consistency, and aligning optimization with real trading constraints.</p><ol><li>Add a “confidence” output and abstain rule: Ask the LLM for {regime, confidence}. If confidence is low, label as UNCERTAIN and stay flat. This reduces noisy trades.</li><li>Use majority vote (self-consistency) on hard months: For month-start labeling windows, call the LLM 3 times (temperature=0) and take the majority label. Cache the majority result.</li><li>Increase information in the summary (still numeric): Add features like rolling skew, kurtosis, breakout frequency, range compression, or autocorrelation. Keep it compact and auditable.</li><li>Label more frequently during volatile periods: Make LABEL_STEP_DAYS dynamic: label every day when vol is high, and every 5–10 days when vol is low. This can improve regime transitions.</li><li>Add a regime “smoother”: Prevent whipsaws by requiring a regime to persist for N days (or use an HMM-like smoothing rule) before switching trading behavior.</li><li>Stricter prompt + schema validation: Force strict JSON and reject responses that include extra text. If invalid, re-try once or default to UNCERTAIN.</li><li>Ensemble LLM with a quantitative prior: Combine LLM label with the KMeans (or a rules-based label). For example, only accept TREND_UP if both agree, otherwise UNCERTAIN.</li><li>Optimize for drawdown-aware objective: Instead of maximizing Sharpe, maximize Calmar or use a penalty: score = Sharpe − λ·|MaxDD|. This often improves stability.</li><li>Add regime-specific risk sizing: Use volatility targeting (scale position by 1/vol) within each regime so you don’t take the same risk in calm vs volatile markets.</li><li>Expand regime taxonomy (carefully): Split RANGE into ‘tight range’ vs ‘wide range’, or split TREND into ‘strong trend’ vs ‘weak trend’. More regimes can help if you validate properly.</li></ol><h3 id="download-files-"><strong>Download Files:</strong></h3><!--kg-card-begin: html--><p style="text-align: left;"><a href="https://www.quantinsti.com/articles/ai-forex-backtest-llm-regime-labels-deepseek-python" class="download-button button"> Visit blog to download </a></p>
<!--kg-card-end: html--><h2 id="suggested-next-experiments">Suggested next experiments</h2><p>To strengthen the strategy, consider adding:</p><ol><li>multiple FX pairs (EURUSD, GBPUSD, USDJPY),</li><li>sensitivity to transaction costs,</li><li>a longer OOS window once you’re confident in label hygiene, and</li><li>a “label audit” where you sample dates and inspect summaries vs labels.</li></ol><p><em><strong>Note:</strong></em></p><ul><li><em><em><em>The strategy idea originated from the author</em></em></em></li><li><em><em><em>The blog content was created with the assistance of an AI large language model and</em></em></em></li><li><em><em><em>The blog content was curated/edited by the author.</em></em></em></li></ul><h1 id="frequently-asked-questions"><strong>Frequently Asked Questions</strong></h1><ul><li><strong>Can an LLM reliably label market regimes?</strong>: This backtest suggests that an LLM can be useful as a regime classifier, but the evidence here is limited to one FX pair and a relatively short OOS window. It should be validated across more assets and periods.</li><li><strong>What is walk-forward optimization?</strong>: Walk-forward optimization tunes parameters on a rolling historical window and tests them on the next unseen period. This gives a more realistic estimate of out-of-sample performance than a single train/test split.</li><li><strong>How is this different from asking an LLM to generate a strategy?</strong>: In this project, the LLM only classifies regimes from a numeric summary. The trading rules themselves remain fixed, explicit, and fully coded by the researcher.</li><li><strong>What are the main live-trading risks?</strong>: The main risks include unstable labeling across prompt versions, dependence on API availability, and backtest assumptions that may not hold in real execution</li></ul><h3 id="further-reading">Further Reading</h3><p>To explore the basics of Quant Trading, check our <a href="https://quantra.quantinsti.com/learning-track/guide-quantitative-trading-beginners">Learning Track: Quantitative Trading for Beginners</a>.</p><p>For LLM usage for trading, explore the <a href="https://quantra.quantinsti.com/course/llm-trading-strategies">Trading Using LLM: Concepts and Strategies</a> track, which provides practical hands-on insights into implementing LLM models for trading.</p><p>If you're a serious learner, you can take the <a href="https://www.quantinsti.com/epat?_gl=1*1cnnpcz*_gcl_au*MTc0ODY1NjMwNy4xNzczOTU1MjIz*_ga*MTIyODI0NTM4Ny4xNzczOTU0ODY5*_ga_SXP1W7WL9G*czE3NzY4MDU0NzkkbzQzJGcwJHQxNzc2ODA1NDc5JGo2MCRsMCRoMA..">Executive Programme in Algorithmic Trading (EPAT)</a>, which covers statistical modelling, machine learning, and advanced trading strategies with Python.</p><!--kg-card-begin: html--><p><em><small>This project is for educational and illustrative purposes only. Trading in financial markets involves substantial risk of loss. The code and concepts discussed here are not financial advice. Always exercise caution and thoroughly understand any automated trading system before deploying it in a live environment.</small></em></p><!--kg-card-end: html--><h3 id="serious-about-learning">Serious about learning?</h3><p>For a structured pathway that covers machine learning, deep learning, and their application in trading, the <strong><a href="https://www.quantinsti.com/epat">Executive Programme in Algorithmic Trading (EPAT)</a></strong> provides a comprehensive curriculum with a focus on practical implementation and real-world trading workflows.</p><p>Connect with an EPAT career counsellor to explore how it aligns with your background and goals:</p><!--kg-card-begin: html--><div class="calendly-inline-widget" data-url="https://calendly.com/counsellor-1/speak-to-epat-counsellors?month=2025-04&embed_type=Inline&hide_gdpr_banner=1" style="min-width:320px;height:630px;"></div>
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js"></script><!--kg-card-end: html--><hr><!--kg-card-begin: html--><p><em><small>Disclaimer: All investments and trading in the stock market involve risk. Any decision to place trades in the financial markets, including trading in stock or options or other financial instruments, is a personal decision that should only be made after thorough research, including a personal risk and financial assessment and the engagement of professional assistance to the extent you believe necessary. The trading strategies or related information mentioned in this article is for informational purposes only.</small></em></p><!--kg-card-end: html--><p></p>]]></content:encoded></item><item><title><![CDATA[Machine Learning Basics: Components, Application, Resources and More]]></title><description><![CDATA[Machine Learning basics, algorithms, concepts and techniques are the talk of the day! Machine Learning has dramatically altered every field. Dive into the basics of machine learning, and learn all about it.]]></description><link>https://www.quantinsti.com/articles/machine-learning-basics/</link><guid isPermaLink="false">69eb619074e6f000074e6cf8</guid><category><![CDATA[Learn Algo Trading]]></category><dc:creator><![CDATA[Hariprasad Poojari]]></dc:creator><pubDate>Fri, 24 Apr 2026 12:53:39 GMT</pubDate><content:encoded><![CDATA[<p>By <a href="https://www.linkedin.com/in/chainika-bahl-thakar-b32971155/">Chainika Thakar</a></p><p>Machine learning has become a hot topic today, with entrepreneurs all across the world switching to machine learning for business operations. Machine learning has reached the advancement where it can even predict outcomes without being explicitly programmed to do so.</p><p>This is not only it, but there is a lot more when it comes to the applications of machine learning in trading. With this blog, you will learn all about the basics of machine learning and how to begin learning the same along with the resources for learning, the applications of the same and much more!</p><h2 id="what-is-machine-learning">What is machine learning?</h2><p>Machine Learning, as the name suggests, provides machines with the ability to learn autonomously based on experiences, observations and analysing patterns within a given data set without explicitly programming.</p><p>When we write a program or a code for some specific purpose, we are actually writing a definite set of instructions which the machine will follow.</p><p>Whereas in machine learning, we input a data set through which the machine learns by identifying and analysing the patterns in the data set. Then, the machine will make decisions autonomously based on its observations and learnings from the dataset.</p><p>Before delving deep into the world of machine learning for trading, let's begin by gaining a solid understanding of the fundamental terms in machine learning for trading.</p><!--kg-card-begin: html--><iframe width="900" height="415" class="lazyload" data-src="https://www.youtube.com/embed/kQc3TVaO2J4?rel=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><!--kg-card-end: html--><h2 id="example-of-machine-learning">Example of machine learning</h2><p>Although there are numerous examples of machine learning, we are covering just a few here.</p><ul><li>Facebook: For instance, think of Facebook’s facial recognition <a href="https://www.facebook.com/help/122175507864081">⁽¹⁾</a> algorithm which prompts you to tag photos whenever you upload a photo.</li><li>Alexa, Cortana, and other voice assistants: Another example is of the voice assistants who use machine learning to identify and service the user’s request.</li><li>Tesla automobiles: One more example is of Tesla’s autopilot <a href="https://www.tesla.com/autopilot">⁽²⁾</a> feature.</li></ul><p>Now let us see an example of a “bird species recognition learning” problem. This example is explained with the task of the model, the performance measure of the model and the training experience required for the accurate results:</p><ul><li><strong>The task of the machine learning model:</strong> Recognizing and classifying species of birds within images</li><li><strong>Performance measure:</strong> Percent of bird species correctly classified</li><li><strong>Training experience of the machine learning model:</strong> Training on a data-set of bird species with given classifications</li></ul><p>Hence, the machine learning model will learn the task according to the performance measure and the required training experience of the machine learning model.</p><h2 id="history-of-machine-learning">History of machine learning</h2><p>Machine learning is not a recent phenomenon. In fact, neural networks were first introduced in the year 1943 <a href="https://en.wikipedia.org/wiki/Timeline_of_machine_learning">⁽³⁾</a>!</p><p>Although in the early days, progress in machine learning was somewhat slow due to the high cost of computing. The high computing cost made this domain only accessible to large academic institutions or multinational corporations. Also, the data in itself was difficult to acquire for a company’s needs.</p><p>But with the advent of the internet, we are now generating quintillions of data everyday <a href="https://www.forbes.com/sites/bernardmarr/2018/05/21/how-much-data-do-we-create-every-day-the-mind-blowing-stats-everyone-should-read/#4742a8c860ba">⁽⁴⁾</a>!</p><p>Couple that with the reduction in the price of computations and we find that machine learning is more than a viable proposition <a href="https://www.einnews.com/pr_news/585166263/artificial-intelligence-market-size-to-grow-by-usd-94-500-million-driven-by-growing-preference-for-machine-learning">⁽⁵⁾</a>.</p><p>Some of the notable events in the history of machine learning are:</p><ul><li><strong>1950</strong> - This was the first time when “Alan Turing” <a href="https://www.newscientist.com/people/alan-turing/">⁽⁶⁾</a> created a test in order to check if a machine could fool a human being into believing that it was talking to a machine.</li><li><strong>1952</strong> - The first computer learning program, a game of checkers, was written by Arthur Samuel.</li><li><strong>1957</strong> - The first neural network for computers was invented by Frank Rosenblatt, which simulated the thought process of a human brain.</li><li><strong>1967</strong> - The Nearest Neighbor algorithm was written.</li><li><strong>1979</strong> - Students of Stanford University, California invented the Stanford cart which could navigate and avoid obstacles on its own.</li><li><strong>1997</strong> - IBM’s Deep Blue beats the world champion at Chess.</li><li><strong>2002</strong> - A software library for machine learning named Torch was first released.</li><li><strong>2016</strong> - AlphaGo algorithm developed by Google DeepMind managed to win five games out of five in the Chinese Board Game Go competition.</li></ul><p>These events can be represented as:</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2022/09/Timeline-of-Machine-Learning.png" class="kg-image" alt="Timeline of machine learning"></figure><h2 id="importance-of-machine-learning">Importance of machine learning</h2><p>Machine learning plays an important <a href="https://www.datarobot.com/blog/the-importance-of-machine-learning-data/">⁽⁷⁾</a> role in the field of enterprises as it enables entrepreneurs to minimise manual efforts. The machine learning model learns with the help of humans but eventually, the machine learns and takes over the learnt task.</p><p>Although a minimum level of intervention is needed for making sure that no “machine-related” glitch arises or for updating the data inputted.</p><p>Nowadays leading companies like Google, Amazon, Facebook, Tesla, and many more are efficiently utilising these technologies. Hence, machine learning is proving to become a core part of operation and functioning.</p><p>Moreover, there are a multitude of use cases that machine learning can be applied to in order to cut costs, mitigate risks, and improve overall quality of life including risk management. Furthermore, <em>the global machine learning (ML) market is expected to grow <a href="https://www.fortunebusinessinsights.com/machine-learning-market-102226">⁽⁸⁾</a> from $21.17 billion in 2022 to $209.91 billion by 2029, at a CAGR of 38.8% in forecast period</em>.</p><h2 id="components-of-machine-learning">Components of machine learning</h2><p>There are tens of thousands of machine learning algorithms and hundreds of new algorithms are developed every year.</p><p>Every machine learning algorithm has three components:</p><ul><li><strong>Representation</strong>: This implies how to represent knowledge. Examples include decision trees, sets of rules, instances, graphical models, neural networks, support vector machines, model ensembles and others.</li><li><strong>Evaluation</strong>: This is the way to evaluate candidate programs (hypotheses). Examples include accuracy, prediction and recall, squared error, likelihood, posterior probability, cost, margin, entropy k-L divergence and others.</li><li><strong>Optimization</strong>: Last but not the least, optimization is the way candidate programs are generated and is known as the search process. For example, combinatorial optimization, convex optimization, and constrained optimization.</li></ul><p>All machine learning algorithms are a combination of these three components and a framework for understanding all algorithms.</p><h2 id="machine-learning-classification">Machine learning classification</h2><p><a href="https://www.youtube.com/watch?v=m4BFOSaos7M">Machine Learning</a> algorithms can be classified into:</p><ol><li>Supervised Algorithms:<br>◦ <a href="https://blog.quantinsti.com/machine-learning-trading-predict-stock-prices-regression">Linear Regression</a>,<br>◦ <a href="https://blog.quantinsti.com/machine-learning-logistic-regression-python">Logistic Regression</a>,<br>◦ <a href="https://blog.quantinsti.com/machine-learning-k-nearest-neighbors-knn-algorithm-python">KNN classification</a>,<br>◦ <a href="https://blog.quantinsti.com/trading-using-machine-learning-python-svm-support-vector-machine/">Support Vector Machine (SVM)</a>,<br>◦ <a href="https://quantra.quantinsti.com/course/decision-trees-analysis-trading-ernest-chan">Decision Trees</a>,<br>◦ <a href="https://blog.quantinsti.com/random-forest-algorithm-in-python">Random Forest</a>,<br>◦ <a href="https://blog.quantinsti.com/bayesian-inference">Naive Bayes’ theorem</a></li><li>Unsupervised Algorithms: <a href="https://blog.quantinsti.com/k-means-clustering-pair-selection-python">K Means Clustering</a></li><li><a href="https://blog.quantinsti.com/reinforcement-learning-trading/">Reinforcement Algorithm</a></li></ol><p>Let us dig a bit deeper into these machine learning basics algorithms.</p><h3 id="supervised-machine-learning-algorithms">Supervised Machine Learning Algorithms</h3><p>In this type of algorithm, the data set on which the machine is trained consists of labelled data or simply said, consists of both the input parameters as well as the required output.</p><p>Let’s take the previous example of facial recognition and once we have identified the people in the photos, we will try to classify them as babies, teenagers or adults. </p><p>Here, babies, teenagers and adults will be our labels and our training dataset will already be classified into the given labels based on certain parameters through which the machine will learn these features and patterns and classify some new input data based on the learning from this training data.</p><p>Supervised Machine Learning Algorithms can be broadly divided into two types of algorithms; Classification and Regression.</p><p><strong>Classification Algorithms</strong></p><p>Just as the name suggests, these algorithms are used to classify data into predefined classes or labels. We will discuss one of the most used <a href="https://www.youtube.com/watch?v=0IWLfTomLLg">classification</a> algorithms known as the K-Nearest Neighbour (KNN) Classification Algorithm.</p><p><strong>Regression Machine Learning Algorithms</strong></p><p>These algorithms are used to determine the mathematical relationship between two or more variables and the level of dependency between variables. These can be used for predicting an output based on the interdependency of two or more variables.</p><p>For example, an increase in the price of a product will decrease its consumption, which means, in this case, the amount of consumption will depend on the price of the product.</p><p>Here, the amount of consumption will be called the dependent variable and the price of the product will be called the independent variable. The level of dependency on the amount of consumption on the price of a product will help us predict the future value of the amount of consumption based on the change in prices of the product.</p><h3 id="unsupervised-machine-learning-algorithms">Unsupervised Machine Learning Algorithms</h3><p>Unlike supervised learning algorithms, where we deal with labelled data for training, the training data will be unlabelled for Unsupervised Machine Learning Algorithms. The clustering of data into a specific group will be done on the basis of the similarities between the variables.</p><p>Some of the unsupervised machine learning algorithms are K-means clustering and neural networks.</p><p>A simple example would be that given the data of football players, we will use K-means clustering and label them according to their similarity. Thus, these clusters could be based on the striker's preference to score on free kicks or successful tackles, even when the algorithm is not given pre-defined labels to start with.</p><p>K-means clustering would be beneficial to traders who feel that there might be similarities between different assets which cannot be seen on the surface.</p><p>While we did mention neural networks in unsupervised machine learning algorithms, it can be debated that they can be used for both supervised as well as unsupervised learning algorithms. You can learn all about in this course on <a href="https://quantra.quantinsti.com/course/unsupervised-learning-trading">unsupervised learning course</a>. Artificial neural network and <a href="https://blog.quantinsti.com/rnn-lstm-gru-trading/">Recurrent Neural networks</a> also fall under unsupervised machine learning algorithms.</p><h3 id="reinforcement-machine-learning-algorithms">Reinforcement Machine Learning Algorithms</h3><p>Reinforcement learning is a type of machine learning in which the machine is required to determine the ideal behaviour within a specific context, in order to maximise its rewards.</p><p>It works on the rewards and punishment principle which means that for any decision which a machine takes, it will be either rewarded or punished. Thus, it will understand whether or not the decision was correct.</p><p>This is how the machine will learn to take the correct decisions to maximise the reward in the long run.</p><p>For a reinforcement algorithm, a machine can be adjusted and programmed to focus more on either the long-term rewards or the short-term rewards. When the machine is in a particular state and has to be the action for the next state in order to achieve the reward, this process is called the Markov Decision Process.</p><h2 id="difference-between-machine-learning-and-deep-learning">Difference between machine learning and deep learning</h2><figure class="kg-card kg-image-card"><img src="https://d1rwhvwstyk9gu.cloudfront.net/qi-cms-blog-prod/2026/04/Difference-between-Machine-Learning-Artificial-Intelligence-and-Deep-Learning-1024x768.png" class="kg-image" alt="difference between artificial intelligence machine learning and deep learning"></figure><p>Machine Learning models lack the mechanism to identify errors, in such cases the programmer needs to step in to tune the model for more accurate decisions, whereas deep learning models can identify the inaccurate decision and correct the model on its own without human intervention.</p><p>But for doing so, deep learning models require a huge amount of data and information, unlike Machine Learning models.</p><h2 id="prerequisites-to-learn-machine-learning">Prerequisites to learn machine learning</h2><p>There are some prerequisites to learning machine learning without which one will be deprived of the important concepts needed to proceed with learning the same. These are:</p><p><strong>Statistical concepts</strong></p><p>Statistical concepts are essential in machine learning to create models from data. Statistics such as analysis of variance and hypothesis testing are crucial for building algorithms. Brushing up on <a href="https://www.quantinsti.com/articles/algorithmic-trading-maths/">stock market maths</a> first will help you apply these statistical concepts directly to market data before building machine learning models.</p><p><strong>Probability</strong></p><p>Probability helps in predicting future consequences, and the majority of the algorithms in machine learning are based on uncertain conditions where reliable decisions are needed.</p><p><strong>Data Modelling</strong></p><p>Data modelling enables identifying the underlying data structures, finding out the patterns and filling the gaps between the places where data is nonexistent.</p><p><strong>Programming Skills</strong></p><p>We are all aware that machine learning mostly depends on algorithms, which means one should possess sound knowledge of at least one of the programming languages. Python is considered an easy language to master, and also, is used by most of the quants.</p><h2 id="python-libraries-for-machine-learning">Python libraries for machine learning</h2><p><a href="https://blog.quantinsti.com/python-trading-library/">Python libraries</a> help with eliminating the need to write code from scratch. They play a vital role in developing machine learning models as they need algorithms. Let us take a look at some of the most popular libraries below.</p><p><strong>Scikit-learn</strong></p><p>It is a Python Machine Learning library built upon the SciPy library and consists of various algorithms including classification, clustering and regression, and can be used along with other Python libraries like NumPy and SciPy for scientific and numerical computations.</p><p>Some of its classes and functions are sklearn.cluster, sklearn.datasets, sklearn.ensemble, sklearn.mixture etc.</p><p><strong>TensorFlow</strong></p><p>TensorFlow is an open-source software library for high-performance numerical computations and machine learning applications such as neural networks. It allows easy deployment of computation across various platforms like CPUs, GPUs, TPUs etc. due to its flexible architecture. Learn how to <a href="https://blog.quantinsti.com/install-tensorflow-gpu/">install TensorFlow GPU</a> here.</p><p><strong>Keras</strong></p><p>Keras is a deep learning library used to develop neural networks and other deep learning models. It can be built on top of TensorFlow, Microsoft Cognitive Toolkit or Theano and focuses on being modular and extensible.</p><h2 id="common-terms-used-in-machine-learning">Common terms used in machine learning</h2><p>Here are a few machine learning basics terms which would be of help as you start your journey in machine learning algorithms.</p><h3 id="bias">Bias</h3><p>A machine learning model is said to have a low bias if its predictability level is high. In other words, it makes fewer mistakes when it is working on a dataset.</p><p>Bias plays an important role when we have to compare two machine learning algorithms for the same problem statement.</p><h3 id="cross-validation-bias">Cross-validation bias</h3><p><a href="https://blog.quantinsti.com/cross-validation-machine-learning-trading-models/">Cross-validation</a> in machine learning is a technique that provides an accurate measure of the performance of a machine learning model. This performance implies your expectation when the model is used in the future without the help of any human.</p><p>In short, the cross-validation bias finds out if the machine learning model has learnt the task properly or not.</p><p>The application of the machine learning models is to learn from the existing data and use that knowledge to predict future unseen events. The cross-validation in the machine learning model needs to be thoroughly done before live <a href="https://www.youtube.com/watch?v=hxtugnzgdM4">trading</a> so that no unexpected mistakes are made.</p><h3 id="underfitting">Underfitting</h3><p>If a machine learning model is not able to predict with a decent level of accuracy, then we say that the model underfits. This could be due to a variety of reasons, including, not selecting the correct features for the prediction, or simply the problem statement is too complex for the selected machine learning algorithm.</p><h3 id="overfitting">Overfitting</h3><p>In both machine learning and statistics, overfitting occurs when the model fits the data too well or simply put when the model is too complex. Overfitting model learns the detail and noise in the training data to such an extent that it negatively impacts the performance of the model on new data/test data.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2022/09/OverFitting.png" class="kg-image" alt="Overfitting"></figure><p>Overfitting problem can be solved by decreasing the number of features/inputs or by increasing the number of training examples to make the machine learning algorithms more generalised. The more common way of solving the overfitting problem is by regularisation.</p><p>These were a few terms we discussed in Machine learning basics. Most of the popular machine learning algorithms are mentioned above.</p><h2 id="application-of-machine-learning-in-trading">Application of machine learning in trading</h2><p>Machine learning is applied to a variety of services. Machine learning plays an important role in the field of enterprises as it enables entrepreneurs to understand customers’ behaviour and business functioning behaviour.</p><p>At present, almost every common domain is powered by machine learning applications. To name a few such industries – healthcare, search engine, digital marketing, and education are the major beneficiaries.</p><p>Let us see specifically, which all services the machine learning system covers.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2022/09/Applications-of-Machine-Learning-1.png" class="kg-image" alt="Applications of machine learning"></figure><p>Through this video, you can discover how machine learning transforms the way we analyze, predict, and execute trades. A comprehensive guide you through the process of designing and creating a machine learning strategy that can be implemented in live markets. Leverage data-driven decision-making with machine learning and its applications in the world of trading!</p><!--kg-card-begin: html--><iframe width="900" height="415" class="lazyload" data-src="https://www.youtube.com/embed/tUN9XGAGRYg?rel=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><!--kg-card-end: html--><h2 id="resources-to-learn-machine-learning">Resources to learn machine learning</h2><p>Various resources are available to learn machine learning concepts. To learn from basics to advanced, concepts, terminologies, projects and more, you can check out these <a href="https://blog.quantinsti.com/tag/machine-learning/">blogs on machine learning</a>.</p><p>Let us see some other resources below.</p><h3 id="courses">Courses</h3><p>First of all, let us see which <a href="https://quantra.quantinsti.com/learning-track/machine-learning-deep-learning-in-financial-markets">courses</a> can be explored for learning machine learning. Here is a list:</p><p><a href="https://quantra.quantinsti.com/learning-track/machine-learning-deep-learning-in-financial-markets">Learning Track: Machine Learning &amp; Deep Learning in Financial Markets</a></p><p>The courses in the learning tracks cover everything from simple to complex models.</p><p>Hence, be it a beginner or an expert wanting to move to the next advanced step, this learning track is suitable for all.</p><p>With the courses, you will learn:</p><ul><li>Tuning hyperparameters</li><li>Gradient boosting</li><li>Ensemble methods</li><li>Advanced techniques to make robust predictive models</li><li>To use unsupervised learning in trading to enhance the algorithms</li></ul><p><a href="https://quantra.quantinsti.com/course/python-machine-learning">Python for Machine Learning in Finance</a></p><p>The course is perfect for those looking to get started on using Python for machine learning. With this course, you will get a step-by-step guide on creating machine learning algorithms for trading.</p><p>Also, you can evaluate the performance of the machine learning algorithm and perform <a href="https://blog.quantinsti.com/backtesting/">backtest</a>, paper trading and live trading with Quantra’s integrated learning.</p><h3 id="videos">Videos</h3><p><a href="https://www.youtube.com/watch?v=m4BFOSaos7M">Machine Learning for Trading by Dr. Ernest Chan</a></p><p>Before giving the introduction to the video, let us first know a bit about  Dr. Chan.</p><p>Dr. Chan is a well-renowned global personality in the domain of Algorithmic and Quantitative Trading. He is the Managing Member of QTS Capital Management, LLC. Also, he has worked for various investment banks (Morgan Stanley, Credit Suisse, Maple) and hedge funds (Mapleridge, Millennium Partners, MANE) since 1997.</p><p>In this video, Dr. Ernest Chan answers some of the most asked questions on machine learning for trading, brought to you by QuantInsti.</p><p><a href="https://www.youtube.com/watch?v=c6sKPJd0fDE&amp;t=2s">Machine Learning For Traders: An Introduction</a></p><p>This video is apt for those who want to know what machine learning is and the difference between a regular algorithm in a programming language (Python, C++, etc.) and a machine learning algorithm.</p><p>Also, this video includes examples of machine learning (ML) algorithms in the real world, industries using machine learning and implementation and usage of machine learning in trading.</p><p><a href="https://www.youtube.com/watch?v=kQc3TVaO2J4">Machine Learning For Traders: Terminologies</a></p><p>In this video, we discuss certain terms in machine learning. They are training and testing data sets. This video will also help you learn the types of machine learning tasks namely-</p><ul><li>Supervised Learning</li><li>Unsupervised Learning</li><li>Reinforcement Learning</li></ul><p><a href="https://www.youtube.com/watch?v=0IWLfTomLLg&amp;t=1s">Machine Learning For Traders - An Introduction To Classification</a></p><p>In this video, you will learn the following points:</p><ul><li>Introduction to Classification</li><li>Application in various fields such as:</li><li>Medical Diagnosis</li><li>Fraud detection</li><li>Handwriting recognition</li><li>Customer segmentation</li><li>Risk assessment</li><li>An example of a Classification used by E-Commerce websites</li><li>It is not restricted to text and numbers, even images can be classified</li><li>Supervised classifier algorithms</li><li>The classifier algorithms can be chosen, depending on</li><li>Size of training data</li><li>Independence of features set</li><li>System speed</li></ul><p>Also, the classifier algorithms covered in this video are:</p><ul><li>K-Nearest Neighbours Algorithm (KNN)</li><li>Random Forests Using Decision Trees</li><li>Artificial Neural Networks (ANN)</li><li>Naive Bayes Classification</li></ul><h3 id="books">Books</h3><p>Further, and lastly, there are <a href="https://blog.quantinsti.com/books-algorithmic-trading/">some useful books</a> which can help you learn all about machine learning. Books are a great source of learning for those who enjoy reading for learning purposes. Also, those who want to learn the concepts with much more detailed explanations can opt for books when it comes to learning.</p><h2 id="the-future-of-machine-learning">The future of machine learning</h2><p>Machine learning is a versatile and powerful technology. The future of machine learning is exceptionally exciting.</p><p>Machine learning could be a contested merit to an enterprise or an organisation as tasks that are presently being done manually shall be wholly accomplished by the machines in the future.</p><p>As per the report <a href="https://www.globenewswire.com/news-release/2022/04/04/2415724/0/en/Machine-Learning-Market-Size-2022-2029-Worth-USD-209-91-Billion-Exhibiting-a-CAGR-of-38-8.html">⁽⁹⁾</a>, the machine learning (ML) market size was USD 15.44 billion in 2021. The market size is expected to rise from USD 21.17 billion in 2022 to USD 209.91 billion by 2029 at a CAGR of 38.8% during the forecast period.</p><p><strong>Bibliography</strong></p><ul><li>Solomonoff, R.J. (June 1964). "A formal theory of inductive inference. Part II" <a href="https://doi.org/10.1016%2FS0019-9958%2864%2990131-7">⁽¹⁰⁾</a>. Information and Control.</li><li>Mitchell, Tom (1997) <a href="https://en.wikipedia.org/wiki/Tom_M._Mitchell">⁽¹¹⁾</a>. Machine Learning <a href="http://www.cs.cmu.edu/~tom/mlbook.html">⁽¹²⁾</a>. New York: McGraw Hill.</li><li>Cortes, Corinna <a href="https://en.wikipedia.org/wiki/Corinna_Cortes">⁽¹³⁾</a>; Vapnik, Vladimir N. (1995). <a href="https://doi.org/10.1007%2FBF00994018">"Support-vector networks"</a>. Machine Learning <a href="https://en.wikipedia.org/wiki/Machine_Learning_(journal)">⁽¹⁴⁾</a>.</li><li>Stuart J. Russell, Peter Norvig (2010) Artificial Intelligence: A Modern Approach <a href="https://en.wikipedia.org/wiki/Artificial_Intelligence:_A_Modern_Approach">⁽¹⁵⁾</a>, Third Edition, Prentice Hall.</li></ul><h3 id="conclusion">Conclusion</h3><p>Machine learning, being so important for various fields, has gained popularity for all the right reasons. By learning about the prerequisites and adopting the same, one can use machine learning. Also, the future of machine learning seems to be bright. Hence, learning all about the famous machine learning has several advantages.</p><p>Begin your journey in the world of machine learning with our course on <a href="https://quantra.quantinsti.com/course/introduction-to-machine-learning-for-trading">Introduction to machine learning </a>and become an expert in using machine learning algorithms.</p><p><a href="https://www.quantinsti.com/articles/ai-for-trading/">Artificial intelligence in trading</a> enhances these algorithms by analyzing vast amounts of market data in real time, improving decision-making and optimizing trading strategies. Integrating AI with machine learning allows traders to gain a competitive edge through more accurate predictions.</p><p>With the help of several important research studies in the domain, this course helps you find out how different machine learning algorithms are implemented on financial markets data.</p><p>If you want to learn various aspects of Algorithmic trading then check out our <a href="https://www.quantinsti.com/">Executive Programme in Algorithmic Trading</a> (EPAT®). The course covers training modules like Statistics &amp; Econometrics, Financial Computing &amp; Technology, and Algorithmic &amp; Quantitative Trading. EPAT® is designed to equip you with the right skill sets to be a successful trader. Enroll now!</p><!--kg-card-begin: html--><div class="calendly-inline-widget" data-url="https://calendly.com/counsellor-1/speak-to-epat-counsellors?month=2025-04&embed_type=Inline&hide_gdpr_banner=1" style="min-width:320px;height:630px;"></div>
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js"></script><!--kg-card-end: html--><!--kg-card-begin: html--><p><em><small>Note: The original post has been revamped on 26th September 2022 for accuracy, and recentness.</small></em></p><!--kg-card-end: html--><!--kg-card-begin: html--><p><em><small>Disclaimer: All investments and trading in the stock market involve risk. Any decision to place trades in the financial markets, including trading in stock or options or other financial instruments is a personal decision that should only be made after thorough research, including a personal risk and financial assessment and the engagement of professional assistance to the extent you believe necessary. The trading strategies or related information mentioned in this article is for informational purposes only.</small></em></p><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[From Neuroscience to Systematic Trading: Renan's EPAT Journey]]></title><description><![CDATA[Discover how Renan, a fixed-income trader with a neuroscience background, used EPAT to build systematic algorithms, apply mean reversion strategies, and work toward launching his own trading shop.]]></description><link>https://www.quantinsti.com/articles/renan-epat-journey-neuroscience-systematic-trading/</link><guid isPermaLink="false">69eb2a1a74e6f000074e6c26</guid><category><![CDATA[Learn Algo Trading]]></category><dc:creator><![CDATA[MOHIT KARWAL]]></dc:creator><pubDate>Fri, 24 Apr 2026 11:59:17 GMT</pubDate><content:encoded><![CDATA[<p>What does the study of the brain have to do with the behavior of financial markets? For <a href="https://www.linkedin.com/in/renan-costa-vieira-de-paula-cqf-15b23a108/">Renan Costa Vieira de Paula</a>, the answer is: quite a lot.</p><p>Renan's path into finance was anything but conventional. With an academic foundation in neuroscience from the Federal University of ABC, he spent years understanding complex systems, identifying patterns, and tracing cause and effect. That scientific mindset, developed long before he ever stepped onto a trading floor, quietly became the backbone of how he would later approach markets.</p><p>His professional journey began in credit, working with large enterprises for four years, before transitioning into fixed income. Today, he works at a firm that trades across the majority of assets in the Brazilian market. His role revolves around price distribution, order book dynamics, and bid-ask movements, ensuring rates on his firm's proprietary platform reflect best market practices. On any given day, he trades roughly 400 assets across Brazil.</p><blockquote>Beyond his desk, he continues to explore crypto and prediction markets, not as a side interest, but as an extension of a deeper conviction. For Renan, markets are both a profession and a passion. As he puts it, <br>"I hope it continues for the rest of my life. I think it's not possible to stop."</blockquote><hr><h2 id="why-algo-trading"><strong>Why Algo Trading?</strong></h2><p>The shift toward algorithmic trading did not come from curiosity alone. It came from necessity. Working in fixed income, Renan encountered practical problems that demanded more than intuition could offer. </p><blockquote>"I needed to understand better how the order book influences prices. I wanted to understand how to measure it, how to quantitatively understand the prices I was seeing, how to create indicators and metrics to measure the effects I was facing," he recalls.</blockquote><p>He was searching for rigor. For structure. For tools that would allow him to approach trading decisions the same way he once approached scientific questions. As he puts it, the goal was to figure out <em>"how to make some P&amp;L with it." </em><br>He wanted a framework that could translate market behavior into measurable, repeatable systems.</p><hr><h2 id="why-epat"><strong>Why EPAT?</strong></h2><p>During his search for structured learning in algorithmic trading, EPAT stood out on two fronts: the credibility of its faculty and the practicality of its format.</p><p>Renan was already familiar with leading quantitative thinkers and had read their work. Knowing that these practitioners were part of the EPAT curriculum gave him confidence that the program offered genuine depth, not surface-level exposure. "I was already a big fan. I had read the books of those professors. So it was a very good choice," he says.</p><p>The format mattered equally. Working full-time, he needed a learning structure that would not disrupt his career. He recalls:</p><blockquote>"The courses being taken on Saturdays and Sundays helped a lot. The pace was very good too. It made me feel very comfortable and very stimulated to continue the journey."</blockquote><p>Above all, what convinced him was the chance to learn directly from practitioners who had built real trading strategies. He points to <em>"the structure of the course and the possibility to take courses of the great minds in algorithmic trading"</em> as the most important factors in his decision.</p><hr><h2 id="how-epat-shaped-his-thinking"><strong>How EPAT Shaped His Thinking</strong></h2><p>Renan is candid about what EPAT was designed to be, and what it was not.</p><blockquote>"I think it wasn't enough, but I think it's not supposed to be enough."</blockquote><p>For him, the program was never the final destination. It was the launchpad. EPAT built the theoretical foundations and the systematic mindset required to keep growing independently beyond the six months. </p><blockquote>"The program opened my mind for other universes I was not aware of the existence of," he says.</blockquote><p>One of the most pivotal experiences came when professors bridged the gap between abstract theory and practical implementation. He describes those moments vividly: </p><blockquote>"My favorite moments were when the professors, after laying the foundations and giving their thoughts on the mindset of a trader and the theoretical framework, concluded in a strategy that wrapped all the things they had said before."</blockquote><p>Topics like mean reversion, co-integration, statistical arbitrage, and futures trading resonated most, aligning closely with his fixed-income background and statistical intuitions. He describes the full arc of the learning experience: </p><blockquote>"You translate the market into a theoretical framework, and then you translate that theoretical framework into an algorithm that will try to capture the phenomena in the market."</blockquote><p>The learning environment extended beyond lectures as well. Whenever Renan sought scientific papers, articles, or reading recommendations, the support was readily available. Intellectual curiosity was not just tolerated, it was actively encouraged.</p><hr><h2 id="the-real-challenge"><strong>The Real Challenge</strong></h2><p>With prior programming experience and a strong mathematical background, Renan did not find the technical content particularly intimidating. For him, the real challenge was time.</p><blockquote>"The most difficult part was having enough time to explore all the possibilities, because it is a huge universe of areas," </blockquote><p>he explains. Six months is enough to build solid foundations, but far from enough to explore every corner of the field. Balancing a demanding full-time role in fixed income with intensive technical learning required genuine discipline. He viewed this not as a flaw but as intentional program design: broad exposure first, deep specialisation later.</p><p>When roadblocks did arise, EPAT's support team responded quickly.</p><blockquote>"If I had some difficulties, the team was very ready to help," </blockquote><p>he says, noting that this reduced friction and kept momentum going.</p><hr><h2 id="life-after-epat"><strong>Life After EPAT</strong></h2><p>The impact of the program became most visible in Renan's day-to-day trading.</p><p>Before EPAT, he had ideas about structuring systematic approaches. After EPAT, those ideas became rigorous. </p><blockquote>"The program gave me the foundations to be more rigorous, more scientific about the methods and about the implementation," </blockquote><p>he says. He now applies mean reversion algorithmics directly on his fixed-income trading desk, building indicators, measuring deviations from expected behavior, and systematically identifying opportunities where prices diverge from historical patterns.</p><p>The shift was not merely technical. Instead of relying on intuition, he now deploys structured algorithms tailored to Brazil's unique market dynamics. As he puts it: </p><blockquote>"I took some of the algorithms, tried to modify them for my daily basis, and implemented them. And when I said I was studying it in the program and making it in my daily basis, people knew: okay, he knows what he is doing."</blockquote><p>The credentials also strengthened his professional standing. When proposing systematic strategies internally, his structured, evidence-based approach now inspires greater confidence among colleagues and stakeholders.</p><hr><h2 id="epat-and-the-role-of-ai"><strong>EPAT and the Role of AI</strong></h2><p>As AI tools have become more accessible, Renan has integrated them into his workflow, but thoughtfully.</p><p>He is direct about what AI can and cannot do: </p><blockquote>"For AI to work, you need to know what to search. You need to know how to make the algorithm work and how it improves your day." </blockquote><p>Without foundational understanding, no AI tool can replace strategic thinking.</p><p>His practical approach today: </p><blockquote>"Let's say I'm reading a paper. I understood a mathematical equation and I say, okay, this is what I wanted. I use AI to help me translate those equations into modules." </blockquote><p>What once required two or three hours of manual implementation can now be accelerated, without surrendering control over the underlying strategy.</p><p>He is clear about the limits: </p><blockquote>"I don't think it is for making the whole picture. But helping with specific points, it is very, very good." </blockquote><p>For Renan, AI is a tool for scale and efficiency, one that only delivers value when the person using it already knows what they are looking for.</p><hr><h2 id="looking-ahead"><strong>Looking Ahead</strong></h2><p>Over the next two to three years, Renan plans to deepen his work in crypto and prediction markets. </p><blockquote>"I think there is a lot to understand, and as these markets are new for anyone, they have a lot of inefficiencies. Those algorithms are very, very good to exploit these kinds of opportunities," he says.</blockquote><p>In parallel, he aims to expand algorithmic applications within Brazil's evolving derivatives and fixed income landscape, noting that <em>"the landscape here in Brazil is evolving, especially in derivatives and fixed income."</em></p><p>The longer-term vision is larger still. </p><blockquote>"In five to ten years, I hope to have my own trading shop to exploit these strategies," he shares. He credits EPAT for pointing toward that path: "It is very focused on creating your own shop and making the self-sufficient way. You can talk with friends and say, okay, I know about these strategies, you know about these strategies, what about we start something and work for our own."</blockquote><p>He describes algorithmic trading as a lifelong pursuit, a journey that continues to evolve with every new strategy tested and every new market explored. EPAT, in that journey, was not simply a course. It was the framework that helped transform analytical curiosity into systematic capability, and ambition into structured execution.</p><hr><h2 id="frequently-asked-questions"><strong>Frequently Asked Questions</strong></h2><p><strong>Q. Can someone from a non-finance background learn algorithmic trading?</strong> </p><p>Yes. Renan's own background was in neuroscience before he moved into finance. What matters most is an analytical mindset and a willingness to learn systematically. Structured programs can guide learners from foundational concepts to practical implementation, regardless of their starting point.</p><p><strong>Q. Is prior programming knowledge required for EPAT?</strong> </p><p>No. Many learners begin with little to no coding experience. EPAT is structured to build programming skills progressively, starting from basics and moving toward strategy development, backtesting, and automation. Prior experience can accelerate the pace, but it is not a prerequisite.</p><p><strong>Q. How does algorithmic trading apply to fixed-income markets?</strong></p><p> Algorithmic approaches in fixed income can include mean reversion strategies, spread analysis, order book dynamics, and statistical modelling of price distributions. Practitioners like Renan apply these techniques to identify systematic opportunities across large numbers of instruments simultaneously.</p><p><strong>Q. How long does it take to apply EPAT learnings in a real trading environment?</strong> </p><p>This varies by role and market access. For Renan, the transition was relatively direct, as his professional context allowed him to begin applying mean reversion algorithmics shortly after completing the program. Others may spend additional time refining strategies in simulated environments before deploying them live.</p><p><strong>Q. What is the role of AI in algorithmic trading today?</strong> </p><p>AI tools can accelerate research, code translation, and data analysis. However, as Renan emphasises, AI is only as effective as the foundation it sits on. Traders who understand quantitative concepts can use AI to scale their work; those without that foundation may find it difficult to direct AI toward meaningful outcomes.</p><p><strong>Q. Is EPAT worth it for professionals already working in finance?</strong> </p><p>For practitioners seeking to move from intuitive to systematic approaches, EPAT offers structured frameworks, practitioner-led instruction, and a peer network that complements existing experience. Renan credits the program with transforming how he structures strategies and presents them internally.</p><p><strong>Q. What markets are most suited to systematic trading strategies?</strong> </p><p>Systematic strategies can be applied across equities, fixed income, derivatives, crypto, and prediction markets. The key is identifying markets with sufficient data, liquidity, and structural patterns that algorithms can exploit. Renan sees particular opportunity in crypto and prediction markets due to their relative inefficiency.</p><hr><h2 id="next-steps"><strong>Next Steps</strong></h2><p>If you are just getting started with algorithmic trading, begin with the<a href="https://quantra.quantinsti.com/"> Quantitative Trading Free Learning Track</a>. It includes beginner-friendly courses covering data basics, trading strategies, and coding for finance.</p><p>Once you are ready to go deeper, explore<a href="https://quantra.quantinsti.com/"> Quantra's Algorithmic Trading for Beginners Learning Track</a>, which offers hands-on, application-focused modules to build your skills step by step.</p><p>For those looking for a comprehensive, guided journey with mentorship, live lectures, and career support, the<a href="https://www.quantinsti.com/epat"> Executive Programme in Algorithmic Trading (EPAT)</a> provides a complete foundation for launching or accelerating a career in this field.</p><h3 id="schedule-an-epat-counselling-call">Schedule an EPAT counselling call </h3><p>To understand if EPAT is the right choice for you, talk to one of our specialists who have counselled thousands of learners over the past decade and helped them make the right career decision.</p><!--kg-card-begin: html--><div class="calendly-inline-widget" data-url="https://calendly.com/counsellor-1/speak-to-epat-counsellors?month=2025-04&embed_type=Inline&hide_gdpr_banner=1" style="min-width:320px;height:630px;"></div>
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js"></script>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[From Guesswork to Market Structure: Edwin Lima’s Journey into Professional Trading with EPAT]]></title><description><![CDATA[Discover how Edwin Lima moved from informal, guesswork-based trading to a more structured, professional trading approach through EPAT.]]></description><link>https://www.quantinsti.com/articles/edwin-lima-epat-journey-guesswork-professional-trading/</link><guid isPermaLink="false">69eb22fb74e6f000074e6bd6</guid><category><![CDATA[Learn Algo Trading]]></category><dc:creator><![CDATA[MOHIT KARWAL]]></dc:creator><pubDate>Fri, 24 Apr 2026 11:59:14 GMT</pubDate><content:encoded><![CDATA[<p>By QuantInsti</p><p>For more than 25 years, <a href="https://www.linkedin.com/in/limaedwin/">Edwin Lima</a> has worked in the world of data.</p><p>As an independent data engineering consultant, he has built systems and solved technical problems for major airlines, banks such as Amro and Rabobank, government institutions, and currently, Rotterdam City Hall. With a Master’s degree in Artificial Intelligence and a computer science foundation that goes back to 1997, Edwin’s technical depth was never in doubt.</p><p>But when it came to trading, he felt something was missing.</p><blockquote>“I was not doing it right… the way I was doing it was more like a guesswork. It was not a structured way of doing it, and a thoughtful way of doing it.”</blockquote><p>Like many professionals, he initially approached trading as a side pursuit. The goal was simple: learn the markets, make better decisions, and create another source of income. But over time, the absence of structure began to bother him.</p><p>What started as curiosity became discomfort. And that discomfort eventually became a decision.</p><p>He needed formal education.</p><h2 id="why-trading-needed-structure"><strong>Why Trading Needed Structure</strong></h2><p>Edwin’s interest in markets was not new. In fact, it went back to his academic work.</p><p>His master’s thesis focused on predicting cryptocurrency trading positions using reinforcement learning. He built the project before ever placing a trade himself.</p><blockquote>“I did this project without having made a trade ever in my life. Never. I did it blindly.”</blockquote><p>At the time, he approached the problem like a data engineer and AI practitioner. He worked with OHLC data and applied reinforcement learning methods that are often used in robotics and decision systems. The backtest results looked promising.</p><p>But backtests and real markets are not the same thing.</p><p>That gap became impossible to ignore. Edwin realized that while he had the technical tools to model trading ideas, he did not yet have the professional understanding of how markets truly function. He needed more than code and academic experimentation. He needed context, structure, and a proper framework.</p><h2 id="why-he-chose-epat"><strong>Why He Chose EPAT</strong></h2><p>When Edwin began researching programmes, he was clear about what he was not looking for.</p><blockquote>“I also didn't want to join a program that offers to make you rich because I don't think that can be true.”</blockquote><p>He was not interested in shortcuts or exaggerated promises. He wanted to understand how trading works professionally, not as retail speculation dressed up in marketing language.</p><p>That is what made EPAT stand out.</p><p>He found the programme online and was drawn to the way it positioned trading as a professional discipline. For him, the appeal was not just in learning strategies, but in learning how markets operate through an institutional lens.</p><blockquote>“EPAT was a professional path… and I understood that you are not giving a training for trading, but this is for corporate, right? Which is very, very interesting.”</blockquote><p>This distinction mattered deeply to him. It suggested that the programme would go beyond charts and indicators, and into the mechanics of risk, execution, liquidity, infrastructure, and market behavior at scale.</p><blockquote>“This was a completely different world for me… a world that I didn’t know existed.”</blockquote><p>The pricing was competitive compared to alternatives, but that was not the main reason he enrolled. What really convinced him was that the programme did not sell dreams. It offered structure, depth, and seriousness.</p><h2 id="the-epat-experience"><strong>The EPAT Experience</strong></h2><p>For Edwin, the challenge of EPAT was not intellectual difficulty. He could follow the ideas and keep up with the lectures. The real challenge was the sheer breadth of the curriculum.</p><p>In just six months, the programme covered statistics, economics, microeconomics, probabilities, market microstructure, time series analysis, Python, backtesting, risk management, machine learning, reinforcement learning, and NLP.</p><p>It was not any one topic that tested him. It was the volume, the intensity, and the persistence required to keep going while working full-time.</p><p>To prepare for the final exam, Edwin studied from 9 PM until 2 or 3 in the morning for nearly a month.</p><blockquote>“I think you guys are not testing whether someone knows the matter… but whether someone is resilient enough to hold up.”</blockquote><p>That line captures an important truth about the experience. EPAT did not just deepen his knowledge. It demanded consistency, discipline, and commitment.</p><p>And it paid off.</p><p>Somewhere along the way, Edwin began to see markets differently. He started to understand what corporate trading really means, how large participants execute, how liquidity matters, how risk is controlled, and how institutions operate behind the scenes.</p><blockquote>“That was actually very nice… to learn how corporate trading works.”</blockquote><p>One of the biggest shifts came from understanding that market prices are not simply drifting on abstract theory.</p><p>That realization pushed him beyond surface-level indicator thinking. It made him ask deeper questions about structure, liquidity, flows, and regime changes. It brought him closer to the way professional traders and quants think.</p><p>Just as importantly, he felt supported by the faculty guiding him through the process.</p><blockquote>“The teachers are amazing. All five stars teachers.”</blockquote><h2 id="how-epat-changed-his-thinking"><strong>How EPAT Changed His Thinking</strong></h2><p>One of the clearest signs of Edwin’s transformation is how he now reflects on his earlier academic work.</p><p>When asked what he would change about his master’s thesis today, his answer was revealing. He would engineer features differently. He would avoid curve smoothing. He would benchmark more carefully. He would focus on predicting positions rather than prices. He would respect non-stationarity. He would evaluate performance more thoughtfully.</p><p>That is not a small adjustment. It is a complete shift in mindset.</p><p>Before, he was thinking like a skilled data scientist applying AI techniques to market data. After EPAT, he began thinking more like a quant, someone who understands that models must live inside the realities of market structure, execution, and regime change.</p><p>This is where the programme made its deepest impact. It did not just give him more tools. It changed how he framed the problem.</p><h2 id="life-after-epat"><strong>Life After EPAT</strong></h2><p>After completing the programme, Edwin took a short break from the intensity of studying. But he did not stop building.</p><p>Even while continuing in his full-time consulting role, he is steadily working toward a larger goal. His evenings are no longer filled with coursework. They are now focused on designing and refining trading strategies.</p><p>Today, he is building a system based on market structure rather than relying purely on indicators. His process involves identifying regime changes, assessing context, waiting for confirmation, entering trades based on structured hypotheses, and exiting when those hypotheses no longer hold.</p><blockquote>“I’m not predicting prices. I’m looking at the market structure.”</blockquote><p>This is a very different approach from informal retail trading. It is slower, more deliberate, and rooted in validation.</p><p>He is testing across different granularities. He is thinking in terms of context and confirmation. Risk management is part of the system, not something added later. What he is building is not a collection of guesses. It is an engineered process.</p><p>And that might be the best way to describe what changed.</p><p>This is no longer guessing. This is engineering.</p><h2 id="his-long-term-vision"><strong>His Long-Term Vision</strong></h2><p>Edwin is clear about what he wants in the long run.</p><blockquote>“I really would like to trade as a living.”</blockquote><p>While he continues to do well in his professional consulting career, his long-term goal is to transition into trading full-time if his strategies continue to mature and perform consistently.</p><p>For him, trading is not just financially attractive. It is intellectually satisfying.</p><blockquote>“You do work, it’s challenging, and at the end of the day you say okay I have made some bucks… I find it really very nice.”</blockquote><p>He even imagines one day working alongside institutional traders at a professional trading desk. The difference now is that he understands what that world actually looks like. It is no longer a vague ambition. It is a concrete path shaped by structure, knowledge, and experience.</p><p>For Edwin, EPAT replaced guesswork with professional context. It replaced informal experimentation with a disciplined framework. And while his journey is still unfolding, he is now moving forward with far more clarity and confidence.</p><h2 id="frequently-asked-questions"><strong>Frequently Asked Questions</strong></h2><p><strong>Q. Can someone with a technical background still benefit from formal trading education?</strong><br>Yes. Edwin already had deep technical expertise in data engineering and AI, but EPAT helped him develop a professional understanding of markets, execution, risk, and institutional trading dynamics.</p><p><strong>Q. What kind of learner is EPAT suitable for?</strong><br>EPAT is well suited for learners who want more than surface-level trading education. It is especially valuable for those looking for a structured, professional, and rigorous approach to algorithmic and quantitative trading.</p><p><strong>Q. Was the biggest challenge for Edwin the difficulty of the concepts?</strong><br>Not exactly. For Edwin, the challenge was more about the breadth and intensity of the curriculum rather than not being able to understand the concepts themselves.</p><p><strong>Q. How did EPAT change Edwin’s view of trading?</strong><br>It shifted his mindset from casual, indicator-based speculation to structured thinking around market mechanics, liquidity, regime shifts, risk, and validation.</p><p><strong>Q. Is EPAT only useful for people who want to join a trading desk?</strong><br>No. It can also help professionals who want to build their own systematic trading processes independently, as Edwin is doing while continuing his consulting career.</p><p><strong>Q. What is one major takeaway from Edwin’s journey?</strong><br>That trading knowledge is not just about models or code. It is about context, structure, resilience, and learning how markets actually function.</p><h3 id="next-steps">Next Steps</h3><p>If you come from a technical, finance, or non-trading background and want to approach the markets more seriously, Edwin’s story is a strong reminder that skill in one domain does not automatically translate into trading clarity. What often makes the difference is structured learning.A programme like <a href="https://www.quantinsti.com/epat">EPAT</a> can help bridge that gap by combining quantitative methods, market understanding, risk frameworks, and practical implementation in one guided journey.</p><h3 id="schedule-an-epat-counselling-call">Schedule an EPAT counselling call</h3><p>To understand if EPAT is the right choice for you, talk to one of our specialists who have counselled thousands of learners over the past decade and helped them make the right career decision.</p><!--kg-card-begin: html--><div class="calendly-inline-widget" data-url="https://calendly.com/counsellor-1/speak-to-epat-counsellors?month=2025-04&embed_type=Inline&hide_gdpr_banner=1" style="min-width:320px;height:630px;"></div>
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js"></script>
<!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[From Emotion to Execution: How Brian Built a More Disciplined Trading Approach with EPAT]]></title><description><![CDATA[Discover how Brian moved from emotional manual trading to disciplined, systematic strategy building through EPAT, Python, and data-driven thinking.]]></description><link>https://www.quantinsti.com/articles/brian-epat-journey-manual-algorithmic-trading/</link><guid isPermaLink="false">69eb18d074e6f000074e6bb8</guid><category><![CDATA[Learn Algo Trading]]></category><dc:creator><![CDATA[MOHIT KARWAL]]></dc:creator><pubDate>Fri, 24 Apr 2026 11:59:10 GMT</pubDate><content:encoded><![CDATA[<p>By QuantInsti</p><p>Brian’s journey into trading did not begin with algorithms, Python notebooks, or machine learning models. It began in a place that feels familiar to many aspiring traders: curiosity, experimentation, and the hope that markets could offer both flexibility and independence.</p><p>Coming from a background in Economics and Finance, he initially approached the markets through manual trading. He explored long-term investing, buy-and-hold strategies, trend following, and technical indicators like moving averages. On paper, the ideas made sense. In practice, something kept getting in the way.</p><blockquote>“Emotions involved… sometimes you can get too greedy or too fearful and then it really messes with your decisions.”</blockquote><p>That realization became the turning point. What Brian was really searching for was not just a better strategy, but a better way to think, test, and execute.</p><hr><h2 id="why-trading"><strong>Why Trading?</strong></h2><p>Trading appealed to Brian because it felt like one of the few fields where effort, analysis, and independent decision-making could directly shape outcomes. It offered room to think for oneself, adapt quickly, and build something personal over time.</p><p>At first, he explored the markets in a conventional way. Like many new traders, he tested different styles and tried to find what suited him best. But over time, he discovered that knowing a strategy and following a strategy were not the same thing.</p><p>The challenge was not only market direction. It was discipline.</p><p>Manual trading left too much room for second-guessing, hesitation, and impulsive decisions. Even when the setup was clear, emotions often changed the outcome. That gap between theory and execution pushed him to rethink his approach more seriously.</p><hr><h2 id="discovering-algorithmic-trading"><strong>Discovering Algorithmic Trading</strong></h2><p>The real shift came when market conditions changed, especially during crypto bear cycles, where straightforward buy-and-hold approaches stopped delivering the same results. Brian began looking for a framework that could help him stay systematic even when markets became difficult.</p><p>That is when algorithmic trading started to make sense.</p><p>What drew him in was not just automation for the sake of convenience. It was the promise of structure. Rules could be defined in advance. Strategies could be backtested on historical data. Decisions could be evaluated with evidence rather than memory.</p><p>In other words, it gave him a way to move away from reaction and toward repeatability.</p><blockquote>“The idea was compelling because it could remove the emotion part of it and also stick to the trading rule.”</blockquote><p>Compared to manual trading, this felt like an entirely different world. Suddenly, he could test ideas properly, experiment with more complexity, and learn without putting capital at risk immediately.</p><hr><h2 id="why-epat-stood-out"><strong>Why EPAT Stood Out</strong></h2><p>Once Brian knew he wanted to pursue algorithmic trading seriously, he started looking for structured learning options. Much of what he found online felt fragmented. Some resources were useful, but many were limited to pre-recorded videos or occasional webinars without enough depth, support, or continuity.</p><p>EPAT stood out because it felt more complete.</p><p>It was not just the curriculum that made the difference. It was the overall learning environment: multiple experts, live sessions, a cohort-based format, and the ability to ask questions instead of learning passively in isolation.</p><p>For Brian, that support mattered.</p><blockquote>“It felt a lot more holistic… you have a whole company with different experts behind it.”</blockquote><p>He also appreciated that help did not stop when the lecture ended. The accessibility of faculty and support teams made the process feel more guided and less intimidating, especially for someone building a new skill set from the ground up.</p><blockquote>“Very, very good support… compared to other courses where there’s almost no support at all.”</blockquote><p>That combination of structure and responsiveness helped turn what could have been an overwhelming transition into a manageable one.</p><hr><h2 id="from-non-coder-to-builder"><strong>From Non-Coder to Builder</strong></h2><p>Although Brian was confident in his decision, the journey itself was not effortless. Coming from a non-programming background, learning Python was one of the first major hurdles.</p><p>Even with preparatory materials, it took time to become comfortable with writing and understanding code. But the hands-on nature of the programme made a big difference. Instead of only learning concepts in the abstract, he could see them in action.</p><p>Jupyter notebooks, in particular, helped him bridge the gap between theory and practice. They allowed him to run code, make changes, observe outputs, and learn interactively. That immediate feedback loop made the learning process far more tangible.</p><p>As his understanding deepened, so did his mindset.</p><p>Brian began to see strategy development less as guesswork and more as a research process. He started treating strategy testing with the rigor of a repeatable experiment.</p><blockquote>“It should be like a science experiment where you have different trials and you record down… the result.”</blockquote><p>That shift is one of the most meaningful parts of his journey. He was no longer simply trying to find a winning setup. He was learning how to think like a systematic trader and builder.</p><hr><h2 id="life-after-epat"><strong>Life After EPAT</strong></h2><p>For Brian, EPAT was never the finish line. It became the foundation.</p><p>After completing the programme, he continued building on what he had learned rather than stopping at the curriculum. He specialised in machine learning for trading and developed a project using an LSTM neural network. Later, he expanded beyond that, experimenting with other models such as tree-based boosting algorithms and refining how he approached prediction and strategy development.</p><p>This post-EPAT phase is where the deeper transformation became visible.</p><p>Instead of depending on fixed templates or looking for ready-made answers, Brian kept exploring independently. He continued trading primarily on his own, adapting methods, improving systems, and testing ideas with greater confidence and structure.</p><p>That independent momentum is often what separates a course completion story from a real career and mindset shift. In Brian’s case, the learning kept compounding.</p><hr><h2 id="ai-and-the-future-of-trading"><strong>AI and the Future of Trading</strong></h2><p>Brian believes today’s trading environment is more accessible than ever, especially because of advances in AI tools. Tasks that once consumed hours, whether debugging code, searching for technical explanations, or iterating on ideas, can now move much faster.</p><p>But he is equally clear about something important: AI is only as useful as the thinking behind it.</p><p>In his view, structured learning still matters because it teaches traders how to ask better questions, frame problems properly, and evaluate outputs critically. Without that foundation, AI can accelerate confusion just as easily as it can accelerate progress.</p><blockquote>“The quality of the questions or the instruction or the prompts that you give” makes a huge difference.</blockquote><p>That perspective reflects a mature understanding of the modern trading workflow. AI can help with speed, iteration, and support. But domain knowledge, judgment, and systematic thinking still remain essential.</p><p>Looking ahead, Brian expects markets, especially crypto, to keep evolving rapidly. New cycles will create new themes, new inefficiencies, and new opportunities. His goal is not to cling to one fixed approach, but to remain adaptive and continue integrating AI more meaningfully into his workflow.</p><hr><p>Brian’s story is not just about moving from manual trading to algorithmic trading. It is about moving from emotion to process, from uncertainty to experimentation, and from consuming strategies to building them with intent.</p><p>It shows that the most important transformation is often internal. Tools matter. Technology matters. But the real shift happens when a trader begins to think in systems, test with discipline, and learn with patience.</p><p>Even now, Brian’s advice remains simple and timely:</p><blockquote>“It’s a great time to start now… it will make things so much faster and easier.”</blockquote><hr><h2 id="frequently-asked-questions"><strong>Frequently Asked Questions</strong></h2><p><strong>Q. Can someone from a finance or non-coding background learn algorithmic trading?</strong><br>Yes. Brian’s story shows that a non-programming background does not prevent someone from learning algorithmic trading. What matters more is a willingness to build skills step by step and stay consistent through the learning curve.</p><hr><p><strong>Q. Why do many manual traders move toward algorithmic trading?</strong><br>A major reason is discipline. Manual trading often leaves room for emotional decisions, while algorithmic trading helps traders define rules clearly, test them properly, and execute more systematically.</p><hr><p><strong>Q. Is Python difficult for complete beginners?</strong><br>It can feel unfamiliar at first, especially for those without prior coding exposure. But with hands-on practice, guided learning, and tools like notebooks that make experimentation easier, beginners can gradually become comfortable.</p><hr><p><strong>Q. How important is backtesting in the learning process?</strong><br>Backtesting is critical because it helps traders evaluate ideas using historical data before risking capital. It creates a more evidence-based process and encourages structured experimentation instead of relying on assumptions.</p><hr><p><strong>Q. How should beginners think about strategy development?</strong><br>A useful way is to treat it like a research process. Test ideas methodically, record results carefully, compare variations, and focus on learning what actually works rather than chasing shortcuts.</p><hr><p><strong>Q. Does AI reduce the need for structured learning in trading?</strong><br>No. AI can speed up certain tasks, but structured learning remains important because it helps traders understand markets, ask better questions, and use AI tools more effectively.</p><hr><h2 id="next-steps"><strong>Next Steps</strong></h2><p>If you are just getting started with algorithmic trading, begin with the <a href="https://quantra.quantinsti.com/learning-track/guide-quantitative-trading-beginners">Quantitative Trading</a> Free Learning Track. It includes eight beginner-friendly courses covering data basics, trading strategies, and coding for finance. Once you're ready to dive deeper, you can explore Quantra’s <a href="https://quantra.quantinsti.com/learning-track/algorithmic-trading-beginners">Algorithmic Trading for Beginners</a> Learning Track, which offers hands-on, application-focused modules to build your skills step by step.</p><p>For those looking for a comprehensive and guided journey with mentorship, live lectures, and career support, the <a href="https://www.quantinsti.com/epat">Executive Programme in Algorithmic Trading (EPAT)</a> provides a complete foundation for launching or accelerating a career in this field.</p><hr><h3 id="schedule-an-epat-counselling-call">Schedule an EPAT counselling call</h3><p>To understand if EPAT is the right choice for you, talk to one of our specialists who have counselled thousands of learners over the past decade and helped them make the right career decision.</p><!--kg-card-begin: html--><div class="calendly-inline-widget" data-url="https://calendly.com/counsellor-1/speak-to-epat-counsellors?month=2025-04&embed_type=Inline&hide_gdpr_banner=1" style="min-width:320px;height:630px;"></div>
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js"></script>
<!--kg-card-end: html--><p><br></p>]]></content:encoded></item><item><title><![CDATA[Introduction to Support Vector Machines]]></title><description><![CDATA[In this article, we will understand how support vector machines work and its application in trading. We will also go through the maths behind the SVM and the process of using it in a non-linear model.]]></description><link>https://www.quantinsti.com/articles/support-vector-machines-introduction/</link><guid isPermaLink="false">69df427274e6f000074e6b54</guid><category><![CDATA[Learn Algo Trading]]></category><dc:creator><![CDATA[MuniRaja Puthuru]]></dc:creator><pubDate>Fri, 24 Apr 2026 11:20:18 GMT</pubDate><content:encoded><![CDATA[<p>By <a href="https://www.linkedin.com/in/varun-divakar-b862a667/">Varun Divakar</a></p><p>Support Vector Machines were widely used a decade back, but now they have fallen out of favour. The below data from google trends can establish this more clearly.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/10/SVM.png" class="kg-image" alt="Support Vector Machines - Google Trends"></figure><p>(Source: <a href="https://trends.google.com/trends/explore?date=all&amp;q=Support%20vector%20machine">Google Trends</a>)</p><h2 id="why-did-this-happen"><strong>Why did this happen?</strong></h2><p>As more and more advanced models were developed, support vector machines fell out of favour. It takes a lot of time to train a non-linear kernel, say RBF (Radial Basis Function), of a support vector machine. But they have been found to be very effective in text classification problems. Support Vector Machines (SVMs) are also good at solving non-linear problems with a small dataset. This is precisely the reason why I prefer SVMs in trading.</p><h2 id="support-vector-machines-in-trading"><strong>Support Vector Machines in trading</strong></h2><p>When it comes to trading, if you are using daily frequency data, then it is very likely that your data set is extremely limited, probably a few thousand data points. Let us say that you have created a trading strategy using a decision tree to extract a high probability rule from the past data. Now you want to understand how this rule would behave on unseen or test data. Creating an SVC to predict when the rule would be a success or failure would help you eliminate the bad trades. Before you try out the SVMs, first let us understand how they work.</p><h2 id="support-vector-machines"><strong>Support Vector Machines</strong></h2><p>A Support Vector Machine is an approach, usually used for performing classification tasks, that uses a separating hyperplane in multidimensional space to perform a given task. Technically speaking, in a p dimensional space, a hyperplane is a flat subspace with p-1 dimensions. For example, In two-dimensions, a hyperplane is a flat one-dimensional subspace or a line. In three dimensions, a hyperplane is a flat two-dimensional subspace that is, a plane.</p><p>If the dimensionality is greater than 3, it can be hard to visualize a hyperplane, but the notion of a p-1 dimensional space still applies.</p><h2 id="understanding-support-vector-machines-with-an-example"><strong>Understanding Support Vector Machines with an example</strong></h2><p>Now that you have a basic understanding of hyperplane, let us understand the intuition behind the Support Vector Machine. Consider a data set of two different classes, shown in blue and red.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/10/Understanding-Support-Vector-Machines-with-an-example.png" class="kg-image" alt="Understanding Support Vector Machines with an example - Part 1"></figure><p>The data is linearly separable, and there exist multiple separating lines, which are shown in black. All these lines offer a solution, but only one line is optimal and can separate the classes accurately.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/10/Understanding-Support-Vector-Machines-with-an-example-2.png" class="kg-image" alt="Understanding Support Vector Machines with an example - Part 2"></figure><p>For example, If the line is very close to the data points, even a small noise would lead to misclassification. Here is another line that separates the classes, but doesn’t look like a very natural one. So, the question is which is the best line?</p><p>Support Vector Machine chooses an optimal line which maximizes the distance to the nearest points in either class. This distance is called the margin. As you can see in the figure, the margin is the distance from the solid line to either of the dashed lines.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/10/Understanding-Support-Vector-Machines-with-an-example-3.png" class="kg-image" alt="Understanding Support Vector Machines with an example - Part 3"></figure><p></p><p>Our aim is to maximize the margin as large as possible in order to get an optimal line. So, the Support Vector Machine is sometimes called Maximum Margin Classifier. In the figure, there are some blue and red data points on the dashed lines. These points are known as support vectors. It is important to note that the maximum margin line or decision boundary depends only on the support vectors, but not on other data points.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/10/Understanding-Support-Vector-Machines-with-an-example-4.png" class="kg-image" alt="Understanding Support Vector Machines with an example - Part 4"></figure><p>As you can see in the figure, moving the support vectors, also moves the maximum margin line, while moving the other points has no effect. Maximum margin line is only useful when the data is linearly separable, Or in other words, data can be separated by a straight line. In the figure, the data points belong to two classes and are not necessarily separable by a maximum margin line. In fact, if a separating line does exist, it is not optimal, as it misclassifies and has a small margin. So, what approach should we implement when the data is non-linear?</p><p>In that case, we consider enlarging the feature space, such as quadratic, cubic, or even higher-order polynomial, to address this non-linearity. We can enlarge the feature space in a specific way, by using a function which is known as ‘Kernel’. Let us understand kernel is and some of the mathematics behind support vector machines.</p><h2 id="mathematics-of-support-vector-machines"><strong>Mathematics of support vector machines</strong></h2><p>The key points for you to understand about support vector machines are:</p><ol><li>Support vector machines find a hyperplane (that classifies data) by maximizing the distance between the plane and nearest input data points (called support vectors).</li><li>This is done by minimizing the weight vector ‘w’ which is used to define the hyperplane.</li><li>Step 2 relies on optimization theory and certain assumptions (which are detailed out below).</li></ol><h3 id="maximising-the-distance-between-hyperplane-and-support-vectors"><strong>Maximising the distance between hyperplane and support vectors</strong></h3><p>For simplicity, consider the linearly separable data points that belong to either class C<sub>1</sub> or class C<sub>2</sub> with no misclassification for any data points.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/10/Maximising-the-distance-between-hyperplane-and-support-vectors.png" class="kg-image" alt="Maximising the distance between hyperplane and support vectors - Part 1"></figure><p></p><p>For an unknown input data x, we define a linear discriminate function.</p><p>y = f(x) = w. x + b</p><p>where w is the weight vector which is perpendicular to the hyperplane.</p><p>b is the bias term</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/10/equation.png" class="kg-image" alt="equation - 1"></figure><p>...(1)</p><p>Let all input points be represented by x<sub>1</sub>, …, x<sub>p</sub> and their corresponding class be represented by y<sub>1</sub>, …, y<sub>p</sub>. So, if x<sub>i</sub> belongs to class c<sub>1</sub>, then corresponding y<sub>i</sub> is equal to +1 and if x<sub>i</sub>i belongs to class c<sub>2</sub>, then corresponding y<sub>i</sub> is equal to -1.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/10/equation-2.png" class="kg-image" alt="equation - 2"></figure><p>... (2)</p><p>Earlier, we assume that data points belonging to two classes are linearly separable. Then it is possible to select two hyperplanes in a way that there are no points between them and then try to maximize the distance between the two hyperplanes. Such type of Support Vector Machine is known as Hard Margin SVM.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/10/Maximising-the-distance-between-hyperplane-and-support-vectors-2.png" class="kg-image" alt="Maximising the distance between hyperplane and support vectors - Part 2"></figure><p>The two hyperplanes can be best represented by the equation</p><p>H1 : w.x<sub>i</sub> + b = -1 ... (3)</p><p>H2 : w.x<sub>i</sub> + b = 1 ... (4)</p><p>Suppose x<sub>1</sub> and x<sub>2</sub> be the two closest points on each side of the hyperplane. Then, the equations for the hyperplanes H1 and H2 become:</p><p>w.x<sub>1</sub> + b = -1 ... (5)</p><p>w.x<sub>2</sub> + b = +1 ... (6)</p><p>By differencing the equation (5) and equation (6) we get,</p><p>w (x<sub>1</sub> - x<sub>2</sub> ) = 2 ... (7)</p><p>Dividing both sides of the equation (7) by the magnitude of the ‘w’ we get,</p><p>w (x<sub>1</sub> - x<sub>2</sub> ) / ||w|| = 2 / ||w|| ... (8)</p><p>As we know, when we divide a vector with its magnitude, we get a unit vector. And the magnitude of the unit vector is 1. So, our equation becomes:</p><p>(x<sub>1</sub> - x<sub>2</sub> ) = 2 / ||w|| ... (9)</p><p>(x<sub>1</sub> - x<sub>2</sub> ) is the distance between the two hyperplanes. So, the distance which we are going to maximize is 2 / ||w||. To maximize 2 / ||w|| is to minimize ||w|| and in order to prevent the data points falling into the margin, we add the following constraints.</p><p>Minimize 2 / ||w|| ... (10)</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/11/eq10.PNG" class="kg-image" alt="Equation - 2"></figure><p>Multiplying both equations by their corresponding y<sub>i</sub> they are transformed into just one equation</p><p>y<sub>i</sub> (w. x<sub>i</sub> + b)≥1 &amp;nbsp ∀i ∈ {1,…,N}</p><p>The above optimization problem is difficult to solve but it is possible to alter the equation substituting 2/ ||w|| by ½ ||w||2 without changing the solution. The problem now belongs to the quadratic programming (QP) optimization that is easier to be computed.</p><p>Minimize ½ ||w||<sup>2</sup> ... (11)</p><p>Such that y<sub>i</sub> (w. x<sub>i</sub> + b)≥1, &amp;nbsp ∀i ∈ {1,…,N}</p><p>This is the quadratic optimization problem or primal form. This primal problem can be converted into another optimization problem i.e. dual problem with the help of Lagrangian multiplier.</p><p>Dual optimization equation with lagrangian multiplier is given below:</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/11/eq12.PNG" class="kg-image" alt="Dual optimization equation"></figure><p>Subject to α<sub>i</sub>&gt;=0 ∀i ∈ {1,…,N}</p><p>where αi is a Lagrangian multiplier</p><p>By multiplying the components in the bracket of the equation (12):</p><figure class="kg-card kg-image-card kg-width-full kg-card-hascaption"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/11/12a-1.PNG" class="kg-image"><figcaption>Equation - 12</figcaption></figure><p>Setting the derivative of L w.r.t w and b individually to 0:</p><p>∂L/∂b = - Σ αi y<sub>i</sub> = 0</p><p>⇒ Σαi y<sub>i</sub> = 0 ... (13)</p><p>∂L/∂w = w - Σ αi y<sub>i</sub> x<sub>i</sub> = 0</p><p>⇒ w = Σ αi y<sub>i</sub> x<sub>i</sub>i ... (14)</p><p>Substituting the values of equation (13) and (14) in L we get,</p><p>L = ½ Σ Σαi αj y<sub>i</sub> y<sub>j</sub>( x<sub>i</sub>.x<sub>j</sub>) - ΣΣαi αj y<sub>i</sub> y<sub>j</sub>(x<sub>i</sub>.x<sub>j</sub>) + Σ αi</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/11/14a.PNG" class="kg-image" alt="Equation - 13"></figure><p>Here, Our aim is to maximize the dual optimization problem for different values of lagrangian multiplier i.e. α.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/11/14b.PNG" class="kg-image" alt="dual optimization problem equation"></figure><p>One Important thing to note is that if the Lagrangian multiplier i.e αi = 0 then the data points are not support vectors. So, only for αi &gt; 0, x<sub>i</sub> are support vectors (SV).</p><h2 id="soft-margin-classifier"><strong>Soft Margin Classifier</strong></h2><p>The above optimization problem is only useful when the data points are classified correctly meaning there are no points between the margin. Sometimes high noise in the data causes overlap of the classes as shown in the figure.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/10/Soft-Margin-Classifier.png" class="kg-image" alt="Soft Margin Classifier"></figure><p>In such cases, we can do the classification task by using Soft Margin SVM.</p><p>A soft-margin SVM provides freedom to the model to misclassify some data points by minimizing the number of such samples. Soft-margin SVM allows for the possibility of violating the constraints</p><p>y<sub>i</sub> (w.x<sub>i</sub> + b)≥1 ∀i ∈ {1,…,N}</p><p>by introducing slack variable ξi</p><p>y<sub>i</sub> (w.x<sub>i</sub> + b)≥1 - ξi ξi ≥0 ∀i ∈ {1,…,N}</p><p>Now, our goal is to maximize the margin by keeping the ξi as small as possible.</p><p>Our Primal or quadratic optimization problem after introducing slack variable:</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/11/primal.PNG" class="kg-image" alt="Primal or quadratic optimization problem"></figure><p>Here, C is a regularization parameter (trade-off between classification and error). Transforming to the lagrangian dual problem we obtain:</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/11/lagrangian.PNG" class="kg-image" alt="lagrangian dual problem"></figure><p>Here, μ<sub>i</sub> are the new lagrangian multipliers.</p><p>After taking partial derivative of L w.r.t w and b separately to 0. Our dual optimization problem becomes:</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/11/Dual_optimisation.PNG" class="kg-image" alt="dual optimization problem equation"></figure><p></p><p>This is very similar to the hard margin case, except the value of α<sub>i</sub> lies between 0 and C.</p><h2 id="non-linear-model"><strong>Non-linear Model</strong></h2><p>What we learnt till now is only applicable when the data is linearly separable. When the data is non-separable these optimization problems are not feasible. Such a problem can be solved by enlarging the feature space through a function known as the kernel.</p><p>Mathematically, a kernel is some function that corresponds to an inner product in some expanded feature space. If every data point is mapped into high-dimensional space via some transformation Φ: x → φ(x), then the kernel function is defined as:</p><p>K(x<sub>i</sub> ,xj )= φ(x<sub>i</sub> ). φ(xj)</p><p>We can modify our optimization problem by introducing kernel function as:</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2019/11/optimising_function.PNG" class="kg-image"></figure><p>(Source: <a href="https://en.wikipedia.org/wiki/Support-vector_machine">Wikipedia</a>)</p><p>Thus, we have seen the intricacies of the Support Vector Machines along with its applications as a non-linear model. We have also understood what it means by a Soft Margin Classifier and how it overcomes the optimisation problem in the support vector machines model.</p><p>In the next section, I will show you how to implement a <a href="https://quantra.quantinsti.com/course/introduction-to-machine-learning-for-trading" rel="noopener">machine learning based trading strategy</a> using the regime predictions made in an earlier <a href="https://blog.quantinsti.com/trading-using-machine-learning-python-part-2/" rel="noopener noreferrer">blog</a>.</p><p>There is one thing that you should keep in mind before you read this section though: The algorithm is just for demonstration and should not be used for real trading without proper optimization.</p><h2 id="trading-using-support-vector-machines-in-python"><strong>Trading using Support Vector Machines in Python</strong></h2><p>Let me begin by explaining the agenda here:</p><ol><li>Create an unsupervised ML ( machine learning) algorithm to predict the regimes.</li><li>Plot these regimes to visualize them.</li><li>Train a Support Vector Classifier algorithm with the regime as one of the features.</li><li>Use this Support Vector Classifier algorithm to predict the current day’s trend at the Opening of the market.</li><li>Visualize the performance of this strategy on the test data.</li><li>Downloadable code for your benefit</li></ol><p>Import the Libraries and the Data:</p><p>First, I imported the necessary libraries. Please note that I have imported fix<em><em>yahoo</em></em>finance package, so I am able to pull data from yahoo. If you do not have this package, I suggest you <a href="https://pypi.python.org/pypi/fix-yahoo-finance" rel="noopener noreferrer">install </a>it first or change your data source to google.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/Import-the-Libraries-and-the-Data.jpg" class="kg-image" alt="Import the Libraries and the Data"></figure><p>Next, I pulled the data of the same quote, ‘SPY’, which we used in the previous blog and saved it as a dataframe df. I chose the time period for this data to be from the year 2000.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/Yahoo-trading-data.jpg" class="kg-image" alt="Yahoo trading data"></figure><p>After this, I created indicators that can be used as features for training the algorithm.</p><p>But, before doing that I decided on the look back time period for these indicators. I chose a look back period of 10 days. You may try any other number that suits you. I chose 10 to check for the past 2 weeks of trading data and to avoid noise inherent in smaller look back periods.</p><p>Apart from the look back period let us also decide the test train split of the data. I prefer to give 80% data for training and remaining 20% data for testing. You can change this as per your need.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/data-indicators.jpg" class="kg-image" alt="data indicators"></figure><p>Next, I shifted the High, Low and Close columns by 1, to access only the past data. After this, I created various technical indicators such as, RSI, SMA, ADX, Correlation, Parabolic SAR, and the Return of the past 1- day on an Open to Open basis.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/technical-indicators.jpg" class="kg-image" alt="technical indicators"></figure><p>Next, I printed the data frame.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/printed-data-frame.jpg" class="kg-image" alt="printed data frame"></figure><p>And it looked like this:</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/printed-data-frame-command-output.jpg" class="kg-image" alt="printed data frame command output"></figure><p>As you can see, there are many NaN values. We need to either impute them or drop them. If you are new to the machine learning and want to learn about the imputer function, read <a href="https://scikit-learn.org/0.19/modules/generated/sklearn.preprocessing.Imputer.html" rel="noopener noreferrer">this</a>. I dropped the NaN values in this algorithm.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/NaN-values-in-the-algorithm.jpg" class="kg-image" alt="NaN values in the algorithm"></figure><p>In the next part of the code, I instantiated a StandardScaler function and created an unsupervised learning algorithm to make the regime prediction. I have discussed this in my previous blog, so I will not be going into these details again. Explore the '<a href="https://quantra.quantinsti.com/course/unsupervised-learning-trading">Unsupervised Learning Course</a>' from Quantra.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2020/03/svm-code.png" class="kg-image" alt="unsupervised learning algorithm"></figure><p>Towards the end of the last blog, I printed the Mean and Covariance values for all the regimes and plotted the regimes. The new output with indicators as feature set would look like this:</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/Mean-and-Covariance-values-for-the-regimes.jpg" class="kg-image" alt="Mean and Covariance values for the regimes"></figure><p>Next, I scaled the Regimes data frame, excluding the Date and Regimes columns, created in the earlier piece of code and saved it back in the same columns. By doing so, I will not be losing any features but the data will be scaled and ready for training the support vector classifier algorithm. Next, I created a signal column which would act as the prediction values. The algorithm would train on the features’ set to predict this signal.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/signal-column-to-act-as-the-prediction-values.jpg" class="kg-image" alt="signal column to act as the prediction values"></figure><p>Next, I instantiated a support vector classifier. For this, I used the same <a href="http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html" rel="noopener noreferrer">SVC </a> model used in the example by <a href="https://blog.quantinsti.com/scikit-learn-tutorial/" rel="noopener">sklearn</a>. I have not optimized this support vector classifier for best hyper parameters. In the <a href="https://quantra.quantinsti.com/course/trading-with-machine-learning-regression" rel="noopener noreferrer">machine learning course </a>on Quantra®, we have extensively discussed how to use hyper parameters and optimize the algorithm to predict the daily Highs and Lows, in turn the volatility of the day.</p><p>Coming back to the blog, the code for support vector classifier is as below:</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/support-vector-classifier.jpg" class="kg-image" alt="support vector classifier"></figure><p>Next, I split the test data of the unsupervised regime algorithm into train and test data. We use this new train data to train our <a href="https://quantra.quantinsti.com/course/trading-machine-learning-classification-svm">support vector</a> classifier algorithm. To create the train data I dropped the columns that are not a part of the feature set:</p><p>'Signal','Return','market<em><em>cu</em></em>return','Date'</p><p>Then I fit the X and y data sets to the algorithm to train it on.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/X-and-y-data-sets.jpg" class="kg-image" alt="X and y data sets"></figure><p>Next, I calculated the test set size and indexed the predictions accordingly to the data frame df.</p><p>The reason for doing this is that the original return values of ‘SPY’ are stored in df, while those in Regimes is scaled hence, won’t be useful for taking a cumulative sum to check for the performance.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/test-set-size.jpg" class="kg-image" alt="test set size"></figure><p>Next, I saved the predictions made by the SVC in a column named Pred_Signal.</p><p>Then, based on these signals I calculated the returns of the strategy by multiplying signal at the beginning of the day with the return at the opening ( because our returns are from open to open) of the next day.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/saving-the-predictions-made-by-the-SVC.jpg" class="kg-image" alt="saving the predictions made by the SVC"></figure><p>Finally, I calculated the cumulative strategy returns and the cumulative market returns and saved them in df. Then, I calculated the sharpe ratio to measure the performance. To get a clear understanding of this metric I plotted the performance to measure it.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/calculating-the-cumulative-strategy-returns-and-the-cumulative-market-returns.jpg" class="kg-image" alt="calculating the cumulative strategy returns and the cumulative market returns"></figure><p>The final result looks like this.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/calculated-the-cumulative-strategy-returns.jpg" class="kg-image" alt="calculated the cumulative strategy returns"></figure><p>After so much of code and effort, if the end result looks like this, then someone with no machine learning back ground would say that it is not worth it. I would agree for now. But, look at this line of code:</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/Python-code.jpg" class="kg-image" alt="Python code"></figure><p>I just changed the data from SPY to IBM. Then the result looks like this:</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/data-from-IBM.jpg" class="kg-image" alt="data from IBM"></figure><p>I know what you are thinking: I am just fitting the data to get the results. Which is not entirely wrong. I will show you another stock then you decide.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/stock-timeline-command.jpg" class="kg-image" alt="stock timeline command"></figure><p>I changed the stock to Freeport-McMoRan Inc and the result looks like this:</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/Freeport-McMoRan-Inc-stock.jpg" class="kg-image" alt="Freeport-McMoRan Inc stock"></figure><p>You can further change it to GE or something else and check for yourself. This strategy works on some stocks but doesn’t work on others, which is the case with most quant strategies. There are a few reasons why the algorithm did work consistently and I will list some of them here.</p><ol><li>No autocorrelation of returns</li><li>No Support Vector hyper parameter optimization</li><li>No error propagation</li><li>No feature selection</li></ol><p>We have not checked for autocorrelation of the returns, which would have increased the predictability of the algorithm. Try that on your own by shifting the returns column by 1 and passing it as feature set. The result would look like this:</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2017/08/stock-graph.jpg" class="kg-image" alt="stock graph"></figure><p>Although the improvement from 3.4 to 3.49 is not much, it is still a good feature to have.</p><p>Please note that the code will best run with Python 2.7</p><p><strong>Update</strong></p><p><em><em>We have noticed that some users are facing challenges while downloading the market data from Yahoo and Google Finance platforms. In case you are looking for an alternative source for market data, you can use Quandl for the same.</em></em></p><h3 id="download-data-files"><strong><strong>Download Data Files</strong></strong></h3><ul><li>Python_3</li></ul><!--kg-card-begin: html--><p><a href="https://www.quantinsti.com/articles/support-vector-machines-introduction" class="download-button button"> Visit blog to download </a></p><!--kg-card-end: html--><h3 id="conclusion">Conclusion</h3><p>Thus, not only have we seen the mathematics behind the Support Vector Machine, but we have also understood how to build a trading strategy using SVM in Python.</p><p>If you want to learn how to use Support vector machines on financial markets data and create your own prediction algorithm, you can enroll for the <a href="https://quantra.quantinsti.com/course/trading-machine-learning-classification-svm">Trading with Machine Learning: Classification and SVM course</a> which covers classification algorithms, performance measures in machine learning, hyper-parameters and building of supervised classifiers.</p><p>If you want to learn various aspects of Algorithmic trading then check out our <a href="https://www.quantinsti.com/">Executive Programme in Algorithmic Trading</a> (EPAT®). The course covers training modules like Statistics &amp; Econometrics, Financial Computing &amp; Technology, and Algorithmic &amp; Quantitative Trading. EPAT® is designed to equip you with the right skill sets to be a successful trader. Enroll now!</p><!--kg-card-begin: html--><div class="calendly-inline-widget" data-url="https://calendly.com/counsellor-1/speak-to-epat-counsellors?month=2025-04&embed_type=Inline&hide_gdpr_banner=1" style="min-width:320px;height:630px;"></div>
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js"></script><!--kg-card-end: html--><!--kg-card-begin: html--><p><em>Disclaimer: All data and information provided in this article are for informational purposes only. QuantInsti&reg; makes no representations as to accuracy, completeness, currentness, suitability, or validity of any information in this article and will not be liable for any errors, omissions, or delays in this information or any losses, injuries, or damages arising from its display or use. All information is provided on an as-is basis.</em></p><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[An Introduction to Unsupervised Learning for Trading]]></title><description><![CDATA[Learn about the basics of unsupervised learning algorithms and their use cases in Finance/Investment/Trading with examples in Python.]]></description><link>https://www.quantinsti.com/articles/unsupervised-learning/</link><guid isPermaLink="false">69df440e74e6f000074e6b76</guid><category><![CDATA[Learn Algo Trading]]></category><dc:creator><![CDATA[MuniRaja Puthuru]]></dc:creator><pubDate>Fri, 24 Apr 2026 09:34:55 GMT</pubDate><content:encoded><![CDATA[<p>By <a href="https://www.linkedin.com/in/ashutosh-dave-frm-2112551a/">Ashutosh Dave</a></p><p>In the previous blogs, we examined supervised learning algorithms like linear regression in detail. In this blog, we look at what unsupervised learning is and how it differs from supervised learning.</p><p>Then, we move on to discuss some use cases of unsupervised learning in investment and trading. We explore two unsupervised techniques in particular- k-means clustering and PCA with examples in Python.</p><h2 id="what-is-unsupervised-learning">What is unsupervised learning?</h2><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2021/06/apple-pic.png" class="kg-image" alt="Apple"></figure><p>As the name suggests, 'unsupervised' learning takes place when there is no supervisor or teacher and the learner learns on her own.</p><p>For instance, consider a child who sees and tastes an apple for the very first time. She registers the colour, the texture, the taste and the smell of the fruit. The next time she sees an apple, she knows that both this and the previous apple are similar objects as they have very similar characteristics.</p><p>She knows that this is very different from an orange. But still, she does not know what it is called in human-speak, i.e. an 'apple' as there is no knowledge of the label.</p><p>Such learning where the labels do not exist (in the absence of a teacher) but the learner can still learn about patterns on her own is referred to as unsupervised learning.</p><p>In the context of machine learning algorithms, unsupervised learning occurs when an algorithm learns from plain examples without any associated response and determines the data patterns on its own.</p><p>In the next section, we will discuss how this type of learning differs from the other type of popular learning algorithms in machine learning, i.e. supervised learning algorithms.</p><p><a href="https://quantra.quantinsti.com/course/introduction-to-machine-learning-for-trading">Artificial intelligence in trading</a> leverages unsupervised learning to identify hidden patterns and trends within market data, enabling traders to uncover insights that may not be apparent through traditional analysis. This approach enhances the ability to develop adaptive trading strategies based on real-time market behavior.</p><h2 id="supervised-vs-unsupervised-learning">Supervised vs unsupervised learning</h2><p>Learning in supervised learning, as the name suggests, occurs under supervision, i.e., when the algorithm predicts a value for a sample from the training data, it is told whether the prediction was correct or not.</p><p>This is possible as we have the correct values stored as 'labels'/'target variable', which are passed to the algorithm along with the input data. Common supervised learning tasks are those of classification and <a href="https://quantra.quantinsti.com/course/trading-with-machine-learning-regression">regression</a>.</p><p>In classification tasks, the labels are the correct class to which the sample belongs, whereas, in regression, the actual value of the dependent variable(Y) serves as a benchmark for comparing the prediction. The algorithm can then tweak its parameters to achieve higher accuracy in prediction.</p><p>Thus, the main goal of supervised learning is to build a robust predictive model.</p><p>On the other hand, in unsupervised learning, we only pass the input data, and there are no labels. Unsupervised models seek to find the underlying or hidden structure or distribution in the data in order to learn more about the data.</p><p>In other words, unsupervised learning is where we only have input data and no corresponding output variables, and the main goal is to learn more or discover new insights from the input data itself.</p><p>A common example of unsupervised algorithms are the clustering algorithms, that group the data based on the patterns that the machine detects.</p><p>For example, let us consider a situation in which we have a few data points based on two input features X1 and X2.</p><ul><li>If we want our algorithm to classify/categorize the data into two known classes, we will use a supervised <a href="https://quantra.quantinsti.com/course/trading-machine-learning-classification-svm">classification algorithm</a>.</li><li>On the other hand, if we want the algorithm to tell us how the data is structured, we would use an unsupervised clustering algorithm.</li></ul><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2021/06/supervised-versus-unsupervised-learning.png" class="kg-image" alt="supervised versus unsupervised learning"></figure><h2 id="when-do-we-use-unsupervised-algorithms">When do we use unsupervised algorithms?</h2><p>Unsupervised learning is utilized under the following conditions:</p><ul><li>We do not have the output/target data.</li><li>We don’t exactly know what we are looking for and want the machine to discover patterns/insights in the data. The insights discovered by the machine can then be used to solve various challenges.</li><li>We want to filter out only essential information(which has a lower dimension compared to original data) from the data and just use it to train a supervised learning model.</li></ul><p>In the next two sections, we will look at two popular unsupervised algorithms, namely clustering and dimensionality reduction, which help us in these situations.</p><h2 id="clustering-algorithms">Clustering Algorithms</h2><h3 id="concept-of-clustering">Concept of Clustering</h3><p>Clustering is one of the most popular tasks in the domain of unsupervised learning. Here, the fundamental assumption is that the data points that are similar tend to belong to similar groups (called clusters), as determined by their distance from local centroids.</p><p>So rather than defining groups before looking at the data, clustering allows us to find and analyze the groups that have formed organically, i.e., based on the data itself.</p><p>There are different clustering algorithms such as K-means clustering, <a href="https://blog.quantinsti.com/hierarchical-clustering-python/">Hierarchical clustering</a>, DBSCAN, OPTICS etc., which group the data according to their own definitions of similarity between the data points.</p><p>In the next subsection, we will look at an example of K-means clustering which is a widely used clustering algorithm. It creates 'K' similar clusters of data points.</p><h3 id="k-means-clustering-algorithm">K-means Clustering algorithm</h3><p>K-means clustering is used when we have unlabeled data, i.e., data without defined categories or groups). This algorithm finds groups/clusters in the data, with the number of groups represented by the variable 'k'(hence the name).</p><p>The algorithm works iteratively to assign each observation to one of the k groups based on the similarity in provided features.<br><br>The inputs to the K-means algorithm are the data/features(Xis) and the value of 'K'(number of clusters to be formed).<br><br>The steps can be summarized as:</p><ul><li>The algorithm starts with randomly choosing 'K' data points as 'centroids', where each centroid defines a cluster.</li><li>In this step, each data point is assigned to a cluster defined by a centroid such that the distance between that data point and the cluster's centroid is minimum.</li><li>In this step, the centroids are recalculated by taking the mean of all data points that were assigned to that cluster in the previous step.</li></ul><p>The algorithm iterates between steps (ii) and (iii) until a stopping criterion is met, such as a pre-defined maximum number of iterations are reached or datapoints stop changing clusters.</p><h3 id="example-of-k-means-clustering-for-trading-or-investing-with-code-in-python">Example of K-means clustering for trading or investing with code in Python</h3><p>Often, traders and investors want to group stocks based on similarities in certain features.</p><p>For example, a trader who wishes to trade a pair-trading strategy where she simultaneously takes a long and shorts position in two similar stocks would ideally want to scan through all the stocks and find those which are similar to each other in terms of industry, sector, market- capitalization, volatility or any other features.<br><br>Now consider a scenario where a trader whats to group/cluster stocks of 12 American companies based on two features:</p><ul><li>Return on equity (ROE) = Net Income/Total shareholder's equity, and</li><li>The beta of the stock</li></ul><p>Investors and traders use ROE to measure the profitability of a company in relation to the stockholders' equity. A high ROE is, of course, preferred to invest in a company. Beta, on the other hand, represents stock's volatility in relation to the overall market(represented by the index such as S&amp;P 500 or DJIA).</p><p>Going through each and every stock manually and then forming groups is a tedious and time-consuming process. Instead, one could use a clustering algorithm such as the k-means clustering algorithm to group/cluster stocks based on a given set of features.<br><br>Below, we implement a K-means algorithm for clustering these stocks in Python. We start with importing the necessary libraries and fetching the required data using the following commands:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/08cab0e643e283b28228aa84125b9e9d.js"></script><!--kg-card-end: html--><!--kg-card-begin: html--><pre>Downloaded: ADBE
Downloaded: AEP
Downloaded: CSCO
Downloaded: EXC
Downloaded: FB
Downloaded: GOOGL
Downloaded: INTC
Downloaded: LNT
Downloaded: MSFT
Downloaded: STLD
Downloaded: TMUS
Downloaded: XEL</pre><!--kg-card-end: html--><p>As seen below, data for all the 14 tickers was fetched and as a result the bad_tickers list is empty:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/b887c03bd82a6403365b11be61b9ad84.js"></script><!--kg-card-end: html--><!--kg-card-begin: html--><pre>[]</pre><!--kg-card-end: html--><p>Let us now take a peek at our data:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/d646fc75638994fe468dc008d259bb79.js"></script><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2021/06/roe-beta.PNG" class="kg-image" alt="roe beta"></figure><p>As seen above we have downloaded the data for the 12 stocks successfully.<br><br>We will now create a copy(df) of the original data and work with it. The first step is to preprocess the data so that it can be fed to a k-means clustering algorithm. This involves converting the data in a NumPy array format and scaling it.</p><p>Scaling amounts to subtracting the column mean and dividing by the column standard deviation from each data point in that column.</p><p>For scaling, we use the StandardScaler class of scikit-learn library as follows:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/fb09ee3f8746c473aa909421ba1904cf.js"></script><!--kg-card-end: html--><!--kg-card-begin: html--><pre>[[ 1.48101786  0.53827712]
 [-1.02433415 -1.29230095]
 [ 0.25330094  0.40752155]
 [-1.25368786 -0.82158087]
 [ 0.58249097  1.45356616]
 [-0.36055752  0.72133493]
 [ 0.79700415 -0.37701191]
 [-0.93933836 -1.08309203]
 [ 1.80211305  0.11985928]
 [ 0.46916325  1.92428624]
 [-0.7733942  -0.42931414]
 [-1.03377812 -1.16154537]]</pre><!--kg-card-end: html--><p>The next step is to import the 'KMeans' class from scikit learn and fit a model with the value of hyperparameter 'K' (which is called n_clusters in scikit learn) set to 2(randomly chosen) to which we fit our preprocessed data 'df_values':</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/cc6d97373a882c182ff2e84a65f56876.js"></script><!--kg-card-end: html--><p>That's it! 'km_model' is now trained and we can extract the cluster it has assigned to each stock as follows:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/3c963bb97e9cc267ce15cf5abf4678bb.js"></script><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2021/06/roe-cluster.PNG" class="kg-image" alt="roe cluster"></figure><p>Now that we have the assigned clusters, we will visualize them using the matplotlib and seaborn libraries as follows:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/74c783bb3c534b572143fe370f35c908.js"></script><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2021/06/visualisation-of-clusters-graph-1.PNG" class="kg-image" alt="visualization of clusters graph"></figure><p>We can clearly see the difference between the two clusters which the K-means algorithm has assigned to the data points. Cluster 1 largely consists of all the public utility companies which have a low ROE and low beta compared to high growth tech companies in Cluster 0.<br><br>Although we did not tell the K-means algorithm about the industry sectors to which the stocks belonged, it was able to discover that structure in the data itself. Therein lies the power and appeal of unsupervised learning.<br><br><em>The next question that arises is how to decide the value of hyperparameter K before fitting the model?</em></p><p>We passed the value of hyperparameter K = 2 on a random basis while fitting the model. One of the ways of doing this is to check the model's 'inertia', which represents the distance of points in a cluster from its centroid.</p><p>As more and more clusters are added, the inertia keeps on decreasing, creating what is called an 'elbow curve'. We select the value of k beyond which we do not see much benefit (i.e., decrement) in the value of inertia.<br><br>Below we plot the inertia values for K-mean models with different values of 'K':</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/592bbbbe14f7c43b592cc32a12ce2f44.js"></script><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2021/06/inertia-value-graph.PNG" class="kg-image" alt="inertia value graph"></figure><p>As we can see that the inertia value shows marginal decrement after k= 3, a k-means model with k=3(three clusters) is the most suitable for this task.</p><h2 id="dimensionality-reduction"><strong><strong>Dimensionality reduction</strong></strong></h2><h3 id="concept-of-dimensionality-reduction"><strong><strong>Concept of dimensionality reduction</strong></strong></h3><p>The curse of dimensionality is a common issue faced by data scientists and quants, which means that using too many features can unnecessarily increase storage space and processing time for ML models. Thus, we always seek to get a useful representation of data in a lower dimension without losing too much information.</p><p>This is achieved by using dimensionality reduction techniques, which is another popular use case of unsupervised learning.</p><p>Dimensionality reduction will result in high performance in terms of speed and memory usage at the cost of losing some information. We need to make sure that the benefits outweigh the costs of losing that information.</p><p>In the next section, we look at PCA, which is the most popular unsupervised dimensionality reduction technique.</p><h3 id="principal-component-analysis"><strong><strong>Principal </strong>C<strong>omponent </strong>A<strong>nalysis</strong></strong></h3><p>One intuitive way of reducing the dimensions of data is to project the data points on to a lower subspace as shown in the diagram below, where we project points from a 3-D space (three features x1, x2 and x3) down to a 2-D subspace(just x1 and x2):</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2021/06/reducing-dimension-from-3d-to-2d.png" class="kg-image" alt="reducing dimension from 3d to 2d"></figure><p>Principal Component Analysis (PCA) makes use of the same approach; however, in PCA, we find new coordinates which explain the maximum variation in the data. This is achieved by:</p><ul><li>first mean centring the data, i.e., making the mean of each column 0 and then</li><li>finding the eigendecomposition of the <a href="https://blog.quantinsti.com/calculating-covariance-matrix-portfolio-variance/">covariance matrix</a>(C) of the mean-centred variables. The eigendecomposition of a square matrix(covariance matrices are always square matrices) is given by:</li></ul><!--kg-card-begin: html--><p style="text-align:center"><strong>C = V.Λ.V<sup>T</sup></strong></p><!--kg-card-end: html--><p>Here 'V' represents the matrix containing the eigenvectors (of covariance matrix C), which represent our new coordinates or principal components, and Λ is a diagonal matrix containing the eigenvalues of C.</p><p>Each diagonal value in Λ is an eigenvalue that represents the variance explained by the corresponding principal component. This procedure ensures that resulting new coordinates/features/principal components are designed to capture maximum variation in the data and are orthogonal (perpendicular) to each other (i.e., our new features are uncorrelated with each other).</p><p>The next step is where we choose the top few principal components (which explain the maximum variation successively) based on a pre-decided cut-off.</p><p>For example, if we have five features, to begin with, we will end up with five principal components as well, but we decide to keep only the first three as they explain 90% of the variation in the data. This effectively means that we have reduced the dimension of our feature space from 5 to 3 without losing much information.</p><p>In the next subsection, we look at an example of implementing PCA in trading.</p><h3 id="example-of-pca-in-trading-or-investing-with-code-in-python">Example of PCA in trading or investing with code in Python</h3><p>Suppose Jim, a quant researcher working in a prop trading firm, is looking to develop a supervised ML model that predicts the direction of the overall market. He decides to use the past day returns of a basket of 7 tech stocks (assume they are the same stocks that were part of cluster 0 in the previous example) as features for the model.</p><p>To be more efficient with resources, Jim wants to reduce the dimensions of his feature space before he feeds the features to his supervised model.</p><p><em>What can help him here to quickly explore the possibility of reducing dimensions of data at hand?<br></em><strong>Yes, you are right, it's PCA!</strong></p><p>Below we showcase how Jim can go about conducting PCA using the scikit learn package in Python.</p><p>But first, we import the necessary libraries and fetch the data as follows:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/57b140f90ed09e9fd455c519e07adc67.js"></script><!--kg-card-end: html--><!--kg-card-begin: html--><pre>['ADBE', 'CSCO', 'FB', 'GOOGL', 'INTC', 'MSFT', 'STLD']</pre><!--kg-card-end: html--><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/01eab586de3461dac003e84a5865eb0c.js"></script><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2021/06/read-and-fetch-data.PNG" class="kg-image" alt="read and fetch data"></figure><p>Below, we plot the cumulative returns of the stocks to gauge the the performance as well as variation in the data:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/b401a74cabb53a1a833eedc2c4a16fe4.js"></script><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2021/06/performance-of-tech-stocks.PNG" class="kg-image" alt="performance of tech stocks"></figure><p>The first step in PCA is to mean-centre the data. However, we will be using the PCA class from the scikit-learn library, which automatically scales the data (mean centres it), and so there is no need to do it manually (if you are using some other package, then you might have to do it yourself through matrix operation or using sklearn. preprocessing as done in the clustering example).</p><p>We will simply convert the data into a NumPy array format as required by the scikit learn library, import the PCA class and create an instance called 'model' to which we fit the raw data X:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/9d535409b7f4b54c9a6528380c2a8418.js"></script><!--kg-card-end: html--><!--kg-card-begin: html--><pre>PCA(n_components=7)</pre><!--kg-card-end: html--><p>The hyperparameter of the model 'n_components' represents the dimension of the new co-ordinate/principal component space.</p><p>To begin with, we have initialized the model with the value of hyperparameter 'n_components' set to 7, which is the same as the number of original features in X(as we have 7 stocks).<br><br>We can access the principal component matrix/eigenvector matrix using the following command:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/a36558f13a7104579274642ad91beac6.js"></script><!--kg-card-end: html--><!--kg-card-begin: html--><pre>array([[ 0.43250364,  0.26595616,  0.43994419,  0.39167868,  0.39734818,
         0.37164424,  0.31502354],
       [ 0.31078208, -0.1784099 ,  0.31343949,  0.10492004, -0.16196493,
         0.17032255, -0.84088612],
       [ 0.07033748, -0.13062127,  0.35532243,  0.14605034, -0.83342892,
         0.01607169,  0.3681629 ],
       [-0.32754799, -0.62923875,  0.52613624,  0.06641712,  0.34086264,
        -0.30207809,  0.09001009],
       [ 0.23384309, -0.65419348, -0.5269365 ,  0.33600016,  0.0217246 ,
         0.32947421,  0.13328505],
       [-0.58953337,  0.22761183, -0.08110947,  0.7444334 , -0.0673928 ,
         0.05821513, -0.178753  ],
       [-0.44931934, -0.06824695,  0.14453582, -0.37783656, -0.00877099,
         0.79335935,  0.01753355]])</pre><!--kg-card-end: html--><p>The principal components above have automatically been arranged in the order of the variance they explain(from high to low). So now, we can actually extract and plot the percentage of variance captured by each principal component as follows:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/82e8209c347744d5df099c9cd805347c.js"></script><!--kg-card-end: html--><!--kg-card-begin: html--><pre>array([0.51, 0.21, 0.12, 0.06, 0.05, 0.03, 0.02])</pre><!--kg-card-end: html--><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/4d20e474f0c692ac31884240c72bf2d2.js"></script><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2021/06/explained-variance-versus-principal-components.PNG" class="kg-image" alt="explained variance versus principal components"></figure><p>Next, we visualize the cumulative variance explained:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/05134514e2158cf9fdc52f92aef93437.js"></script><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-width-full"><img src="https://d1rwhvwstyk9gu.cloudfront.net/2021/06/cumulative-explained-variance-versus-principal-componenets.PNG" class="kg-image" alt="cumulative explained variance versus principal componenets"></figure><p><strong>We can see above that the first 4 principal components explain almost 90% of the variance!</strong></p><p>Which means that Jim can only use a PCA model with 4 principal components that is reduce the dimension from 7 to 4 at the cost of not explaining 10% variance in the data. Sounds like a good deal!<br><br>Below, we fit a new PCA model with 'n_components' = 4 and call it 'model_2':</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/e372615dc54ad8a16813a304a68b1aec.js"></script><!--kg-card-end: html--><p>We can now access the principal components and the percentage of variation explained by successive principal components:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/adbfb56f17940ca116dbc5eeca968382.js"></script><!--kg-card-end: html--><!--kg-card-begin: html--><pre>array([[ 0.43250364,  0.26595616,  0.43994419,  0.39167868,  0.39734818,
         0.37164424,  0.31502354],
       [ 0.31078208, -0.1784099 ,  0.31343949,  0.10492004, -0.16196493,
         0.17032255, -0.84088612],
       [ 0.07033748, -0.13062127,  0.35532243,  0.14605034, -0.83342892,
         0.01607169,  0.3681629 ],
       [-0.32754799, -0.62923875,  0.52613624,  0.06641712,  0.34086264,
        -0.30207809,  0.09001009]])</pre><!--kg-card-end: html--><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/5dcc8487946cf7f3eed3888b394cbe71.js"></script><!--kg-card-end: html--><!--kg-card-begin: html--><pre>array([0.5074455 , 0.21408255, 0.12162805, 0.05979477])</pre><!--kg-card-end: html--><p>Finally, we can access our new features(Z), which correspond to the original data X projected in the principal component space:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/6d9a4caa4cf8b8610e3d1be3b2f9df3a.js"></script><!--kg-card-end: html--><!--kg-card-begin: html--><pre>array([[-1.12727573e-01, -6.67038416e-03, -1.48430796e-03,
         1.14035934e-03],
       [ 2.97074556e-02,  1.50265487e-02, -5.93081631e-02,
        -2.99243627e-02],
       [-5.47331714e-02, -4.75781399e-03, -1.65305232e-02,
         7.99569198e-03],
       ...,
       [-1.09056976e-02, -8.34552109e-05,  1.17423510e-02,
        -2.00353992e-03],
       [-4.17360862e-03,  2.44548028e-03,  1.19544647e-02,
         1.89425233e-02],
       [ 3.66918890e-02,  1.94108416e-02,  1.62907120e-02,
         4.10635097e-02]])</pre><!--kg-card-end: html--><p>Let us look at the shape of original data and the dimension-reduced data:</p><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/c22db441332128289bf5fc4f7424548f.js"></script><!--kg-card-end: html--><!--kg-card-begin: html--><pre>(272, 7)</pre><!--kg-card-end: html--><!--kg-card-begin: html--><script src="https://gist.github.com/quantra-go-algo/a2ace63dc338c43a17fe91db75b4171b.js"></script><!--kg-card-end: html--><!--kg-card-begin: html--><pre>(272, 4)</pre><!--kg-card-end: html--><p>Looking at the shapes of original data and the new reduced dimension data we can see how unsupervised learning algorithms like PCA can help us be more efficient with resources and to create new features to build parsimonious supervised models.<br><br>That is what Jim was looking for! He can now happily proceed to building his supervised model using these new features.</p><h2 id="other-types-of-unsupervised-algorithms"><strong><strong>Other types of unsupervised algorithms</strong></strong></h2><p>In the previous two sections, we have discussed two of the most popular types of of unsupervised algorithms namely clustering and dimensionality reduction algorithms. In addition to these, there are other types of unsupervised learning algorithms, which are used for specific purposes.</p><p>A useful implementation is <strong><strong>latent variable modelling</strong></strong>. Latent variables are variables that can't be directly observed but have an impact on some other observed variables.</p><p>Unsupervised learning can be used to understand the structure and patterns in the observed variables to model the latent variables. A good example of this is Hidden Markov Models, which can be used to detect the <a href="https://quantra.quantinsti.com/course/getting-market-data">market</a> regime in the context of <a href="https://quantra.quantinsti.com/course/financial-time-series-analysis-trading">financial markets</a>.</p><p>Another common use case of unsupervised learning is in <strong><strong>association rule learning</strong></strong>. The aim here is to dig into large amounts of data and discover useful relations between features.</p><p>For example, supermarket firms can deploy this type of analysis to analyse customer baskets to see which items are likely to be bought together. The firm can place those items next to each other (for e.g., butter and cheese placed next to the bread section) to drive up the sales.</p><h2 id="challenges-in-unsupervised-learning"><strong><strong>Challenges in unsupervised learning</strong></strong></h2><p>Although we have seen how unsupervised learning can help us learn the patterns in our input data, it does come with its own challenges:</p><ul><li>As there is no label/target variable in unsupervised learning, there is no set way to calculate the performance of the model like we do in supervised learning algorithms.</li><li>The user often has to spend considerable time interpreting the output. For example, the new features obtained from PCA need to be interpreted in the business context, and that itself takes time.</li></ul><p>These are the reasons why unsupervised learning is often used in conjunction with supervised learning.</p><h3 id="next-steps">Next Steps</h3><p>During the course of this blog, we saw how unsupervised learning algorithms provide us not only with insights into the input data but also new useful inputs for supervised machine learning algorithms as well.</p><p>We also discussed practical use cases for unsupervised learning in trading and investing with the help of two examples. You can learn all about in this course on <a href="https://quantra.quantinsti.com/course/unsupervised-learning-trading">unsupervised learning course</a>.</p><p>As this was an introductory blog, we have only scratched the surface here. The scope of unsupervised learning is vast, and it encompasses applications implemented with the help of neural networks. Learn more about how <a href="https://quantra.quantinsti.com/course/neural-networks-deep-learning-trading-ernest-chan">neural network in trading</a> can help enhance your skills.</p><p>Nonetheless, I hope that you have enjoyed reading this blog, and it has given you inspiration to look deeper into the realm of unsupervised learning and its applications in finance.</p><p>In case you're interested in Machine Learning and its applications in trading, you can't afford to miss this specialization on <a href="https://quantra.quantinsti.com/learning-track/machine-learning-deep-learning-in-financial-markets">Machine Learning &amp; Deep Learning in Financial Markets</a>, where your will learn everything from simple logistic regression models to complex LSTM models. I hope this helps in your learning.</p><p>Till next time, happy learning!</p><h3 id="serious-about-learning">Serious about learning?</h3><p>For those looking to move beyond individual models and build a structured approach to quantitative trading, the <a href="https://www.quantinsti.com/epat">Executive Programme in Algorithmic Trading (EPAT)</a> provides a comprehensive pathway. It covers data analysis, machine learning applications, and systematic strategy development with a strong focus on practical implementation.</p><p>Connect with an EPAT career counsellor to explore how this aligns with your background and goals:</p><!--kg-card-begin: html--><div class="calendly-inline-widget" data-url="https://calendly.com/counsellor-1/speak-to-epat-counsellors?month=2025-04&embed_type=Inline&hide_gdpr_banner=1" style="min-width:320px;height:630px;"></div>
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js"></script><!--kg-card-end: html--><!--kg-card-begin: html--><p><small><em>Disclaimer: All investments and trading in the stock market involve risk. Any decisions to place trades in the financial markets, including trading in stock or options or other financial instruments is a personal decision that should only be made after thorough research, including a personal risk and financial assessment and the engagement of professional assistance to the extent you believe necessary. The trading strategies or related information mentioned in this article is for informational purposes only.</em></small></p><!--kg-card-end: html-->]]></content:encoded></item></channel></rss>