बाजार से पूर्व ब्रेकआउट ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-09-13 11:46:20
टैगः

यह रणनीति बाजार से पहले के घंटे के दौरान ब्रेकआउट का व्यापार करती है, जिसमें चलती औसत और गति संकेतक का उपयोग पीक अस्थिरता पर व्यापार करने के लिए अल्पकालिक रुझानों को निर्धारित करने के लिए किया जाता है। यह एक विशिष्ट शॉर्ट स्केलिंग रणनीति है।

रणनीति तर्क:

  1. बाजार से पहले की सीमा को खुला होने के 1 घंटे के भीतर के रूप में परिभाषित करें।

  2. उचित मूल्य सीमा का आकलन करने के लिए 50 अवधि के ईएमए का प्रयोग करें।

  3. SMI क्रॉसओवर कम से कम संकेत लंबे प्रवेश।

  4. ईएमए के नीचे बंद होना स्टॉप लॉस संकेत है।

  5. अल्पकालिक स्केलिंग के लिए निश्चित लाभ लक्ष्य लें।

लाभः

  1. अल्पकालिक ईएमए को तोड़ने से इंट्राडे ट्रेंड दिखाई देता है।

  2. एसएमआई नीचे की ओर मुड़ने की पुष्टि करता है।

  3. सीमित बैकटेस्ट पैरामीटर लाइव ट्रेडिंग को सरल बनाते हैं।

जोखिमः

  1. ब्रेकआउट पूर्व-बाजार जाल के लिए प्रवण हैं, उलटफेर से सावधान रहें।

  2. एक दिन का सत्र, अंतराल से बचाव करने में असमर्थ।

  3. तंग स्टॉप खराब कैलिब्रेट होने पर जल्दी बाहर निकलने की प्रवृत्ति रखते हैं।

संक्षेप में, यह उच्च अस्थिरता ब्रेकआउट पर सवारी करने के लिए ईएमए / एसएमआई का उपयोग करते हुए एक विशिष्ट प्री-मार्केट शॉर्ट स्केलिंग रणनीति है। लेकिन प्री-मार्केट जाल का जोखिम अधिक है, जिसके लिए छोटी स्थिति आकार और अनुशासित स्टॉप लॉस की आवश्यकता होती है।


/*backtest
start: 2022-09-12 00:00:00
end: 2023-09-12 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["v_input_7",65]]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Trading_Bites
//@version=5

// strategy('Morning Scalp', overlay=false, pyramiding=2, initial_capital=3000, default_qty_value=0, commission_value=0.02, max_labels_count=500)

                    // Initial Inputs

StartDate =         timestamp('15Aug 2022 14:00 +0000')
EndDate =           timestamp('15Aug 2022 20:00 +0000')
testPeriodStart =   input(StartDate, 'Start of trading')
testPeriodEnd =     input(EndDate, 'End of trading')
QuantityOnLong =    input(title="Quantity", defval=100,  minval=1)
QuantityOnClose =   QuantityOnLong

//////////////////////////////////////////////////////////////////////
//-- Time In Range
timeinrange(res, sess) =>
    not na(time(res, sess))

                //Market Open//
marketopen = '0930-1600'
MarketOpen = timeinrange(timeframe.period, marketopen)
//////////////////////////////////////////////////////////////////////
                //Market Hour//
morning =   '1000-1210'
Morning =   timeinrange(timeframe.period, morning)


//////////////////////////////////////////////////////////////////////////
               //STOCK MOMENTUM INDEX//
a = input(5, 'Percent K Length')
b = input(3, 'Percent D Length')
ovrsld = input.float(40, 'Over Bought')
ovrbgt = input(-40, 'Over Sold')
//lateleave = input(14, "Number of candles", type=input.integer)

// Range Calculation
ll = ta.lowest(low, a)
hh = ta.highest(high, a)
diff = hh - ll
rdiff = close - (hh + ll) / 2
// Nested Moving Average for smoother curves
avgrel = ta.ema(ta.ema(rdiff, b), b)
avgdiff = ta.ema(ta.ema(diff, b), b)
// SMI calculations
SMI = avgdiff != 0 ? avgrel / (avgdiff / 2) * 100 : 0
SMIsignal = ta.ema(SMI, b)

CrossoverIndex = ta.crossover(SMI, SMIsignal)
CrossunderIndex = ta.crossunder(SMI, SMIsignal)

plot1 = plot(SMI, color=color.new(color.aqua, 0), title='Stochastic Momentum Index', linewidth=1, style=plot.style_line)
plot2 = plot(SMIsignal, color=color.new(color.red, 0), title='SMI Signal Line', linewidth=1, style=plot.style_line)
hline = plot(ovrsld, color=color.new(color.red, 0), title='Over Bought')
lline = plot(ovrbgt, color=color.new(color.green, 0), title='Over Sold')

plot(CrossoverIndex ? close : na, color=color.new(color.aqua, 0), style=plot.style_cross, linewidth=2, title='RSICrossover')

mycol1 = SMIsignal > -ovrbgt ? color.red : na
mycol2 = SMIsignal < -ovrsld ? color.green : na

fill(plot1, hline, color=color.new(mycol1, 80))
fill(plot2, lline, color=color.new(mycol2, 80))

//////////////////////////////////////////////////////////////////////
                // Input EMA9 and EMA21 
EMA50Len      = input( 50 )
EMA50         = ta.ema(close, EMA50Len)
//////////////////////////////////////////////////////////////////////////

                // -------- VWAP  ----------//
vwapLine =      ta.vwap(close)
////////////////////////////////////////////////////////////////////////

                        //PROFIT TARGET//

longProfitPer   = input(10.0, title='Take Profit %') / 100
TargetPrice     = strategy.position_avg_price * (1 + longProfitPer) 
//plot              (strategy.position_size > 0 ? TargetPrice : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Price Target") 
 
                    //BUY STRATEGY CONDITION//

condentry =     ta.crossover(SMI, SMIsignal) and SMI < 0
profittarget =  TargetPrice
stoploss =     close < EMA50

///////////////////////////STRATEGY BUILD//////////////////////////////////////

if MarketOpen
    
    if close > EMA50 

        if (condentry) and Morning
            strategy.entry('Long', strategy.long)
            
        if profittarget and strategy.position_size > 0 
            strategy.exit(id="Long", limit=TargetPrice) 
                
if stoploss
    strategy.close('Long' )


अधिक