Donchian Quest Research

sergeyen Zaktualizowano   
// =================================

Trend following strategy.

// =================================

Strategy uses two channels. One channel - for opening trades. Second channel - for closing.

Channel is similar to Donchian channel, but uses Close prices (not High/Low). That helps don't react to wicks of volatile candles (“stop hunting”). In most cases openings occur earlier than in Donchian channel. Closings occur only for real breakout.

// =================================

Strategy waits for beginning of trend - when price breakout of channel. Default length of both channels = 50 candles.

Conditions of trading:

- Open Long: If last Close = max Close for 50 closes.
- Close Long: If last Close = min Close for 50 closes.
- Open Short: If last Close = min Close for 50 closes.
- Close Short: If last Close = max Close for 50 closes.

// =================================

Color of lines:

- black - channel for opening trade.
- red - channel for closing trade.
- yellow - entry price.
- fuchsia - stoploss and breakeven.
- vertical green - go Long.
- vertical red - go Short.
- vertical gray - close in end, don't trade anymore.

// =================================

Order size calculated with ATR and volatility.

You can't trade 1 contract in BTC and 1 contract in XRP - for example. They have different price and volatility, so 1 contract BTC not equal 1 contract XRP.

Script uses universal calculation for every market. It is based on:
- Risk - USD sum you ready to loss in one trade. It calculated as percent of Equity.
- ATR indicator - measurement of volatility.

With default setting your stoploss = 0.5 percent of equity:

- If initial capital is 1000 USD and used parameter "Permit stop" - loss will be 5 USD (0.5 % of equity).
- If your Equity rises to 2000 USD and used parameter "Permit stop"- loss will be 10 USD (0.5 % of Equity).

// =================================

This Risk works only if you enable “Permit stop” parameter in Settings.

If this parameter disabled - strategy works as reversal strategy:
⁃ If close Long - channel border works as stoploss and momentarily go Short.
⁃ If close Short - channel border works as stoploss and momentarily go Long.

Channel borders changed dynamically. So sometime your loss will be greater than ‘Risk %’. Sometime - less than ‘Risk %’.

If this parameter enabled - maximum loss always equal to 'Risk %'. This parameter also include breakeven: if profit % = Risk %, then move stoploss to entry price.

// =================================

Like all trend following strategies - it works only in trend conditions. If no trend - slowly bleeding. There is no special additional indicator to filter trend/notrend. You need to trade every signal of strategy.

Strategy gives many losses:
⁃ 30 % of trades will close with profit.
⁃ 70 % of trades will close with loss.
⁃ But profit from 30% will be much greater than loss from 70 %.

Your task - patiently wait for it and don't use risky setting for position sizing.

// =================================

Recommended timeframe - Daily.

// =================================

Trend can vary in lengths. Selecting length of channels determine which trend you will be hunting:
⁃ 20/10 - from several days to several weeks.
⁃ 20/20 or 50/20 - from several weeks to several months.
⁃ 50/50 or 100/50 or 100/100 - from several months to several years.

// =================================

Inputs (Settings):

- Length: length of channel for trade opening/closing. You can choose 20/10, 20/20, 50/20, 50/50, 100/50, 100/100. Default value: 50/50.

- Permit Long / Permit short: Longs are most profitable for this strategy. You can disable Shorts and enable Longs only. Default value: permit all directions.

- Risk % of Equity: for position sizing used Equity percent. Don't use values greater than 5 % - it's risky. Default value: 0.5%.

⁃ ATR multiplier: this multiplier moves stoploss up or down. Big multiplier = small size of order, small profit, stoploss far from entry, low chance of stoploss. Small multiplier = big size of order, big profit, stop near entry, high chance of stoploss. Default value: 2.

- ATR length: number of candles to calculate ATR indicator. It used for order size and stoploss. Default value: 20.

