analyzPian### Description of the Script: **AnalyzPian Indicator**
The **AnalyzPian** indicator is a TradingView Pine Script designed to identify and visualize bullish and bearish price swings, breakouts, and retests on a chart. It uses pivot points (highs and lows) to detect significant price movements and overlays boxes and labels to highlight these areas for traders. Below is a detailed breakdown of its functionality and features:
---
### **Key Features**
1. **Dual Swing Detection**:
- The script identifies both **bullish** and **bearish** swings using pivot points (`ta.pivothigh` and `ta.pivotlow`).
- These swings are used to define potential breakout zones.
2. **Breakout and Retest Zones**:
- Once a swing is detected, the script creates a box around the price level to represent the **potential breakout zone**.
- If the price breaks out of the box, it transitions into a **retest phase**, where the script looks for retests of the breakout level.
3. **Customizable Display Options**:
- Users can choose to display **Bullish**, **Bearish**, or both types of swings.
- Additional options allow filtering for **last retest only** or showing **all retests** with labels.
4. **Dynamic Box Adjustments**:
- Boxes dynamically adjust their width based on user-defined parameters (`maxBars`, `minBars`).
- If the right side of the box exceeds the maximum allowed bars without a signal, the box is either deleted or reset to the last retest position.
5. **Labeling System**:
- Labels are added to indicate **breakouts** (▲ or ▼) and **retests** (▽ or △).
- Labels are styled differently for bullish and bearish signals and can be customized in terms of color and size.
6. **State Management**:
- The script uses a state machine (`state`) to track the lifecycle of each swing:
- **State 0**: Initial state, waiting for a swing detection.
- **State 1**: Swing detected, breakout zone created.
- **State 2**: Breakout confirmed, retest zone active.
7. **ATR-Based Width**:
- The width of the boxes is calculated using the **Average True Range (ATR)**, ensuring that the zones adapt to market volatility.
8. **User Inputs**:
- Extensive customization options are provided through input parameters:
- **Display Options**: Choose between bullish, bearish, or both.
- **Box Width**: Adjust the multiplier for ATR-based width.
- **Maximum Bars**: Set the maximum number of bars without a signal before resetting.
- **Minimum Bars**: Define the minimum distance between labels.
- **Set Back Option**: Reset the box to the last retest position if the right side is too far.
9. **Visual Enhancements**:
- Boxes and labels are styled with customizable colors and transparency for better visualization.
- Labels use intuitive symbols (▲, ▼, ▽, △) to clearly indicate the type of signal.
---
### **How It Works**
1. **Swing Detection**:
- The script uses `ta.pivothigh` and `ta.pivotlow` to identify significant highs and lows based on user-defined left and right lookback periods.
- These pivots serve as the foundation for creating breakout and retest zones.
2. **Box Creation**:
- When a swing is detected, a box is drawn around the price level to represent the breakout zone.
- The box's height is determined by the ATR, and its width expands dynamically as new bars are added.
3. **Breakout Confirmation**:
- If the price moves outside the box (breakout), the script transitions to the next state and creates a new box for the retest phase.
- Labels are added to mark the breakout point.
4. **Retest Detection**:
- During the retest phase, the script monitors whether the price revisits the breakout level.
- If a retest occurs, a label is added to indicate the event.
5. **Reset Mechanism**:
- If no signal is detected within the maximum allowed bars, the box is either deleted or reset to the last retest position.
---
### **Use Cases**
1. **Trend Identification**:
- Traders can use the indicator to identify bullish and bearish trends by observing the direction of breakouts and retests.
2. **Entry and Exit Points**:
- Breakout zones can serve as potential entry points, while retests provide confirmation for trades.
3. **Risk Management**:
- The boxes help visualize key support and resistance levels, aiding in stop-loss placement and risk assessment.
4. **Market Analysis**:
- The dynamic nature of the indicator makes it suitable for analyzing both trending and ranging markets.
---
### **Code Structure**
1. **Settings Section**:
- Contains user-defined inputs for customizing the behavior and appearance of the indicator.
2. **UDT (User-Defined Type)**:
- Defines a `bin` type to store information about each swing, including its state, price level, and associated labels.
3. **Methods**:
- Includes helper functions for managing labels, checking conditions, and updating states.
4. **Execution Logic**:
- Implements the core logic for detecting swings, managing states, and drawing boxes and labels.
---
### **Conclusion**
The **AnalyzPian** indicator is a powerful tool for traders who want to visually analyze price swings, breakouts, and retests. Its flexibility, combined with its intuitive design, makes it suitable for a wide range of trading strategies. By leveraging pivot points and ATR-based zones, the script provides actionable insights into market dynamics while maintaining a clean and customizable interface.
Analyze
Trade Warehouse (SPOT trades)Hello there!
Let's imagine You are trading SPOT, buy more and more every new dump, but bear market is not going to stop... and your first trade was 3 YEARS AGO!!!
Can't believe it is true.
The problem is - exchanges allow You to see only new trades last 6 months(Binance). But I want to see all of them! How do I know AVG Price?
This script is my solution. Just use it to track and store your trade, so You can see AVG without uploading old trades everytime and using calculator.
Script description:
Here You can see the "Trade" type of variable. Python script using Pandas converts trades from .csv file into string type that You can input as trade(price, pair, amount, date..). After it uppends to the trades_array and pushed into the loop.
If trade date is more than current cundle - it pushes new trade to other arrays such a "pair", "avg_tot" etc. to comput it later.
If trade was buy - it increase invested capital and owned amount, opposite for sell and recomputs AVG price.
Since script has at least 1 trade it starts to plot AVG price.
There are 2 AVG price:
1. For total invested counting(You can get negative value if traded successful)
2. Current AVG price since last 0 currency amount(there is dust value to set how many usd we take as dust)
Table represents all assets statistics
Just upload your trades only 1 time, use script to convert it into pine code, and use as indicator. This script allow You to see ALL trades from oldest to the newest.
github.com/Arivadis/...w_Tradings_warehouse
If this script helped You - press Star (on GitHub) Like (on TradingView)
Warning -
Does not include free/earn/withdraw/deposit counting. Only Buy and Sell =>
This script has no idea about your side currency deposits, so if You got Your BTC or EUR or .. from another wallet and sold later - it can break your statistical data. Add this transfer manually(see examples inside script).
Use my github manual to get this script workin.
Installing takes around 3 minutes and contains 3-5 steps