Cyato Grid Basic Buy & Sell [BACKTEST]

This Grid bot strategy creates buy orders when the price goes down one level or more, and sell order when the price goes up one level or more.
To avoid useless trades, the lastest traded level is disabled until another level is crossed.
To create the grid, one upper level and one lower level is calculated. Those 2 levels are either given by the user using "MANUAL" mode or automatically calculated by an AI. The space between these two levels are then divided equally into several steps, creating the grid. The number of steps is chosen by the user, from 3 to 20.
HOW IT WORKS
This is the Backtest version meaning this is the one you should use with the Strategy Tester (more below).
Select either "MANUAL" or "AI" mode.
When using "MANUAL", you have to configure an upper level and a lower level.
When using "AI", the upper and lower level are automatically calculated from last 7 days high/low plus a 3% deviation. You can configure the timeframe and the deviation.
Select the grid quantity, from 3 to 20.
Example with 3:
Example with 10:
Example with 20:
You can choose between "Once Per Bar Close" or "Once Per Bar" alert type.
"Once Per Bar Close" will wait candle close to confirm a trade.
"Once Per Bar" will trigger a trade if the price crossed a step anytime inside a candle. Note that the backtest will still use bar close price in its calculation.
BACKTESTING
The strategy will buy 1 contract when a BUY signal appears and sell 1 contract when a SELL signal appears.
Here 1 contract = 1 BTC
The strategy can buy up to 20 contracts. Pyramiding is enabled.
The Backtest info panel is here to show how many trades are open in the backtest.
I know very well that a backtest has no value if several trades are left open. That is why I coded a feature to close all open trades at once on the last candle. This feature can be turned on and off.
To get this indicator, use the link in my signature below, thanks!
The up/lower step is now calculated using high/lowest of 100 bars of higher data, plus a percent increased range.
When the grid moves, the last traded level was reset when it should not.
You can turn it on/off
Make the strategy close all orders if price breaks below step 0 which is one step below step 1
How to create Strategy Alerts:
Write your alert messages for EXIT, LONG and SHORT orders in the settings (Backtest section).
Then click add alert, and in the alert message, write the following:
{{strategy.order.alert_message}}
The highest step was misbehaving sometimes.
Added new alert system!
To use it:
1. Write your alert messages in the indicator settings (alert section at the bottom)
2. CLick "Create Alert" as usual, but choose "alert() function calls only"
That's all! You will receive alerts for every event.
Max grid quantity plotted on chart increased to 59
That means grid steps above 59th will not be plotted (due to graphic limitations)
AI mode improved. An option was added to use the old AI mode if needed.
Updated info panel
Added an option to choose from "Fixed", "% of Equity", or "Contracts".
You can disable it by going in the style tab -> tables, or by clicking the indicator setting "Backtest Results Table".
- each step is now closed with its corresponding previous step, instead of "First In, First Out".
- order size is now set in the regular backtest properties tab.
Added Break Even line
The indicator is now plotting all of the max 100 grid step lines.
Backtest
Added optional Upper and Lower Stop Loss with price configuration and action being either "Stop Bot" or "Stop Bot and buy/sell base currency using all equity".
Alerts
Added alerts for both stop losses.
Added the option to calculate the grid from top to bottom using a percentage of price for each grid.
Up until now the indicator was using market orders in the backtest and for the alerts it would simply trigger 'buy' or 'sell' when a step is crossed.
With the new 'Limit' orders option, the backtest is using limit orders.
And, in order to automate the strategy, I added a 'Start Date' input. 0n the bar of the start date, an alert is triggered which contains one limit order for each grid step, which can be used to automatically place the limit buys for steps below the price and limit sells for steps above the price.
Then, on each step cross, the indicator will trigger and alert to place an order on the previous step. That way the grid is permanently covered with limit orders.
The alerts can be connected to my website using webhooks and using the alert message syntax I already wrote in the inputs. All you have to do is replace your bot id in the message, and create the alert. It still only takes one alert slot to automate the whole strategy.
The grid will automatically create new steps as price climbs up.
Note: When using this feature, the "start from" input must be set to "lower" step!
Added an input parameter to limit the amount of default limit orders in the alert (with too many orders, the alert message is too long and the indicator doesn't load)
- Can be turned on/off
- Configure the % (percent) of total profit (net profit + open profit, or also called realized and unrealized PnL)
- Once that % is reached, the strategy will sell by closing all open orders at current price and stop.
Added take profit alert and updated alerts messages placeholders.
Updated open profit calculation in backtest panel.
1 trend line with the external indicator option and 1 MTF trend line.
Small fix regarding take profit: it will now cancel open orders in the backtest.
- Updated backtest panel, improved readability
In long strategy, the lowest step can only buy, the highest can only sell. This prevent open orders when the price leaves and comes back in the grid. Idem with short strategy.
Invite-only script
Only users authorized by the author have access to this script, and this usually requires payment. You can add the script to your favorites, but you will only be able to use it after requesting permission and obtaining it from its author — learn more here. For more details, follow the author's instructions below or contact cyatophilum directly.
TradingView does NOT recommend paying for or using a script unless you fully trust its author and understand how it works. You may also find free, open-source alternatives in our community scripts.
Author's instructions
Warning: please read our guide for invite-only scripts before requesting access.
Discord Server: discord.gg/RVwBkpnQzm
I am taking PineScript Commissions ✔
=> blockchainfiesta.com/contact/
Disclaimer
Invite-only script
Only users authorized by the author have access to this script, and this usually requires payment. You can add the script to your favorites, but you will only be able to use it after requesting permission and obtaining it from its author — learn more here. For more details, follow the author's instructions below or contact cyatophilum directly.
TradingView does NOT recommend paying for or using a script unless you fully trust its author and understand how it works. You may also find free, open-source alternatives in our community scripts.
Author's instructions
Warning: please read our guide for invite-only scripts before requesting access.
Discord Server: discord.gg/RVwBkpnQzm
I am taking PineScript Commissions ✔
=> blockchainfiesta.com/contact/