Trend MA multi-frame Timeframe Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2024-01-04 17:43:17
Tag:

img

Gambaran umum

Strategi ini didasarkan pada crossover rata-rata bergerak multi-frame untuk melacak tren jangka menengah dan panjang. Strategi ini mengadopsi posisi piramida untuk mengejar kenaikan dan mencapai pertumbuhan modal eksponensial. Keuntungan terbesar adalah mampu menangkap tren jangka menengah dan panjang dan entri piramida dalam batch dan tahap untuk mendapatkan hasil yang berlebihan.

Logika Strategi

  1. Membangun beberapa kerangka waktu berdasarkan MA 9 hari, MA 100 hari dan MA 200 hari.
  2. Membuat sinyal beli ketika MA periode pendek melintasi MA periode yang lebih panjang.
  3. Periksa posisi yang ada sebelum menambahkan entri baru, hentikan piramida saat 6 posisi sudah terbuka.
  4. Tetapkan tetap 3% TP/SL untuk pengendalian risiko.

Di atas adalah logika dasar perdagangan.

Keuntungan

  1. Menangkap secara efektif tren jangka menengah dan panjang dan menikmati pertumbuhan eksponensial.
  2. Multi-timeframe MA crossover menghindari gangguan jangka pendek.
  3. TP/SL tetap mengendalikan risiko untuk setiap posisi.
  4. Masuk piramida dalam batch untuk mendapatkan hasil yang berlebihan.

Risiko & Solusi

  1. Risiko kerugian besar jika gagal untuk memotong kerugian dalam pembalikan tren. solusi adalah untuk memperpendek periode MA dan mempercepat stop loss.
  2. Risiko margin call jika kerugian melebihi toleransi.
  3. Risiko kerugian lebih dari 700% jika downtrend kuat.

Arahan Optimasi

  1. Uji kombinasi MA yang berbeda untuk menemukan parameter optimal.
  2. Mengoptimalkan jumlah tahap piramida.
  3. Uji pengaturan TP / SL tetap.

Ringkasan

Strategi ini sangat cocok untuk menangkap tren jangka menengah dan panjang. Masukan piramida dalam batch dapat mencapai rasio risiko-pahala yang sangat tinggi. Ada juga beberapa risiko operasi, yang harus dikendalikan dengan penyesuaian parameter. Secara keseluruhan ini adalah strategi yang menjanjikan yang layak diverifikasi perdagangan langsung dan optimasi lebih lanjut.


/*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)
     


Lebih banyak