Стратегия открытого диапазона с динамической целью прибыли

Автор:Чао Чжан, Дата: 2023-09-10 00:10:22
Тэги:

img

Стратегия открытого диапазона с динамической целью прибыли - это техническая стратегия торговли, которая использует открытый диапазон рынка для выявления потенциальных торговых возможностей.

Стратегия работает, сначала рассчитывая диапазон открытия рынка. Диапазон открытия - это разница между высокой ценой и низкой ценой первой панели торгового дня. Затем стратегия определяет потенциальные торговые возможности, ищет разрыв выше или ниже диапазона открытия.

Если цена превышает диапазон открытия, стратегия входит в длинную позицию. Если цена превышает диапазон открытия, стратегия входит в короткую позицию. Стратегия выходит из позиции, когда цена достигает заранее определенной цели прибыли или стоп-лосса.

Цель прибыли для стратегии является динамической, что означает, что она меняется по мере движения цены. Цель прибыли рассчитывается на основе диапазона открытия и текущей цены на рынке. Стратегия выйдет из позиции, когда цена достигнет заранее определенного процента от диапазона открытия.

Стоп-лосс для стратегии также динамичен, что означает, что он меняется по мере движения цены. Стоп-лосс рассчитывается на основе текущей цены рынка и заранее определенного процента от диапазона открытия. Стратегия выйдет из позиции, если цена достигнет стоп-лосса.

Стратегия открытого диапазона с динамической целью прибыли является относительно простой стратегией для реализации, но она может быть эффективной при выявлении краткосрочных торговых возможностей.

Ниже приведено более подробное объяснение различных компонентов стратегии:

  • Открытие диапазона: диапазон открытия - это разница между высокой ценой и низкой ценой первого бара торгового дня.
  • Прорыв: Прорыв происходит, когда цена выходит выше или ниже диапазона открытия. Это сигнал о том, что рынок, вероятно, продолжит двигаться в направлении прорыва.
  • Цель прибыли: Цель прибыли - это заранее определенный процент от диапазона открытия, который стратегия будет пытаться достичь до выхода из позиции.
  • Стоп-лосс: Стоп-лосс - это предопределенная цена, по которой стратегия выйдет из позиции, если рынок движется против сделки. Стратегия открытого диапазона с динамической целью прибыли - это универсальная стратегия, которая может использоваться на различных временных рамках и рынках.

Вот несколько советов по использованию стратегии открытого диапазона с динамической целью прибыли:

  • Используйте стоп-лосс для защиты прибыли.
  • Используйте стоп-лосс, чтобы получить прибыль, когда рынок движется в вашу пользу.
  • Проверьте стратегию на исторических данных, прежде чем использовать ее в реальном времени.
  • Использование различных других индикаторов для подтверждения сигналов, генерируемых стратегией открытого диапазона с динамической целью прибыли. Стратегия открытого диапазона с динамической целью прибыли является мощным инструментом, который можно использовать для выявления краткосрочных торговых возможностей. Однако важно использовать стратегию мудро и понимать ее ограничения. Следуя советам выше, вы можете увеличить свои шансы на успех при использовании этой стратегии.

Надеюсь, эта статья вам поможет.


/*backtest
start: 2023-08-09 00:00:00
end: 2023-09-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["v_input_10",true]]
*/

//@version=2
//Created by Frenchy/lisfse/Francois Seguin on 2019-01-22"
strategy(title="Open_Range_Strategy_with_dynamic_PT_by_frenchy", shorttitle="O/R Strategy Dynamic PT  ", overlay=true)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2017, title = "From Year", minval = 2010)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2016)
// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"


// === INPUT SESSION RANGE ===
SessionLenght = input('0930-1100',  title="Session Lenght")
res = input('30', title="Length Of Opening Range?")
Notradetime= time('30', '0930-1000')
Tradetime= time('1', '1000-1100')

// === LONG/SHORT STRATEGY AND ALERT SELECTION     ===

Select_long = input(true, title="Long Strategy and alert ?")
Select_short = input(false, title="Short Strategy and alert ?")


//Session Rules
sessToUse = SessionLenght
bartimeSess = time('D', sessToUse)
fr2to17 =  time(timeframe.period, sessToUse) 
newbarSess = bartimeSess != bartimeSess[1]
high_range = valuewhen(newbarSess,high,0)
low_range = valuewhen(newbarSess,low,0)
adopt(r, s) => security(syminfo.tickerid, r, s)


//Formula For Opening Range
highRes = adopt(res, high_range)
lowRes = adopt(res, low_range)
range = highRes - lowRes

//Highlighting Line Rules For Opening Range
highColor = Notradetime  ? red : green
lowColor = Notradetime  ? red : green


//Plot Statements For Opening Range Lines
openRangeHigh = plot(fr2to17 > 0 ? highRes : na, color=highColor, style=linebr, linewidth=4,title="OR High")
openRangeLow = plot(fr2to17 > 0 ? lowRes : na, color=lowColor, style=linebr, linewidth=4,title="OR Low")


//Price definition
price = security(syminfo.tickerid, timeframe.period, close)
haclose = ((open + high + low + close)/4)
//aopen = na(haopen[1]) ? (open + close)/2 : (haopen[1] + haclose[1]) / 2
MA20= sma(price,20)


//Plots For Profit Targe 2
bgcolor(Notradetime? red:na)


///////////////////////////////////////Strategy Definition ///////////////////////////////////////////////////////////////


/////////////////////////////////////////Long Strategy////////////////////////////////////////////////////////////////////
//Enter Strategy Long criteria 
Enterlong = (crossover(price,highRes) and Select_long and Tradetime ? 1:0 ) and (Notradetime ? 0:1) 
plotarrow(Enterlong, color=black, style=shape.triangleup, text="Enter", location=location.belowbar, minheight = 80, maxheight=80, offset=0)

//Exit Strategy Long  criteria
Exitlong  = crossunder(price,highRes) or crossunder(price,MA20) 
//plotshape(Exitlong, color=black, style=shape.triangledown, text="Exit", location=location.abovebar)

/////////////////////////////////////////Long Strategy Excution////////////////////////////////////////////////////////
strategy.entry ("Call", strategy.long, when=Enterlong and window())
strategy.close("Call", when=Exitlong and window())




//////////////////////////////////////////Short Strategy////////////////////////////////////////////////////////////////

//Enter Strategy Short criteria
Entershort = crossunder(price,lowRes) and time(res, SessionLenght) and Select_short ? 1:0

// Exit Strategy short criteria
Exitshort  =  crossover(price,lowRes) or crossover(haclose,MA20)


///////////////////////////////////////Strategy execution Short///////////////////////////////////////////////////////

strategy.entry ("put", strategy.short, when=Entershort and window()) 
strategy.close("put", when=Exitshort and window())



 





Больше