
Strategi ini adalah strategi sederhana dan klasik untuk melintasi rata-rata bergerak, yang diciptakan oleh trader terkenal Larry Williams. Strategi ini menggunakan rata-rata bergerak sederhana pada hari ke-9 sebagai garis cepat, rata-rata bergerak indeks pada hari ke-21 sebagai garis lambat.
Strategi ini didasarkan pada crossover emas dan crossover mati dari rata-rata bergerak untuk menilai peluang untuk melakukan over dan shorting. Ketika garis cepat melintasi garis lambat dari bawah sebagai crossover emas, menunjukkan bahwa pasar bergeser ke bullish, melakukan over; Ketika garis cepat melintasi garis panjang dari atas ke bawah sebagai crossover mati, menunjukkan bahwa pasar bergeser ke bearish, melakukan over.
Untuk menghindari terjadinya terobosan palsu yang menyebabkan kerugian virtual, strategi ini juga diperkenalkan untuk menilai tren besar di garis 21 hari. Hanya tindakan perdagangan yang dilakukan ketika harga melewati garis 21 hari pada saat bersamaan dengan terobosan garis cepat. Ini dapat secara efektif memfilter banyak terobosan palsu.
Secara khusus, sinyal melakukan lebih adalah: garis cepat naik dan menembus titik tinggi kemarin, sementara garis cepat menembus garis 21 hari, sehingga polinomial dapat ditetapkan; sinyal kosong adalah: garis cepat turun dan menembus titik rendah kemarin, sementara garis cepat menembus garis 21 hari, sehingga polinomial dapat ditetapkan.
Keuntungan dari strategi ini adalah sebagai berikut:
Strategi ini memiliki risiko utama sebagai berikut:
Risiko-risiko tersebut dapat dioptimalkan dan dikontrol dengan cara berikut:
Strategi ini dapat dioptimalkan dari beberapa arah:
Optimasi parameter. Kombinasi parameter siklus MA dapat diuji dengan metode yang lebih sistematis untuk menemukan parameter yang lebih baik.
Meningkatkan stop loss. Mengatur stop loss yang masuk akal, stop loss skala, dan lain-lain. Mengontrol kerugian tunggal secara efektif.
Dalam kombinasi dengan indikator lain. Mengenaikan sinyal indikator lain seperti MACD, ATR, KD, dan lain-lain untuk mendapatkan lebih banyak dimensi konfirmasi dan meningkatkan stabilitas strategi.
Mengoptimalkan mekanisme penarikan diri. Mempelajari berbagai jenis strategi penarikan diri, seperti cara membalik sinyal penarikan diri, dan penarikan diri dari mobil.
Strategi melintasi moving average secara keseluruhan adalah strategi pelacakan tren yang sangat tipikal dan praktis. Ini memiliki kelebihan yang mudah dipahami dan diimplementasikan, tetapi juga ada beberapa ruang untuk perbaikan. Dengan metode optimasi parameter, pengoptimalan stop loss, dan kombinasi multi-indikator, strategi ini dapat terus ditingkatkan, sehingga menjadi sistem perdagangan yang lebih stabil dan praktis.
// @_benac
//@version=5
strategy('Larry', overlay=true , initial_capital=1000 )
////////////////////////////////////////////////////////
// //
// //
// Codigo Operacional //
// //
// //
////////////////////////////////////////////////////////
// Usage for Stocks , or Criptos with value bigger then 1, cuz of 0.01 ´pip.
// Daily timeframe
//Observation Point
start = timestamp(2020, 00, 00, 00, 00) // backtest start window
finish = timestamp(2022, 01, 07, 23, 59) // backtest finish window
window() => true // create function "within window of time"
if time < start
strategy.close_all("Closing All")
// Take infos from inputs.
inp_mmshort = input.int(defval = 9, title = "Media Curta" )
inp_mminter = input.int(defval = 21, title = "Media Curta" )
// Risk Manager, here define max and min
inp_max = input.int(defval = 15, title = "Percentual Ganho" )
inp_min = input.int(defval = 5, title = "Percental Perda" )
// Converting the input to %
pmax = (inp_max / 100 )
pmin = (inp_min / 100)
// Infos From Moving Average
mm_short = ta.sma(close , inp_mmshort)
mm_inter = ta.ema(close , inp_mminter)
// Trend Logic
//Long Condition
//Setup do Larry Willians Bem Simples , media virou para cima e rompeu a maxima de referencia, compra.
tendencia_alta = mm_short[2] > mm_short[1] and mm_short > mm_short[1] and close > high[1] and close > mm_short and mm_short > mm_inter
tendencia_baixa = mm_short[2] < mm_short[1] and mm_short < mm_short[1] and close > low[1] and close < mm_short and mm_short < mm_inter
// Creating the entry
if tendencia_alta
strategy.entry("Compra" , strategy.long , stop = low - 0.01 )
stop_inst = low - 0.01
if tendencia_baixa
strategy.entry("Venda" , strategy.short , stop= high + 0.01 )
stop_inst = high + 0.01
// TrailingStop Creation
// Sell Position
if strategy.position_size < 0
gain_p = strategy.opentrades.entry_price(0) - (strategy.opentrades.entry_price(0) * pmax)
stop_p = strategy.opentrades.entry_price(0) + (strategy.opentrades.entry_price(0) * pmin)
// Managing the position
if close < gain_p
strategy.close_all(comment = " 1 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )
if close > stop_p
strategy.close_all(comment = " 2 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )
if high > mm_short[1]
strategy.close_all(comment = " 3 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )
// Buy Position
if strategy.position_size > 0
gain_p = strategy.opentrades.entry_price(0) + (strategy.opentrades.entry_price(0) * pmax)
stop_p = strategy.opentrades.entry_price(0) - (strategy.opentrades.entry_price(0) * pmin)
// Managing the position
if close > gain_p
strategy.close_all(comment = " 1- Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )
if close < stop_p
strategy.close_all(comment = " 2 -Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )
if low < mm_short[1]
strategy.close_all(comment = " 3 -Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )