Giới thiệu
Nếu không có công cụ giao dịch phù hợp, bạn sẽ không thể thực hiện phân tích kỹ thuật hiệu quả. Một chiến lược giao dịch vững chắc sẽ giúp bạn tránh được những sai lầm thường gặp, 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ác cơ hội.
Đối với nhiều người, TradingView là nền tảng biểu đồ tham khảo. Cung cấp một trung tâm các công cụ phân tích kỹ thuật, ứng dụng web HTML5 mạnh mẽ này được hàng triệu người sử dụng để theo dõi các chuyển động của thị trường Forex, tiền điện tử và chứng khoán truyền thống.
TradingView có nhiều tính năng mạnh mẽ: nó cho phép bạn giám sát tài sản trên nhiều nền tảng giao dịch cũng như đăng các ý tưởng giao dịch trong mạng xã hội của mình. Trong bài viết này, chúng tôi sẽ tập trung vào khả năng tùy biến của nó. Chúng tôi sẽ sử dụng Pine Script, ngôn ngữ lập trình riêng của TradingView, đảm bảo cho chúng tôi quyền kiểm soát chi tiết đối với các định dạng đồ họa của mình.
Chúng ta hãy bắt đầu!
PineScript là gì?
Pine Script là ngôn ngữ kịch bản mà bạn có thể sử dụng để sửa đổi biểu đồ TradingView của mình. Nền tảng này đã cung cấp cho bạn nhiều chức năng để làm điều đó, nhưng Pine Script cho phép bạn tiến thêm một bước nữa. Cho dù đó là thay đổi màu sắc của nến hay thử nghiệm lại một chiến lược mới, Pine Editor sẽ cho phép bạn tùy chỉnh biểu đồ thời gian thực của mình khi bạn thấy phù hợp.
Bản thân mã này đã được ghi lại một cách xuất sắc, vì vậy hãy nhớ tham khảo hướng dẫn sử dụng để biết thêm thông tin. Mục tiêu của chúng tôi trong hướng dẫn này là thảo luận về một số nguyên tắc cơ bản và trình bày các chỉ báo có thể hữu ích cho giao dịch tiền điện tử.
Cài đặt
Bắt đầu với Pine Script cực kỳ đơn giản. Bất kỳ mã nào chúng tôi viết sẽ chạy trên máy chủ của TradingView, vì vậy chúng tôi có thể truy cập trình chỉnh sửa và phát triển tập lệnh của mình từ trình duyệt – mà không cần tải xuống hoặc cấu hình thêm.
Trong hướng dẫn này, chúng ta sẽ lập biểu đồ cặp tiền tệ Bitcoin/Binance USD (BTCBUSD). Nếu bạn chưa đăng ký, hãy thực hiện bước này và đăng ký một tài khoản miễn phí (đăng ký chuyên nghiệp cũng có sẵn nhưng không cần thiết đối với hướng dẫn này).
Hãy theo liên kết này và bạn sẽ tìm thấy một biểu đồ tương tự như sau:

Của bạn có thể sẽ được cập nhật hơn.
Khi ở đây, chúng tôi sẽ muốn có biểu đồ đầy đủ tính năng – hãy nhấp vào nút để truy cập nó. Điều này sẽ cung cấp cho chúng ta cái nhìn chi tiết hơn nhiều, các công cụ vẽ và các tùy chọn để vẽ các đường xu hướng, cùng nhiều thứ khác.

Biểu đồ đầy đủ tính năng. Bạn có thể điều chỉnh khoảng thời gian bằng cách nhấp vào các chế độ xem xuất hiện phía trên các tab được đánh dấu.
Chúng tôi sẽ không đi sâu vào cách sử dụng các công cụ khác nhau hiện có, nhưng nếu bạn thực sự nghiêm túc về phân tích kỹ thuật, chúng tôi thực sự khuyên bạn nên tự làm quen với chúng. Ở phía dưới bên trái (được chỉ ra trong hình ảnh), bạn sẽ thấy một loạt các tab khác nhau – hãy nhấp vào Pine Editor.
Biên tập viên cây thông

