Strategi dasar pergerakan rata-rata


Tanggal Pembuatan: 2023-11-06 16:46:45 Akhirnya memodifikasi: 2023-11-06 16:46:45
menyalin: 0 Jumlah klik: 682
1
fokus pada
1617
Pengikut

Strategi dasar pergerakan rata-rata

Ringkasan

Strategi lingkaran baseline menggunakan baseline dalam indikator diagram awan Ichimoku (Kijun Sen), berdasarkan harga dan garis baseline silang melakukan lebih banyak shorting, adalah strategi mengikuti tren. Strategi ini menangkap titik balik tren melalui lingkaran baseline, dengan kemampuan menangkap tren yang kuat, dan kemampuan untuk menarik kembali kontrol.

Prinsip Strategi

Strategi lingkaran baseline menggunakan baseline dari diagram awan Ichimoku (Kijun Sen) sebagai baseline untuk pengambilan keputusan. Baseline adalah rata-rata yang dihitung berdasarkan harga tertinggi dan terendah dalam periode tertentu.

Secara khusus, strategi menentukan lingkaran basis rata-rata melalui dua kondisi Base Long dan Base Short. Kondisi Base Long adalah harga bukaan lebih rendah dari basis rata-rata dan harga tutup lebih tinggi dari basis rata-rata, yang menunjukkan penarikan di atas basis rata-rata; Kondisi Base Short adalah harga bukaan lebih tinggi dari basis rata-rata dan harga tutup lebih rendah dari basis rata-rata, yang menunjukkan penarikan di bawah basis rata-rata.

Dengan demikian, strategi ini memanfaatkan lingkaran garis rata-rata dasar untuk menangkap titik balik dari tren harga, dan mencapai trend following.

Analisis Keunggulan

Strategi baseline rounding memiliki keuntungan sebagai berikut:

  1. Tangkapan tren berbalik sangat kuat. Garis rata-rata dasar dapat mencerminkan tren harga dengan baik, dan lingkarannya mewakili perubahan tren harga. Strategi dapat menangkap titik perubahan tepat waktu dan mengikuti tren.

  2. Risiko penarikan dapat dikendalikan. Strategi ini membatasi ruang lingkup penarikan dengan garis rata-rata dasar, lebih terkontrol dari strategi rata-rata bergerak sederhana.

  3. Strategi ini hanya membutuhkan satu indikator baseline, logikanya sederhana dan mudah untuk diterapkan.

  4. Ruang lingkup yang luas. Dapat digunakan untuk berbagai siklus dan berbagai jenis perdagangan utama, yang lebih luas.

  5. Keperluan data kecil. Strategi ini hanya membutuhkan data harga, tidak memerlukan banyak perhitungan indikator, kebutuhan data kecil.

Analisis risiko

Strategi baseline roundup juga memiliki risiko sebagai berikut:

  1. Terlalu banyak sinyal perdagangan dapat terjadi. Jika dasar rata-rata berputar terlalu sering, maka akan terjadi terlalu banyak perdagangan yang meningkatkan biaya perdagangan dan kehilangan slippage.

  2. Pengendalian pengembalian terbatas. Baseline dapat mengendalikan batas pengembalian, tetapi pengembalian mungkin masih lebih besar ketika harga berfluktuasi tajam.

  3. Sinyal yang salah. Jika garis dasar sering naik dan turun dalam waktu dekat, sinyal yang salah akan dihasilkan, dan arah masuk tidak sesuai dengan tren.

  4. Efeknya sangat relevan dengan varietas. Garis rata-rata dasar yang berbeda dari varietas yang berbeda memiliki perbedaan yang besar dalam efeknya, dan parameter harus disesuaikan dengan varietas.

  5. Hanya mempertimbangkan satu indikator. Berdasarkan desain satu indikator, mudah dipengaruhi oleh kegagalan indikator.

Solusi yang sesuai:

  1. Optimalkan parameter untuk mengurangi frekuensi transaksi.

  2. Menambahkan strategi stop loss dan stop loss untuk mengontrol penarikan lebih lanjut.

  3. Menambahkan filter untuk menghindari sinyal yang salah.

  4. Pengaturan parameter penyesuaian untuk varietas.

  5. Membuat keputusan berdasarkan beberapa indikator.

Arah optimasi

