> ## Documentation Index
> Fetch the complete documentation index at: https://takeprofit.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Indie

> Everything you need to build custom indicators and strategies for TakeProfit — from your first script to the marketplace.

<div className="tp-hero tp-indie-hero not-prose relative overflow-hidden rounded-3xl border border-white/10">
  <div className="tp-indie-copy">
    <span className="tp-hero-badge">Indie®</span>

    <div className="tp-indie-title">
      Start building with <span className="tp-hero-accent">Indie</span>
    </div>

    <p className="tp-indie-sub">
      Indie® is the language behind every indicator and strategy on TakeProfit.
      Write one yourself, or describe the idea and let an LLM do the typing.
    </p>

    <div className="tp-indie-actions">
      <a href="/docs/docs/indie/Quick-start" className="tp-btn tp-btn-primary">
        <Icon icon="play" size={14} />

        Quick start
      </a>

      <a href="/docs/docs/indie/Mcp-server/Mcp-server-guide" className="tp-btn">
        <Icon icon="robot" size={14} />

        Write with AI
      </a>

      <a href="/docs/docs/indie/Library-reference-overview" className="tp-btn">
        <Icon icon="book" size={14} />

        Library reference
      </a>
    </div>
  </div>

  <div className="tp-indie-code">
    <Tabs>
      <Tab title="Aroon">
        ```py theme={null}
        # indie:lang_version = 5
        from indie import indicator, format, param, plot, color
        from indie.algorithms import SinceLowest, SinceHighest


        @indicator('Aroon', format=format.PRICE)
        @param.int('length', default=14, min=1)
        @plot.line(color=color.BLUE, title='Aroon Down')
        @plot.line(color=color.YELLOW, title='Aroon Up')
        def Main(self, length):
            lo_offset = SinceLowest.new(self.low, length)
            hi_offset = SinceHighest.new(self.high, length)

            down = 100 * (length - lo_offset[0]) / length
            up = 100 * (length - hi_offset[0]) / length

            return down, up
        ```
      </Tab>

      <Tab title="Accum/Dist">
        ```py theme={null}
        # indie:lang_version = 5
        from indie import indicator, format, plot, color
        from indie.algorithms import CumSum, Mfv


        @indicator('Accum/Dist', format=format.VOLUME)
        @plot.line(color=color.OLIVE)
        def Main(self):
            return CumSum.new(Mfv.new())[0]
        ```
      </Tab>
    </Tabs>

    <a href="/docs/docs/indie/Code-examples/educational-indicators" className="tp-code-more">
      More code examples
      <span aria-hidden="true">→</span>
    </a>
  </div>
</div>

<div className="not-prose mt-14">
  <h2 className="text-lg font-semibold text-white">Explore Indie</h2>

  <div className="mt-5 grid gap-4 sm:grid-cols-2 lg:grid-cols-3">
    <a href="/docs/docs/indie/What-is-Indie" className="tp-tile">
      <div className="tp-tile-head">
        <span className="tp-tile-icon">
          <Icon icon="lightbulb" size={17} />
        </span>

        <span className="tp-tile-title">What is Indie</span>
        <span className="tp-tile-arrow" aria-hidden="true">→</span>
      </div>

      <p className="tp-tile-text">Why the language exists and how it differs from Python</p>
    </a>

    <a href="/docs/docs/indie/Quick-start" className="tp-tile">
      <div className="tp-tile-head">
        <span className="tp-tile-icon">
          <Icon icon="play" size={17} />
        </span>

        <span className="tp-tile-title">Quick start</span>
        <span className="tp-tile-arrow" aria-hidden="true">→</span>
      </div>

      <p className="tp-tile-text">Write and run your first indicator in a few minutes</p>
    </a>

    <a href="/docs/docs/indie/Indicator-code-structure" className="tp-tile">
      <div className="tp-tile-head">
        <span className="tp-tile-icon">
          <Icon icon="diagram-project" size={17} />
        </span>

        <span className="tp-tile-title">Code structure</span>
        <span className="tp-tile-arrow" aria-hidden="true">→</span>
      </div>

      <p className="tp-tile-text">Context, series, decorators and how execution works</p>
    </a>

    <a href="/docs/docs/indie/Library-reference-overview" className="tp-tile">
      <div className="tp-tile-head">
        <span className="tp-tile-icon">
          <Icon icon="book" size={17} />
        </span>

        <span className="tp-tile-title">Library reference</span>
        <span className="tp-tile-arrow" aria-hidden="true">→</span>
      </div>

      <p className="tp-tile-text">Packages, builtins and the full API surface</p>
    </a>

    <a href="/docs/docs/indie/Mcp-server/Mcp-server-guide" className="tp-tile">
      <div className="tp-tile-head">
        <span className="tp-tile-icon">
          <Icon icon="robot" size={17} />
        </span>

        <span className="tp-tile-title">MCP server</span>
        <span className="tp-tile-arrow" aria-hidden="true">→</span>
      </div>

      <p className="tp-tile-text">Let an LLM build, convert and validate indicators for you</p>
    </a>

    <a href="/docs/docs/indie/Code-examples/educational-indicators" className="tp-tile">
      <div className="tp-tile-head">
        <span className="tp-tile-icon">
          <Icon icon="file-code" size={17} />
        </span>

        <span className="tp-tile-title">Code examples</span>
        <span className="tp-tile-arrow" aria-hidden="true">→</span>
      </div>

      <p className="tp-tile-text">Ready-to-run indicators and strategies to learn from</p>
    </a>
  </div>
</div>