Trình chỉnh sửa này là nơi điều kỳ diệu xảy ra. Chúng tôi sẽ cho nó biết những gì chúng tôi muốn làm và sau đó chúng tôi sẽ nhấp vào Thêm vào biểu đồ để xem các chú thích của chúng tôi xuất hiện ở trên như thế nào. Hãy nhớ rằng mọi thứ có thể trở nên phức tạp nếu chúng tôi đưa vào nhiều chú thích cùng một lúc, vì vậy chúng tôi sẽ xóa chúng giữa các ví dụ khác nhau - nhấp chuột phải vào biểu đồ > Xóa chỉ báo.
Bạn có thể thấy rằng chúng tôi đã có sẵn một vài dòng mã ở đó. Hãy tiếp tục nhấp vào Thêm vào biểu đồ để xem điều gì sẽ xảy ra.

Biểu đồ thứ hai được thêm vào bên dưới biểu đồ gốc. Biểu đồ mới thể hiện cùng một dữ liệu. Di chuột qua Tập lệnh của tôi và nhấp vào dấu thập để xóa nó. Bây giờ, hãy phân tích mã một cách chi tiết.
nghiên cứu ("Kịch bản của tôi")Dòng đầu tiên này chỉ đơn giản là thiết lập chú thích của chúng tôi. Nó chỉ yêu cầu tên mà bạn muốn đặt cho chỉ báo ("My Script", trong trường hợp này), mặc dù cũng có một loạt tham số tùy chọn mà chúng ta có thể thêm vào. Một trong số đó là lớp phủ, yêu cầu TradingView đặt chỉ báo trên biểu đồ hiện tại (thay vì trên một phân đoạn mới). Như bạn có thể thấy trong ví dụ đầu tiên của chúng tôi, theo mặc định nó xuất hiện là sai. Mặc dù hiện tại chúng tôi không thấy nó hoạt động nhưng lớp phủ=true sẽ thêm chỉ báo vào biểu đồ hiện có.
cốt truyện (đóng)Dòng này là hướng dẫn đánh dấu giá đóng cửa của Bitcoin. cốt truyện chỉ đơn giản cung cấp cho chúng ta một biểu đồ đường, mặc dù chúng ta cũng có thể hiển thị nến và thanh, như chúng ta sẽ thấy sau đây.
Bây giờ, hãy thử làm như sau:
//@version=4
nghiên cứu ("Kịch bản của tôi", lớp phủ = true)
cốt truyện(mở, color=color.purple)Sau khi thêm phần này, bạn sẽ có thể thấy biểu đồ thứ hai (sẽ giống như biểu đồ ban đầu được dịch sang bên phải). Tất cả những gì chúng ta đã làm là nắm bắt giá mở cửa và vì giá mở cửa của ngày hiện tại cũng là giá đóng cửa của ngày hôm trước nên điều hợp lý là những giá này có hình dạng giống hệt nhau.
Rất tốt! Chúng ta sẽ loại bỏ các chú thích hiện tại - hãy nhớ rằng, để thực hiện việc này, chúng ta phải nhấp chuột phải và chọn Xóa chỉ báo. Di chuột qua Bitcoin/BUSD và nhấp vào nút Ẩn để xóa biểu đồ hiện tại.
Nhiều nhà giao dịch thích biểu đồ hình nến vì chúng cung cấp cho chúng ta nhiều thông tin hơn là một biểu đồ đơn giản như biểu đồ chúng ta vừa tạo. Hãy tiến hành thêm chúng dưới đây.
//@version=4
nghiên cứu ("Kịch bản của tôi", lớp phủ = true)
nến cố định (mở, cao, thấp, đóng)Đó là một khởi đầu tốt, nhưng việc thiếu màu sắc khiến nó hơi nhạt nhẽo. Lý tưởng nhất là chúng ta nên có nến đỏ khi giá mở cửa lớn hơn giá đóng cửa trong khoảng thời gian được đề cập và màu xanh lá cây khi giá đóng cửa vượt quá giá mở cửa. Vì vậy, chúng ta sẽ thêm một dòng phía trên hàmplotcandle():
//@version=4
nghiên cứu ("Kịch bản của tôi", lớp phủ = true)
màu sắc = mở >= đóng? color.red : màu.green
nến cố định (mở, cao, thấp, đóng)Điều này sẽ xem xét từng cây nến và kiểm tra xem giá mở cửa có lớn hơn hoặc bằng giá đóng cửa hay không. Nếu đúng thì có nghĩa là giá đã giảm trong thời gian đó nên nến sẽ có màu đỏ. Nếu không, nó sẽ có màu xanh lục. Sửa đổi hàm lôcandle() để phê duyệt bảng màu này:
//@version=4
nghiên cứu ("Kịch bản của tôi", lớp phủ = true)
màu sắc = mở >= đóng? color.red : màu.green
nến cốt truyện(mở, cao, thấp, đóng, màu=màu)Xóa các chỉ báo hiện tại nếu bạn chưa làm và thêm chỉ báo này vào biểu đồ. Bây giờ, chúng ta sẽ có thứ gì đó trông giống như biểu đồ nến thông thường.