- Close in end - to close active trade in the end (and don't trade anymore) or leave it open. You can see difference in Strategy Tester. Default value: don’t close.

- Permit stop: use stop or go reversal. Default value: without stop, reversal strategy.

// =================================

Properties (Settings):

- Initial capital - 1000 USD.
- Script don't uses 'Order size' - you need to change 'Risk %' in Inputs instead.
- Script don't uses 'Pyramiding'.
- 'Commission' 0.055 % and 'Slippage' 0 - this parameters are for crypto exchanges with perpetual contracts (for example Bybit). If use on other markets - set it accordingly to your exchange parameters.

// =================================

Big dataset used for chart - 'BITCOIN ALL TIME HISTORY INDEX'. It gives enough trades to understand logic of script. It have several good trends.

// =================================
Informacje o Wersji:
Added trailing (fuchsia line) to parameter 'Permit stop'.
Informacje o Wersji:
Added Montly Table (parameter 'Show Monthly Table' in Settings (Inputs)).
Informacje o Wersji:
Added different variants for parameter 'Permit stop' (fuchsia line):

- No stop:
No stop.

- Fixed stop:
Set stop one time and never change it.

- Trailing:
Initial stop = fixed stop.
If channel border cross entry price: move stop to channel border.

- Breakeven, trailing:
Initial stop = fixed stop.
If profit > risk: move stop to entry price (breakeven).
If channel border cross entry price: move stop to channel border.
Informacje o Wersji:
Added another variant for parameter 'Permit stop' (fuchsia line):

- Breakeven:
Initial stop = fixed stop.
If profit > risk: move stop to entry price.
Informacje o Wersji:
- setting 'Show Qty label'. Info for qty calculation: Equity, Atr. Default: Disabled.
- setting 'Use 2 orders'. It divide initial qty to 2 orders. If setting 'Risk' = 0.5%, then risk of each order will be 0.25%. First order opens as usual. Second order opens if first order is profitable. If no trend - loss from first order will be 0.25% (not 0.5%). Default: Enabled.

- setting 'Performance table' - not very useful and helping.
- setting 'Stop Breakeven, Trailing' - too complicated.

- small error in ATR calculation.
- 'Fixed stop' renamed to 'Fixed'.
Informacje o Wersji:
Small correction in cancelling.
Informacje o Wersji:
Small correction in qty calculation:

Now script works with 'Total Market Cap' charts: TOTAL, TOTAL2, TOTAL3.
This is for info purposes only.

For example, setting '20/20' shows general picture - phases of cycle:
- up, down, up, down, up, down to end of Sep 2023 - accumulation.
- end of Sep 2023 - uptrend.
- mid-Jan - mid-Feb - small correction of uptrend.
- mid-Feb - uptrend continues.
Informacje o Wersji:
Added small channels: 10/5 and 10/10.
Informacje o Wersji:
Added two more orders - now possible to choose from 1 to 4 orders.
Idea from the book "Way of the Turtle" by Curtis M. Faith.
Informacje o Wersji:
Correction of trailing calculation.
Informacje o Wersji:
Added parameter 'Use additional orders?':
If trade is profitable - use additional orders to increase position size.

Added tooltips - information circles with description - to each parameter.
Informacje o Wersji:
Small error in trailing calculation.
Informacje o Wersji:
Little change in add orders.
Informacje o Wersji:
'Cost %' changed to 3.
Informacje o Wersji:
Fixed small error in cancelling.
Informacje o Wersji:
Remove function 'Use additional orders'.
Informacje o Wersji:
Re-added setting "Use additional orders".
Tester shows 1.5x increasing in Net profit on 'BTC all time history index".
Informacje o Wersji:
Added another setting for position increasing "Additional theory orders".
Tester shows 1.2x increasing in Net profit on 'BTC all time history index".
Informacje o Wersji:
Small correction of "additional orders" setting.
Informacje o Wersji:
Another small correction of "additional orders" setting.

Skrypt open-source

Zgodnie z prawdziwym duchem TradingView, autor tego skryptu opublikował go jako open-source, aby traderzy mogli go zrozumieć i zweryfikować. Brawo dla autora! Możesz używać go za darmo, ale ponowne wykorzystanie tego kodu w publikacji jest regulowane przez Dobre Praktyki. Możesz go oznaczyć jako ulubione, aby użyć go na wykresie.

Wyłączenie odpowiedzialności

Informacje i publikacje przygotowane przez TradingView lub jego użytkowników, prezentowane na tej stronie, nie stanowią rekomendacji ani porad handlowych, inwestycyjnych i finansowych i nie powinny być w ten sposób traktowane ani wykorzystywane. Więcej informacji na ten temat znajdziesz w naszym Regulaminie.

Chcesz użyć tego skryptu na wykresie?