안녕하세요
공중 라이브러리에서 Pivot 포인트 높은 낮은 지표가 내장되어 있고 출판되어 있지만, 내가 보는 한, 그들 중 어느 것도 더 높은 시간 프레임에 적합하지 않습니다. 그래서 나는이 스크립트를 작성하고 출판하기로 결정했습니다. 나는 거래 또는 자신의 스크립트를 개발하는 동안 유용 할 것으로 기대합니다. 나는 또한 내 미래의 프로젝트 중 하나에서 사용하기 위해 이것을했습니다 (우리는 몇 주 / 개월 후에 그것을 보게 될 것입니다 ;)).
모든 설정을 선택적으로 만들려고 했는데, 그래서 원하는 대로 놀 수 있습니다.
참고: 차트 시간 프레임이 옵션의 시간 프레임보다 낮다면 제어 메커니즘이 없습니다. 따라서 차트 시간 프레임보다 더 높은 시간 프레임을 설정하는 것이 좋습니다.
즐기세요!
백테스트
/*backtest start: 2022-05-08 00:00:00 end: 2022-05-14 23:59:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © LonesomeTheBlue //@version=5 indicator("Pivot Points High Low Multi Time Frame", overlay = true, max_lines_count = 500, max_labels_count = 500) timeframe = input.timeframe(defval = '240') leftBars = input.int(defval = 2, title = "Left Bars", minval = 1) rightBars = input.int(defval = 2, title = "Right Bars", minval = 1) phlinecol = input(defval = color.lime, title = "Pivot High/Low Line Colors", inline = "lc") pllinecol = input(defval = color.red, title = "", inline = "lc") phbgcol = input(defval = color.lime, title = "Pivot High BG/Text Colors", inline = "ph") phtextcol = input(defval = color.black, title = "", inline = "ph") plbgcol = input(defval = color.red, title = "Pivot Low BG/Text Colors", inline = "pl") pltextcol = input(defval = color.white, title = "", inline = "pl") get_phpl()=> float ph = ta.pivothigh(leftBars, rightBars) float pl = ta.pivotlow(leftBars, rightBars) phtimestart = ph ? time[rightBars] : na phtimeend = ph ? time[rightBars - 1] : na pltimestart = pl ? time[rightBars] : na pltimeend = pl ? time[rightBars - 1] : na [ph, phtimestart, phtimeend, pl, pltimestart, pltimeend] // get if there if Pivot High/low and their start/end times [ph, phtimestart, phtimeend, pl, pltimestart, pltimeend] = request.security(syminfo.tickerid, timeframe, get_phpl(), lookahead = barmerge.lookahead_on) // keep time of each bars, this is used for lines/labels var mytime = array.new_int(0) array.unshift(mytime, time) // calculate end of the line/time for pivot high/low bhend = array.get(mytime, math.min(array.indexof(mytime, phtimeend) + 1, array.size(mytime) - 1)) blend = array.get(mytime, math.min(array.indexof(mytime, pltimeend) + 1, array.size(mytime) - 1)) // to draw once float pivothigh = na(ph[1]) and ph ? ph : na float pivotlow = na(pl[1]) and pl ? pl : na if not na(pivothigh) strategy.entry("Enter Long", strategy.long) else if not na(pivotlow) strategy.entry("Enter Short", strategy.short)