Quý giá!
Vẽ đồ thị đường trung bình động (MA)
Chúng tôi đã có một số yếu tố cơ bản. Bây giờ chúng ta hãy xem chỉ báo tùy chỉnh đầu tiên của chúng ta – đường trung bình động hàm mũ hay EMA. Đây là một công cụ có giá trị vì nó cho phép chúng tôi lọc ra mọi nhiễu loạn thị trường và điều chỉnh hành động giá.
EMA hơi khác so với đường trung bình động đơn giản (SMA) ở chỗ nó mang lại trọng số lớn hơn cho dữ liệu gần đây 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 giao dịch ngắn hạn (ví dụ như trong giao dịch trong ngày).
Đường trung bình động đơn giản (SMA)
Chúng ta cũng có thể vẽ đường SMA để có thể so sánh hai giá trị này sau. Thêm dòng này vào tập lệnh của bạn:
cốt truyện(sma(đóng, 10))Điều này sẽ vẽ mức trung bình của mười ngày trước đó. Điều chỉnh số trong ngoặc đơn để xem đường cong thay đổi như thế nào khi xem xét các độ dài khác nhau.

SMA, dựa trên mười 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 bạn không cần phải lo lắng. Trước tiên hãy chia nhỏ công thức:
EMA = (Đóng - EMA của ngày hôm trước) * Hệ số nhân - EMA của ngày hôm trướcVậy điều này đang nói với chúng ta điều gì? Chà, mỗi ngày chúng tôi tính toán một đường trung bình động mới, dựa trên đường trung bình động của ngày hôm trước. Hệ số nhân là giá trị “có trọng số” trong khoảng thời gian gần đây nhất và được tính theo công thức sau:
Hệ số nhân = 2 / (Độ dài EMA + 1)Giống như các đường trung bình động đơn giản, chúng ta cần xác định EMA sẽ kéo dài bao lâu. Về mặt cú pháp, chức năng vẽ EMA tương tự như chức năng của SMA. Vẽ nó bên cạnh SMA để bạn có thể so sánh cả hai:
//@version=4
nghiên cứu ("Kịch bản của tôi", lớp phủ = true)
cốt truyện(sma(đóng, 10))
cốt truyện(ema(đóng,10))
Bạn có thể thấy rằng có một chút khác biệt giữa cả hai loại MA.
➠ Bạn đang nghĩ đến việc bắt đầu tham gia vào thế giới tiền điện tử? Mua Bitcoin trên Binance!
Các tập lệnh tích hợp
Cho đến bây giờ, chúng tôi đã viết mã theo cách thủ công để bạn có thể quen với nó. Tiếp theo, chúng tôi sẽ giới thiệu một yếu tố có thể giúp chúng tôi tiết kiệm thời gian, đặc biệt nếu chúng tôi định viết các tập lệnh phức tạp hơn và chúng tôi không muốn làm lại từ đầu.
Ở trên cùng bên phải của trình chỉnh sửa, hãy nhấp vào Mới. Bạn sẽ bắt gặp 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 để xem mã nguồn của chỉ báo EMA.

