Tập lệnh thông là gì?

Pine Script là ngôn ngữ kịch bản được sử dụng để sửa đổi biểu đồ của bạn trên nền tảng TradingView. Nền tảng này cung cấp cho bạn nhiều tính năng để thực hiện việc này, nhưng Pine Script cho phép bạn tiến tới mục tiêu của mình. Cho dù bạn muốn thay đổi màu sắc của biểu đồ hành động giá hay kiểm tra lại một chiến lược mới, trình chỉnh sửa Pine sẽ giú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.

Mã này được ghi chép rõ ràng, vì vậy hãy nhớ xem hướng dẫn sử dụng để biết thêm thông tin. Thông qua hướng dẫn này, chúng tôi mong muốn thảo luận về một số vấn đề cơ bản và cung cấp các chỉ báo có thể hữu ích trong giao dịch tiền kỹ thuật số.

sự chuẩn bị

Thật dễ dàng để bắt đầu sử dụng Pine Script. Bất kỳ mã nào chúng tôi viết đều chạy trên máy chủ của TradingView, vì vậy chúng tôi có thể sử dụng trình chỉnh sửa và phát triển tập lệnh từ trình duyệt – không cần tải xuống hoặc cấu hình bổ sung.

Trong hướng dẫn này, chúng tôi sẽ tạo biểu đồ cho cặp tiền tệ Bitcoin/Binance USD (BTCBUSD). Nếu chưa có tài khoản, bạn có thể tiếp tục và tạo một tài khoản miễn phí (cũng có sẵn gói đăng ký chuyên nghiệp nhưng không cần thiết đối với hướng dẫn này).

Theo liên kết này và bạn sẽ thấy một biểu đồ tương tự như sau:

Biểu đồ của bạn có thể sẽ phức tạp hơn.

Ở đây chúng tôi muốn có một biểu đồ đầy đủ tính năng – hãy nhấp vào nút để truy cập nó. Điều này cung cấp cho chúng tôi cái nhìn tổng quan và công cụ vẽ chi tiết hơn, cũng như các tùy chọn để vẽ đường xu hướng cùng với các tính năng khác.

Biểu đồ đầy đủ tính năng. Bạn có thể chỉnh sửa khung thời gian bằng cách nhấp vào các chế độ xem phía trên các tab được đánh dấu.

Chúng tôi sẽ không thảo luận về cách sử dụng các công cụ khác nhau có sẵn, nhưng nếu bạn quan tâm đến phân tích kỹ thuật, chúng tôi khuyên bạn nên xem qua để làm quen với chúng. Ở dưới cùng bên trái (được đánh dấu trong hình), bạn sẽ tìm thấy một số tab khác nhau – hãy nhấp vào Pine Editor.

Biên tập viên thông

Trình chỉnh sửa này cung cấp cho bạn một bộ tính năng hấp dẫn. Chúng tôi sẽ cho nó biết những gì chúng tôi muốn làm, sau đó nhấp vào Thêm vào biểu đồ để xem nhận xét của chúng tôi xuất hiện ở trên cùng. Xin lưu ý rằng biểu đồ có thể trở nên lộn xộn nếu bạn nhập nhiều nhận xét cùng một lúc, vì vậy chúng tôi sẽ xóa chúng giữa các ví dụ ( 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ó hai dòng mã. Hãy 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 sẽ thể hiện cùng một dữ liệu. Di chuyển chuột qua nút My Script và nhấp vào dấu chấm lửng để xóa nó. Hãy thảo luận về mã chi tiết hơn.

nghiên cứu ("Kịch bản của tôi")

Dòng đầu tiên thiết lập nhận xét của chúng tôi. Nó chỉ yêu cầu tên mà bạn muốn chỉ báo được gọi ("My Script", trong trường hợp này), nhưng cũng có một số biến tùy chọn mà chúng ta có thể thêm vào. Một biến như vậy là lớp phủ, thông báo cho nền tảng đặt chỉ báo trên biểu đồ hiện tại (thay vì trên một khu vực mới). Như bạn có thể thấy trong ví dụ đầu tiên, nó được mặc định là sai. Vì vậy, chúng ta sẽ không thấy nó chạy ngay bây giờ, Overlay=true sẽ thêm chỉ báo vào biểu đồ hiện tại.

cốt truyện (đóng)

Dòng này là hướng dẫn vẽ giá đóng cửa của Bitcoin. Đồ họa cung cấp cho chúng ta biểu đồ dạng đường, nhưng chúng ta cũng có thể hiển thị hành động giá và biểu đồ thanh, như chúng ta sẽ thấy sau đây.

Bây giờ chúng ta hãy thử làm như sau:

//@version=4 nghiên cứu("My Script", Overlay=true) cốt truyện(open, color=color.purple)

Sau khi thêm biểu tượng này, bạn sẽ thấy biểu đồ thứ hai (có vẻ như biểu đồ ban đầu đã dịch chuyển sang bên phải). Thay vào đó, tất cả những gì chúng tôi làm là vẽ đồ thị giá mở cửa. Vì giá mở cửa của ngày hiện tại là giá đóng cửa của ngày hôm trước nên việc chúng có hình dạng tương tự nhau là điều hợp lý.

Tốt! Hãy loại bỏ các nhận xét hiện có (hãy nhớ rằng chúng ta thực hiện việc này bằng cách nhấp chuột phải và nhấn Remove Indicators). Di chuyển chuột qua BTC/BUSD rồi 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 động giá vì chúng cung cấp cho chúng ta nhiều thông tin hơn là một bản vẽ đơn giản như chúng ta vừa làm. Hãy thêm chúng vào bên dưới.

//@version=4 nghiên cứu("My Script", Overlay=true) cốt truyện(mở, cao, thấp, đóng)

Khởi đầu tốt nhưng thiếu màu sắc khiến nó hơi buồn tẻ. 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 một khung thời gian cụ thể và nến xanh khi giá đóng cửa vượt quá giá mở cửa. Chúng ta sẽ thêm một dòng phía trên thuộc tính Candle Pl():

//@version=4 nghiên cứu ("Tập lệnh của tôi", lớp phủ = đúng) màu sắc = mở >= đóng ? color.red : color.green cốt truyện(mở, cao, thấp, đóng)

Điều này xảy ra trong mọi biểu đồ hành động giá cũng như kiểm tra xem giá mở cửa có lớn hơn hoặc bằng giá đóng cửa hay không. Trong trường hợp này, điều đó có nghĩa là giá đã giảm trong một khoảng thời gian cụ thể, do đó biểu đồ hành động giá sẽ có màu đỏ. Nếu không, nó sẽ có màu xanh lá cây. Sửa đổi hàm drawcandle() để nhập bảng màu:

//@version=4 nghiên cứu ("Tập lệnh của tôi", lớp phủ=true) màu sắc = mở >= đóng ? color.red : color.green cốt truyện(mở, cao, thấp, đóng, color=colors)

Xóa các chỉ báo hiện có nếu bạn chưa xóa chúng và thêm chỉ báo này vào biểu đồ. Chúng ta nên có thứ gì đó đại diện cho biểu đồ hành động giá bình thường.

Vẽ đường trung bình động (MA)

Chúng tôi có một số điều cơ bản dưới đây. Hãy chuyển sang chỉ báo tùy chỉnh đầu tiên – Đường trung bình động hàm mũ hoặc EMA. Nó là một công cụ có giá trị cho phép chúng ta loại bỏ những phiền nhiễu của thị trường và giúp chúng ta hiểu được các chuyển động của thị trường dễ dàng hơn.

Đường trung bình động hàm mũ hơi khác so với đường trung bình động đơn giản (SMA), vì đường trung bình này tập trung vào dữ liệu gần đây nhất. Nó có xu hướng phản ứng với những chuyển động đột ngột và thường được sử dụng trong các giao dịch ngắn hạn (ví dụ: giao dịch trong ngày).

Đường trung bình động đơn giản (SMA)

Chúng ta cũng có thể vẽ một đường trung bình động đơn giản để so sánh chúng sau. Thêm dòng này vào tập lệnh của bạn:

cốt truyện(sma(đóng, 10))

Đây là mức trung bình của 10 ngày trước đó. Điều chỉnh số trong ngoặc để xem đường cong thay đổi bao nhiêu khi tính đến các khoảng thời gian khác nhau.

Đường trung bình động đơn giản được dựa trên 10 ngày trước đó.

Đường trung bình động hàm mũ (EMA)

Đường Trung bình Động Hàm mũ có thể hơi khó hiểu nhưng đừng lo lắng. Chúng ta hãy xem xét phương trình một cách chi tiết:

EMA = (Đóng - EMA của ngày hôm trước) * Hệ số nhân - EMA của ngày hôm trước

Vậy điều đó cho chúng ta biết được điều gì? Vâng, mức trung bình động mới của mỗi ngày được tính toán dựa trên mức trung bình động của ngày hôm trước. Hệ số nhân là “trọng lượng dữ liệu” trong khoảng thời gian gần đây nhất và được tính theo phương trình sau:

Hệ số nhân = 2 / (Độ dài EMA + 1)

Đối với đường trung bình động đơn giản, chúng ta cần xác định đường trung bình động hàm mũ sẽ tồn tại trong bao lâu. Về mặt cấu trúc, biểu đồ trung bình động hàm mũ tương tự như biểu đồ trung bình động đơn giản. Vẽ nó bên cạnh đường trung bình động đơn giản để bạn có thể so sánh chúng:

//@version=4 nghiên cứu("My Script", lớp phủ=true) cốt truyện(sma(đóng, 10)) cốt truyện(ema(đóng,10))

Bạn có thể thấy sự khác biệt nhỏ giữa hai loại đường trung bình động.

Tập lệnh nhúng

Cho đến nay, chúng tôi đã viết mã bằng tay nên bạn đã quen với nó. Nhưng hãy đưa ra điều gì đó sẽ giúp tiết kiệm thời gian, đặc biệt nếu viết những tập lệnh phức tạp hơn và chúng ta không muốn làm điều đó từ đầu.

Nhấp vào nút Mới nằm ở trên cùng bên phải của trình chỉnh sửa của bạn. Bạn sẽ thấy một menu thả xuống có tất cả các loại chỉ báo kỹ thuật khác nhau. Nhấp vào Trung bình trượt hàm mũ để xem mã nguồn của chỉ báo Trung bình trượt hàm mũ.

Sau đó thêm nó vào biểu đồ.

Điều này khác với mã của chúng ta – bạn sẽ thấy các thuộc tính input(). Nó rất tốt để sử dụng vì bạn có thể nhấp vào hộp này…

Bạn cũng có thể 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 hai thuộc tính input() trong tập lệnh sau để minh họa cách thực hiện việc này.

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 trong những chỉ báo cơ bản trong phân tích kỹ thuật. Nó được biết đến như một chỉ báo động lượng, có nghĩa là nó đo tốc độ mua và bán tài sản. Xếp hạng theo thang điểm từ 0 đến 100, điểm RSI cố gắng cho các nhà đầu tư biết liệu một tài sản có bị mua quá mức hay bán quá mức hay không. Thông thường, một tài sản được coi là quá bán nếu điểm của nó nhỏ hơn hoặc bằng 30 và được coi là quá mua nếu điểm của nó lớn hơn hoặc bằng 70.

Nếu bạn đi tới Mới > Chiến lược RSI, bạn có thể tự mình nhìn thấy điều này. Chỉ số RSI được đo trong 14 khoảng thời gian (tức là 14 giờ hoặc 14 ngày), nhưng bạn có quyền tự do điều chỉnh cài đặt này cho phù hợp với chiến lược của riêng mình.

Thêm nó vào biểu đồ. Bây giờ bạn sẽ thấy một số mũi tên (được xác định bằng thuộc tính enter.strategy() trong mã). RsiLE cho biết cơ hội mua tiềm năng đối với tài sản vì nó có thể nằm trong vùng quá bán. Trong khi RsiSE nêu bật các điểm bán tiềm năng của tài sản khi nó nằm trong vùng quá mua. Xin lưu ý rằng, giống như tất cả các chỉ số, không nên dựa vào chúng làm bằng chứng chắc chắn về việc giá tăng hoặc giảm.

Thực hiện kiểm tra lại

Có một cách cho phép chúng tôi kiểm tra các chỉ số tùy chỉ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 quá trình kiểm tra lại các tập lệnh cho chúng ta ý tưởng về mức độ hiệu quả của chúng trong việc nhận tín hiệu.

Dưới đây là một ví dụ về một kịch bản đơn giản. Chúng tôi sẽ tạo một chiến lược đơn giản để tham gia giao dịch mua khi giá Bitcoin giảm xuống dưới 11.000 USD và thoát giao dịch khi giá vượt quá 11.300 USD. Vì vậy, chúng ta có thể biết chiến lược này đã mang lại 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 , bình luận="BuyTheDip") nếu (giá >= thoát)     Strategy.close_all(comment="SellTheNews")

