Bonjour à tous,
Il y a des indicateurs Pivot Point High Low intégrés et publiés dans Public Library, mais pour autant que je sache, aucun d'entre eux n'est destiné à des délais plus longs. J'ai donc décidé d'écrire et de publier ce script. J'espère qu'il sera utile lors de la négociation ou du développement de vos propres scripts. Je l'ai également fait pour l'utiliser dans l'un de mes futurs projets (nous le verrons dans quelques semaines / mois ;)).
J'ai essayé de faire tous les réglages optionnels, pour que vous puissiez jouer comme vous le souhaitez.
P.S. Il n'y a pas de mécanisme de contrôle si le calendrier du graphique est inférieur au calendrier des options.
Vous en profitez!
test de retour
/*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)