Hãy tiếp tục và thêm phần này vào biểu đồ.
Cái này khác với cái của chúng tôi - bạn sẽ nhận ra các hàm input(). Chúng rất tuyệt vời từ quan điểm khả năng sử dụng, 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 Cài đặt.

Chúng tôi sẽ thêm một số hàm input() trong tập lệnh tiếp theo để chứng minh điều này.
Gắn cờ chỉ báo 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 phân tích kỹ thuật thiết yếu khác. Nó được biết đến như một chỉ báo "động lượng", nghĩa là nó đo tốc độ mua và bán tài sản. Được trình bày theo thang điểm từ 0 đến 100, điểm RSI cố gắng thông báo cho nhà đầu tư biết tài sản đang ở trạng thái "mua quá mức" hay "bán quá mức". Thông thường, một tài sản có thể được coi là bán quá mức nếu nó có điểm nhỏ hơn hoặc bằng 30 và mua quá mức với điểm lớn hơn hoặc bằng 70.
Nếu bạn đi tới Chiến lược mới > RSI, bạn có thể tự mình kiểm tra. Chỉ số RSI thường được đo theo khoảng thời gian 14 (tức là 14 giờ hoặc 14 ngày), nhưng bạn có thể sửa đổi các cài đặt đó cho phù hợp với chiến lược của riêng mình.
Thêm phần này vào biểu đồ. Bây giờ bạn sẽ thấy một số mũi tên được hiển thị (được xác định bởi hàm Strategy.entry() trong mã). RsiLE cho thấy cơ hội tiềm năng để kéo dài 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ể rút ngắn tài sản khi nó bị mua quá mức. Hãy nhớ rằng, giống như tất cả các chỉ số, bạn không nhất thiết phải dựa vào chúng như bằng chứng chắc chắn rằng giá sẽ tăng hoặc giảm.
Kiểm tra lại
Có một cách để chúng tôi kiểm tra các chỉ báo 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ả trong tương lai, nhưng việc kiểm tra lại các tập lệnh của chúng tôi có thể cho chúng tôi ý tưởng về mức độ hiệu quả của chúng trong việc thu thập tín hiệu.
Dưới đây chúng tôi sẽ đưa ra một ví dụ về một kịch bản đơn giản. Hãy tạo một chiến lược đơn giản để vào vị thế mua khi giá BTC giảm xuống dưới 11.000 USD và thoát khỏi vị thế khi giá vượt quá 11.300 USD. Vì vậy, chúng ta có thể thấy chiến lược này sẽ mang lại lợi nhuận như thế nào trong lịch sử.
//@version=4
chiến lược ("ALaLuna", lớp phủ = true)
nhập = đầu vào (11000)
thoát = đầu vào (11300)
giá = đóng
nếu (giá <= nhập)
chiến lược.entry ("CompraLaCaída", chiến lược.long, bình luận = "CompraLaCaída")
nếu (giá >= thoát)
chiến lược.close_all(comment="VendeLasNoticias")Ở đây chúng ta đã định nghĩa đầu vào và đầu ra là các biến; cả hai đều là đầu vào, có nghĩa là chúng ta có thể thay đổi chúng trên biểu đồ sau này. Chúng tôi cũng đặt biến giá, biến này sẽ kết thúc mỗi kỳ. Vì vậy, chúng ta có một số logic ở dạng câu lệnh if. Nếu phần trong ngoặc vuông là đúng thì khối thụt vào bên dưới sẽ được thực thi. Nếu không 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 của chúng tôi, biểu thức đầu tiên sẽ có giá trị đúng và chúng tôi sẽ mở một vị thế mua. Khi giá bằng hoặc vượt quá sản lượng 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 tôi sẽ chú thích biểu đồ bằng các mũi tên hiển thị nơi chúng tôi vào/ra, vì vậy, chúng tôi chỉ định nội dung cần gắn nhãn cho các điểm này bằng tham số nhận xét (trong ví dụ này là "BuyTheDip" và "SellTheNews"). Sao chép mã và thêm nó vào biểu đồ.

