Strategi Pendaftaran Posisi Dual Peratusan Stop Loss Terakhir

Penulis:ChaoZhang, Tarikh: 2023-12-01 13:33:48
Tag:

img

Ringkasan

Strategi ini mengamalkan pendekatan kemasukan berganda. Selepas kemasukan pertama, jika harga tidak mencapai tahap keuntungan pertama, ia akan memasuki semula pada harga yang lebih tinggi untuk mencapai kesan menambah kedudukan. Pada masa yang sama, strategi mengamalkan kedudukan rata-rata kaedah stop loss untuk mengemas kini garis stop loss dalam masa nyata dan menetapkannya kepada peratusan tertentu di atas harga kemasukan purata untuk mengunci keuntungan dan mengawal risiko.

Logika Strategi

Strategi pertama menilai sama ada harga di bawah purata bergerak mudah 200 hari. Jika ya, kriteria kemasukan dipenuhi. Strategi memasuki antara 14:29 dan 15:00 setiap hari untuk membentuk kemasukan pertama. Selepas itu, strategi akan merangka garis keuntungan dan stop loss pertama.

Jika harga naik tetapi tidak mencapai sasaran keuntungan pertama, ia akan masuk semula pada 5% di atas harga kemasukan pertama untuk menambah kedudukan. Pada ketika ini, strategi akan mengemas kini garis stop loss kepada 1.15 kali harga pegangan purata semasa. Pada masa yang sama, baris keuntungan kedua akan dicatatkan.

Strategi ini boleh mengunci keuntungan melalui dua sasaran mengambil keuntungan dan stop loss, sambil memperoleh lebih banyak keuntungan melalui penambahan kedudukan.

Analisis Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Menggunakan kaedah tambahan kemasukan berganda boleh memperoleh pulangan yang lebih tinggi tanpa meningkatkan risiko.

  2. Pembaruan masa nyata kedudukan garis stop loss.

  3. Membuka kedudukan dalam trend menurun, ia mempunyai keupayaan perdagangan kontra-trend tertentu.

  4. Masa masuk yang munasabah dan tahap harga mengelakkan terperangkap.

  5. Tetapan parameter yang munasabah, mengambil keuntungan yang ketat dan tahap berhenti kerugian bermakna nisbah risiko-balasan yang tinggi.

Analisis Risiko

Strategi ini juga mempunyai beberapa risiko:

  1. Jika kedua-dua entri akhirnya mencapai stop loss, kerugian akan lebih besar.

  2. Jika tahap stop loss ditetapkan dengan tidak betul, ia mungkin gagal mengawal risiko dengan berkesan dan membawa kepada kerugian yang tidak dapat diterima.

  3. Jika masa kemasukan dipilih dengan tidak betul, ia boleh mengakibatkan kemasukan yang tidak baik dan kemungkinan terperangkap yang lebih tinggi.

  4. Tetapan parameter yang tidak munasabah seperti mengambil keuntungan terlalu jauh atau berhenti kerugian terlalu dekat boleh mengurangkan keuntungan.

Risiko ini boleh dikurangkan dan dielakkan melalui pengoptimuman parameter yang munasabah dan kawalan risiko yang ketat.

Arahan pengoptimuman

Strategi ini juga boleh dioptimumkan dalam aspek berikut:

  1. Uji penunjuk teknikal yang berbeza sebagai isyarat masuk untuk mencari titik masuk yang lebih baik.

  2. Uji dan mengoptimumkan mengambil keuntungan dan berhenti kehilangan tahap untuk memaksimumkan nisbah risiko-balasan.

  3. Uji kaedah tambahan yang berbeza untuk menentukan kelipatan tambahan yang optimum.

  4. Tambah peraturan penilaian trend untuk mengelakkan entri kontra-trend.

  5. Mengoptimumkan pemilihan tempoh masa kemasukan untuk memastikan tiada kemasukan yang tidak baik.

Kesimpulan

