리소스 로딩... 로딩...

회전점 높은 낮은 멀티 시간 프레임

저자:차오장, 날짜: 2022-05-16 15:12:10
태그:피브

안녕하세요

공중 라이브러리에서 Pivot 포인트 높은 낮은 지표가 내장되어 있고 출판되어 있지만, 내가 보는 한, 그들 중 어느 것도 더 높은 시간 프레임에 적합하지 않습니다. 그래서 나는이 스크립트를 작성하고 출판하기로 결정했습니다. 나는 거래 또는 자신의 스크립트를 개발하는 동안 유용 할 것으로 기대합니다. 나는 또한 내 미래의 프로젝트 중 하나에서 사용하기 위해 이것을했습니다 (우리는 몇 주 / 개월 후에 그것을 보게 될 것입니다 ;)).

모든 설정을 선택적으로 만들려고 했는데, 그래서 원하는 대로 놀 수 있습니다.

참고: 차트 시간 프레임이 옵션의 시간 프레임보다 낮다면 제어 메커니즘이 없습니다. 따라서 차트 시간 프레임보다 더 높은 시간 프레임을 설정하는 것이 좋습니다.

즐기세요!

백테스트

img


/*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)

관련

더 많은