allanster

How To Set Backtest Date Range

Example how to select and set date range window to be backtested. Normally when you change chart period it changes the number of days being backtested which means as you increas the chart period (for example from 5min to 15min) you also increase the number of days traded, so you can not compare apples to apples for which period would yield best returns for your strategy. Now you can. Incorporate this code replacing buy and sell with your strategy, then simply input the From and To dates in Format -> Inputs, and then change the chart period to view updated results.

NOTE: There is a limit in backtesting to 2000 orders, so please be aware of this when setting your date ranges. If you set your range too high, you may be exceeding this limit on some periods and not on others, so this would yield incorrect comparison of returns per period. If you see in your backtesting results that you are nearing this limit for one of your periods you are testing, then reduce the date range to a smaller number of days.

Enjoy!

(Thanks to @Gesundheit "Adeel" for pointing me in the right direction on this!)
Release Notes: Changed default settings to remove need for setting present date if backtesting up to current moment in time.
Release Notes: Per requests added examples of:

- Using input statements for MA lengths.

- Using date range condition within execution.

- BONUS example of creating a function for date range.

Also added simple error checking to input statements for month and day.
Release Notes: Added "max_bars_back=2000" in top strategy line to prevent possibility of exceeding 2000 event limit. This will prevent that error from possibly occurring.
Release Notes: Statement in "Release Notes" immediately above is incorrect. Setting "max_bars_back=2000" in top strategy line does not prevent possibility of exceeding 2000 order limit. It instead is used to manually define how many historical bars are preloaded for indicator calculations. If you receive an ‘out of depth at index’ error this means something in your script calculations requires a certain number of historical bars and for some reason those bars were not automatically allocated. Raising this setting may help prevent that error from occurring.

For preventing the error on exceeding 2000 orders you must take steps to reduce the number of trades. Various means to do this include changing the range you are backtesting, changing the period, changing the frequency of how often your strategy trades, etc.
Remove from Favorite Scripts Add to Favorite Scripts
If you find something useful enough that you would like to buy me a refreshing beverage :)...

LTC (preferred): LTDaAe7nPzbpBhZVT9o5f9f8M3aZSPa46Y

BTC: 13LhkeXBYrRomVAqbXcoLXHuqMk6Mf7G6N

great job it works .
Reply
nice job thx
Reply
Thanks so much!
You made my day <8-)
Reply
doesn't work, i tried to select january to february as period but it shows nothing.
Reply
Smikel Smikel
@Smikel, I don't know why. apparently it can only show the last 20 days' data when using 5min graft, and if i select a period like several months ago, it says no data :(
Reply
@Smikel, this applies to ALL pine scripts and is unrelated to my specific example. There is a limit to how far back you can go that depends on a multitude of factors including pair, period, strategy trade frequency, maximum event limit, and your account plan. You can click the button on the chart to see how much history is available.

See: https://www.tradingview.com/wiki/FAQ#How_much_history_is_available_on_a_chart.3F

Reply
Smikel allanster
@allanster, ok thank you
Reply
Smikel allanster
@allanster, one question about autoview, do you know how to copy and paste in pine?, I am new here, I tried to use ctrl+c and ctrl+d, and using mouse right click, and then clicking on copy and paste, but none of them worked :( I have been searching for a solution to this but nothing. Please help me. sorry it is not related to your scrip.
Reply
@Smikel, sorry but I am unsure what issue you may be having other than you mentioning using ctrl+d (paste is ctrl+v). When editing in Pine it should behave like any other text editor.
Reply
Smikel allanster
@allanster, thank you very much. my mistake. It was an error on the navigator.
Reply
EN English (IN)
EN English
EN English (UK)
DE Deutsch
FR Français
ES Español
IT Italiano
PL Polski
SV Svenska
TR Türkçe
RU Русский
PT Português
ID Bahasa Indonesia
MS Bahasa Melayu
TH ภาษาไทย
VI Tiếng Việt
JA 日本語
KO 한국어
ZH 简体中文
ZH 繁體中文
AR العربية
HE עברית
Home Stock Screener Forex Screener Crypto Screener Economic Calendar How It Works Chart Features Pricing House Rules Moderators Website & Broker Solutions Widgets Stock Charting Library Get Help Feature Request Blog & News FAQ Wiki Twitter
Profile Profile Settings Account and Billing Get Help Ideas Published Followers Following Private Messages Chat Sign Out