Secara keseluruhannya, strategi ini sangat praktikal dan mempunyai kepentingan praktikal yang kuat. Kaedah tambahan entri berganda dapat memperoleh pulangan yang lebih tinggi sambil mengawal risiko. Posisi yang menjimatkan kerugian berhenti boleh mengunci keuntungan dan mengawal risiko dengan berkesan. Dengan pengoptimuman parameter yang munasabah dan kawalan risiko yang ketat, strategi ini dapat mencapai Alpha yang stabil dan konsisten.


/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-28 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//              @version=4
strategy("8 Whittle Down", "8 WD", 1, initial_capital=0)


//              DUAL ENTRIES
//              ADDS ON MORE SHARES IF THE PILOT TRADE DOES NOT REACH PROFIT TARGET
//              RED     LINE        == STOP LOSS LINE
//              GREEN   LINE        == PROFIT TARGET FOR THE 1ST TRADE
//              YELLOW  LINE        == ADD ON SHARES TO THE TRADE
//              WHITE   LINE        == PROFIT TARGET FOR THE 1ST & SECOND TRADE COMBINED


StopLossPerc        = input(1.15, "Total Stop Loss", step=0.01)


T2EntTrgPerc        = input(1.05, "Enter Second trade @ what higher 5%?", step=0.01)    //  BUY STOP LIMIT ONLY WHEN ONE TRADE IS ALREADY OPEN & AIMS TO BUY DOUBLE THE OWNED SHARES AT A HIGHER ENTRY PRICE // YELLOW LINE

T1ProfTrgPerc       = input(0.95, "First Trade Profit % Target", step=0.01)
T2ProfTrgPerc       = input(0.90, "Second Trade Profit % Target", step=0.01)


RiskRange           = close*(StopLossPerc)-1
Shares              = floor(1000*1000/RiskRange) / 3                                    //  SPLITS THE RISK OVER THREE TRADES

F1                  = close < sma(security(syminfo.tickerid, "D", close[2]), 200)       //  HIGH OF OLD DATA -- SO NO REPAINTING
F2                  = strategy.opentrades == 0
buyTime             = time(timeframe.period, "1429-1500")                               //  BUY AT THE END OF THE  DAY
 
 
StopLossLine        = strategy.position_avg_price * StopLossPerc
StopLossCol         = strategy.opentrades != 0 ? #FF0000 : na
plot(StopLossLine,  "StopLossLine", StopLossCol, 2)



strategy.cancel_all()                                                                   //  CANCELS ALL ORDERS: BECAUSE THE SYSTEM WILL ADD A BUY STOP LIMIT ORDER FOR ENTRY TWO



///==============   ENTRY 1   ==============   
if  F1 and buyTime and strategy.opentrades == 0
    strategy.entry("S1", false, qty=Shares)


T1Prof              = strategy.position_avg_price * T1ProfTrgPerc
plot(T1Prof,        "1st Profit Target", strategy.opentrades == 1 ? #00FF00 : na, 2)

strategy.exit("S1 Ex", "S1", limit=T1Prof, stop=StopLossLine )


///==============   ENTRY 2   ==============   
T2EntryTrg          = strategy.position_avg_price * T2EntTrgPerc // enters on higher target than 1st entry
plot(T2EntryTrg,    "ent2EntryTrg", strategy.opentrades == 1 ? color.yellow : na, 2)
    
    
if  strategy.opentrades == 1
    strategy.order("S2", false, stop=T2EntryTrg, limit= T2EntryTrg, qty=Shares * 2)     //  BUYS MORE SHARES

T2Prof              = strategy.position_avg_price * T2ProfTrgPerc
    
T2Col               = strategy.opentrades == 2 ? color.white : na
plot(T2Prof,        "2nd Profit Target", T2Col, 2)
    
    
strategy.exit("S2 Ex", "S2", limit=T2Prof, stop=StopLossLine )



Lebih lanjut