Giới thiệu
Nếu không có các công cụ giao dịch phù hợp, bạn không thể tiến hành phân tích kỹ thuật hiệu quả. Một chiến lược giao dịch mạnh mẽ sẽ giúp bạn tránh được những sai lầm phổ biến, cải thiện khả năng quản lý rủi ro và tăng khả năng xác định cũng như tận dụng cơ hội.
Đối với nhiều người, TradingView là nền tảng biểu đồ khó lòng bỏ qua vì có những ưu điểm nổi bật như cung cấp nhiều loại công cụ phân tích kỹ thuật, ứng dụng web HTML5 mạnh mẽ được hàng triệu người sử dụng để theo dõi các chuyển động trong thị trường ngoại hối (forex), tiền điện tử và chứng khoán.
TradingView có nhiều tính năng nổi bật, cho phép người dùng theo dõi tài sản trên nhiều nền tảng giao dịch và đăng tải các ý tưởng giao dịch trong mạng xã hội. Bài viết sẽ tập trung vào khả năng tùy chỉnh của nền tảng rất phổ biến này. Phân tích dưới đây sử dụng ngôn ngữ lập trình Pine Script của TradingView để kiểm soát chi tiết các bố cục trên biểu đồ.
Pine Script là gì?
Pine Script là một ngôn ngữ kịch bản (script) có thể được sử dụng để hiệu chỉnh biểu đồ TradingView. Mặc dù nền tảng đã trang bị cho người dùng nhiều tính năng để làm như vậy, nhưng Pine Script cho phép tiến thêm một bước nữa. Cho dù bạn muốn thay đổi màu sắc của nến hay để kiểm tra lại một chiến lược mới, Pine Editor (trình chỉnh sửa Pine) sẽ giúp bạn tùy chỉnh biểu đồ thời gian thực khi bạn thấy phù hợp.
Bản thân mã được ghi lại đầy đủ, hoàn chỉnh, vì vậy người đọc có thể xem thêm hướng dẫn sử dụng để biết thêm thông tin. Mục tiêu chính của hướng dẫn này là thảo luận về một số điều cơ bản và giới thiệu các chỉ báo hữu ích cho giao dịch tiền điện tử.
Thiết lập
Bắt đầu với Pine Script vô cùng đơn giản. Các mã được viết dưới đây đều có thể chạy trên máy chủ của TradingView, vì vậy dễ dàng truy cập trình chỉnh sửa và phát triển kịch bản từ trình duyệt mà không cần tải xuống hoặc cấu hình bổ sung.
Trong hướng dẫn này, bài viết sẽ lập biểu đồ cặp coin BTC/BUSD. Nếu bạn chưa có, hãy truy cập và tạo một tài khoản miễn phí (cũng có đăng ký chuyên nghiệp, nhưng không cần thiết đối với hướng dẫn này).
Nhấp vào liên kết theo đường dẫn và bạn sẽ thấy một biểu đồ giống như sau:
Biểu đồ của bạn có thể sẽ được cập nhật nhiều hơn.
Ở đây, bài viết sẽ sử dụng biểu đồ đầy đủ tính năng. Để có được biểu đồ này, hãy nhấp vào nút “full-featured chart” để truy cập. Theo đó, chúng ta sẽ có một cái nhìn chi tiết hơn nhiều, các công cụ vẽ và hợp đồng quyền chọn để vẽ đường xu hướng,…
Biểu đồ đầy đủ tính năng. Bạn có thể điều chỉnh khung thời gian bằng cách nhấp vào chế độ xem phía trên các tab được đánh dấu.
Bài viết sẽ không thảo luận về cách sử dụng các công cụ có sẵn, nhưng nếu bạn thực sự muốn nghiên cứu về phân tích kỹ thuật, bạn nên tự làm quen với chúng. Ở dưới cùng bên trái (được phác thảo trong hình ảnh), bạn sẽ thấy một vài tab khác nhau, hãy nhấp vào Pine Editor.
Pine Editor
Trình chỉnh sửa này sẽ mang lại cho chúng ta rất nhiều điều kỳ diệu lý thú. Hãy nhấp vào “Add to Chart” (Thêm biểu đồ) để xem các chú thích xuất hiện phía trên. Lưu ý rằng mọi thứ có thể trở nên lộn xộn nếu người tạo bao gồm nhiều chú thích cùng một lúc, vì vậy bạn có thể xóa bớt chúng trong các ví dụ (nhấp chuột phải vào biểu đồ > Remove Indicators (Xóa chỉ báo).
Bạn có thể thấy đã có một vài dòng mã ở đó. Hãy nhấp vào “Add to Chart” để xem điều gì sẽ xảy ra.
Biểu đồ thứ hai được thêm vào bên dưới bản gốc. Biểu đồ mới biểu thị cùng một dữ liệu. Di chuột qua “My Script” (kịch bản của tôi) và nhấp vào dấu thập để xóa nó. Bây giờ, chúng ta hãy tìm hiểu mã.
study(“My Script”)
Dòng đầu tiên này chỉ là thiết lập chú thích. Nó yêu cầu tên mà bạn muốn gọi chỉ báo (“My Script” trong trường hợp này), nhưng cũng có một số tham số tùy chọn có thể thêm vào. Một trong số đó là overlay, yêu cầu TradingView đặt chỉ báo trên biểu đồ hiện có (thay vì trong một phân đoạn mới). Như bạn có thể thấy từ ví dụ đầu tiên, nó mặc định là false (sai). Mặc dù chúng ta sẽ không thấy nó hoạt động ngay bây giờ nhưng khi overlay=true (đúng), sẽ thêm chỉ báo vào biểu đồ hiện có.
plot(close)
Dòng này là chỉ dẫn để lập biểu đồ giá đóng của Bitcoin. Plot chỉ đơn giản là cung cấp cho chúng ta một biểu đồ đường, nhưng chúng ta cũng có thể hiển thị nến và thanh như sẽ thấy ngay sau đây.
Bây giờ, hãy thử những dòng mã sau:
//@version=4
study(“My Script”, overlay=true)
plot(open, color=color.purple)
Khi bạn thêm dòng trên vào, bạn sẽ thấy biểu đồ thứ hai (trông giống như biểu đồ ban đầu bị dịch sang bên phải). Thay vào đó, tất cả những gì chúng ta đã làm là vẽ biểu đồ giá mở và vì giá mở của ngày hiện tại là giá đóng của ngày hôm trước, nên có nghĩa là chúng có hình dạng giống hệt nhau.
Sau đó, hãy loại bỏ các chú thích hiện tại (bằng cách nhấp chuột phải và nhấn vào “Remove Indicators”). Di chuột qua BTC/BUSD và nhấp vào nút “Hide” (Ẩn) để xóa biểu đồ hiện tại.
Nhiều trader thích biểu đồ hình nến vì chúng cung cấp nhiều thông tin hơn là những đường đơn giản như biểu đồ chúng ta vừa làm. Hãy thêm chúng tiếp theo.
//@version=4
study(“My Script”, overlay=true)
plotcandle(open, high, low, close)
Đó là một khởi đầu tốt, nhưng thiếu màu sắc khiến chúng trông hơi nhạt nhẽo. Tốt nhất, chúng ta nên có những nến đỏ khi mức mở lớn hơn mức đóng trong khung thời gian nhất định và những nến màu xanh nếu giá đóng vượt quá mức mở. Để làm được điều đó, cần thêm một dòng phía trên hàm plotcandle ():
//@version=4
study(“My Script”, overlay=true)
colors = open >= close ? color.red : color.green
plotcandle(open, high, low, close)
Tiếp theo, hãy sẽ xem xét mọi thanh nến và kiểm tra xem mức mở lớn hơn hay bằng mức đóng. Nếu giá đã giảm trong khoảng thời gian này, biểu đồ sẽ tô màu đỏ cho thân nến. Nếu ngược lại, nó sẽ tô màu xanh lá cây. Sửa đổi hàm plotcandle () để chuyển bảng màu này vào:
//@version=4
study(“My Script”, overlay=true)
colors = open >= close ? color.red : color.green
plotcandle(open, high, low, close, color=colors)
Xóa các chỉ báo hiện tại nếu bạn chưa có và thêm chỉ báo này vào biểu đồ. Bây giờ chúng ta sẽ có hình ảnh giống như một biểu đồ nến thông thường.
Vẽ đường trung bình động (MA)
Vậy là bài viết đã hướng dẫn bạn một số điều cơ bản về biểu đồ đường và nến. Tiếp theo, hãy chuyển sang chỉ báo tùy chỉnh đầu tiên: đường trung bình động hàm mũ (EMA). Đây là một công cụ có giá trị vì nó cho phép chúng ta lọc ra mọi yếu tố nhiễu của thị trường và xử lý hành động giá một cách mượt mà.
EMA hơi khác so với đường trung bình động đơn giản (SMA), ở chỗ nó chú trọng hơn các dữ liệu gần nhất. Nó có xu hướng phản ứng nhanh hơn với các chuyển động đột ngột và thường được sử dụng cho các cuộc chơi ngắn hạn (ví dụ: giao dịch trong ngày).
Đường trung bình động đơn giản (SMA)
Để so sánh cả hai, chúng ta cũng có thể vẽ sơ đồ SMA. Thêm dòng này vào kịch bản của bạn:
plot(sma(close, 10))
Đây là đường trung bình SMA của 10 ngày trước đó. Chỉnh số trong ngoặc để xem đường cong thay đổi như thế nào khi tính đến các khoảng thời gian kéo dài khác nhau.
SMA trong thời gian 10 ngày trước đó.
Đường trung bình động hàm mũ (EMA)
EMA sẽ khó hiểu hơn một chút, nhưng đừng lo lắng. Trước tiên, hãy chia nhỏ công thức:
EMA = (Close – Previous Day’s EMA) * Multiplier – Previous Day’s EMA
Công thức trên cho chúng ta biết điều gì? Vâng, chúng ta tính toán mức trung bình động mới dựa trên mức của ngày hôm trước. Hệ số (multiplier) “chú trọng” khoảng thời gian gần nhất và được tính theo công thức sau:
Multiplier = 2 / (Length of EMA + 1)
Như với các đường trung bình động đơn giản, chúng ta cần xác định đường EMA sẽ dài bao lâu (length). Về mặt cú pháp, chức năng vẽ biểu đồ EMA tương tự như SMA. Hãy vẽ EMA cùng với SMA để bạn có thể so sánh cả hai:
//@version=4
study(“My Script”, overlay=true)
plot(sma(close, 10))
plot(ema(close,10))
Bạn có thể thấy một sự khác biệt nhỏ trong hai loại MA trên.
Kịch bản cài sẵn
Chúng ta vừa đi qua phần hướng dẫn viết mã theo cách thủ công để có thể hiểu chi tiết quá trình thực hiện. Nhưng nếu muốn tiết kiệm thời gian, đặc biệt khi đang viết các kịch bản phức tạp hơn và không muốn làm lại từ đầu, kịch bản cài sẵn sẽ hỗ trợ bạn đáng kể.
Ở trên cùng, bên phải của trình chỉnh sửa, nhấp vào “New” (Mới). Bạn sẽ nhận được một menu thả xuống với tất cả các loại chỉ báo kỹ thuật khác nhau. Nhấp vào “Moving Average Exponential” (Đường trung bình động hàm mũ) để xem mã nguồn cho chỉ báo EMA.
Hãy tiếp tục và thêm những dòng lệnh này vào biểu đồ.
Cái này khác với cái của chúng ta – bạn sẽ thấy các hàm input () (giá trị đầu vào), có khả năng sử dụng khá thuận tiện vì bạn có thể nhấp vào hộp này…
… và dễ dàng thay đổi một số giá trị trong cửa sổ bật lên bằng cách nhấp vào bánh xe “Setting” (Cài đặt).
Chúng ta sẽ thêm một vài hàm input () trong tập lệnh tiếp theo để minh họa.
Vẽ biểu đồ Chỉ số Sức mạnh Tương đối (RSI)
Chỉ số Sức mạnh Tương đối (RSI) là một chỉ báo thiết yếu khác trong phân tích kỹ thuật. Nó được gọi là chỉ báo động lực, có nghĩa là đo lường tốc độ mua và bán tài sản. Được trình bày trên thang điểm từ 0 đến 100, RSI cố gắng thông báo cho các nhà đầu tư về việc tài sản bị mua hay bán quá mức. Thông thường, một tài sản có thể bị coi là quá bán nếu có điểm nhỏ hơn hoặc bằng 30 và quá mua với điểm lớn hơn hoặc bằng 70.
Di chuyển đến “New > RSI Strategy” (Mới > Chiến lược RSI), bạn có thể tự mình thấy điều này. RSI thường được đo trong khoảng thời gian 14 (tức là 14 giờ hoặc 14 ngày), nhưng bạn có thể tự do điều chỉnh cài đặt đó cho phù hợp với chiến lược của riêng mình.
Thêm vào biểu đồ và bạn sẽ thấy một vài mũi tên được hiển thị ngay bây giờ (được xác định bởi hàm strategy.entry () trong mã). RsiLE chỉ ra cơ hội tiềm năng để long tài sản vì nó có thể bị bán quá mức. RsiSE nêu bật các điểm có thể short tài sản khi nó bị mua quá mức. Lưu ý rằng, như với tất cả các chỉ báo, không nhất thiết những chỉ báo này là bằng chứng xác thực giá sẽ giảm/tăng.
Kiểm tra lại
Có một cách để chúng ta kiểm tra các chỉ số tùy chỉnh của mình. Mặc dù hiệu suất trong quá khứ không đảm bảo cho kết quả tương lai nhưng kiểm tra lại các kịch bản có thể cho chúng ta biết chúng hiệu quả như thế nào trong việc thu thập tín hiệu.
Hãy quan sát kịch bản ví dụ đơn giản bên dưới để hiểu rõ hơn. Chiến lược được tạo ra với điểm tham gia vị thế mua khi giá BTC giảm dưới 11,000 đô la và thoát khỏi vị thế khi giá vượt quá 11,300 đô la. Sau đó, có thể thấy chiến lược này có lợi nhuận như thế nào trong lịch sử.
//@version=4
strategy(“ToDaMoon”, overlay=true)
enter = input(11000)
exit = input(11300)
price = close
if (price <= enter)
strategy.entry(“BuyTheDip”, strategy.long, comment=”BuyTheDip”)
if (price >= exit)
strategy.close_all(comment=”SellTheNews”)
Ở đây, đã xác định điểm vào và thoát là các biến – cả hai đều là input (giá trị đầu vào), nghĩa là chúng ta có thể thay đổi chúng trên biểu đồ sau này. Ngoài ra, cũng thiết lập biến giá đóng cho từng thời kỳ. Sau đó, chúng ta có một số logic ở dạng câu lệnh if. Nếu phần trong ngoặc là đúng thì khối đã được đặt theo nó sẽ khởi chạy. Nếu sai, nó sẽ bị bỏ qua.
Vì vậy, nếu giá nhỏ hơn hoặc bằng mục nhập mong muốn, biểu thức đầu tiên sẽ được đánh giá là đúng và chúng ta sẽ mở một vị thế long. Khi giá bằng hoặc vượt quá mức thoát mong muốn, khối thứ hai sẽ được kích hoạt, đóng tất cả các vị trí đang mở.
Chúng ta sẽ chú thích biểu đồ bằng các mũi tên hiển thị nơi vào/ ra, vì vậy sẽ gắn nhãn những điểm này với thông số nhận xét (trong ví dụ này là “BuyTheDip” (mua ở đáy) và “SellTheNews” (bán tin tức)). Sao chép mã và thêm nó vào biểu đồ.
Bây giờ bạn có thể xem các chỉ số trên biểu đồ, có thể thu nhỏ nếu cần.
TradingView tự động áp dụng các quy tắc của bạn cho dữ liệu cũ hơn. Bạn cũng sẽ nhận thấy nó chuyển từ Pine Editor sang tab Strategy Tester (Trình kiểm tra chiến lược). Điều này cho phép bạn xem tổng quan lợi nhuận tiềm năng của mình, danh sách các giao dịch và từng hoạt động riêng lẻ của chúng.
Các vị trí chúng ta đã bước vào và thoát ra.
Kết hợp tất cả những gì đã học được
Đã đến lúc viết kịch bản của riêng chúng ta bằng cách sử dụng một số khái niệm đã thấy cho đến nay. Bạn có thể kết hợp EMA, RSI và sử dụng các giá trị của chúng để tô màu cho nến, mang lại thông tin chi tiết để dễ dàng hình dung.
Đây không nên được hiểu là lời khuyên tài chính bởi vì sử dụng các chỉ số này chưa bao giờ dự đoán chính xác tuyệt đối tình hình khách quan. Thay vào đó, bạn nên sử dụng kèm với các công cụ khác để phát triển chiến lược của riêng mình.
Bây giờ, hãy theo dõi kịch bản mới dưới đây. Xóa tất cả các chỉ số của bạn khỏi biểu đồ và ẩn cả biểu đồ BTC/BUSD để có hình ảnh trống trơn.
Hãy bắt đầu bằng cách xác định nghiên cứu và đặt tên cho nó theo bất cứ thứ gì bạn muốn, chỉ cần đảm bảo cài đặt overlay=true. Trong mã dưới đây, tên được đặt là Binance Academy Script.
study(title=”Binance Academy Script”, overlay=true)
Hãy nhớ công thức EMA của chúng ta trước đó. Chúng ta cần cung cấp hệ số với độ dài của EMA. Lưu ý giá trị đầu vào là một số nguyên (vì vậy, không có chữ số thập phân). Ngoài ra, cũng đặt giá trị tối thiểu (minval) và giá trị mặc định (defval).
study(title=”Binance Academy Script”, overlay=true)
emaLength = input(title=”EMA Length”, type=input.integer, defval=25, minval=0)
Sử dụng biến mới này, chúng ta có thể tính toán giá trị EMA cho mỗi nến trong biểu đồ:
study(title=”Binance Academy Script”, overlay=true)
emaLength = input(title=”EMA Length”, type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
Tuyệt, tiếp tục với RSI. Hãy cung cấp độ dài cho nó theo cách tương tự:
study(title=”Binance Academy Script”, overlay=true)
emaLength = input(title=”EMA Length”, type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title=”RSI Length”, type=input.integer, defval=25, minval=0)
Và bây giờ, chúng ta có thể tính toán:
study(title=”Binance Academy Script”, overlay=true)
emaLength = input(title=”EMA Length”, type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title=”RSI Length”, type=input.integer, defval=25, minval=0)
rsiVal = rsi(close, rsiLength)
Ở giai đoạn này, hãy dùng logic để tô màu các nến tùy thuộc vào giá trị EMA và RSI. Giả sử tình huống (a) giá đóng của nến vượt quá đường EMA và (b) ở nơi chỉ báo RSI trên 50.
Tại sao? Bởi vì các chỉ báo này có thể được sử dụng kết hợp để cho bạn biết khi nào nên long hoặc short Bitcoin. Ví dụ: đáp ứng cả hai điều kiện này có nghĩa là thời điểm tốt để tham gia một vị thế long. Hoặc ngược lại, bạn có thể sử dụng nó để thông báo khi nào không nên short, ngay cả khi các chỉ số khác nói ngược lại.
Vì vậy, dòng tiếp theo của chúng ta sẽ như thế này:
study(title=”Binance Academy Script”, overlay=true)
emaLength = input(title=”EMA Length”, type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title=”RSI Length”, type=input.integer, defval=25, minval=0)
rsiVal = rsi(close, rsiLength)
colors = close > emaVal and rsiVal > 50 ? color.green : color.red
Tức là, nếu giá trị EMA vượt quá giá đóng và RSI vượt quá 50, chúng ta sẽ tô màu xanh cho nến. Nếu không, sẽ tô màu đỏ.
Tiếp theo, vẽ đường EMA:
study(title=”Binance Academy Script”, overlay=true)
emaLength = input(title=”EMA Length”, type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title=”RSI Length”, type=input.integer, defval=25, minval=0)
rsiVal = rsi(close, rsiLength)
colors = close > emaVal and rsiVal > 50 ? color.green : color.red
plot(emaVal, “EMA”)
Cuối cùng, vẽ biểu đồ nến, đảm bảo đã bao gồm thông số màu:
study(title=”Binance Academy Script”, overlay=true)
emaLength = input(title=”EMA Length”, type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title=”RSI Length”, type=input.integer, defval=25, minval=0)
rsiVal = rsi(close, rsiLength)
colors = close > emaVal and rsiVal > 50 ? color.green : color.red
plot(emaVal, “EMA”)
plotcandle(open, high, low, close, color=colors)
Và như vậy đã hoàn thành kịch bản! Thêm nó vào biểu đồ để có kết quả.
Biểu đồ BTC/BUSD với chỉ báo EMA/RSI.
Kết luận
Bài viết này đã giới thiệu cho các bạn một số ví dụ cơ bản về những gì có thể làm với Pine Editor của TradingView. Bây giờ, bạn có thể tự tin tạo các chú thích đơn giản cho biểu đồ giá để có thêm hiểu biết từ chỉ số của riêng bạn.
Lưu ý rằng chỉ một vài chỉ số được đề cập ở đây, nhưng bạn cũng có thể dễ dàng tạo ra những chỉ số phức tạp hơn bằng cách chọn các kịch bản có sẵn từ “New” hoặc tự viết chúng.
- Hodler lâu năm mất 16 triệu đô la Bitcoin vào tay hacker vì một sai lầm nghiêm trọng
- Kinh nghiệm trade Bitcoin: Trader kỳ cựu giải thích cách kiếm lợi nhuận từ BTC và đầu tư altcoin
- CEO trải lòng về câu chuyện ICO của Binance: bài học kinh nghiệm và lời khuyên
Thùy Trang
Theo Binance