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

# strategy variables

> Reference for the 15 variables of the strategy namespace: strategy.account_currency, strategy.closedtrades, strategy.equity, strategy.grossloss and 11 more, each with its definition and an example.

> [!NOTE]
>
> Language version: 2 · Reference version: 2.7 · Date: 2026-10-25 · Compiler build: df7b3b14 · Namespace: strategy · Entries: 15

## `strategy.account_currency` (variable)

**Definition**

The currency the strategy's figures are reported in, as a string.

**Type**

`series string`

**Example**

> [!WARNING]
>
> GoCharting is a charting and analytics tool. This is not investment advice. Trading and investing carry a high risk of loss and are not suitable for everyone. You can lose some or all of your money.

```lipi theme={"languages":{"custom":["/languages/lipi.json","/languages/lipi-invalid.json"]}}
//@lipi=2
strategy("strategy.account_currency Example", overlay=false, initial_capital=10000)
if talib.crossover(close, talib.sma(close, 20)) {
    strategy.entry("Long", strategy.long)
}
if talib.crossunder(close, talib.sma(close, 20)) {
    strategy.close("Long")
}
if barstate.islast {
    label.new(bar_index, high, text="account_currency: " + strategy.account_currency)
}
```

## `strategy.closedtrades` (variable)

**Definition**

The number of trades closed so far.

**Type**

`series int`

**Example**

```lipi theme={"languages":{"custom":["/languages/lipi.json","/languages/lipi-invalid.json"]}}
//@lipi=2
strategy("strategy.closedtrades Example", overlay=false, initial_capital=10000)
if talib.crossover(close, talib.sma(close, 20)) {
    strategy.entry("Long", strategy.long)
}
if talib.crossunder(close, talib.sma(close, 20)) {
    strategy.close("Long")
}
plot(strategy.closedtrades, title="Closedtrades", color=color.blue)
```

## `strategy.equity` (variable)

**Definition**

The strategy's current equity: initial capital plus net profit plus open profit.

**Type**

`series float`

**Example**

```lipi theme={"languages":{"custom":["/languages/lipi.json","/languages/lipi-invalid.json"]}}
//@lipi=2
strategy("strategy.equity Example", overlay=false, initial_capital=10000)
if talib.crossover(close, talib.sma(close, 20)) {
    strategy.entry("Long", strategy.long)
}
if talib.crossunder(close, talib.sma(close, 20)) {
    strategy.close("Long")
}
plot(strategy.equity, title="Equity", color=color.blue)
```

## `strategy.grossloss` (variable)

**Definition**

The total of the profits of all closed trades that did not make a profit, so it is zero or negative: a trade that lost 10 adds -10.

**Type**

`series float`

**Example**

```lipi theme={"languages":{"custom":["/languages/lipi.json","/languages/lipi-invalid.json"]}}
//@lipi=2
strategy("strategy.grossloss Example", overlay=false, initial_capital=10000)
if talib.crossover(close, talib.sma(close, 20)) {
    strategy.entry("Long", strategy.long)
}
if talib.crossunder(close, talib.sma(close, 20)) {
    strategy.close("Long")
}
plot(strategy.grossloss, title="Grossloss", color=color.blue)
```

## `strategy.grossprofit` (variable)

**Definition**

The total profit of all winning closed trades.

**Type**

`series float`

**Example**

```lipi theme={"languages":{"custom":["/languages/lipi.json","/languages/lipi-invalid.json"]}}
//@lipi=2
strategy("strategy.grossprofit Example", overlay=false, initial_capital=10000)
if talib.crossover(close, talib.sma(close, 20)) {
    strategy.entry("Long", strategy.long)
}
if talib.crossunder(close, talib.sma(close, 20)) {
    strategy.close("Long")
}
plot(strategy.grossprofit, title="Grossprofit", color=color.blue)
```

## `strategy.initial_capital` (variable)

**Definition**

The initial capital set in `strategy()`.

**Type**

`series float`

**Example**

```lipi theme={"languages":{"custom":["/languages/lipi.json","/languages/lipi-invalid.json"]}}
//@lipi=2
strategy("strategy.initial_capital Example", overlay=false, initial_capital=10000)
if talib.crossover(close, talib.sma(close, 20)) {
    strategy.entry("Long", strategy.long)
}
if talib.crossunder(close, talib.sma(close, 20)) {
    strategy.close("Long")
}
plot(strategy.initial_capital, title="Initial Capital", color=color.blue)
```

## `strategy.losstrades` (variable)

**Definition**

The number of closed trades whose profit is zero or negative: a trade that closes at break-even counts here, so `strategy.wintrades` plus `strategy.losstrades` equals `strategy.closedtrades`.

**Type**

`series int`

**Example**

```lipi theme={"languages":{"custom":["/languages/lipi.json","/languages/lipi-invalid.json"]}}
//@lipi=2
strategy("strategy.losstrades Example", overlay=false, initial_capital=10000)
if talib.crossover(close, talib.sma(close, 20)) {
    strategy.entry("Long", strategy.long)
}
if talib.crossunder(close, talib.sma(close, 20)) {
    strategy.close("Long")
}
plot(strategy.losstrades, title="Losstrades", color=color.blue)
```

## `strategy.max_drawdown` (variable)

