Strategi ini mengambil kira pelbagai dimensi seperti kecairan pasaran, trend, dan petunjuk teknikal, untuk mewujudkan perdagangan strategi garis pendek. Strategi ini dapat mengikuti trend, memanfaatkan operasi pembukaan kedudukan ketika pasaran lebih banyak kecairan, sehingga mendapat keuntungan garis pendek.
Prinsip-prinsip asas: Strategi ini mempertimbangkan dua dimensi likuiditi pasaran dan trend. Melakukan operasi garis pendek apabila likuiditi pasaran lebih baik dan terdapat trend.
Penunjuk kecairan pasaran: Strategi ini menggunakan MFI dan perubahan jumlah urus niaga sebagai penunjuk kecairan pasaran. Apabila MFI meningkat dan jumlah urus niaga meningkat, kami menganggap pasaran lebih cair dan sesuai untuk membuka kedudukan.
Penghakiman Trend: Strategi ini menggabungkan beberapa indikator untuk menilai trend seperti ADX, EMA. Apabila ADX lebih tinggi daripada 30 dan EMAnya menunjukkan trend yang kuat.
Syarat untuk membuka kedudukan: Apabila pasaran mempunyai kecairan yang baik, dan pada masa yang sama terdapat trend, isyarat untuk membuka kedudukan akan dihasilkan jika syarat-syarat lain (seperti penilaian kedudukan SAR) juga dipenuhi.
Tetapan Stop Loss: Strategi ini menetapkan tetapan Stop Loss () 10 mata dan Stop Loss () 7.5 mata untuk setiap dagangan.
Strategi ini mempunyai kelebihan berikut:
Mengambil kesempatan untuk menilai kecairan pasaran: menilai kecairan pasaran berdasarkan MFI dan jumlah urus niaga, mengelakkan mengambil kedudukan ketika kecairan pasaran kurang.
Mengikuti trend untuk mendapatkan keuntungan: Mengambil keputusan mengenai arah trend dengan menggunakan indikator seperti EMA untuk membantu mendapatkan keuntungan daripada trend.
Kawalan risiko di tempat: Tetapkan stop loss yang tetap, mengawal kerugian maksimum dalam satu perdagangan.
Frekuensi dagangan yang lebih tinggi: sebagai strategi garis pendek, frekuensi dagangan akan lebih tinggi, sesuai untuk mengumpulkan keuntungan secara beransur-ansur.
Ruang untuk mengoptimumkan parameter lebih besar: parameter MA, tetapan stop loss dan sebagainya boleh dioptimumkan untuk meningkatkan kesan strategi.
Strategi ini juga mempunyai risiko:
Risiko kawalan tempat licin pada cakera keras: penangguhan kerugian teori tidak sepenuhnya mencerminkan keadaan cakera keras, dan tempat licin pada cakera keras mungkin lebih besar.
Risiko kegagalan penghakiman trend: Strategi ini bergantung kepada lebih banyak petunjuk penghakiman trend, tetapi masih ada kemungkinan kegagalan.
Risiko Overtrading: Sebagai strategi garis pendek, jika parameter yang tidak betul boleh menyebabkan overtrading.
Risiko keadaan pasaran yang tidak normal: Strategi ini mungkin tidak berfungsi dengan baik dalam keadaan yang melampau seperti kurangnya kecairan pasaran atau perubahan dasar.
Oleh itu, kita boleh mengurangkan risiko dengan cara berikut:
Melepaskan Jarak Hentian Kerosakan yang Sesuai, Mengambil Pertimbangan Faktor Skid Disk
Mengoptimumkan logik penghakiman trend, memperkenalkan lebih banyak indikator, dan mengurangkan kemungkinan kegagalan.
Tambah had frekuensi untuk mengelakkan perdagangan berlebihan.
Mengubah parameter secara fleksibel mengikut keadaan pasaran untuk menangani keadaan yang tidak biasa.
Kaedah ini akan memberi manfaat kepada:
Memperkenalkan lebih banyak penunjuk untuk mengoptimumkan penghakiman trend, menjadikan penghakiman lebih tepat. Sebagai contoh, memperkenalkan penunjuk MACD dan sebagainya.
Mengoptimumkan parameter kitaran MA, mencari kombinasi parameter terbaik.
Meningkatkan strategi penutupan kerugian, seperti penutupan bergerak, penutupan selang.
Tambah had kepada bilangan dagangan, mengelakkan dagangan yang terlalu kerap. Contohnya, maksimum 3 kali dagangan dibuka setiap hari.
Mencari penunjuk kecairan pasaran yang lebih baik untuk menilai masa untuk membuka kedudukan. Sebagai contoh, memperkenalkan penunjuk seperti jumlah aliran bersih.
Tambah fungsi pengoptimuman parameter untuk mengoptimumkan parameter secara automatik untuk mencari kombinasi parameter yang optimum.
Strategi ini mempertimbangkan pelbagai dimensi seperti kecairan dan trend pasaran secara menyeluruh, dan menangkap keuntungan dalam garis pendek. Berbanding dengan strategi trend tradisional, inovasi terbesar dalam strategi ini adalah memperkenalkan indikator kecairan pasaran, untuk mengelakkan tergesa-gesa membuka kedudukan ketika kurangnya kecairan pasaran.
/*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)