Ở đây chúng tôi đã xác định điểm vào và điểm thoát dưới dạng các biến – cả hai đều là đầu vào, có nghĩa là chúng tôi có thể thay đổi chúng trên biểu đồ sau này. Chúng tôi cũng đã đặt một biến giá để ghi lại giá đóng cửa cho từng thời kỳ. Vì vậy, có điều gì đó hợp lý khi sử dụng câu lệnh if. Nếu phần trong ngoặc là đúng, khối thụt lề sẽ được kích hoạt. Nếu không, nó sẽ bị bỏ qua.

Ngoài ra, nếu giá giảm hoặc bằng giá vào mong muốn, biểu thức sẽ được đánh giá là đúng và chúng tôi sẽ mở giao dịch mua. Khi giá bằng hoặc vượt quá giá thoát yêu cầu, khối thứ hai sẽ được kích hoạt, đồng thời đóng tất cả các giao dịch đang mở.

Chúng tôi sẽ thêm nhận xét vào biểu đồ bằng cách sử dụng các mũi tên để chỉ ra điểm vào và điểm thoát, vì vậy chúng tôi đã đặt tên cho những điểm này trong khung nhận xét (trong ví dụ này là “Mua khi giá thấp” và “Bán khi có tin tức”). Sao chép biểu tượng và thêm nó vào biểu đồ.