**Definition**

The largest peak-to-trough fall in equity so far.

**Type**

`series float`

**Example**

```lipi theme={"languages":{"custom":["/languages/lipi.json","/languages/lipi-invalid.json"]}}
//@lipi=2
strategy("strategy.max_drawdown Example", overlay=false, initial_capital=10000)
if talib.crossover(close, talib.sma(close, 20)) {
    strategy.entry("Long", strategy.long)
}
if talib.crossunder(close, talib.sma(close, 20)) {
    strategy.close("Long")
}
plot(strategy.max_drawdown, title="Max Drawdown", color=color.blue)
```

## `strategy.max_runup` (variable)

**Definition**

The largest trough-to-peak rise in equity so far.

**Type**

`series float`

**Example**

```lipi theme={"languages":{"custom":["/languages/lipi.json","/languages/lipi-invalid.json"]}}
//@lipi=2
strategy("strategy.max_runup Example", overlay=false, initial_capital=10000)
if talib.crossover(close, talib.sma(close, 20)) {
    strategy.entry("Long", strategy.long)
}
if talib.crossunder(close, talib.sma(close, 20)) {
    strategy.close("Long")
}
plot(strategy.max_runup, title="Max Runup", color=color.blue)
```

## `strategy.netprofit` (variable)

**Definition**

The total profit of all closed trades, net of commission; a loss is negative. In this build the commission of an entry is deducted when the trade opens, so the value falls at the entry, before the trade closes; the commission of the exit is deducted when it closes.

**Type**

`series float`

**Example**

```lipi theme={"languages":{"custom":["/languages/lipi.json","/languages/lipi-invalid.json"]}}
//@lipi=2
strategy("strategy.netprofit Example", overlay=false, initial_capital=10000)
if talib.crossover(close, talib.sma(close, 20)) {
    strategy.entry("Long", strategy.long)
}
if talib.crossunder(close, talib.sma(close, 20)) {
    strategy.close("Long")
}
plot(strategy.netprofit, title="Netprofit", color=color.blue)
```

## `strategy.openprofit` (variable)

**Definition**

The current, unrealised profit of the open position; a loss is negative.

**Type**

`series float`

**Example**

```lipi theme={"languages":{"custom":["/languages/lipi.json","/languages/lipi-invalid.json"]}}
//@lipi=2
strategy("strategy.openprofit Example", overlay=false, initial_capital=10000)
if talib.crossover(close, talib.sma(close, 20)) {
    strategy.entry("Long", strategy.long)
}
if talib.crossunder(close, talib.sma(close, 20)) {
    strategy.close("Long")
}
plot(strategy.openprofit, title="Openprofit", color=color.blue)
```

## `strategy.opentrades` (variable)

**Definition**

The number of trades open now (entries not yet closed).

**Type**

`series int`

**Example**

```lipi theme={"languages":{"custom":["/languages/lipi.json","/languages/lipi-invalid.json"]}}
//@lipi=2
strategy("strategy.opentrades Example", overlay=false, initial_capital=10000)
if talib.crossover(close, talib.sma(close, 20)) {
    strategy.entry("Long", strategy.long)
}
if talib.crossunder(close, talib.sma(close, 20)) {
    strategy.close("Long")
}
plot(strategy.opentrades, title="Opentrades", color=color.blue)
```

## `strategy.position_avg_price` (variable)

**Definition**

The average entry price of the current position. It is 0, not `na`, when the position is flat.

**Type**

`series float`

**Example**

```lipi theme={"languages":{"custom":["/languages/lipi.json","/languages/lipi-invalid.json"]}}
//@lipi=2
strategy("strategy.position_avg_price Example", overlay=true, initial_capital=10000)
if talib.crossover(close, talib.sma(close, 20)) {
    strategy.entry("Long", strategy.long)
}
if talib.crossunder(close, talib.sma(close, 20)) {
    strategy.close("Long")
}
plot(strategy.position_avg_price, title="Average Entry Price", color=color.orange, style=plotStyle.linebr)
```

## `strategy.position_size` (variable)

**Definition**

The size of the current position: positive when long, negative when short, 0 when flat.

**Type**

`series float`

**Example**

```lipi theme={"languages":{"custom":["/languages/lipi.json","/languages/lipi-invalid.json"]}}
//@lipi=2
strategy("strategy.position_size Example", overlay=false, initial_capital=10000)
if talib.crossover(close, talib.sma(close, 20)) {
    strategy.entry("Long", strategy.long)
}
if talib.crossunder(close, talib.sma(close, 20)) {
    strategy.close("Long")
}
plot(strategy.position_size, title="Position Size", color=color.blue)
```

## `strategy.wintrades` (variable)

**Definition**

The number of closed trades that made a profit.

**Type**

`series int`

**Example**

```lipi theme={"languages":{"custom":["/languages/lipi.json","/languages/lipi-invalid.json"]}}
//@lipi=2
strategy("strategy.wintrades Example", overlay=false, initial_capital=10000)
if talib.crossover(close, talib.sma(close, 20)) {
    strategy.entry("Long", strategy.long)
}
if talib.crossunder(close, talib.sma(close, 20)) {
    strategy.close("Long")
}
plot(strategy.wintrades, title="Wintrades", color=color.blue)
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.