Il s'agit d'une stratégie de négociation intraday pour le marché indien axée sur les niveaux de support et de résistance clés calculés à partir des prix d'ouverture, de hausse, de baisse et de fermeture de la journée de négociation précédente.
Formules pour les points clés:
PP = (High + Low + Close) /3
R1 = 2*PP - Low
S1 = 2*PP - High
Réduction des risques:
Dans l'ensemble, il s'agit d'une stratégie simple et directe qui peut être facilement validée avec des données historiques. En tant que stratégie intraday, elle offre des opportunités de rupture à haute probabilité à des niveaux clés, ce qui se traduit par de bonnes performances. Mais il existe certains faux risques de rupture basés sur des points pivots qui nécessitent une optimisation supplémentaire. En résumé, il s'agit d'une stratégie de trading intraday à risque facile à mettre en œuvre et contrôlable.
/*backtest start: 2022-11-30 00:00:00 end: 2023-12-06 00:00:00 period: 1d basePeriod: 1h 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/ // © arameshraju //Reference credit goes to All //@version=4 strategy("ARR-Pivote-India-Stategy",shorttitle="ARR-PP-Ind", overlay=true) // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © arameshraju //User Input showPrevDayHighLow = input(false, title="Show previous day's High & Low(PDH/PDL)", type=input.bool) showPivoteLine = input(true, title="Show Pivot Point(PP)", type=input.bool) showPivoteR1Line = input(false, title="Show Pivot Point Resistance (R1)", type=input.bool) showPivoteS1Line = input(false, title="Show Pivot Point Support (S1)", type=input.bool) tradeLong = input(true, title="Trade on Long Entry", type=input.bool) tradeShort = input(false, title="Trade on Short Entry", type=input.bool) maxLoss = input(0.5, title="Max Loss on one Trade", type=input.float) tradeOn=input(title="Trade base Level", type=input.string, options=["PP", "PDH", "PDL","R1","S1"], defval="PP") sessSpec = input("0915-1530", title="Session time", type=input.session) // Defaults // Colors cColor = color.black rColor = color.red sColor = color.green // Line style & Transparency lStyle = plot.style_line lTransp = 35 // Get High & Low getSeries(_e, _timeFrame) => security(syminfo.tickerid, _timeFrame, _e, lookahead=barmerge.lookahead_on) is_newbar(res, sess) => t = time(res, sess) na(t[1]) and not na(t) or t[1] < t newbar = is_newbar("375", sessSpec) // Today's Session Start timestamp y = year(timenow) m = month(timenow) d = dayofmonth(timenow) // Start & End time for Today start = timestamp(y, m, d, 09, 15) end = start + 86400000 PrevDayHigh = getSeries(high[1], 'D') PrevDayLow = getSeries(low[1], 'D') PrevDayClose = getSeries(close[1], 'D') PivoteLine=(PrevDayHigh+PrevDayLow+PrevDayClose) /3 PivoteR1=(PivoteLine*2) -PrevDayLow PivoteS1=(PivoteLine*2) -PrevDayHigh orbPrevDayOpen = getSeries(open[1], 'D') orbPrevDayClose = getSeries(close[1], 'D') // //Preview Day High line // _pdh = line.new(start, PrevDayHigh, end, PrevDayHigh, xloc.bar_time, color=color.red, style=line.style_solid, width=2) // line.delete(_pdh[1]) // _pdl = line.new(start, PrevDayLow, end, PrevDayLow, xloc.bar_time, color=color.green, style=line.style_solid, width=2) // line.delete(_pdl[1]) // _Pp = line.new(start, PrevDayLow, end, PrevDayLow, xloc.bar_time, color=color.green, style=line.style_dashed, width=2) // line.delete(_Pp[1]) // //Previous Day Low Line // l_pdh = label.new(start, PrevDayHigh, text="PD", xloc=xloc.bar_time, textcolor=rColor, style=label.style_none) // label.delete(l_pdh[1]) // l_pdl = label.new(start, PrevDayLow, text="PD", xloc=xloc.bar_time, textcolor=sColor, style=label.style_none) // label.delete(l_pdl[1]) // //Pivote Line // l_pp = label.new(start, PivoteLine, text="PP", xloc=xloc.bar_time, textcolor=color.black, style=label.style_none) // label.delete(l_pp[1]) // l_R1 = label.new(start, PivoteR1, text="R1", xloc=xloc.bar_time, textcolor=color.fuchsia, style=label.style_none) // label.delete(l_pp[1]) // l_SR = label.new(start, PivoteS1, text="S2", xloc=xloc.bar_time, textcolor=color.navy, style=label.style_none) // label.delete(l_pp[1]) plot(showPrevDayHighLow?PrevDayHigh:na , title=' PDH', color=rColor) plot(showPrevDayHighLow?PrevDayLow:na, title=' PDL', color=sColor) plot(showPivoteLine?PivoteLine:na, title=' PP', color=color.black) plot(showPivoteR1Line?PivoteR1:na, title=' R1', color=color.fuchsia) plot(showPivoteS1Line?PivoteS1:na, title=' S1', color=color.navy) // Today's Session Start timestamp // Start & End time for Today //endTime = timestamp(t, m, d, 15, 00) tradeEventPrice= if string("PDH")==tradeOn PrevDayHigh else if string("PDL")==tradeOn PrevDayLow else if string("R1")==tradeOn PivoteR1 else if string("S1")==tradeOn PivoteS1 else PivoteLine //tradeEventPrice=PrevDayHigh if (open < tradeEventPrice) and ( close >tradeEventPrice ) and ( hour < 13 ) and tradeLong strategy.entry("buy", strategy.long, 1, when=strategy.position_size <= 0) if (open > tradeEventPrice) and ( close <tradeEventPrice ) and ( hour < 13 ) and tradeShort strategy.entry("Sell", strategy.short, 1, when=strategy.position_size <= 0) mxloss=orbPrevDayClose*maxLoss strategy.exit("exit", "buy", loss = mxloss) strategy.exit("exit", "Sell", loss = mxloss) strategy.close_all(when = hour == 15 , comment = "close all entries")