Bây giờ bạn có thể xem các chỉ số trên biểu đồ. Bạn có thể cần phải thu nhỏ để xem.

TradingView á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 sự chuyển đổi từ trình soạn thảo Pine 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, danh sách các giao dịch và hiệu suất tương ứng của chúng.

Giao dịch chúng tôi đã nhập và thoát.

Liên kết các mục với nhau

Đã đến lúc viết chương trình của riêng chúng ta bằng cách sử dụng một số khái niệm được mô tả cho đến nay. Chúng tôi sẽ kết hợp cả Đường trung bình động hàm mũ và chỉ số RSI bằng cách sử dụng giá trị của chúng để tô màu biểu đồ hành động giá và đạt được cái nhìn sâu sắc có thể hình dung được.

Điều này không nên được hiểu là lời khuyên tài chính –  vì không có cách chính xác được xác định một cách khách quan để sử dụng chỉ báo này. Tương tự như tất cả các chỉ báo khác, chỉ báo này nên được sử dụng kết hợp với các công cụ khác để phát triển chiến lược đầu tư của bạn.

Hãy bắt đầu làm việc với kịch bản mới. Xóa tất cả các chỉ báo khỏi biểu đồ và ẩn cả biểu đồ BTC/BUSD để chúng ta có một biểu đồ trống để bắt đầu làm việc.

Hãy bắt đầu bằng việc xác định nghiên cứu. Bạn có thể sử dụng bất kỳ tên nào bạn muốn, chỉ cần đảm bảo đặt Overlay=true.

