Xin hãy hướng dẫn bạn cách viết chính xác giá cao nhất và giá thấp nhất trong khoảng thời gian lịch sử của bạn. Cám ơn.
indicator("计算历史区间最高价、最低价", overlay=true)
//目的:想在开单时,找出开单前(输入历史长度)的最高价,或最低价,用于计算开单止损价。
varip ishistory_high_Price0 = array.new_float(0) //定义变量,初始化历史高价格为空的数组
varip ishistory_low_Price0 = array.new_float(0) //定义变量,初始化历史低价格为空的数组
var ishistory_length = input.int(15, minval=1, maxval=100, step=1) //定义变量,历史长度,输入为15,最小值1,最大值100,步长1
var ishistory_high_Price = na
var ishistory_low_Price = na
if barstate.ishistory //对历史K线执行计算(not barstate.ishistory当在实时abr时在执行)
array.push(ishistory_high_Price0, nz(high[1], open)) //写入数组(变量ishistory_high_Price0的历史最高价元素,空值用开盘价)
if array.size(ishistory_high_Price0) > ishistory_length //当数组的长度大于变量长度的时候
array.shift(ishistory_high_Price0) //删除数组(ishistory_high_Price0的第一个元素)
[ishistory_high_Price0]
if barstate.ishistory //对历史K线执行计算
array.push(ishistory_low_Price0, nz(low[1], open)) //写入数组(变量ishistory_low_Price0的历史最低价元素,空值用开盘价)
if array.size(ishistory_low_Price0) > ishistory_length //当数组的长度大于变量长度的时候
array.shift(ishistory_low_Price0) //删除数组(ishistory_low_Price0的第一个元素)
[ishistory_low_Price0]
//需对历史高价格、历史低价格作出比较,并返回最大值(输入周期内的历史最高价、历史最低价)
//下面这个写法不正确!!!
ishistory_high_Price = array.max(ishistory_high_Price0, nz(high[1], open), ishistory_length)
ishistory_low_Price = array.min(ishistory_low_Price0, nz(low[1], open),ishistory_length)
plot(title = "数组ishistory_high_Price中的历史高价格:", ishistory_high_Price, color = color.blue)
plot(title = "数组ishistory_low_Price中的历史低价格:", ishistory_low_Price, color = color.red)
Mặc dù đã học các bài hướng dẫn giới thiệu về ngôn ngữ PINE, tổng của mảng hoặc các yếu tố trong mảng có thể được sử dụng với kích thước tương đối lớn, nhưng không thay đổi các chuỗi K lịch sử! Xin hãy hướng dẫn chúng tôi định nghĩa các biến, so sánh với giá cao lịch sử, giá thấp lịch sử, giá cao lịch sử và giá thấp lịch sử, cảm ơn.
hy vọngKhông có vấn đề, sau khi in biểu đồ sang biểu đồ phụ, hình chủ đề hiển thị bình thường.
hy vọngĐược rồi, cảm ơn bạn, đây là mã thay đổi: '' indicator (("đếm giá cao nhất trong khoảng thời gian lịch sử, giá thấp nhất") // Mục đích: Khi mở lệnh, tìm ra giá cao nhất trước khi mở lệnh (đánh nhập độ dài lịch sử), hoặc giá thấp nhất, để tính giá dừng lỗ duy nhất. var ishistory_length = input.int ((15, title = "ishistory length", minval=1, maxval=100, step=1) // định nghĩa biến, chiều dài lịch sử, đầu vào là 15, tối thiểu 1, tối đa 100, bước dài 1 - Không. var float highest = na // giá trị cao nhất của số lượng nhất định trên đường k qua. var float lowest = na // giá trị tối thiểu của số lượng nhất định trên đường k qua. var float highestbars = na // trục trặc giá trị tối đa của số lượng nhất định trên đường k qua. var float lowestbars = na // trục trặc giá trị tối thiểu của một số lượng nhất định trên đường k qua. highest := ta.highest ((high, ishistory_length) // Đặt lại giá trị tối đa với chiều dài K lịch sử là 15. plot ((highest, title = "Giá cao nhất trong dòng K lịch sử:", color = color.blue, overlay=true) lowest := ta.lowest ((low, ishistory_length) // Đặt lại giá trị tối thiểu với chiều dài K trong lịch sử là 15. plot ((lowest, title = "Giá thấp nhất trong dòng K lịch sử:", color = color.red, overlay=true) highest := ta.highest ((high[1], ishistory_length) // Đặt lại giá trị tối đa với chiều dài K trong lịch sử là 15. plot ((highest, title = "Giá cao nhất trong dòng K lịch sử:", color = color.blue, overlay=true) lowest := ta.lowest ((low[1], ishistory_length) // Đặt lại giá trị tối thiểu với chiều dài K trong lịch sử là 15. plot ((lowest, title = "Giá thấp nhất trong dòng K lịch sử:", color = color.red, overlay=true) Có một số vấn đề trong việc in độ lệch ở dưới đây và tôi không biết làm thế nào để thay đổi nó. highestbars := ta.highestbars ((high, ishistory_length) // Đặt lại độ lệch tối đa của chiều dài đường K lịch sử là 15. plot ((highestbars, title = "Sự chênh lệch giá cao trong dòng K lịch sử:", color = color.orange, overlay=true) lowestbars := ta.lowestbars ((low, ishistory_length) // Sự sai lệch giá trị tối thiểu của một số lượng nhất định trong dòng k qua. plot ((lowestbars, title = "Sự thay đổi giá thấp trong dòng K lịch sử:", color = color.white, overlay=true) '' Có ba câu hỏi nhỏ để bạn học: 1, chỉ cần gọi hàm pine được xây dựng, tìm giá trị tối đa hoặc tối thiểu trong lịch sử, trong mã, chẳng hạn như high, và high [1], kết quả của chúng đều giống nhau, đúng không? Nếu tôi muốn gọi các giá trị này sau đó trong chính sách, tôi có thể sử dụng các giá trị cao nhất hoặc thấp nhất trong các điều kiện chính sách, đúng không? 3, in độ lệch ở trên cho thấy một chút vấn đề, không biết làm thế nào để thay đổi.
Những nhà phát minh định lượng - những giấc mơ nhỏĐặt giá trị tối đa và tối thiểu của một chuỗi dữ liệu trong một phạm vi nhất định, có chức năng tích hợp trực tiếp: `` ta.highest ((source, length)) ta.lowest ((source, length)) `` Ví dụ, yêu cầu giá đóng cửa tối đa trong phạm vi 10 dòng K BAR hiện tại: `` highest10 = ta.highest ((close, 10) ``
Những nhà phát minh định lượng - những giấc mơ nhỏĐược rồi.
Những nhà phát minh định lượng - những giấc mơ nhỏ1, high, và high[1] chắc chắn không giống nhau,[] là tham chiếu hoạt động lịch sử, là tham chiếu dữ liệu chụp nhanh trên BAR trước đó. 2, bạn tính toán một giá trị và ghi lại nó bằng một biến. 3, mô tả các vấn đề cụ thể, thử nghiệm chạy, không có vấn đề.