Strategi Perdagangan Penyu Berdua-Pengendalian

Penulis:ChaoZhang, Tarikh: 2023-12-20 13:37:31
Tag:

img

Ringkasan

Strategi ini menggunakan dua titik penyekatan stop loss berdasarkan peraturan perdagangan penyu untuk mengehadkan kerugian, sambil menetapkan parameter yang berbeza untuk menapis bunyi pasaran dan memasuki trend yang lebih ketara.

Logika Strategi

Strategi ini terutamanya bergantung pada dua titik pemantauan stop loss, long_1 dan long_2, untuk menentukan isyarat kemasukan. Long_1 mengesan trend jangka panjang manakala long_2 mengesan jangka pendek. Profit1 dan profit2 bertindak sebagai titik stop loss.

Jika harga di atas long_1, pasaran berada dalam trend menaik jangka panjang. Jika harga kemudian turun di bawah long_2, ia menunjukkan penurunan jangka pendek yang memberikan peluang masuk yang baik untuk pergi panjang. Jika harga di bawah long_1, tidak ada trend jangka panjang yang disahkan. Tetapi jika harga kemudian melebihi long_2, ia menandakan lompatan jangka pendek dan juga boleh mengambil kedudukan panjang.

Selepas masuk, dua rintangan stop loss stoploss1 dan stoploss2 ditetapkan dan dibandingkan dengan keuntungan1 dan keuntungan2 untuk mengambil nilai maksimum, untuk mengunci keuntungan.

Analisis Kelebihan

  • Stop loss berpasangan secara berkesan mengawal risiko dan kunci dalam keuntungan
  • Menggabungkan kedua-dua penunjuk jangka panjang dan jangka pendek menapis beberapa bunyi bising dan memasuki trend yang lebih ketara
  • Fleksibiliti untuk menyesuaikan konservatisme strategi dengan menyesuaikan parameter

Analisis Risiko

  • Strategi adalah konservatif dan boleh kehilangan beberapa peluang
  • Tetapan stop loss yang tidak betul boleh keluar lebih awal
  • Lebih sedikit perdagangan jadi satu kehilangan perdagangan kesan boleh menjadi besar

Boleh membuat strategi lebih agresif dengan menyesuaikan parameter panjang dan keuntungan untuk lebih banyak perdagangan. Juga mengoptimumkan algoritma stop loss untuk penyesuaian adaptif.

Arahan pengoptimuman

  • Cari kombinasi parameter optimum untuk panjang dan keuntungan
  • Percubaan dengan kerugian berhenti zigzag atau bayangan untuk mengurangkan berhenti yang tidak perlu
  • Tambah lebih banyak penapis kemasukan untuk mengesan trend yang lebih kuat
  • Masukkan penunjuk jumlah untuk menangkap pecah sebenar

Ringkasan

Ini adalah strategi konservatif secara keseluruhan yang sesuai untuk pelabur yang mencari pertumbuhan yang stabil. Dengan menyesuaikan parameter dan mengoptimumkan algoritma stop loss, agresi boleh meningkat. Menambah mekanisme untuk menapis bunyi pasaran juga merupakan arah untuk pengoptimuman lanjut.


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

//@version=4
strategy("Turtle Project",overlay= true)
//-----------------------------------------------------------
entry_1 =  input(55) 
profit_1 =  input(20)             

long_1 = float(na)                                                             
long_1:= if high[entry_1] >= highest(high,entry_1)                   
    high[entry_1]                                                            
else                                                                              
    long_1[1]                                                                   


profit1 = float(na)                                                            
profit1:= if low[profit_1] <= lowest(low,profit_1)                   
    low[profit_1]                                                            
else                                                                            
    profit1[1]                      
//-----------------------------------------------------------
entry_2 =  input(20) 
profit_2 =  input(10)             

long_2 = float(na)                                                             
long_2:= if high[entry_2] >= highest(high,entry_2)                   
    high[entry_2]                                                            
else                                                                              
    long_2[1]                                                                   


profit2 = float(na)                                                            
profit2:= if low[profit_2] <= lowest(low,profit_2)                   
    low[profit_2]                                                            
else                                                                           
    profit2[1]                      
//------------------------------------------------------------
stoploss_1= lowest(low,1) < long_1 and highest(high,1) > long_1
stoploss_2= lowest(low,1) < long_2 and highest(high,1) > long_2 

stop_1 = input(1)/100
stop_2 = input(2)/100

plotchar(stoploss_1, "high1", "▲",location.top,color=color.red )
plotchar(stoploss_2, "high2", "▲",location.top,color=color.blue)


//------------------------------------------------------------
if strategy.position_size == 0
    if low < long_1
        if high < long_1 
            strategy.entry("longlong_4",strategy.long, stop=long_1)

if strategy.position_size == 0    
    if low > long_1
        if high < long_2 
            strategy.entry("longlong_3",strategy.long, stop=long_2)

stoploss1 = float(na)
stoploss1:= stoploss_1 ? strategy.position_avg_price * (1 - stop_1) : stoploss1[1]
stoploss__1 = max(stoploss1,profit1)

if high > long_1 and strategy.position_size > 0
    strategy.exit("exit_1 ","longlong_4",stop=stoploss__1)

stoploss2 = float(na)
stoploss2:= stoploss_2 ? strategy.position_avg_price * (1 - stop_2) : stoploss2[1]
stoploss__2 = max(stoploss2,profit2)

if high > long_2 and strategy.position_size > 0
    strategy.exit("exit_2 ","longlong_3",stop=stoploss__2)
//--------------------------------------------------------------
plot(long_1,color=color.red ,linewidth=3)
plot(long_2,color=color.blue,linewidth=3)

plot(profit1,color=color.red,   linewidth=1)
plot(profit2,color=color.blue,  linewidth=1)

//plot(stoploss__1,style=plot.style_circles, color=color.yellow) 
//plot(stoploss__2,style=plot.style_circles, color=color.yellow) 

plot(stoploss1,style=plot.style_circles, color=color.blue) 
plot(stoploss2,style=plot.style_circles, color=color.red) 
//--------------------------------------------------------------

Lebih lanjut