Strategi Scalping Berdasarkan Likuiditas dan Tren Pasar

Penulis:ChaoZhangTanggal: 2024-01-30 15:36:33
Tag:

img

Gambaran umum

Strategi ini secara komprehensif mempertimbangkan likuiditas pasar, tren dan indikator teknis untuk menerapkan strategi perdagangan jangka pendek. Strategi dapat mengikuti tren dan membuka posisi ketika likuiditas pasar relatif baik, sehingga memperoleh keuntungan jangka pendek.

Prinsip Strategi

  1. Prinsip dasar: Strategi ini terutama mempertimbangkan likuiditas pasar dan tren. Melakukan operasi jangka pendek ketika likuiditas pasar baik dan tren muncul.

  2. Indikator likuiditas pasar: Strategi ini terutama menggunakan MFI dan perubahan volume perdagangan sebagai indikator likuiditas pasar.

  3. Penghakiman Tren: Strategi ini menggabungkan ADX, EMA dan indikator lain untuk menentukan tren. Ketika ADX di atas 30 dan EMA-nya, itu berarti bahwa tren relatif kuat. Pada saat yang sama, jika silang emas EMA cepat dan lambat terjadi, tren juga dapat diverifikasi.

  4. Kondisi pembukaan: Ketika likuiditas pasar baik dan tren muncul pada saat yang sama, jika kondisi tambahan lainnya (seperti penilaian posisi SAR, dll.) juga terpenuhi, sinyal pembukaan dihasilkan.

  5. Setelan Take Profit dan Stop Loss: Strategi ini menetapkan fixed take profit (10 poin) dan stop loss (7.5 poin) untuk setiap perdagangan.

Analisis Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Menggunakan likuiditas pasar untuk menentukan waktu: Berdasarkan MFI dan volume perdagangan untuk menentukan likuiditas pasar, hindari membuka posisi ketika likuiditas pasar rendah.

  2. Ikuti tren untuk keuntungan: Gabungkan EMA dan indikator lain untuk menentukan arah tren, membantu mendapatkan keuntungan tren.

  3. Pengendalian risiko yang baik: Tetapkan profit tetap dan stop loss untuk secara efektif mengendalikan kerugian maksimum per perdagangan.

  4. Frekuensi perdagangan yang relatif tinggi: Sebagai strategi jangka pendek, frekuensi perdagangan akan relatif tinggi, cocok untuk mengumpulkan keuntungan secara bertahap.

  5. Ruang yang luas untuk optimasi parameter: Misalnya, parameter MA, stop loss dan take profit dapat dioptimalkan untuk meningkatkan kinerja strategi.

Analisis Risiko

Strategi ini juga memiliki beberapa risiko:

  1. Risiko pengendalian slippage perdagangan nyata: Stop loss dan take profit teoretis tidak dapat sepenuhnya mencerminkan kondisi perdagangan nyata. Slippage dalam perdagangan nyata mungkin relatif besar.

  2. Risiko kesalahan penilaian tren: Strategi ini sangat bergantung pada beberapa indikator untuk menentukan tren, tetapi masih ada kemungkinan kegagalan.

  3. Risiko perdagangan berlebihan: Sebagai strategi jangka pendek, pengaturan parameter yang tidak tepat dapat menyebabkan perdagangan berlebihan.

  4. Risiko anomali pasar: Dalam kasus ekstrim likuiditas pasar yang sangat buruk atau perubahan kebijakan, strategi ini mungkin tidak bekerja dengan baik.

Dengan demikian, kita dapat mengurangi risiko dari aspek berikut:

  1. Relaksasi rentang stop loss dengan tepat untuk mempertimbangkan faktor slippage yang sebenarnya.

  2. Mengoptimalkan logika penilaian tren dan memperkenalkan lebih banyak indikator untuk mengurangi kemungkinan kegagalan.

  3. Tambahkan batas frekuensi posisi terbuka untuk menghindari perdagangan berlebihan.

  4. Fleksibel menyesuaikan parameter berdasarkan kondisi pasar untuk mengatasi situasi yang tidak normal.

Arah Optimalisasi

Arah optimasi dari strategi ini meliputi:

  1. Memperkenalkan lebih banyak indikator untuk mengoptimalkan penilaian tren dan membuat penilaian lebih akurat.

  2. Mengoptimalkan parameter siklus MA untuk menemukan kombinasi parameter terbaik.

  3. Meningkatkan strategi stop loss dan mengambil keuntungan, seperti menggunakan stop loss bergerak, stop loss interval dan sebagainya.

  4. Tambahkan pembatasan pada jumlah perdagangan untuk menghindari perdagangan frekuensi yang terlalu tinggi.

  5. Menemukan indikator likuiditas pasar yang lebih baik untuk lebih menentukan waktu pembukaan posisi.

  6. Tambahkan fungsi optimasi parameter untuk mengoptimalkan parameter secara otomatis untuk menemukan kombinasi parameter optimal.

Ringkasan

Strategi ini secara komprehensif mempertimbangkan faktor-faktor seperti likuiditas pasar dan tren. Ini menangkap keuntungan dalam jangka pendek. Dibandingkan dengan strategi tren tradisional, inovasi terbesar dari strategi ini adalah pengenalan indikator likuiditas pasar untuk menghindari membuka posisi ketika likuiditas pasar buruk. Sejalan dengan itu, strategi ini juga memiliki risiko kontrol dunia nyata tertentu dan risiko salah penilaian tren. Kita dapat terus meningkatkan strategi ini dengan memperkenalkan lebih banyak indikator, mengoptimalkan parameter, dan manajemen risiko.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
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/
// © trent777brown

//@version=5
strategy("scalping with market facilitation", overlay=true, margin_long=100, margin_short=100)


MFI0 = (high - low) / volume
MFI1 = (high[1] - low[1]) / volume[1]

MFIplus = MFI0 > MFI1
MFIminus = MFI0 < MFI1

//Current Trend-(Changed mean to trend)-revised
trendplus = hl2 > high[1]
trendzero = hl2 < high[1] and hl2 > low[1]  //addition of script
trendminus = hl2 < low[1]  //changed high to low

//Volume +/-
volplus = volume > volume[1]
volminus = volume < volume[1]

//Period Control by Buyers or Sellers is determined with reference to Price action of the period 
//divided into 3 sectors, sector 1 is the Top third, Sector 2 is the middle third, 
//and sector 3 is the Bottom third of the period. Control classifications are: Extremes(11, 33), Neutral(22), 
//Climbers(31,21,32) Open lower than Close, and Drifters(13,23,12)Close lower than Open

//value0 = low
//value1 = ((high - low)/3)
//value2 = ((high - low)/3)*2
//value3 = high

//o1 = (open >= (((high - low)/3) * 2) + low)
//c1 = (close >= (((high - low)/3) * 2) + low)
//o2 = (open <= o1) 
//c2 = (close <= c1)
//o3 = (open <= ((high - low)/3) + low)
//c3 = (close <= ((high - low)/3) + low)

//sector2 = if((high - low)/3) + low and sector2 <= (((high - low)/3)*2) + low

//sector3 = if((high - low)/3) + low and >= low


//Extremes-Full Control of Period by Buyers or Sellers 
//pg79 notes an 85% chance that the current trend will change in the next 1 to 5 bars
b11 = open >= (high - low) / 3 * 2 + low and close >= (high - low) / 3 * 2 + low  //Extreme Buyer Control:Chartruse
b33 = open <= (high - low) / 3 + low and close <= (high - low) / 3 + low  //Extreme Seller Control:Crimson
//Neutral pg80
b22 = open >= (high - low) / 3 + low and open <= (high - low) / 3 * 2 and close >= (high - low) / 3 + low and open <= (high - low) / 3 * 2  //Bracketed Price Control
//Climber-Open lower than Close pg81
b31 = open <= (high - low) / 3 + low and close >= (high - low) / 3 * 2 + low  //Strong Buyer Control:Dark Green
b21 = open >= (high - low) / 3 + low and open <= (high - low) / 3 * 2 and close >= (high - low) / 3 * 2 + low  //Moderate Buyer Control:Green
b32 = open <= (high - low) / 3 + low and close >= (high - low) / 3 + low and open <= (high - low) / 3 * 2  //Weak Buyer Control:Light Green
//Drifter-Close lower than Open pg81
b13 = open >= (high - low) / 3 * 2 + low and close <= (high - low) / 3 + low  //Strong Seller Control:Dark Red
b23 = open >= (high - low) / 3 + low and open <= (high - low) / 3 * 2 and close <= (high - low) / 3 + low  //Moderate Seller Control:Red
b12 = open >= (high - low) / 3 * 2 + low and close >= (high - low) / 3 + low and open <= (high - low) / 3 * 2  //Weak Seller Control:Light Red/Pink

 

//


psar= ta.sar(.09, .2, .2)

ema8= ta.ema(hlc3, 8)

ema13h= ta.ema(high, 13)
ema13l= ta.ema(low, 13)
ema13= ta.ema(close, 13)

ema55= ta.ema(close, 100)

[dip, dim, adx]= ta.dmi(5, 5)
adxema=ta.ema(adx, 3)
[macdl, sigl, histl]= ta.macd(close, 8, 13, 5)
obv= ta.obv
obvema= ta.ema(obv, 8)
obvema55= ta.ema(obv, 55)
mfigreen= MFIplus and volplus
adx_x_over= ta.crossover(adx, adxema) and adx >= 25
barssincemfi= ta.barssince(mfigreen)










longtrig2= adx > 30 and adx > adxema and barssincemfi <= 4 


shorttrig2= adx > 30 and adx > adxema and barssincemfi <= 4 


long= macdl > sigl and obv > obvema55 and ema8 > ema55   and psar < low and trendplus//and ema13l > ema55//and open > hull200 and close > hull200

short= macdl < sigl and obv < obvema55 and ema8 < ema55 and psar > high and trendminus//and ema13h < ema55//open < hull200 and close < hull200


//plot(hull200, color=color.red, linewidth=3)
plot(ema13h, color=color.gray, linewidth=3)
plot(ema13l, color=color.gray, linewidth=3)

plot(ema13, color=color.blue, linewidth=3)
//
plot(ema55, color=color.white, linewidth=3)
plot(psar, color=color.white, style=plot.style_circles)
plotshape(mfigreen, color=color.yellow, style=shape.flag, location=location.belowbar, size= size.tiny)
longCondition = long
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long, 1,  when= longtrig2)
    strategy.exit("exit long", "My Long Entry Id", profit= 100, loss= 75)
shortCondition = short
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short, 1,  when= shorttrig2)
    strategy.exit("exit short", "My Short Entry Id", profit= 100, loss= 75)


Lebih banyak