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)
PINE 언어의 소개 교습을 배운 후에도 대수함 또는 대수함의 요소의 크기를 사용할 수 있지만 역사 K줄을 바꾸면 다시 쓸 수 없습니다! 대장님, 변수 정의를 안내해 주시기 바랍니다. 역사적인 높은 가격과 역사적인 낮은 가격과 비교해 주시기 바랍니다. 감사합니다.
희망이제 문제가 없습니다. 그래프를 인쇄하고 추가 그래프로 변경하면 스키트가 정상으로 표시됩니다.
희망네, 감사합니다. 이건 코드 변경입니다. '' indicator (("역사적 범위에서 최고 가격, 최저 가격을 계산") //목적: 오더를 열 때 오더를 열기 전 (역사 길이를 입력) 에 가장 높은 가격, 또는 최저 가격을 찾으려면 오더를 열기 전 단독 스톱 손실 가격을 계산한다. var ishistory_length = input.int ((15, title = "ishistory length", minval=1, maxval=100, step=1) //변수 정의, 역사 길이, 입력 15, 최소 1, 최대 100, 단계 길이 1 - 그래요 var float highest = na // 지난 k줄의 주어진 숫자의 최대 값이다. var float lowest = na // 지난 k줄의 주어진 숫자의 최소값이다. var float highestbars = na // 지난 k줄의 주어진 숫자의 최대값 오차. var float lowestbars = na // 지난 k줄의 주어진 숫자의 최소값 오차. highest := ta.highest ((high, ishistory_length) //역사 K줄 길이의 최대값을 15로 재배정한다. plot ((highest, title = "역사 K줄의 높은 가격:", color = color.blue, overlay=true) lowest := ta.lowest ((low, ishistory_length) //역사 K줄 길이의 최소값을 15로 다시 지정한다. plot ((lowest, title = "역사 K줄의 낮은 가격:", color = color.red, overlay=true) highest := ta.highest ((high[1], ishistory_length) //역사 K줄 길이의 최대값을 15로 재배정한다. plot ((highest, title = "역사 K줄의 높은 가격:", color = color.blue, overlay=true) lowest := ta.lowest ((low[1], ishistory_length) //역사 K줄 길이의 최소값을 15로 다시 지정한다. plot ((lowest, title = "역사 K줄의 낮은 가격:", color = color.red, overlay=true) 아래의 오차 인쇄는 약간의 문제를 보여줍니다. 어떻게 바꿀지 모르겠습니다. highestbars := ta.highestbars ((high, ishistory_length) //역사 K줄 길이의 최대값 오차를 15로 재배정한다. plot ((highestbars, title = "역사 K선에서 높은 가격 오차:", color = color.orange, overlay=true) " lowestbars := ta.lowestbars ((low, ishistory_length) // 지난 k줄의 주어진 숫자의 최소값 오차. plot ((lowestbars, title = "역사 K 라인의 낮은 가격 오차:", color = color.white, overlay=true) " '' 그리고 세 가지 작은 질문이 있습니다. 1, 파인 내장 함수를 호출할 때, 역사의 최대값이나 최소값을 구하는 경우, 코드에서, 예를 들어, high, 그리고 high[1]에서, 그들은 동일한 결과를 얻습니다. 두 번째, 만약 제가 나중에 정책에서 이 값을 호출해야 한다면, 바로 정책 조건에서 가장 높은 값이나 가장 낮은 값을 사용할 수 있습니다. 3, 위의 오차 인쇄는 약간의 문제를 나타냅니다. 어떻게 바꿀지 모르겠습니다.
발명가들의 수량화 - 작은 꿈특정 범위의 데이터 시리즈의 최대값, 최소값, 직접 사용할 수 있는 내장 함수: `` ta.highest ((source, length)) ta.lowest ((source, length)) `` 예를 들어, 현재 10개의 K 라인 BAR 범위에 해당하는 최대 폐쇄값을 요구합니다. `` highest10 = ta.highest ((close, 10)) ``
발명가들의 수량화 - 작은 꿈좋아
발명가들의 수량화 - 작은 꿈1,high,와 high[1]는 확실히 다르며,[]역사 동작 참조이며, 이전 BAR의 스냅샷 데이터 참조이다. 2, 당신은 어떤 값을 계산하고 변수를 사용하여 기록할 수 있습니다. 3, 구체적인 문제를 설명하고 테스트를 실행하고 문제가 없습니다.