Bây giờ bạn có thể thấy các chỉ số trên biểu đồ. Bạn có thể cần phải thu nhỏ.
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 rằng nó chuyển từ tab Trình chỉnh sửa thông sang tab Trình kiểm tra chiến lược. Điều này cho phép bạn xem tổng quan về 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 bạn.

Vị trí chúng tôi đã nhập và thoát.
Đặt các mảnh lại với nhau
Đã đế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 mà chúng ta đã thấy cho đến nay. Chúng ta sẽ kết hợp EMA và RSI và sử dụng các giá trị của chúng để tô màu nến, điều này sẽ trả về thông tin mà chúng ta có thể dễ dàng hình dung.
Điều này không nên được hiểu là lời khuyên tài chính; Không có cách chính xác khách quan để sử dụng chỉ số này. Giống như tất cả những công cụ khác, nó nên được sử dụng cùng với các công cụ khác để phát triển chiến lược của riêng bạn.
Bây giờ hãy làm việc với kịch bản mới của chúng ta. Xóa tất cả các chỉ báo của bạn khỏi biểu đồ và ẩn cả biểu đồ Bitcoin/BUSD để chúng ta có một khung nền rõ ràng để làm việc.
Hãy bắt đầu bằng cách xác định nghiên cứu của chúng tôi. Hãy thoải mái đặt tên cho nó bất cứ điều gì bạn muốn, chỉ cần đảm bảo đặt lớp phủ = true.
nghiên cứu(title="Kịch bản của Học viện Binance", Overlay=true)Hãy nhớ công thức EMA của chúng tôi từ trước. Chúng ta cần cung cấp hệ số nhân với độ dài của EMA. Hãy chuyển đổi nó thành đầu vào yêu cầu số nguyên (để không có chữ số thập phân). Chúng tôi cũng sẽ đặt mức tối thiểu có thể là (minval) và giá trị mặc định (defval).
nghiên cứu(title="Kịch bản của Học viện Binance", Overlay=true)
emaLength = input(title="Độ dài EMA", type=input.integer, defval=25, minval=0)Sử dụng biến mới này, chúng ta có thể tính giá trị EMA cho mỗi cây nến trên biểu đồ của mình:
nghiên cứu(title="Kịch bản của Học viện Binance", Overlay=true)
emaLength = input(title="Độ dài EMA", type=input.integer, defval=25, minval=0)
emaVal = ema(đóng, emaLength)Xuất sắc. Về chỉ báo RSI. Chúng tôi sẽ cung cấp cho nó một độ dài tương tự:
nghiên cứu(title="Kịch bản của Học viện Binance", Overlay=true)
emaLength = input(title="Độ dài EMA", type=input.integer, defval=25, minval=0)
emaVal = ema(đóng, emaLength)
rsiLength = input(title="RSI Chiều dài", type=input.integer, defval=25, minval=0)Và bây giờ, chúng ta có thể tính toán nó:
nghiên cứu(title="Kịch bản của Học viện Binance", Overlay=true)
emaLength = input(title="Độ dài EMA", type=input.integer, defval=25, minval=0)
emaVal = ema(đóng, emaLength)
rsiLength = input(title="RSI Chiều dài", type=input.integer, defval=25, minval=0)
rsiVal = rsi(đóng, rsiLength)Ở giai đoạn này, chúng ta sẽ tập hợp logic tô màu nến dựa trên giá trị EMA và RSI. Hãy xét một tình huống trong đó (a) giá đóng cửa của nến vượt quá đường EMA và (b) khi chỉ số RSI trên 50.
Bởi vì? Chà, bạn có thể quyết định rằng các chỉ báo này có thể được sử dụng cùng nhau để cho bạn biết khi nào nên mua Bitcoin trong ngắn hạn hay dài hạn. Ví dụ: bạn có thể nghĩ rằng việc đáp ứng cả hai điều kiện có nghĩa là đây là thời điểm tốt để vào vị thế mua. Hoặc ngược lại, bạn có thể sử dụng nó để thông báo cho bạn khi nào không nên bán, ngay cả khi các chỉ báo khác nói ngược lại.
Vì vậy, dòng tiếp theo của chúng tôi sẽ trông như thế này:
nghiên cứu(title="Kịch bản của Học viện Binance", Overlay=true)
emaLength = input(title="Độ dài EMA", type=input.integer, defval=25, minval=0)
emaVal = ema(đóng, emaLength)
rsiLength = input(title="RSI Chiều dài", type=input.integer, defval=25, minval=0)
rsiVal = rsi(đóng, rsiLength)
màu sắc = đóng > emaVal và rsiVal > 50 ? color.green : màu.redNếu chúng ta dịch điều này sang ngôn ngữ đơn giản, chúng ta chỉ đơn giản nói rằng nếu giá trị EMA vượt quá giá đóng cửa và điểm RSI vượt quá 50, chúng ta sẽ tô màu nến xanh. Nếu không, chúng ta sẽ tô màu đỏ.
Tiếp theo, vẽ EMA:
nghiên cứu(title="Kịch bản của Học viện Binance", Overlay=true)
emaLength = input(title="Độ dài EMA", type=input.integer, defval=25, minval=0)
emaVal = ema(đóng, emaLength)
rsiLength = input(title="RSI Chiều dài", type=input.integer, defval=25, minval=0)
rsiVal = rsi(đóng, rsiLength)
màu sắc = đóng > emaVal và rsiVal > 50 ? color.green : màu.red
cốt truyện(emaVal, "EMA")Cuối cùng, vẽ biểu đồ nến, đảm bảo bao gồm tham số màu:
nghiên cứu(title="Kịch bản của Học viện Binance", Overlay=true)
emaLength = input(title="Độ dài EMA", type=input.integer, defval=25, minval=0)
emaVal = ema(đóng, emaLength)
rsiLength = input(title="RSI Chiều dài", type=input.integer, defval=25, minval=0)
rsiVal = rsi(đóng, rsiLength)
màu sắc = đóng > emaVal và rsiVal > 50 ? color.green : màu.red
cốt truyện(emaVal, "EMA")
nến cốt truyện(mở, cao, thấp, đóng, màu=màu)Và đó là kịch bản! Thêm nó vào biểu đồ để xem nó hoạt động.

Biểu đồ BTC/BUSD với chỉ báo EMA/RSI.
Tóm lại là
Trong bài viết này, chúng ta xem xét một số ví dụ cơ bản về những gì bạn có thể làm với trình chỉnh sửa Pine của TradingView. Tại thời điểm này, bạn nên đảm bảo tạo các chú thích đơn giản trên biểu đồ giá để có thêm thông tin từ các chỉ báo của riêng bạn.
Ở đây, chúng tôi chỉ quan tâm đến một số chỉ báo nhưng thật dễ dàng để tạo ra các chỉ báo phức tạp hơn bằng cách chọn các tập lệnh tích hợp sẵn của Mới hoặc tự viết chúng.
Thiếu cảm hứng? Các bài viết sau đây có thể cung cấp cho bạn một số ý tưởng cho dự án tiếp theo của bạn:
Hướng dẫn ngắn gọn về chỉ báo Parabol SAR
Hướng dẫn làm chủ các mức thoái lui Fibonacci
Giới thiệu về Chỉ báo Dẫn đầu và Chỉ báo Sau (Leading/Lagging Indicators)
Chỉ báo MACD được giải thích