nghiên cứu(title="Kịch bản của Học viện Binance", Overlay=true)

Hãy nhớ phương trình trung bình động hàm mũ mà chúng ta đã nói trước đó. Chúng ta cần cung cấp cho hệ số nhân dữ liệu trong khoảng thời gian mà đường trung bình động hàm mũ sẽ thực hiện. Hãy biến nó thành trường đầu vào yêu cầu số nguyên (do đó, không có chữ số thập phân). Chúng tôi cũng sẽ chỉ định giá trị tối thiểu (minval) và giá trị mặc định (defval).

nghiên cứu(title="Binance Academy Script", Overlay=true) emaLength = input(title="EMA length", type=input.integer, defval=25, minval=0)

Chúng ta có thể tính giá trị EMA cho mỗi cây nến trên biểu đồ bằng cách sử dụng biến mới:

nghiên cứu(title="Binance Academy Script", Overlay=true) emaLength = input(title="EMA length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength)

tuyệt vời. Về Chỉ số Sức mạnh Tương đối (RSI). Chúng ta sẽ bước vào giai đoạn này theo cách tương tự:

nghiên cứu(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="Độ dài RSI", type=input.integer, defval=25, minval=0)

Bây giờ chúng ta có thể tính toán rằng:

nghiên cứu(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="Độ dài RSI", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength)

Tại thời điểm này, bạn nên lưu ý rằng màu sắc của biểu đồ hành động giá phụ thuộc vào giá trị EMA và RSI. Hãy xem xét một ví dụ khi (a) giá đóng cửa của nến vượt qua đường EMA và (b) chỉ số RSI trên 50.

Tại sao? Chà, bạn có thể quyết định rằng những 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 mua hoặc bán Bitcoin. 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 để tham gia giao dịch mua. Ngoài ra, bạn có thể sử dụng các chỉ báo để nhắc nhở bạn khi nào bạn không nên bán, ngay cả khi các chỉ báo khác hiển thị ngược lại.

Vì vậy, dòng tiếp theo trông như thế này:

nghiên cứu(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="Độ dài RSI", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) màu = đóng > emaVal và rsiVal > 50 ? color.green : màu.red

Nếu chúng ta dịch từ này sang tiếng Anh đơn giản, điều đó có nghĩa là nếu EMA vượt quá giá đóng cửa và chỉ số RSI vượt qua 50, chúng ta sẽ tô màu nến xanh. Nếu không nó sẽ có màu đỏ.

Sau đó, vẽ đường trung bình động hàm mũ:

nghiên cứu(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="Độ dài RSI", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) màu = đóng > emaVal và rsiVal > 50 ? color.green : cốt truyện color.red(emaVal, "EMA")

Cuối cùng, vẽ nến, đảm bảo bao gồm biến màu:

nghiên cứu(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="Độ dài RSI", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) màu = đóng > emaVal và rsiVal > 50 ? color.green : color.red cốt truyện(emaVal, "EMA") nến cốt truyện(mở, cao, thấp, đóng, color=colors)

Và bạn đã hoàn thành với kịch bản! Thêm nó vào biểu đồ của bạn để xem nó hoạt động.

Biểu đồ BTC/BUSD sử dụng EMA/RSI.

Suy nghĩ kết luận

Trong bài viết này, chúng tôi đã xem xét một số ví dụ cơ bản về những gì có thể thực hiện được bằng cách sử dụng Pine Editor của TradingView. Bạn có thể đưa ra những nhận xét đơn giản trên biểu đồ giá để hiểu rõ hơn về các chỉ báo của mình.

Ở đây, chúng tôi chỉ nêu bật hai chỉ báo nhưng thật dễ dàng để tạo các chỉ báo phức tạp hơn – dù bằng cách xác định lại các tập lệnh dựng sẵn hay tự viết chúng.

Cần những ý tưởng đầy cảm hứng? Các bài viết sau đây có thể giúp bạn có một số ý tưởng cho dự án tiếp theo của mình: