Terobosan Ganjaran - Strategi Perubahan Struktur Pasaran

Penulis:ChaoZhang, Tarikh: 2023-12-05 15:17:01
Tag:

img

Terobosan Oscillasi - Strategi Pergeseran Struktur Pasaran (ICT_MSS) adalah strategi trend berikut yang mengenal pasti perubahan struktur pasaran menggunakan hubungan antara jangka masa yang berbeza. Strategi ini menggunakan hubungan jangka masa sebagai isyarat untuk perubahan struktur pasaran untuk menangkap arah trend baru.

Logika Strategi

Logik utama strategi ini adalah menggunakan corak peluh jangka masa pendek ke bawah dan ke atas sebagai isyarat untuk perubahan struktur pasaran jangka masa yang lebih lama. Khususnya, strategi secara serentak memantau jangka masa yang lebih lama (contohnya bar 60m) dan jangka masa yang lebih pendek (contohnya bar 15m). Apabila bar merah peluh ke bawah muncul pada jangka masa yang lebih pendek sementara bar jangka masa yang lebih lama berwarna hijau, ia ditentukan bahawa struktur pasaran telah berlaku dan kedudukan pergeseran panjang diambil. Apabila bar hijau peluh ke atas muncul pada jangka masa yang lebih pendek sementara bar jangka masa yang lebih lama berwarna merah, ia ditentukan bahawa perubahan struktur pasaran telah berlaku dan kedudukan pendek diambil.

Selepas memasuki kedudukan arah, strategi menggunakan jangka masa pendek tinggi / rendah untuk menetapkan stop loss untuk mengawal risiko. Apabila harga penutupan bar jangka masa yang lebih lama mencapai tahap mengambil keuntungan, strategi akan menutup kedudukan untuk keuntungan.

Analisis Kelebihan

Kelebihan strategi ini ialah:

  1. Penggunaan hubungan jangka masa mengelakkan ditipu oleh bunyi bising dari satu jangka masa.

  2. Memutuskan arah trend baru secara automatik. Perubahan struktur pasaran secara automatik mencetuskan entri panjang / pendek tanpa memerlukan penilaian manual.

  3. Kawalan risiko yang berkesan. Jangka masa pendek tinggi/rendah yang digunakan untuk kawalan risiko membantu mengurangkan kerugian perdagangan tunggal.

  4. Menggunakan jangka masa yang singkat untuk masuk dan hentikan kerugian boleh membantu mengawal pengeluaran hingga tahap tertentu.

Analisis Risiko

Risiko utama strategi ini ialah:

  1. Risiko penilaian struktur pasaran yang salah. Isyarat mungkin gagal apabila bunyi jangka masa pendek tinggi. Parameter jangka masa perlu diselaraskan.

  2. Risiko pembalikan trend. Strategi berjuang untuk mengawal penurunan semasa pembalikan berbentuk V. Algoritma stop loss perlu disesuaikan.

  3. Risiko ketidakcocokan parameter. Kombinasi jangka masa panjang / pendek yang salah membawa kepada kualiti isyarat yang buruk dan memerlukan ujian pengoptimuman.

Arahan pengoptimuman

Arah pengoptimuman lanjut untuk strategi termasuk:

  1. Tambah penapis trend untuk mengelakkan isyarat yang salah semasa pembalikan trend.

  2. Mengoptimumkan pemadan parameter jangka masa untuk meningkatkan kualiti isyarat.

  3. Menggunakan pembelajaran mesin untuk mengambil keuntungan / berhenti rugi yang optimum.

  4. Tambah penapis tambahan seperti trend jangka masa yang lebih besar.

  5. Memperluas varian strategi untuk membentuk ensemble strategi.

Kesimpulan

Strategi ICT_MSS adalah strategi trend berikut yang boleh dipercayai secara keseluruhan. Ia secara automatik menentukan arah trend baru berdasarkan perubahan struktur pasaran dan juga mempunyai kawalan risiko yang baik yang terbina dalam. Langkah seterusnya adalah penambahbaikan lebih lanjut di sekitar meningkatkan kualiti isyarat, mengoptimumkan keluar, dan mencegah pembalikan untuk menjadikannya strategi gred komersial.


/*backtest
start: 2022-11-28 00:00:00
end: 2023-12-04 00:00:00
period: 1d
basePeriod: 1h
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/
// © jl01794

//@version=5
strategy(title="ICT_MSS[PROTOTYPE]", overlay=true, initial_capital=10000, currency="USD", margin_long=15, margin_short=15, max_lines_count=500)


// INPUTS
Time_Frame  = input.timeframe("60", title="Focused Time Frame")
FTF_LTF = input.timeframe("15", title="Focused Time Frame(LTF)")
//

// SECURITY DATA [FOR ONE TIMEFRAME REFERENCE]

FTF_Close = request.security(syminfo.tickerid, Time_Frame, close)
FTF_Open = request.security(syminfo.tickerid, Time_Frame, open)
FTFLTF_High = request.security(syminfo.tickerid, FTF_LTF, ta.highest(2)) 
FTFLTF_Low = request.security(syminfo.tickerid, FTF_LTF, ta.lowest(2)) 
FTFLTF_Close = request.security(syminfo.tickerid, FTF_LTF, close)
FTFLTF_Open = request.security(syminfo.tickerid, FTF_LTF, open)

// TIME BASED CLOSE AND OPEN
_close = FTF_Close
_open = FTF_Open
_LTFclose = FTFLTF_Close
_LTFopen = FTFLTF_Open

// CANDLE STATE
greenCandle = close > open
redCandle = close < open
LTFgreenCandle = FTFLTF_Close > FTFLTF_Open
LTFredCandle = FTFLTF_Close < FTFLTF_Open

// ENGULFING TIMEFRAME REFERENCE
FTF_greenCandle = request.security(syminfo.tickerid, Time_Frame, greenCandle)
FTF_redCandle = request.security(syminfo.tickerid, Time_Frame, redCandle)
FTFLTF_greenCandle = request.security(syminfo.tickerid, FTF_LTF, LTFgreenCandle)
FTFLTF_redCandle = request.security(syminfo.tickerid, FTF_LTF, LTFredCandle)

//--------------------------------------------------------------------------------------------------------------

//ENGULFING_FTF_LTF
B_EnP_mss = FTFLTF_redCandle[1] and        // 1E PIVOT BUY
     FTFLTF_greenCandle
//


B_EnPs_mss = FTFLTF_greenCandle[1] and        // 1E PIVOT SELL
     FTFLTF_redCandle
//  

//--------------------------------------------------------------------------------------------------------------

display_LTF = timeframe.isintraday and timeframe.multiplier <= 15

//--------------------------------------------------------------------------------------------------------------

// STORED DATAS
var float EH_MSS1 = na
var float EL_MSS1 = na
var bool can_draw = false
var line l1_mss = na
var line l1s_mss = na

//--------------------------------------------------------------------------------------------------------------

// MSS BUY
if (B_EnPs_mss) and (display_LTF)                                                 
    EH_MSS1 := FTFLTF_High 
    can_draw := true                                                            
    l1_mss := line.new(bar_index, EH_MSS1, bar_index -3, EH_MSS1, color=color.purple)     
else
    if (can_draw)
        if (FTFLTF_High > EH_MSS1)                                                    
            can_draw := false                                                  
        else
            line.set_x2(l1_mss, bar_index) 
//

// MSS SELL
if (B_EnP_mss) and (display_LTF)                                                 
    EL_MSS1 := FTFLTF_Low 
    can_draw := true                                                            
    l1s_mss := line.new(bar_index, EL_MSS1, bar_index -3, EL_MSS1, color=color.purple)     
else
    if (can_draw)
        if (FTFLTF_Low < EL_MSS1)                                                    
            can_draw := false                                                  
        else
            line.set_x2(l1s_mss, bar_index) 
          

//--------------------------------------------------------------------------------------------------------------

// ORDER

// BUY
longCondition_mssB = B_EnPs_mss and FTFLTF_High and close and high[1]
openOr = FTFLTF_High 

//SELL
shortCondition_mssS = B_EnP_mss and FTFLTF_Low and close and low[1]
openOrs = FTFLTF_Low 


if (longCondition_mssB) 
    strategy.entry("Buy", strategy.long, 1, stop = openOr, when = longCondition_mssB)
//

if (shortCondition_mssS) 
    strategy.entry("Sell", strategy.short, 1, stop = openOrs, when = shortCondition_mssS)
//

// EXIT 
long_tp = open < FTFLTF_Close[1]
short_tp = open > FTFLTF_Close[1]

//if (long_tp)
    //strategy.close("Buy", qty_percent = 100, when = long_tp)
//

//if (short_tp)
    //strategy.close("Sell", qty_percent = 100, when = short_tp)
//

Lebih lanjut