Strategi baseline rounding dapat dioptimalkan dengan:

  1. Memperkuat kemampuan menilai tren. Dapat memperkenalkan indikator penilaian tren lainnya, seperti MACD, garis Brin, dan lain-lain, untuk menghindari sinyal yang salah berdasarkan satu indikator.

  2. Pengaturan parameter optimasi. Anda dapat menyeimbangkan kecepatan keuntungan dan tingkat kemenangan dengan menyesuaikan parameter garis rata-rata dasar. Anda juga dapat menguji strategi stop loss dan stop loss yang berbeda.

  3. Memperkenalkan fitur volume transaksi. Menyaring sinyal berdasarkan volume transaksi untuk menghindari sinyal yang tidak masuk akal.

  4. Parameter umum dari berbagai varietas. Dengan metode seperti pembelajaran mesin, mendapatkan rentang parameter umum dari berbagai varietas, mengurangi pekerjaan penyaringan manual.

  5. Optimalkan waktu masuk. Anda dapat memasukkan penilaian indikator lainnya dan memilih waktu masuk yang lebih kuat.

  6. Optimalkan strategi stop loss. Optimalkan strategi stop loss lebih lanjut, dengan mengurangi kerugian yang tidak perlu, dengan asumsi jaminan kemenangan.

  7. Memperkenalkan mekanisme manajemen risiko. Menyesuaikan posisi dan strategi stop loss sesuai dengan kondisi pasar yang berbeda, dan secara aktif mengendalikan risiko.

Meringkaskan

Strategi siklus baseline menggunakan siklus baseline untuk menentukan tren harga, memiliki keuntungan seperti menangkap pergeseran tren, mundur dapat dikontrol. Namun, ada juga risiko menghasilkan sinyal yang salah, kontrol mundur terbatas. Di masa depan, dapat dilakukan perbaikan dari pengaturan parameter optimasi, menambahkan indikator penilaian bantu, dan lain-lain, sehingga strategi lebih stabil dan dapat diandalkan. Secara keseluruhan, strategi baseline lebih sederhana dan praktis, setelah dioptimalkan dengan tepat, dapat menjadi salah satu strategi dasar untuk perdagangan kuantitatif.

Kode Sumber Strategi
/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Master VP","MVP",true)
        
//INDICATOR---------------------------------------------------------------------    
    //Average True Range (1. RISK)
atr_period = input(14, "Average True Range Period")
atr = atr(atr_period)

    //Ichimoku Cloud - Kijun Sen (2. BASELINE)
ks_period = input(20, "Kijun Sen Period")
kijun_sen = (highest(high, ks_period) + lowest(low,ks_period))/2
base_long = open < kijun_sen and close > kijun_sen
base_short = open > kijun_sen and close < kijun_sen

//TRADE LOGIC-------------------------------------------------------------------
    //Long Entry
    //if -> WPR crosses below -39 AND MACD line is less than signal line
l_en = base_long
    //Long Exit
    //if -> WPR crosses above -14
l_ex = close < kijun_sen
    //Short Entry
    //if -> WPR crosses above -39 AND MACD line is greater than signal line
s_en = base_short
    //Short Exit
    //if -> WPR crosses under -14
s_ex = close > kijun_sen
strategy.initial_capital = 50000
//MONEY MANAGEMENT--------------------------------------------------------------
balance = strategy.netprofit + strategy.initial_capital //current balance
floating = strategy.openprofit          //floating profit/loss
risk = input(4,"Risk %")/100           //risk % per trade
equity_protector = input(30,"Equity Protection %")/100  //equity protection %
stop = atr*100000*input(1.5,"Average True Range multiplier")    //Stop level
target = input(100, "Target TP in Points")  //TP level
    //Calculate current DD and determine if stopout is necessary
equity_stopout = false
if(floating<0 and abs(floating/balance)>equity_protector)
    equity_stopout := true
    
    //Calculate the size of the next trade
temp01 = balance * risk     //Risk in USD
temp02 = temp01/stop        //Risk in lots
temp03 = temp02*100000      //Convert to contracts
size = temp03 - temp03%1000 //Normalize to 1000s (Trade size)
if(size < 1000)
    size := 1000            //Set min. lot size

//TRADE EXECUTION---------------------------------------------------------------
strategy.close_all(equity_stopout)      //Close all trades w/equity protector
is_open = strategy.opentrades > 0

if true
    strategy.entry("l_en",true,oca_name="a",when=l_en and not is_open)  //Long entry
    strategy.entry("s_en",false,oca_name="a",when=s_en and not is_open) //Short entry
    
    strategy.exit("S/L","l_en",loss=stop, profit=target)      //Long exit (stop loss)
    strategy.close("l_en",when=l_ex)            //Long exit (exit condition)
    strategy.exit("S/L","s_en",loss=stop, profit=target)      //Short exit (stop loss)
    strategy.close("s_en",when=s_ex)            //Short exit (exit condition)
    
//PLOTTING----------------------------------------------------------------------
plot(kijun_sen,"Kijun-Sen",color.blue,2)