Strategi Perdagangan Breakout Pra-Pasar


Tanggal Pembuatan: 2023-09-13 11:46:20 Akhirnya memodifikasi: 2023-09-13 11:46:20
menyalin: 0 Jumlah klik: 824
1
fokus pada
1617
Pengikut

Strategi ini berfokus pada waktu sebelum bukaan pasar, menggabungkan garis rata-rata dan indikator momentum untuk menilai tren jangka pendek, melakukan perdagangan terobosan pada tahap momentum tinggi.

Prinsip-prinsip Strategi:

  1. Setel waktu perdagangan pra-penutupan untuk 1 jam sebelum penutupan

  2. Hitung 50 siklus EMA untuk menentukan kisaran harga yang wajar di bursa.

  3. Indikator SMI yang muncul di zona rendah bersilang ke atas dianggap sebagai sinyal beli.

  4. Penembusan harga yang melampaui garis rata-rata EMA dianggap sebagai sinyal stop loss.

  5. Tetapkan titik berhenti tetap, target short line setup.

Keuntungan dari strategi ini:

  1. Penembusan EMA jangka pendek dapat menentukan arah tren hari ini.

  2. Indikator SMI mengkonfirmasi peluang untuk membalikkan zona oversold.

  3. Parameter deteksi terbatas, mudah dioperasikan pada hard disk.

Bahaya dari strategi ini:

  1. Penembusan mudah terbentuk di depan piring, berhati-hatilah untuk berbalik.

  2. Operasi dalam waktu sehari, sulit untuk menghadapi lompatan udara.

  3. Stop loss yang kecil, tidak bisa diatur dengan mudah.

Secara keseluruhan, strategi ini adalah strategi garis pendek pra-penjualan yang khas, mengejar terobosan momentum tinggi melalui indikator EMA dan SMI. Namun, risiko penutupan pra-penjualan tinggi, perlu mengontrol posisi dan melakukan stop loss.

Kode Sumber Strategi
/*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' )