Strategi pelacakan tren perbedaan ganda rata-rata bergerak


Tanggal Pembuatan: 2024-01-04 17:43:17 Akhirnya memodifikasi: 2024-01-04 17:43:17
menyalin: 0 Jumlah klik: 335
1
fokus pada
1141
Pengikut

Strategi pelacakan tren perbedaan ganda rata-rata bergerak

Ringkasan

Strategi ini didasarkan pada kesenjangan multi-frame timeframe rata-rata, melacak tren lini tengah panjang, menggunakan mode pelacakan posisi selisih, untuk mencapai pertumbuhan indeks dana. Keuntungan terbesar dari strategi ini adalah dapat menangkap tren lini tengah panjang, melakukan pelacakan bertahap, sehingga mendapatkan keuntungan tambahan.

Prinsip Strategi

  1. Membangun kerangka waktu multi-hari berdasarkan garis rata-rata 9 hari, 100 hari dan 200 hari.
  2. Sinyal beli dihasilkan ketika rata-rata periode pendek dari bawah ke atas menembus rata-rata periode panjang.
  3. Menggunakan 7 tingkat perbedaan posisi mengejar mode, setiap kali membuka posisi baru menilai posisi sebelumnya apakah sudah penuh, jika sudah ada 6 posisi, tidak lagi menambah posisi.
  4. Setiap posisi memiliki titik stop loss tetap 3%, untuk pengendalian risiko.

Ini adalah logika dasar dari strategi ini.

Keunggulan Strategis

  1. Untuk mencapai tujuan ini, perusahaan harus memiliki kemampuan untuk menangkap tren lini tengah dan panjang, dan menikmati pertumbuhan indeks pasar secara maksimal.
  2. Dengan menggunakan garis rata-rata periode waktu yang berbeda untuk melakukan diferensiasi, dapat secara efektif menghindari gangguan dari kebisingan pasar garis pendek.
  3. Tetapkan titik penghentian yang tetap untuk mengontrol risiko setiap posisi.
  4. Mengadopsi mode catat ketersediaan, membangun gudang dalam kelompok, dan memanfaatkan peluang tren untuk mendapatkan keuntungan ekstra.

Risiko Strategis dan Solusi

  1. Ada risiko untuk dihentikan. Jika terjadi pergeseran, tidak dapat menghentikan kerugian dalam waktu yang tepat, dan mungkin menghadapi kerugian besar. Solusi adalah mempersingkat siklus rata-rata dan mempercepat stop loss.
  2. Ada risiko posisi. Jika kejadian yang tidak terduga menyebabkan kerugian melebihi batas yang dapat ditanggung, Anda akan menghadapi risiko premi tambahan atau eksposur. Solusi adalah mengurangi proporsi posisi awal dengan tepat.
  3. Ada risiko kerugian yang terlalu besar. Jika pasar turun tajam, leveling backtracking berbalik ke arah kosong, kemungkinan kerugian hingga lebih dari 700%. Solusi adalah meningkatkan rasio stop loss tetap, mempercepat stop loss.

Arah optimasi strategi

  1. Anda dapat menguji kombinasi rata-rata dari parameter yang berbeda untuk mencari parameter yang lebih baik.
  2. Jumlah posisi yang dapat dioptimalkan untuk membangun gudang. Uji berbagai posisi yang berbeda untuk mencari solusi optimal.
  3. Anda dapat menguji pengaturan stop loss yang tetap. Anda dapat memperbesar jangkauan stop loss dengan tepat untuk mendapatkan tingkat pengembalian yang lebih tinggi.

Meringkaskan

Secara keseluruhan, strategi ini sangat cocok untuk menangkap tren lini panjang dalam situasi pasar, dengan menggunakan metode pengecoran bertahap, dapat memperoleh keuntungan tambahan yang sangat tinggi dibandingkan dengan risiko dan keuntungan. Di samping itu, ada juga risiko operasi tertentu yang perlu dikendalikan dengan cara menyesuaikan parameter, dan lain-lain.

Kode Sumber Strategi
/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 1m
basePeriod: 1m
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/
    // © Coinrule
    
//@version=3
strategy(shorttitle='Pyramiding Entry On Early Trends',title='Pyramiding Entry On Early Trends (by Coinrule)', overlay=false, pyramiding= 7, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 20, commission_type=strategy.commission.percent, commission_value=0.1)
    
    
//Backtest dates
fromMonth = input(defval = 1,  title = "From Month")     
fromDay   = input(defval = 10,    title = "From Day")       
fromYear  = input(defval = 2020, title = "From Year")       
thruMonth = input(defval = 1,    title = "Thru Month")     
thruDay   = input(defval = 1,    title = "Thru Day")     
thruYear  = input(defval = 2112, title = "Thru Year")       
    
showDate  = input(defval = true, title = "Show Date Range")
    
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"
    
    
//MA inputs and calculations
inSignal=input(9, title='MAfast')
inlong1=input(100, title='MAslow')
inlong2=input(200, title='MAlong')
    
MAfast= sma(close, inSignal)
MAslow= sma(close, inlong1)
MAlong= sma(close, inlong2)
    
    
Bullish = crossover(close, MAfast) 
    
longsignal = (Bullish and MAfast > MAslow and MAslow < MAlong and window())
    
//set take profit
    
ProfitTarget_Percent = input(3)
Profit_Ticks = (close * (ProfitTarget_Percent / 100)) / syminfo.mintick
    
//set take profit
    
LossTarget_Percent = input(3)
Loss_Ticks = (close * (LossTarget_Percent / 100)) / syminfo.mintick
    
    
//Order Placing
    
strategy.entry("Entry 1", strategy.long, when = (strategy.opentrades == 0) and longsignal)
    
strategy.entry("Entry 2", strategy.long, when = (strategy.opentrades == 1) and longsignal)
        
strategy.entry("Entry 3", strategy.long, when = (strategy.opentrades == 2) and longsignal)
    
strategy.entry("Entry 4", strategy.long, when = (strategy.opentrades == 3) and longsignal)
    
strategy.entry("Entry 5", strategy.long, when = (strategy.opentrades == 4) and longsignal)
        
strategy.entry("Entry 6", strategy.long, when = (strategy.opentrades == 5) and longsignal)
        
strategy.entry("Entry 7", strategy.long, when = (strategy.opentrades == 6) and longsignal)
    
    
    
if (strategy.position_size > 0)
    strategy.exit(id="Exit 1", from_entry = "Entry 1", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 2", from_entry = "Entry 2", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 3", from_entry = "Entry 3", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 4", from_entry = "Entry 4", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 5", from_entry = "Entry 5", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 6", from_entry = "Entry 6", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 7", from_entry = "Entry 7", profit = Profit_Ticks, loss = Loss_Ticks)