WebhookGeneratorLibrary "WebhookGenerator"
Generates Json objects for webhook messages.
GenerateOT(license_id, symbol, action, order_type, trade_type, size, price, tp, sl, risk, trailPrice, trailOffset)
CreateOrderTicket: Establishes a order ticket.
Parameters:
license_id (string) : Provide your license index
symbol (string) : Symbol on which to execute the trade
action (string) : Execution method of the trade : "MRKT" or "PENDING"
order_type (string) : Direction type of the order: "BUY" or "SELL"
trade_type (string) : Is it a "SPREAD" trade or a "SINGLE" symbol execution?
size (float) : Size of the trade, in units
price (float) : If the order is pending you must specify the execution price
tp (float) : (Optional) Take profit of the order
sl (float) : (Optional) Stop loss of the order
risk (float) : Percent to risk for the trade, if size not specified
trailPrice (float) : (Optional) Price at which trailing stop is starting
trailOffset (float) : (Optional) Amount to trail by
Returns: Return Order string
Webhook
Strategy Development Environment [BerlinCode42]Happy Trade,
Intro
What is New
Algebraic/Boolean Equation
Instruction Set for The Algebraic/Boolean Equation
Example
Usage
Settings Menu
Declaration for Tradingview House Rules on Script Publishing
Disclaimer
Conclusion
1. Intro
This is a rich equipped fork of my previous "Backtest any Indicator v5". And serves as the fitting backtester and trade strategy creation tool for my upcoming ANN Indicators (artificial neural network).
As the previous version this script has no trade signal generating code. The trade signals comes in by the five user settable input slots where the user plug-in external indicators. The final trade siganls go long etc are defined by a algebraic/boolean equation typed in as text in 4 terminals as shown in Image 0 . With this algebraic/boolean equations input the user can setup any trade logic as complex and fast and easy as never seen before here on TradingView.
Image 0
2. What is new
Input algebraic/boolean equations in text-form for go long, go short, exit long & exit short
Five input slots for external indicator signals
Equation tester
User settable signal delay for enter and exit trades
User selectable alternating trades filter
User settable exit long = enter short
Intrabar or trade only on bar closing
Time filter with duration input
User settable UTC Adjustment
Long and short trades possible
Two Take Profits with quantity setting
Trailing Stop
Webhook connection
3. Algebraic/Boolean Equation
This is where the magic happens. Unlike other backtesters that rely on drop-down menus to define trade signal equations—thus limiting the number of input signals and the complexity of logic—this script uses a string interpreter to solve equations. With this, you can develop your trade logic equations and add signals or conditions simply by writing them down in algebraic/boolean form.
The instruction set for this interpreter includes not only external input signals but also several internal values. These include BarTime, BarIndex, Open, High, Low, Close, True Range, Minimal Tick, Volume, and a signal that indicates whether there is an open trade (long, short, or none). You can also reference the values of past bars for all these inputs and, of course, use constant values in your equations. There is a sad limitation: Only one past bar value per equation is practicable. If you use more, errors can occur. It seems to be caused by the pipe line architecture of the parallel computing. In any attempt to solve this issue an older function call result was hand over.
The implemented functions cover a wide range of algebraic and boolean operations. A boolean "true" is represented by all values greater than zero, while "false" is represented by zero or values less than zero.
4. Instruction set for the Algebraic/Boolean Equation
There are functions that accept either two input values or one input value. The general form is (XandY) or (notX), where X and Y can be any input slot, predefined value, constant, or another sub-equation. Functions are always written in lowercase, while input slots and predefined values use uppercase letters.
Each sub-equation must be enclosed in parentheses, e.g., (A+B). Without proper use of parentheses, the interpreter cannot determine which function to calculate first. Negative constants must be expressed by subtracting from zero (e.g., (0-3.14)), so careful attention is required.
Here are some examples that demonstrate both incorrect and correct notations:
incorrect correct
(A+B*C) (A+(B*C))
(A+B+D+E) (A+(B+(D+E)))
(-20>A) ((0-20)>A)
(A*-B) (A*(0-B))
(AnotB) (Aand(notB))
ABS(a-b) (abs(A-B))
The correct usage ensures the interpreter calculates in the intended order.
And here comes the complete Instruction Set:
Addition: (A+B)
Subtraction: (A-B)
Multiplication: (A*B)
Division: (A/B)
Absolut value: (absA)
Power of: (A^B)
Natural Logarithm: (logA)
Lowest value of Low of last x bars: (lotx)
Highest value of High of last x bars: (hotx)
Modulo, Remainder of a Division: (A%B)
Round: (rndA)
round to ceil: (ceiA)
Round to floor: (floA)
Round to next minimal tick: (mitA)
EMA of A of last 3 bars: (e03A)
EMA of A of last 7 bars: (e07A)
EMA of A of last 10 bars: (e10A)
EMA of A of last 20 bars: (e20A)
EMA of A of last 50 bars: (e50A)
Smaller then: (AB)
Equal to: (A==B)
Unequal to: (A!=B)
And: (AandB)
Or: (AorB)
Exclusive Or: (AxorB)
Not: (notA)
Past bar value: (A ) ,whereby x can be 1,2,3,...,barIndex-1
Bar time: (T)
Bar index: (I)
Opening Price of Bar: (O)
Highest Price of Bar: (H)
Lowest Price of Bar: (L)
Closing Price of Bar: (C)
Min tick value for the current symbol: (K)
Trade Volume: (V)
True Range: (R)
Is Money invested: (M) ,Long position: M=1,
Short position: M=-1,
No position: M=0
Reminder: if you wanna replace A or B above don't forget the parentheses. So if you have (logA) and wanna replace A with D+F so the correct replacement would be (log(D+F)).
In the following there are some examples of popular bar patterns and useful filters:
Doji: ((abs(O-C))<(10*K))and((H-L)>(100*K))
green Hammer: (((H-C)<(5000*K))and(((O-L)/2)>(abs(O-C)))
Up trend: (C>(e10H))
Down trend: (C<(e10L))
cool down 7 bars: (( any buy condition )and((e07(absM))==0))
possible Pivot High: (H==(hot30))and((CC))
possible Pivot Low: (L==(lot30))and((C>H )or(O0)), goShort ((A>0)and((A )<0)), Enter Signal delay=0, Exit Signal delay=0, Alternate Trades=true
take profit 1 =0.4% (30%), take profit 2 =0.7%, trailing stop loss=0.2%, intrabar, start capital=1000$, qty=5%, fee=0.05%, no Session Filter
Image 1
6. Usage
First you need to attach some signals from external Indicators. In the example above we use the Stochastic RSI indicator from TradingView. Load the Stochastic RSI indicator to the chart. Then you go to the settings menu of this script, choose in the drop-down menu of Input A the signal .
In case you wanna use a signal which is not in the drop-down menu of Input A do the following:
1) You need to know the name of the boolean (or integer) variable of your indicator which hold the desired signal. Lets say that this boolean variable is called BUY. If this BUY variable is not plotted on the chart you simply add the following code line at the end of your pine script.
For boolean (true/false) BUY variables use this:
plot(BUY ? 1:0,'Your buy condition hold in that variable BUY',display = display.data_window)
And in case your script's BUY variable is an integer or float then use instate the following code line:
plot(BUY ,'Your buy condition hold in that variable BUY',display = display.data_window)
2) Probably the name of this BUY variable in your indicator is not BUY. Simply replace in the code line above the BUY with the name of your script's trade condition variable.
3) Do the same procedure for your SELL variable. Then save your changed Indicator script.
4) Then add the changed Indicator script from step before and this backtester script to the chart ...
5) and go to the settings of it. Choose under "Settings -> Input A " your Indicator. So in the example above choose .
The form is usually: ' : BUY'. Then you see something like Image 1
6) Decide about each trade logic for Go Long and Go Short . In this Example we use for GoLong if "Stoch RSI: K" is smaller then 20. The "Stoch RSI: K" we already loaded it in input A. So we set under Go Long (A<20) and set Enter Signal Delay to 0.
Now we setup Go Short if "Stoch RSI: K" is bigger then 80. So we set under Go Short A>80. Enter Signal Delay is already set.
7) For the Exit conditions you can choose (trailing) Stop loss or Take Profit or Exit by Indicator Signal. What ever comes first triggers the exit. If you like to use an EMA Indicator for the Exit by Indicator just load it in a free input slot B, D, E, F or use the inbuild EMA. For this example we use the inbuild EMA of the last 7 values of close. It is called by the following equation: (e07C). So to exit a long trade when the close price crossunder this EMA you have to type in Exit Long ((e07C)>C). For exit a short trade enter in Exit Short ((e07C)<C).
You can choose detailed time- and session filters. You can setup two take profit levels with quantity and stop loss, trailing, initial capital, quantity per trade and set the exchange fees. You get an overall result table and even a detailed, scroll-able table with all trades.
Image 2
In the Image 2 you see the provided info tables about all Trades and the Result Summary. Further more every trade is marked by a background color, labels and levels. An opening Label with the trade direction and trade number. A closing Label again with the trade number, the trade profit in %, the trade gain in $ and the total amount of $ after all past trades. A green line for each take profit levels and an orange line for the (trail) stop loss. This summary table down left gives you an insign about how good or not so good the trade strategy is and with the trade list you can find those trade which should be avoided. Found those bad trades on the chart by the time or trade number. By seeing a big number of bad trades you may find a pattern and can formulate conditions to avoid those bad trades. Those new conditions you can easily add to the equations for enter or exit trades.
Now you have a backtest with the oppotunity to develope and envolve your trading strategy more and more. And for any iteration from general to detailed you can do it with this backtester. You can add more and more filter signals or may change the setting of your Indicator to the best results and setup the following strategy settings like Time- and Session Filter, Stop Loss, Take Profit etc. With it you find a profitable strategy and it's settings.
7. Settings Menu
In the settings menu you will find the following high-lighted sections. Most of the settings have a attention mark on their right side. Move over it with the cursor to read specific explanation.
Input Signals: This are five input slots A, B, D, E & F which you can load up with your preferred Indicators.
Algebraic Equation for the Trade Signals: Here you setup the definitions for Go Long , Go Short , Ex Long & Ex Short . As shown in Image 3 you can combine the input slots A, B, D, E, F with predefined Variables O, H, L, C, T, I, V, K, M, R or any constant value with the in-build function in the instruction set.
Image 3
Additionally, you have the option to delay entry and exit signals. This feature is particularly useful when trade signals exhibit noise and require smoothing.
You can also enable the script to perform alternating trading . In this mode, trades alternate sequentially—after a long trade, a short trade follows, and then another long trade, and so on.
Image 4
As shown in Image 4 , you can configure the script so that an "exit by signal" also acts as the next entry in the opposite trade direction. To enable this, check the option Exit = Enter Next and set the exit condition as the opposite of the entry condition. With this setting, only one occurrence of the signal is needed to trigger both the exit and the new entry, making the transition seamless.
Equation Tester: Each equation is assigned a checkmark and a color. Activate one like in Image 5 and the chart will highlight bars with a colored background where the corresponding equation result is greater than zero (interpreted as true). At the last bar, a label is displayed showing each equation’s result value. This feature allows you to build your equations and test sub-equations to ensure their results are correct.
Image 5
Backtest Results: Check mark the List of Trades to see any single trade with their stats. If there are more trades than can fit in the list, you can scroll down by decreasing the Scroll value.
Timezone Adjustment: In case you wanna use an Chart-UTC that differs from the time scale you can activate Timezone Adjustment . Then you have to setup your location UTC correctly! The Exchange UTC will be set in most cases automatically. Known Exchanges include Amsterdam, Chicago, New_York, Los_Angeles, Calcutta, Colombo, Moscow, St_Petersburg, Tokyo, Shanghai, Hongkong, Berlin, London, Paris, Madrid. Only if you have other exchanges you need to setup it by hand.
Time Filter: You can set a Start time or deactivate it by leave it unhooked. The same with End Time and Duration Days . Duration Days can also count from End time in case you deactivate Start time.
Session Filter: Here, you can choose to activate trading on a weekly basis, specifying which days of the week trading is allowed and which are excluded. Additionally, you can configure trading on a daily basis, setting the start and end times for when trades are permitted. If activated, no new trades will be initiated outside the defined times and sessions.
Long & Short: Here you can enable Longs or Shorts or both trades.
TP & SL Settings: Take Profit 1&2 set the target prices of any trade in relation to the entry price. The TP1 exit a part of the position defined by the quantity value. Stop Loss set the price to step out when a trade goes the wrong direction. You can activate also a trailing SL.
Additionally, you can specify whether trades should be executed intrabar or at the bar's closing.
Hedging: The Hedging is basic as shown in the following Image 6 and serves as a catch if price moves fast in the wrong direction.
Image 6
You can activate a hedging mechanism, which opens a trade in the opposite direction if the price moves x% against the entry price. If both the Stop Loss and Hedging are triggered within the same bar, the hedging action will always take precedence.
Invest Settings: Here, you can set the initial amount of cash to start with. The Quantity Percentage determines how much of the available cash is allocated to each trade, while the Fee Percentage specifies the trading fee applied to both opening and closing positions.
Webhooks: Here, you configure the License ID and the Comment. This is particularly useful if you plan to use multiple instances of the script, ensuring the webhooks target the correct positions. The Take Profit and Stop Loss values are displayed as prices.
8. Declaration for Tradingview House Rules on Script Publishing
This Backtester also serves as Strategy Development Tool by offering the user a fast and easy opportunity to test, enhance and manipulate the definitions for enter and exit trades. The unique feature "algebraic/boolean equation input" provides users with a significant edge over other backtest scripts. Unlike any other backtesting tool available with few drop-down menus for enter the equation, this script allows users to define an extensive range of trade equation definitions without setup of numerous specific parameters. This is reached by four terminals where the user type in the equation as text. Those equations in text-form are send intern to a context-depending touring machine that interprets the string. So with this tool, users can implement their trading ideas—even those involving complex definitions for trade entries and exits based on huge number of variables and indicators—without hiring a developer.
This script is closed-source and invite-only to support and compensate for over a year of development work. Unlike traditional backtest scripts, this one does not rely on TradingView's strategy functions. Instead, it is designed as an indicator, utilizing TradingView's "Indicator-on-Indicator" functionality.
9. Disclaimer
Trading is risky, and traders do lose money, eventually all. This script is for informational and educational purposes only. All content should be considered hypothetical, selected post-factum to demonstrate the upcoming ANN scripts and is not to be construed as financial advice. Decisions to buy, sell, hold, or trade in securities, commodities, and other investments involve risk and are best made based on the advice of qualified financial professionals. Past performance does not guarantee future results. Using this script on your own risk. This script may have bugs and I declare don't be responsible for any losses.
10. Conclusion
Now it’s your turn! Connect your promising Artificial Neural Networks (ANN) and standard indicators to this feature-rich Backtest/Strategy script. This tool allows you to quickly evaluate how well your indicators perform in trading scenarios and easily compare different trading logics defined by algebraic/boolean equations. You can refine your trading strategy step by step without needing a coder. Let it incorporate numerous variables and indicators—simply write the algebraic/boolean equations for trade entries and exits directly into the script’s settings.
Additionally, you can utilize the Time Filter to identify the market conditions where your setups perform best—or where they fall short. The Session Filter helps you isolate recurring favorable conditions to optimize your strategy further. Once you find a promising configuration, you can set up alerts to send webhooks directly. Configure all parameters, test and validate them in paper trading, and if results align with your expectations, deploy the script as your trading bit.
Cheers
whookLibrary "whook"
This library provides functions for generating trading alerts for `whook`
check this -> github.com
Currently supported exchanges:
Kucoin futures
Bitget futures
Coinex futures
Bingx
OKX futures ( also its demo mode )
Bybit futures ( also Bybit testnet )
Binance futures ( also Binance futures testnet )
Phemex futures ( also Phemex testnet )
Kraken futures ( also Kraken futures testnet )
# --- Test Cases ---
Note: These test cases are for demonstration purposes only and may not cover all scenarios.
// buy(string account, float amount, string unit = "units", float leverage = 1)
buy("MyAccount", 100, "units", 1)
buy("MyAccount", 1000, "USDT", 5)
buy("MyAccount", 50, "percent", 2)
// sell(string account, float amount, string unit = "units", float leverage = 1)
sell("MyAccount", 50, "units", 1)
sell("MyAccount", 500, "USDT", 3)
sell("MyAccount", 25, "percent", 2)
// set_position(string account, float amount, string unit = "units", float leverage = 1)
set_position("MyAccount", 100, "units", 1)
set_position("MyAccount", 1000, "USDT", 5)
set_position("MyAccount", 50, "percent", 2)
// limit_buy(string account, float amount, float price, string unit = "units", float leverage = 1, string id = "")
limit_buy("MyAccount", 100, 10000, "units", 1, "MyBuyOrder")
limit_buy("MyAccount", 1000, 10500, "USDT", 5)
limit_buy("MyAccount", 50, 11000, "percent", 2)
// limit_sell(string account, float amount, float price, string unit = "units", float leverage = 1, string id = "")
limit_sell("MyAccount", 50, 10000, "units", 1, "MySellOrder")
limit_sell("MyAccount", 500, 9500, "USDT", 3)
limit_sell("MyAccount", 25, 9000, "percent", 2)
// close_percent(string account, float pct = 100)
close_percent("MyAccount", 100)
close_percent("MyAccount", 50)
buy(account, amount, unit, leverage)
Sends a trading alert to execute a market buy order.
Parameters:
account (string) : The account ID.
amount (float) : The amount to buy (can be in USD, units, or percentage).
unit (string) : The unit of the amount (optional, defaults to "units").
leverage (float) : The leverage to use (optional, defaults to 1x).
sell(account, amount, unit, leverage)
Sends a trading alert to execute a market sell order.
Parameters:
account (string) : The account ID.
amount (float) : The amount to sell (can be in USD, units, or percentage).
unit (string) : The unit of the amount (optional, defaults to "units").
leverage (float) : The leverage to use (optional, defaults to 1x).
set_position(account, amount, unit, leverage)
Sends a trading alert to set a position.
Parameters:
account (string) : The account ID.
amount (float) : The amount to set the position to (can be in USD, units, or percentage).
unit (string) : The unit of the amount (optional, defaults to "units").
leverage (float) : The leverage to use (optional, defaults to 1x).
limit_buy(account, amount, price, unit, leverage, id)
Sends a trading alert to place a limit buy order.
Parameters:
account (string) : The account ID.
amount (float) : The amount to buy (can be in USD, units, or percentage).
price (float) : The limit price.
unit (string) : The unit of the amount (optional, defaults to "units").
leverage (float) : The leverage to use (optional, defaults to 1x).
id (string) : An optional custom ID for the limit order.
limit_sell(account, amount, price, unit, leverage, id)
Sends a trading alert to place a limit sell order.
Parameters:
account (string) : The account ID.
amount (float) : The amount to sell (can be in USD, units, or percentage).
price (float) : The limit price.
unit (string) : The unit of the amount (optional, defaults to "units").
leverage (float) : The leverage to use (optional, defaults to 1x).
id (string) : An optional custom ID for the limit order.
close_percent(account, pct)
Sends an alert to close a position on Phemex.
Parameters:
account (string) : The account ID.
pct (float) : The percentage of the position to close (optional, defaults to 100%).
BotDCA | Algorithmic Smart DCA Bot🌌 What the script does, how it does ?
At the heart of its algorithm, this script incorporates the concept of Dollar Cost Averaging (DCA), a method of periodically allocating funds to an asset to mitigate the effects of market volatility.
Before we start, it's important to clarify that the script is adapted for the cryptocurrency market on USDT & USDC pairs in Spot, and on the Daily timeframe (D).
For this reason, and to optimize profits, the script will generate very few buy and sell positions.
Please also note that the script does not repaint.
Essentially, BotDCA generates buy and sell orders.
These buy and sell orders are generated using the following logic :
BUYING LOGIC :
• Volume : Current volume is compared with a linear percentile of volume over a short period.
This means that if current volume is higher than observed volumes over this period, the volume criteria is considered valid.
• Momentum & Volatility : The Average True Range (ATR) indicator adjusted by a square root is used as a measure of volatility.
Momentum is then calculated as the difference between the current closing price and a short moving average, normalized by this adjusted volatility.
The oversold condition is validated when momentum exceeds a specific level.
For the buy order to be triggered, the volume, momentum and volatility criteria must be validated.
SELLING LOGIC :
• Volume : Similar to the buy logic, the volume criteria is validated when current volume is higher than previous volumes.
• Momentum & Volatility : Volatility is measured using the adjusted ATR indicator, similar to the buy logic.
An overbought condition is validated when normalized momentum, calculated as the difference between the current closing price and a volatility-adjusted short-period moving average, exceeds a specific level.
• Trend : The general market trend is considered for the sell logic.
The trend criteria is validated when the current moving average is higher than that of the previous period.
For the sell order to be triggered, the volume, momentum, volatility and trend criteria must be validated.
These orders are also adjusted according to what the user defines as buy and sell settings :
🔵 Buying settings
• Quantity per order ($) : Defines the amount in stable coins to be invested for each buy order.
• └> Mult. quantity (x) : Multiplication factor applied to the buy quantity for successive orders, enabling the investment to be increased in the event of a price fall.
Example : If Quantity per order is $200 and Mult. quantity is x2, then the second buy order will be $400, the third buy order will be $800, the fourth buy order will be $1600 ...
After a sell order, the multiplier is cancelled.
Note : If value is set to 1 : Disabled
• └> Max. quantity (x) : Sets a maximum purchase quantity limit, preventing orders from exceeding this amount.
Example : If Quantity per order is $200, Mult. quantity is x2, and Max. quantity is $700, then the second buy order will be $400, the third buy order will be $700, the fourth buy order will be $700 ...
Note : If value is less than Quantity or is set to 0 : Disabled
• └> If Price > Average price : Enable or disable quantity multiplier when current price exceeds average price.
• Min. delay (in days) : Establishes a minimum interval in days between two successive purchases to avoid investing too close together.
Example : By default the time interval for the bot is set to D, so if you set 20 as the value, the bot will wait at least 20 days between buy orders before entering a position.
Note : If value is set to 0 : Disabled
• └> Min. deviation (%) : Defines the minimum price difference in percent to trigger a new purchase after the first.
Note : If value is set to 0 : Disabled
• └> Mult. deviation (x) : Apply a multiplication factor to the price differential for successive buys, progressively increasing the purchase interval.
Example : If Mult. deviation is 10% and Min. deviation is x2, then between the first and second buy orders the minimum deviation will be 10%, between the second and third buy orders the minimum deviation will be 20%, between the third and fourth buy orders the minimum deviation will be 40%...
After a sell order, the multiplier is cancelled.
Note : If value is set to 1 : Disabled
• Display help for these settings : On chart, displays help text about buying settings.
🟢 Selling settings
• Quantity (% position) : Percentage of the position to be sold in each sell order.
Example : If the first buy order is 0.1 BTC and the second buy order is 0.2 BTC, then the position is 0.3 BTC.
If Quantity (% position) is set to 20, then the first sell order will be 0.06 BTC (20% of 0.3 BTC), the second sell order will be 0.048 BTC (20% of 0.24 BTC) ...
(Auto ?) : If this option is enabled, the bot will automatically sell part of your position.
The quantity sold depends on the volatility of the last 30 days : the higher the volatility, the more it sells, and the lower the volatility, the less it sells.
The minimum sale defined is 10%, while the maximum sale will not exceed 50%.
• └> Min. deviation (%) : Minimum percentage of price deviation to trigger a sale.
Example : If Average price of BTC is 30 000 USDT and Min. deviation is 10%, then the first sell order will be at least 33 000 USDT, the second sell order will be at least 36 300 USDT ...
Note : If value is set to 0 : Disabled
(Auto ?) : If this option is activated, the bot automatically determines the sell minimum deviation percentage.
The deviation set depends on the volatility of the last 30 days : the higher the volatility, the higher the deviation, and the lower the volatility, the lower the deviation.
A start and end date defines when the script should generate buy and sell positions :
📆 Date settings
• Start date : Indicate the script launch date (If it’s a new launch, you must choose today’s date before creating your TradingView alert).
• End date : Enter the date on which you want the script to stop.
Other parameters can be configured to fine-tune buys and sells :
⏲️ Trading session settings
• Days : Allows you to select the specific days on which the script will be active, offering the possibility of excluding certain days.
🏛️ Exchange settings
• Fees (%) : Indicate the percentage fee applied by the exchange platform on each transaction.
• Price spread (%) : Specifies the price spread to be considered for realistic order adjustment.
🤖 Bot settings
• Add to Position ? : Allows tokens to be manually added to the position when the script is launched.
• └> How much ? (Base) : Number of tokens to add.
• └> Cost ? ($) : Stable coins amount of addition to position.
These settings are included in the calculation when an order is triggered.
Advanced visual customization options can be modified :
🎨 Visual settings
• TradingView Theme : Choose between a light or dark theme for the bot interface.
• Panel : Enables or disables the display of the information panel on the graph, and modifies its size and alignment.
• Positions : Show or hide buy and sell position labels on the chart, and modify their size and appearance (several display modes : basic, simple, advanced).
• Average price : Enables or disables the display of the average price line and modifies its size and color.
• Simulator : Enables or disables the ATH percentage-based simulator line and modifies its size and color.
• Trading session : Displays or hides the background of specified trading sessions.
• Hide warning messages ? : Hide or show warning messages on graph.
A profit simulator can be configured :
🕹️ Simulator settings
• Price (% ATH) : Determines a percentage of the token's ATH to simulate potential gains if the token reaches this price level again.
Users can also activate buying and selling alerts in the settings :
🤖 Bot settings
• START THE BOT ? » ALERTS ON : REAL MODE : Enable or disable the bot to execute real orders based on alerts.
• Mode FULL Auto ? : Enables the Mode FULL Auto, requiring additional configuration for connection to exchange APIs.
• └> Password FULL Auto : Password required to activate the Mode FULL Auto.
By activating FULL Auto Mode with TradingView's webhook system, the user can connect the script to the APIs of compatible exchanges, and receive notifications of buy and sell orders by e-mail, Telegram or Discord.
On the chart, a panel displays a variety of information, and also a backtesting / result of the script.
Here is a list of elements displayed by the panel :
💻 Informations panel
General :
• Pair
• Exchange
• └> Fees
• └> Price spread
• Period
• Start date
• End date
• Trading days
Buying
• Quantity per order
• └> Mult. quantity
• └> Max. quantity
• └> If Price > Average price
• └> Min. deviation
• └> Mult. deviation
• Min. delay (in days)
Selling
• Quantity (% position)
• └> Min. deviation
Exchange
• Next buy
• Next sell
Backtesting / Results
• No. of buys
• No. of sells
• Average price
• Actual position
• Actual net profit
• └> Simulator
• Last buy
• Last sell
🌌 About default settings
Default settings are defined as an example.
Above in the description, you will find details of each setting.
Here's a description of how user-defined setting categories affect the script's buy and sell positions :
📆 Date : Determines between which time ranges buy and sell positions are generated.
⏲️ Trading session : Exclude selected days disables buy positions on deselected days.
🕹️ Simulator : Does not affect buying and selling. It is for information purposes only.
🏛️ Exchange : Fees should be as close as possible to your exchange and price spread depends on your tolerance. This affects buy and sell position.
🔵 Buy : Depending on your investment capacity and risk management, these settings have an impact on buy positions.
🟢 Sell : These settings determine profit-taking. This has an impact on sell positions.
🎨 Visual : Does not affect buy and sell positions. For information only.
🤖 Bot : This part is mainly used to use the script with TradingView alerts. Only the 'Add to position' option affects buy and sell positions.
Once you've set all your settings for the script, you can view the backtesting displayed in the panel on the chart.
🌌 How to use it ?
To summarize how to use this script successfully, please follow these steps :
1. First, choose a cryptocurrency pair (e.g. BTC/USDT).
2. Set a start date (preferably today's date if it's your first launch) and an end date.
3. According on your preferences, you can choose specific trading days, or default to all days of the week.
4. Depending on your exchange, you can set fees and a price spread.
5. Then, based on your portfolio management and investment capabilities, define buy and sell parameters.
6. You can set the bot's appearance on the chart.
7. Once you have configured your settings, you can choose a simulation price.
8. Finally, to activate TradingView Alerts, check the box START THE BOT ? ALERTS ON : REAL MODE.
🌌 Overview
Here's a preview of the script with a few screenshots :
BTC/USDT • Basic display
SOL/USDT • Simple display
XRP/USDT • Advanced display
MATIC/USDT • Light theme
Script settings
🌌 Why do I have to pay ?
BotDCA uses advanced indicators and complex calculations to identify buying and selling opportunities.
With TradingView's alert system, it automates your investment strategy, eliminating the need for constant manual analysis and constant market monitoring.
This saves you precious time.
With adjustable buy and sell settings, you can customize the script to suit your risk tolerance and investment objectives.
This flexibility adds considerable value, allowing you to optimize the script to suit your situation.
Paid access ensures that you benefit from ongoing support and updates, which are essential for maintaining the script's effectiveness.
🌌 Disclaimer
This script is provided for educational purposes only and should not be construed as investment advice.
Users should be aware that trading in the financial markets involves risks, and that past performance of a script does not guarantee future results.
It is strongly recommended that you carry out a detailed analysis and consider your financial situation and risk tolerance before committing yourself to trading/investing.
Manual Buy&Sell Alerts [Starbots]This is a simple Strategy created to help you manually execute open or close orders via Alerts on Exchanges or Platforms.
More and more Exchanges and Platforms allow Tradingview Alert trading and sometimes we come to a problem that we can not sell an open order on the exchanges other way than signaling a sell or buy from Tradingview Alerts.
This is a tool to solve that problem as your are able to manually:
- send alert on limit targets (Long limit target, Short limit target, Take Profit limit target, Stop Loss limit target)
- send alert when new live bar opens on the market (simple way for closing your open trades on the Exchange/Platform - it will sell your open Long/Short order after new live bar is opened on the market)
Functions:
- 🕛Start
Define a start time for strategy to open/close trades
- 🕐Stop Trading after your Order is Closed
If you wish to stop opening/closing trades after your first position is successfully closed keep this turned on. If you wish to keep opening/closing trades indefinitely when the conditions are met keep this turned off.
🏁Buy&Sell By Limit Target
-Buy Price
-Take Profit
-Stop Loss
-🟢Enable Long Limit Orders
-🔴Enable Short Limit Orders
If you enable Enable Long or Short limit orders you will be able to execute trades when the price reaches your limit target lines.
Please Note that if you turn on Shorting, your Take Profit limit target must be 'UNDER' your buy price and Stop Loss limit target must be 'ABOVE' your buy price.
Type in your limit values manually or re-apply the strategy to your chart to select limit targets again with a mouse - you can also drag the limit lines to your wanted areas.
(I recommend using low time-frame charts - 30s, 1minute for fast executions)
🏁Buy&Sell After New Bar Opens
-🟢Open Long
-Close Long on a new Open Bar
-🔴Open Short
-Close Short on a new Open Bar
This is a simple way for closing your open trade on Exchanges. If you select Open Long/Short and then Close Long/Short on a new Open bar it will sell your open order and send sell alert when the new bar is opened on the market. Choose your time-frame and execute immediate sell order when a new bar is opened. You can select low 15s-30s-1minute charts to quickly get a sell alert.
Alerts
Long Message
Short Message
Exit Long Message
Exit Short Message
You can type in your webhook alert messages in this inputs. Write this code in 'Message' when creating Alert for strategy to send your Buy/Sell messages from above inputs.
{{strategy.order.alert_message}}
If you trade on exchanges and use different dynamic alert message to trade from Strategies, then you can just leave Alert inputs empty and write down your message alert in 'Message' box when creating new alert normally.
>> Do not forget to also set order size and pyramiding in properties tab correctly in this case.
Bonsai BX (Backtester)In today's trading landscape, traders need precision and deep analytical tools to navigate the sea of strategies. The Bonsai Backtester is one such tool, meticulously designed to evaluate multiple trading strategies in an integrated manner.
═════════════════════════════════════════════════════════════════════════
🌳 Bonsai BX 🌳 Universal Strategy Testing
📘 Overview
A product of collaboration with the Bonsai community, this backtester is both a reflection of collective insights and a means to provide traders with data-driven insights on TradingView.
📌 Current Backtest
• Dataset: BTCUSD daily candles from Coinbase, starting from March 2015.
• Source Signals: The Bonsai indicator signals are employed for both long and short entries. These are directly visible on the publication chart.
• Trading Assumptions:
• Initial Capital: $1,000
• Maximum Position Size: 10% of equity per trade
• Stop Loss: 10% per position
• Commission: 0.1%
• Slippage: 100 ticks (1.00)
🛠 Key Features
The Bonsai BX is equipped with a range of features aimed at providing traders with a more comprehensive analysis environment:
Features on Chart
• External Indicator Adaptability: Easily incorporate signals from both built-in and custom TradingView indicators.
• Snapshot Table: Delivers on-the-spot insights into crucial strategy performance metrics, including equity, open profit, position size, and entry price. While these details are available in TradingView's 'Performance Summary' panel, we've integrated them directly onto the chart for a more streamlined and accessible viewing experience.
• Trade Labels: Visualize profit metrics for individual trades directly on the chart, allowing for a more immediate grasp of trade outcomes.
• Long & Short Behaviors: Modify long behaviors to either open new long positions while closing short ones, or simply to close short positions. Conversely, for short behaviors, opt to either initiate new short positions while closing any active long ones or simply close long positions.
• Multiple Signals Integration: The tool can currently handle up to three different external signals for long and short trades.
• Condition-based Initiation: Define whether longs and shorts are triggered when 'All Conditions Met' or just 'Any Single Condition Met'. This flexibility allows for a more nuanced trading approach. For example, if you're using a trade signal alongside the RSI, you can specify that a long position should only open when the trade signal is active and the RSI is below 30 at the same time. This lets you combine multiple signals or conditions for more precise trade initiation.
• TP & SL Customization:
• Single TP: Set a specific Take Profit percentage.
• SL: Define a Stop Loss percentage and choose between a standard or trailing stop.
• Trail From: Specify the starting point of the trailing stop, be it the breakeven point or a certain percentage.
• Interface Theme: Users can select between light and dark themes for their interface.
Performance and Trailing
🎛 Using Bonsai BX
1. Add it to your TradingView chart.
2. Adjust script parameters and settings. Integrate external indicator signals as needed.
3. Activate the backtester to refine trading strategies.
Backtester Settings Menu
🪝 Webhook (Beta)
The Webhook functionality, now in beta, augments the Bonsai BX utility. This feature offers a more intuitive method for users to direct webhooks to trading bots, exchanges, and brokers. It simplifies the process by eliminating the need to adjust JSON structures or other payload formats, making alert automation more accessible.
📜 Feedback & Community
The feedback from the Bonsai community has been instrumental in the tool's development and will continue to shape its evolution. As part of our commitment to adaptive, smart trading, this script will continually be updated to meet the ever-changing requirements of traders.
❗️ Disclaimer
Backtesting tools, including the Bonsai BX , simulate trading strategies based on historical data. The following key points should be kept in mind:
1. Past Performance is Not Predictive: While backtesting can offer insights, it's essential to understand that past performance does not guarantee or predict future results. Historical data might not account for future market changes or unforeseen events.
2. External Influences: Market outcomes can be significantly influenced by various external factors like geopolitical events, economic announcements, and sudden shifts in market sentiment. Such factors are often not considered in backtesting simulations.
3. Market Dynamics: Elements like market volatility, liquidity constraints, and slippage can drastically alter expected outcomes. These dynamics might not always be accurately represented in backtest simulations.
4. Limitations of Simulated Trades: Backtesting operates under the assumption that historical trends and patterns will replicate. However, market conditions evolve, and what worked in the past might not necessarily be viable in the future.
5. Informed Decisions: Always base your trading decisions on a mix of comprehensive research, current market analysis, and risk assessment. Relying solely on backtested results can lead to misconstrued perceptions and potential pitfalls.
Trading involves risks, and it's crucial to be fully informed and cautious before making any investment decisions. Always consider seeking advice from financial experts or professionals when in doubt.
Entry Alert BotThis bot is SIMPLY to trigger an external webhook. You simply enter you take profit, entry, and stop loss %, and it will auto-populate the variables listed to the calculated values. That is all this script does. It does draw the trade on the chart for you. If you want a long, and price crosses up over you entry it will trigger the webhook. If you want a short and price crosses below your entry, it will trigger the webhook.
Trade Ideas to Discord WebhookTakes basic user inputs for entries, exits, stop loss and leverage.
Converts all inputs (removing unused ones) to an alert message.
Intended for use as a single alert / message.
Alert will fire as soon as activated - after that you should delete the alert to prevent multiple alerts being fired on subsequent candles.
POALibrary "POA"
This library is a client script for making a webhook signal formatted string to POABOT server.
entry_message(password, percent, leverage, kis_number)
Create a entry message for POABOT
Parameters:
password : (string) The password of your bot.
percent : (float) The percent for entry based on your wallet balance.
leverage : (int) The leverage of entry. If not set, your levereage doesn't change.
kis_number : (int) The number of koreainvestment account.
Returns: (string) A json formatted string for webhook message.
close_message(password, percent, kis_number)
Create a close message for POABOT
Parameters:
password : (string) The password of your bot.
percent : (float) The percent for close based on your wallet balance.
kis_number : (int) The number of koreainvestment account.
Returns: (string) A json formatted string for webhook message.
exit_message(password, percent)
Create a exit message for POABOT
Parameters:
password : (string) The password of your bot.
percent : (float) The percent for exit based on your wallet balance.
Returns: (string) A json formatted string for webhook message.
in_trade(start_time, end_time)
Create a trade start line
Parameters:
start_time : (int) The start of time.
end_time : (int) The end of time.
Returns: (bool) Get bool for trade based on time range.
FrostyBotLibrary "FrostyBot"
JSON Alert Builder for FrostyBot.js Binance Futures and FTX orders
github.com
More Complete Version Soon.
TODO: Comment Functions and annotations from command reference ^^
TODO: Add additional whitelist and symbol mappings.
leverage()
buy()
sell()
cancelall()
closelong()
closeshort()
traillong()
trailshort()
long()
short()
takeprofit()
stoploss()
Market MonitorThe script can be used to send a JSON message to the webhook once per time. For example, to store market conditions in an external database. The latter is make sense for smaller timeframes due to TradingView limitations on the number of available bars. The interval between messages can be set in the settings. To set up transmitted market metrics, you will probably need to modify the script code to add metrics that are important to you.
[Strategy Alert Webhook Demo] Buy One Sell One Buy One Sell One
Two Options to send Alert Order via Webhook
1. Order fill events with `alert_message` on strategy.close(), strategy.entry(), strategy.exit() and strategy.order()
NOTE: Need to fill the Alert Creation box with `{{strategy.order.alert_message}}`
2. Send Alert through `alert()`
RELATIVE VALUE TRADE MANAGEMENT WEBHOOKThis script it's created to send open-close signals via webhook. It allows you to open a relative value position based in the relative graph. You can set the TP and SL levels and the script will send the signal to your exchange.
Due a pine limitations it is necessary apply the script in the 2 different actives and set the alerts. You can just do the relative analysis and then go to the first asset and set the script. Create your alert and then just go to the other asset and create the alert. It doesn't necessary to change anything in the script because the levels are the same.
It is also possible to do the analysis using the script, deploying the relative graph, but could be annoying sometimes due scales.
Positions will be placed at close always.
THIS IS IMPORTANT: I use Zignaly as a exhange so if you are using Binance or other YOU MUST CHANGE the code. If you know the JSON format that It requires would be easy.
Here is tips in all the important imputs. But let me explain the most important.
The MANDATORY fields are:
Ticker IDs: Here you must write the EXACT ID code for the active. Caps included.
Example : BINANCE:SUSHIUSDTPERP
It is also important select the correct market side. If you want to be long of ANY active you must write that ID in the LONG ID. For short positions is the same.
Time frame: Here you can select the time frame of the graph (not the current active graph, I mean the relative one.) The orders will be send using that time frame. I recommend to do the analysis in other window and then use the script to trigger the order in the time frame that you want.
Money management: In these fields you can select the qty that you will lose if the SL level is reach. Based in a determinated amount of currency or in a % of your capital.
Dates: It is important to select the start date. If the order is already open, we must look for the moment where the activation price was reached. If the order is unopened it is better to select the current date, so the order will be triggered when the entry level is reached.
Ids: If you have current open position you can set here that ID to send the correct order to the exchange.
To set the alert just call the function {{{strategy.order.alert_message}}}
WinR Bot LONG {rezamehrjoo}Hi, this technical indicator is the best indicator for connecting to interface platforms.
One of the advantages of this indicator is that with just one web hook, you can get a large number of signals and close all trades in profit with Martingle strategy without stop loss.
TradingHookLibrary "TradingHook"
This library is a client script for making a webhook signal formatted string to TradingHook webhook server.
buy_message(password, amount, order_name) Make a buy Message for TradingHook.
Parameters:
password : (string) password that you set in .env file.
amount : (float) amount. If not set, your strategy qty will be sent.
order_name : (string) order_name. The default name is "Order".
Returns: (string) A string containing the formatted webhook message.
sell_message(password, percent, order_name) Make a sell message for TradingHook.
Parameters:
password : (string) password that you set in .env file.
percent : (string) what percentage of your quantity you want to sell.
order_name : (string) order_name. The default name is "Order".
Returns: (string) A string containing the formatted webhook message.
You can use TradingHook WebServer open source code in github(github.com)
DiscordWebhookFunctionLibrary "DiscordWebhookFunction"
discordMarkdown(_str, _italic, _bold, _code, _strike, _under) Convert string to markdown formatting User can combine any function at the same time.
Parameters:
_str : String input
_italic : Italic
_bold : Bold
_code : Code markdown
_strike : Strikethrough
_under : Underline
Returns: string Markdown formatted string.
discordWebhookJSON(_username, _avatarImgUrl, _contentText, _bodyTitle, _descText, _bodyUrl, _embedCol, _timestamp, _authorName, _authorUrl, _authorIconUrl, _footerText, _footerIconUrl, _thumbImgUrl, _imageUrl) Convert data to JSON format for Discord Webhook Integration.
Parameters:
_username : Override bot (webhook) username string / name,
_avatarImgUrl : Override bot (webhook) avatar by image URL,
_contentText : Main content page message,
_bodyTitle : Custom Webhook's embed message body title,
_descText : Webhook's embed message body description,
_bodyUrl : Webhook's embed body direct link URL,
_embedCol : Webhook's embed color,
_timestamp : Timestamp,
_authorName : Webhook's embed author name / title,
_authorUrl : Webhook's embed author direct link URL,
_authorIconUrl : Webhook's embed author icon by image URL,
_footerText : Webhook's embed footer text / title,
_footerIconUrl : Webhook's embed footer icon by image URL,
_thumbImgUrl : Webhook's embed thumbnail image URL,
_imageUrl : Webhook's embed body image URL.
Returns: string Single-line JSON format
Divergence of DecisionPoint Breadth Swenlin Trading [LazyBear]// This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © 03.freeman
//This is indicator from LazyBear is very accurate for stocks and indexes.
//I added some code snippets for spot and draw divergences automatically
//
// @author LazyBear
//
//
Best use with daily time frame.
Enter when a divergence is found (Bull or Bear label) and wait at least a couple of candles before exit.
Next improvement: alerts ready made for webhooks and screener for multiple tickers.
Please use comment section for any feedback.
Study for Squeeze Momentum Indicator [LazyBear]This study is based on LazyBear Squeeze Momentum Indicator and my strategy developed using it.
I added some custom feature and filters.
Main improvements are:
1- study is updated to version 4 of pine script;
2- I added alerts for entry rules and exit rules.
3- Alert syntax can be customized for webhooks: I added one example only for long entry.
You can customize a lot of features to get a profitable strategy.
Here is a link to original study.
Please use comment section for any feedback.