OPEN-SOURCE SCRIPT
Fabio Delta Volume Profile

🔹 Introduction
This indicator, "Fabio Delta Volume Profile", builds a session volume profile where each row shows net signed volume — estimated buying pressure minus estimated selling pressure — instead of total volume traded.
The idea is straightforward. A standard volume profile tells you where the market spent its activity. It cannot tell you who won at those prices. Two rows with identical volume can mean completely opposite things: one where aggressive buyers lifted offers and price left immediately, and one where aggressive buyers hit a wall of resting supply and went nowhere. Total volume is blind to the difference. Net delta is not.
Here is the honest part, stated up front: true delta requires knowing whether each trade executed at the bid or the ask, and TradingView does not expose that data to Pine. Every delta figure this script produces is an estimate derived from intrabar price direction. That estimate is defensible — it is essentially the tick rule, one of the oldest and best-studied trade classification methods in market microstructure — but it is an estimate, and I will be specific throughout about where it degrades.
🔹 The Premise
🔸 Every trade has two sides, but only one initiator
A trade happens when someone crosses the spread. A resting limit order sits passively; a market order comes and takes it. Both parties transact the same volume, but only one of them demanded immediacy. That asymmetry is the entire foundation of order flow analysis.
Delta is the running count of who demanded immediacy. If 10,000 contracts trade at a price and 7,000 of them were buyers lifting offers, delta at that price is +4,000. The other 3,000 buyers were filled passively by sellers who came to them.
Why does this matter? Because aggression that produces movement and aggression that produces nothing are two very different market states.
🔸 A worked example
Assume ES is trading at 5,000.00 and rotating into yesterday's value area low at 4,992.00.
Price arrives at 4,992.00. Over the next fifteen minutes, 40,000 contracts trade in a two-point band around that level. Delta over that window is −22,000 — heavily seller-initiated. Aggressive sellers are hitting the bid relentlessly.
Now ask the only question that matters: where is price?
Case one: price is at 4,986.00. Sellers pressed, and price gave way. The imbalance produced displacement. The level failed. Delta and price agree.
Case two: price is at 4,992.50. Sellers pressed 22,000 contracts of net aggression into that level and price is half a point higher than where they started. Every one of those market sell orders was filled by a passive buyer who was willing to stand there and take the other side. Nobody absorbs 22,000 contracts by accident.
The second case is the interesting one, and total volume cannot see it at all. Both cases print 40,000 contracts at 4,992.00. The volume profile draws an identical row. Only the sign and size of the delta, held against price's failure to move, separates a level that broke from a level that held.
This is the phenomenon usually called absorption, and it is the reason a delta profile exists.
🔸 Why the row matters more than the bar
Most delta tooling on TradingView plots delta per bar — one number per five-minute candle, or a cumulative line. That is useful, but it throws away the location information.
Consider a five-minute bar with a total delta of +200. Unremarkable. Now decompose it: +3,000 of net buying concentrated in the bottom three ticks of the bar's range, and −2,800 spread across the top. That is not a neutral bar. That is buyers being aggressive at the low and sellers being aggressive at the high — a violently two-sided bar that nets to nearly nothing.
Aggregating delta to the bar destroys exactly the information that makes delta actionable, because the level is the whole point. Order flow that is not anchored to a price you care about is noise. Order flow at a mapped level — a value area edge, a prior day's POC, an untested gap — is context.
Delta by Price exists to put the imbalance back where it happened.
🔸 What the research actually says about inferring direction from price
Since the classification is inferred rather than observed, it is worth knowing how good the inference is. This is well-studied.
Lee and Ready (1991) introduced the standard framework for classifying trades as buyer- or seller-initiated when the initiator is not recorded in the data. Ellis, Michaely, and O'Hara (2000) then tested those methods against a proprietary Nasdaq dataset that did record the true initiator, and found the quote rule, the tick rule, and the Lee-Ready rule correctly classified 76.4%, 77.66%, and 81.05% of trades respectively. Finucane (2000), testing the same question independently, found the tick test performed roughly as well as the more elaborate Lee-Ready algorithm — and that both performed worse than researchers had assumed.
So the tick rule lands somewhere in the mid-to-high seventies for accuracy on equities. Not exact. Not noise either.
There is a more pointed finding for futures traders. Andersen and Bondarenko (2015) constructed an accurate trade classification benchmark specifically for E-mini S&P 500 futures, using quote and trade data, and compared it against the bulk-volume classification scheme of Easley, López de Prado, and O'Hara (2012). Two results are relevant here. First, the simple tick rule outperformed bulk-volume classification. Second — and this is the part worth internalizing — rising volatility systematically induces classification errors.
Read that again, because it is the single most important limitation of this tool. The delta estimate is least reliable precisely during the fast, volatile, high-participation moments you most want to read. No amount of code fixes this. It is a property of inferring intent from price when price is moving quickly.
And separately, order imbalance is not a curiosity — it is a documented driver of returns. Chordia, Roll, and Subrahmanyam (2002) found market-wide returns are strongly affected by contemporaneous and lagged order imbalance, and that returns reverse after large negative-imbalance days. Chordia and Subrahmanyam (2004) extended the result to individual names. Chan and Fong (2000) tied order imbalance directly to the volatility-volume relation.
The concept is sound and the measurement is approximate. Both of those things are true at once, and the second one is why this indicator is built as a context tool rather than a signal generator.
🔹 How It Works
🔸 Estimating delta
Show Image
The script requests lower-timeframe OHLCV data for every chart bar — automatically selecting 1-second intrabars on a seconds chart, 1-minute on intraday, and so on, or a timeframe you specify.
Each intrabar is classified by the tick rule: close above open, its volume counts as buy-initiated; close below open, sell-initiated; unchanged, discarded. That signed volume is then dropped into the price row containing the intrabar's close.
There are limitations and assumptions here. The classification is per intrabar, not per trade — a one-minute intrabar containing 4,000 contracts is treated as one directional unit, when in reality it contained thousands of individually classifiable transactions. And the entire intrabar's volume is assigned to a single row, even though the intrabar had a range. On a violent one-minute bar spanning fifteen ticks, that is a real distortion.
Choosing a finer lower timeframe reduces both problems — 1-second intrabars classify and locate far more precisely than 1-minute. The tradeoff is history: finer intrabars exhaust TradingView's intrabar data budget faster, so the profile reaches back over fewer sessions. That is the trade you are making with that setting, and it is worth making deliberately.
🔸 Tick-based rows
Most profile scripts ask for a row count and divide the range by it. That means the row height changes every session — a 40-point day and a 90-point day produce rows of different sizes, and a row never covers the same prices twice.
This one asks for a row size in ticks, and rows sit on a fixed grid anchored to the instrument's tick size. A 4-tick row on ES always spans the same four ticks, session after session. Profiles become directly comparable across days, and rows line up with the price levels you actually mark.
The constraint is Pine's 500-drawing-object ceiling, shared across every profile on screen. The script computes a per-session row budget, and if a session's range needs more rows than its budget allows, rows are merged automatically and the effective size is displayed in the stats table. Nothing is silently dropped — you are told when the resolution you asked for was not available. Fewer sessions displayed means a larger budget each and finer rows.
🔸 Multi-session profiles
Show Image
Each completed session is drawn once at its own anchor and frozen; the developing session redraws live on every tick. Closed sessions are faded so the current one reads clearly against its history, and profile width scales to each session's own bar span.
One structural limitation: historical profiles are constructed bar-by-bar as the script executes, which means they exist only for sessions inside the chart's loaded history. Scroll back far enough and they stop. TradingView's own Session Volume Profile behaves identically — it is a property of the platform, not a defect in the implementation.
🔸 POC and Value Area
The point of control marks the row with the highest concentration, and the value area expands outward from it until the chosen percentage of the session's activity is enclosed — the conventional 70% by default, which comes from treating the distribution as roughly normal and taking one standard deviation.
The POC / VA Source toggle is the interesting setting, and it changes what question the profile answers.
Set to Volume, POC and value area are computed on total volume. This reproduces a conventional volume profile's levels — the prices with the most transaction activity, the ones most traders are watching, the ones that function as reference points precisely because they are widely observed.
Set to Absolute Delta, POC and value area are computed on the magnitude of net imbalance instead. Now the POC marks the price with the largest one-sided commitment, which is not necessarily the price with the most volume. A row can carry enormous volume and near-zero delta — that is two-sided churn, and a volume POC will flag it while a delta POC will not.
When those two levels sit far apart, the session had heavy activity somewhere the participants were evenly matched, and heavy commitment somewhere else. That gap is often more informative than either level alone.
🔸 Reading it
Row length is the magnitude of net imbalance at that price; color is the sign. Long teal rows are net buying, long red rows are net selling, short rows are balance.
A few configurations worth recognising:
Large delta with no displacement. A long row at an extreme of the session, where price then reversed. The aggression was absorbed by passive size. This is the absorption signature from the worked example above.
Large delta with displacement. A long row that price left immediately and did not revisit. The aggression was rewarded — closer to initiative than absorption.
Delta sign flipping at a value area edge. Price retests the edge and the rows there change color from the prior test. Something about who is defending that level changed.
A stack of same-color rows away from the POC. Sustained one-sided commitment away from the balance area — usually where a trend leg was built.
None of these are signals. They are descriptions of what happened at a price, and they are only worth anything when the price already mattered to you before you looked at the profile. A large delta row in the middle of a featureless range is a statistic. The same row at yesterday's value area low, on a retest, in a session where you already had a directional thesis, is context.
🔹 Closing Remarks
Volume tells you where the market was busy. Delta attempts to tell you who was demanding immediacy while it was busy there — and the disagreement between heavy aggression and absent movement is one of the more reliable tells that passive size is defending a price.
That said, everything here rests on an inference. The classification is the tick rule applied to intrabar candles, not observed bid/ask execution data, and the research is clear that this approach is right somewhere in the high seventies percent of the time on individual trades and gets worse as volatility rises. Volume is assigned to rows at intrabar closes rather than at the price of each transaction. Row resolution is bounded by a hard platform limit.
Treat every level this draws as a probabilistic reading of what likely happened, not a record of what did. Large delta clusters do not guarantee that a level will hold, and a POC is not a magnet. Used as a layer of context over levels you mapped independently — and ignored when the profile disagrees with the rest of your read — it earns its place on the chart. Used as a standalone entry trigger, it will disappoint you, and the research above explains exactly why.
If you find configurations that read well on your instrument, or edge cases where the estimate breaks down in an interesting way, I would like to hear about them.
🔹 References
Trade classification and its accuracy
Lee, C. M. C., & Ready, M. J. (1991). Inferring Trade Direction from Intraday Data. The Journal of Finance, 46(2), 733–746.
Ellis, K., Michaely, R., & O'Hara, M. (2000). The Accuracy of Trade Classification Rules: Evidence from Nasdaq. Journal of Financial and Quantitative Analysis, 35(4), 529–551.
Finucane, T. J. (2000). A Direct Test of Methods for Inferring Trade Direction from Intra-Day Data. Journal of Financial and Quantitative Analysis, 35(4), 553–576.
Order flow classification in futures markets
Easley, D., López de Prado, M. M., & O'Hara, M. (2012). Flow Toxicity and Liquidity in a High-Frequency World. The Review of Financial Studies, 25(5), 1457–1493.
Andersen, T. G., & Bondarenko, O. (2015). Assessing Measures of Order Flow Toxicity and Early Warning Signals for Market Turbulence. Review of Finance, 19(1), 1–54.
Order imbalance and returns
Chordia, T., Roll, R., & Subrahmanyam, A. (2002). Order imbalance, liquidity, and market returns. Journal of Financial Economics, 65(1), 111–130.
Chordia, T., & Subrahmanyam, A. (2004). Order imbalance and individual stock returns: Theory and evidence. Journal of Financial Economics, 72(3), 485–518.
Chan, K., & Fong, W.-M. (2000). Trade size, order imbalance, and the volatility-volume relation. Journal of Financial Economics, 57(2), 247–273.
This indicator, "Fabio Delta Volume Profile", builds a session volume profile where each row shows net signed volume — estimated buying pressure minus estimated selling pressure — instead of total volume traded.
The idea is straightforward. A standard volume profile tells you where the market spent its activity. It cannot tell you who won at those prices. Two rows with identical volume can mean completely opposite things: one where aggressive buyers lifted offers and price left immediately, and one where aggressive buyers hit a wall of resting supply and went nowhere. Total volume is blind to the difference. Net delta is not.
Here is the honest part, stated up front: true delta requires knowing whether each trade executed at the bid or the ask, and TradingView does not expose that data to Pine. Every delta figure this script produces is an estimate derived from intrabar price direction. That estimate is defensible — it is essentially the tick rule, one of the oldest and best-studied trade classification methods in market microstructure — but it is an estimate, and I will be specific throughout about where it degrades.
🔹 The Premise
🔸 Every trade has two sides, but only one initiator
A trade happens when someone crosses the spread. A resting limit order sits passively; a market order comes and takes it. Both parties transact the same volume, but only one of them demanded immediacy. That asymmetry is the entire foundation of order flow analysis.
Delta is the running count of who demanded immediacy. If 10,000 contracts trade at a price and 7,000 of them were buyers lifting offers, delta at that price is +4,000. The other 3,000 buyers were filled passively by sellers who came to them.
Why does this matter? Because aggression that produces movement and aggression that produces nothing are two very different market states.
🔸 A worked example
Assume ES is trading at 5,000.00 and rotating into yesterday's value area low at 4,992.00.
Price arrives at 4,992.00. Over the next fifteen minutes, 40,000 contracts trade in a two-point band around that level. Delta over that window is −22,000 — heavily seller-initiated. Aggressive sellers are hitting the bid relentlessly.
Now ask the only question that matters: where is price?
Case one: price is at 4,986.00. Sellers pressed, and price gave way. The imbalance produced displacement. The level failed. Delta and price agree.
Case two: price is at 4,992.50. Sellers pressed 22,000 contracts of net aggression into that level and price is half a point higher than where they started. Every one of those market sell orders was filled by a passive buyer who was willing to stand there and take the other side. Nobody absorbs 22,000 contracts by accident.
The second case is the interesting one, and total volume cannot see it at all. Both cases print 40,000 contracts at 4,992.00. The volume profile draws an identical row. Only the sign and size of the delta, held against price's failure to move, separates a level that broke from a level that held.
This is the phenomenon usually called absorption, and it is the reason a delta profile exists.
🔸 Why the row matters more than the bar
Most delta tooling on TradingView plots delta per bar — one number per five-minute candle, or a cumulative line. That is useful, but it throws away the location information.
Consider a five-minute bar with a total delta of +200. Unremarkable. Now decompose it: +3,000 of net buying concentrated in the bottom three ticks of the bar's range, and −2,800 spread across the top. That is not a neutral bar. That is buyers being aggressive at the low and sellers being aggressive at the high — a violently two-sided bar that nets to nearly nothing.
Aggregating delta to the bar destroys exactly the information that makes delta actionable, because the level is the whole point. Order flow that is not anchored to a price you care about is noise. Order flow at a mapped level — a value area edge, a prior day's POC, an untested gap — is context.
Delta by Price exists to put the imbalance back where it happened.
🔸 What the research actually says about inferring direction from price
Since the classification is inferred rather than observed, it is worth knowing how good the inference is. This is well-studied.
Lee and Ready (1991) introduced the standard framework for classifying trades as buyer- or seller-initiated when the initiator is not recorded in the data. Ellis, Michaely, and O'Hara (2000) then tested those methods against a proprietary Nasdaq dataset that did record the true initiator, and found the quote rule, the tick rule, and the Lee-Ready rule correctly classified 76.4%, 77.66%, and 81.05% of trades respectively. Finucane (2000), testing the same question independently, found the tick test performed roughly as well as the more elaborate Lee-Ready algorithm — and that both performed worse than researchers had assumed.
So the tick rule lands somewhere in the mid-to-high seventies for accuracy on equities. Not exact. Not noise either.
There is a more pointed finding for futures traders. Andersen and Bondarenko (2015) constructed an accurate trade classification benchmark specifically for E-mini S&P 500 futures, using quote and trade data, and compared it against the bulk-volume classification scheme of Easley, López de Prado, and O'Hara (2012). Two results are relevant here. First, the simple tick rule outperformed bulk-volume classification. Second — and this is the part worth internalizing — rising volatility systematically induces classification errors.
Read that again, because it is the single most important limitation of this tool. The delta estimate is least reliable precisely during the fast, volatile, high-participation moments you most want to read. No amount of code fixes this. It is a property of inferring intent from price when price is moving quickly.
And separately, order imbalance is not a curiosity — it is a documented driver of returns. Chordia, Roll, and Subrahmanyam (2002) found market-wide returns are strongly affected by contemporaneous and lagged order imbalance, and that returns reverse after large negative-imbalance days. Chordia and Subrahmanyam (2004) extended the result to individual names. Chan and Fong (2000) tied order imbalance directly to the volatility-volume relation.
The concept is sound and the measurement is approximate. Both of those things are true at once, and the second one is why this indicator is built as a context tool rather than a signal generator.
🔹 How It Works
🔸 Estimating delta
Show Image
The script requests lower-timeframe OHLCV data for every chart bar — automatically selecting 1-second intrabars on a seconds chart, 1-minute on intraday, and so on, or a timeframe you specify.
Each intrabar is classified by the tick rule: close above open, its volume counts as buy-initiated; close below open, sell-initiated; unchanged, discarded. That signed volume is then dropped into the price row containing the intrabar's close.
There are limitations and assumptions here. The classification is per intrabar, not per trade — a one-minute intrabar containing 4,000 contracts is treated as one directional unit, when in reality it contained thousands of individually classifiable transactions. And the entire intrabar's volume is assigned to a single row, even though the intrabar had a range. On a violent one-minute bar spanning fifteen ticks, that is a real distortion.
Choosing a finer lower timeframe reduces both problems — 1-second intrabars classify and locate far more precisely than 1-minute. The tradeoff is history: finer intrabars exhaust TradingView's intrabar data budget faster, so the profile reaches back over fewer sessions. That is the trade you are making with that setting, and it is worth making deliberately.
🔸 Tick-based rows
Most profile scripts ask for a row count and divide the range by it. That means the row height changes every session — a 40-point day and a 90-point day produce rows of different sizes, and a row never covers the same prices twice.
This one asks for a row size in ticks, and rows sit on a fixed grid anchored to the instrument's tick size. A 4-tick row on ES always spans the same four ticks, session after session. Profiles become directly comparable across days, and rows line up with the price levels you actually mark.
The constraint is Pine's 500-drawing-object ceiling, shared across every profile on screen. The script computes a per-session row budget, and if a session's range needs more rows than its budget allows, rows are merged automatically and the effective size is displayed in the stats table. Nothing is silently dropped — you are told when the resolution you asked for was not available. Fewer sessions displayed means a larger budget each and finer rows.
🔸 Multi-session profiles
Show Image
Each completed session is drawn once at its own anchor and frozen; the developing session redraws live on every tick. Closed sessions are faded so the current one reads clearly against its history, and profile width scales to each session's own bar span.
One structural limitation: historical profiles are constructed bar-by-bar as the script executes, which means they exist only for sessions inside the chart's loaded history. Scroll back far enough and they stop. TradingView's own Session Volume Profile behaves identically — it is a property of the platform, not a defect in the implementation.
🔸 POC and Value Area
The point of control marks the row with the highest concentration, and the value area expands outward from it until the chosen percentage of the session's activity is enclosed — the conventional 70% by default, which comes from treating the distribution as roughly normal and taking one standard deviation.
The POC / VA Source toggle is the interesting setting, and it changes what question the profile answers.
Set to Volume, POC and value area are computed on total volume. This reproduces a conventional volume profile's levels — the prices with the most transaction activity, the ones most traders are watching, the ones that function as reference points precisely because they are widely observed.
Set to Absolute Delta, POC and value area are computed on the magnitude of net imbalance instead. Now the POC marks the price with the largest one-sided commitment, which is not necessarily the price with the most volume. A row can carry enormous volume and near-zero delta — that is two-sided churn, and a volume POC will flag it while a delta POC will not.
When those two levels sit far apart, the session had heavy activity somewhere the participants were evenly matched, and heavy commitment somewhere else. That gap is often more informative than either level alone.
🔸 Reading it
Row length is the magnitude of net imbalance at that price; color is the sign. Long teal rows are net buying, long red rows are net selling, short rows are balance.
A few configurations worth recognising:
Large delta with no displacement. A long row at an extreme of the session, where price then reversed. The aggression was absorbed by passive size. This is the absorption signature from the worked example above.
Large delta with displacement. A long row that price left immediately and did not revisit. The aggression was rewarded — closer to initiative than absorption.
Delta sign flipping at a value area edge. Price retests the edge and the rows there change color from the prior test. Something about who is defending that level changed.
A stack of same-color rows away from the POC. Sustained one-sided commitment away from the balance area — usually where a trend leg was built.
None of these are signals. They are descriptions of what happened at a price, and they are only worth anything when the price already mattered to you before you looked at the profile. A large delta row in the middle of a featureless range is a statistic. The same row at yesterday's value area low, on a retest, in a session where you already had a directional thesis, is context.
🔹 Closing Remarks
Volume tells you where the market was busy. Delta attempts to tell you who was demanding immediacy while it was busy there — and the disagreement between heavy aggression and absent movement is one of the more reliable tells that passive size is defending a price.
That said, everything here rests on an inference. The classification is the tick rule applied to intrabar candles, not observed bid/ask execution data, and the research is clear that this approach is right somewhere in the high seventies percent of the time on individual trades and gets worse as volatility rises. Volume is assigned to rows at intrabar closes rather than at the price of each transaction. Row resolution is bounded by a hard platform limit.
Treat every level this draws as a probabilistic reading of what likely happened, not a record of what did. Large delta clusters do not guarantee that a level will hold, and a POC is not a magnet. Used as a layer of context over levels you mapped independently — and ignored when the profile disagrees with the rest of your read — it earns its place on the chart. Used as a standalone entry trigger, it will disappoint you, and the research above explains exactly why.
If you find configurations that read well on your instrument, or edge cases where the estimate breaks down in an interesting way, I would like to hear about them.
🔹 References
Trade classification and its accuracy
Lee, C. M. C., & Ready, M. J. (1991). Inferring Trade Direction from Intraday Data. The Journal of Finance, 46(2), 733–746.
Ellis, K., Michaely, R., & O'Hara, M. (2000). The Accuracy of Trade Classification Rules: Evidence from Nasdaq. Journal of Financial and Quantitative Analysis, 35(4), 529–551.
Finucane, T. J. (2000). A Direct Test of Methods for Inferring Trade Direction from Intra-Day Data. Journal of Financial and Quantitative Analysis, 35(4), 553–576.
Order flow classification in futures markets
Easley, D., López de Prado, M. M., & O'Hara, M. (2012). Flow Toxicity and Liquidity in a High-Frequency World. The Review of Financial Studies, 25(5), 1457–1493.
Andersen, T. G., & Bondarenko, O. (2015). Assessing Measures of Order Flow Toxicity and Early Warning Signals for Market Turbulence. Review of Finance, 19(1), 1–54.
Order imbalance and returns
Chordia, T., Roll, R., & Subrahmanyam, A. (2002). Order imbalance, liquidity, and market returns. Journal of Financial Economics, 65(1), 111–130.
Chordia, T., & Subrahmanyam, A. (2004). Order imbalance and individual stock returns: Theory and evidence. Journal of Financial Economics, 72(3), 485–518.
Chan, K., & Fong, W.-M. (2000). Trade size, order imbalance, and the volatility-volume relation. Journal of Financial Economics, 57(2), 247–273.
สคริปต์แบบโอเพนซอร์ส
ด้วยเจตนารมณ์หลักของ TradingView ผู้สร้างสคริปต์นี้ได้ทำให้เป็นโอเพนซอร์ส เพื่อให้เทรดเดอร์สามารถตรวจสอบและยืนยันฟังก์ชันการทำงานของมันได้ ขอชื่นชมผู้เขียน! แม้ว่าคุณจะใช้งานได้ฟรี แต่โปรดจำไว้ว่าการเผยแพร่โค้ดซ้ำจะต้องเป็นไปตาม กฎระเบียบการใช้งาน ของเรา
Thanks for the support!
คำจำกัดสิทธิ์ความรับผิดชอบ
ข้อมูลและบทความไม่ได้มีวัตถุประสงค์เพื่อก่อให้เกิดกิจกรรมทางการเงิน, การลงทุน, การซื้อขาย, ข้อเสนอแนะ หรือคำแนะนำประเภทอื่น ๆ ที่ให้หรือรับรองโดย TradingView อ่านเพิ่มเติมใน ข้อกำหนดการใช้งาน
สคริปต์แบบโอเพนซอร์ส
ด้วยเจตนารมณ์หลักของ TradingView ผู้สร้างสคริปต์นี้ได้ทำให้เป็นโอเพนซอร์ส เพื่อให้เทรดเดอร์สามารถตรวจสอบและยืนยันฟังก์ชันการทำงานของมันได้ ขอชื่นชมผู้เขียน! แม้ว่าคุณจะใช้งานได้ฟรี แต่โปรดจำไว้ว่าการเผยแพร่โค้ดซ้ำจะต้องเป็นไปตาม กฎระเบียบการใช้งาน ของเรา
Thanks for the support!
คำจำกัดสิทธิ์ความรับผิดชอบ
ข้อมูลและบทความไม่ได้มีวัตถุประสงค์เพื่อก่อให้เกิดกิจกรรมทางการเงิน, การลงทุน, การซื้อขาย, ข้อเสนอแนะ หรือคำแนะนำประเภทอื่น ๆ ที่ให้หรือรับรองโดย TradingView อ่านเพิ่มเติมใน ข้อกำหนดการใช้งาน