
Strategi ini adalah strategi sederhana klasik untuk melintasi purata bergerak, yang dicipta oleh pedagang terkenal Larry Williams. Strategi ini menggunakan purata bergerak sederhana pada hari ke-9 sebagai garis cepat, dan purata bergerak indeks pada hari ke-21 sebagai garis lambat.
Strategi ini berdasarkan kepada pergerakan rata-rata yang berpusat pada persimpangan emas dan persimpangan kematian untuk menilai peluang untuk melakukan lebih banyak dan lebih rendah. Apabila garis cepat melintasi garis perlahan dari bawah untuk emas, menunjukkan bahawa pasaran bertukar menjadi bullish, melakukan lebih banyak; apabila garis cepat melintasi garis panjang dari atas ke bawah untuk kematian, menunjukkan bahawa pasaran bertukar menjadi bearish, seperti itu.
Untuk mengelakkan pecah palsu yang menyebabkan kerugian maya, strategi ini juga memperkenalkan trend besar untuk menilai garis 21 hari. Hanya tindakan perdagangan dilakukan apabila harga melepasi garis 21 hari pada masa yang sama dengan garis cepat. Ini dapat menyaring banyak pecah palsu dengan berkesan.
Secara khusus, isyarat melakukan lebih adalah: garis cepat naik dan menembusi titik tinggi semalam, sementara garis cepat menembusi garis 21 hari, sehingga banyak kepala ditubuhkan; isyarat kosong adalah: garis cepat turun menembusi titik rendah semalam, sementara garis cepat menembusi garis 21 hari, sehingga kepala kosong ditubuhkan.
Kelebihan strategi ini ialah:
Strategi ini mempunyai risiko utama:
Risiko di atas boleh dioptimumkan dan dikawal dengan:
Strategi ini boleh dioptimumkan dengan cara berikut:
Pengoptimuman parameter. Kombinasi parameter kitaran MA boleh diuji dengan kaedah yang lebih sistematik untuk mencari parameter yang lebih baik.
Meningkatkan penutupan. Menetapkan penutupan bergerak yang munasabah, penutupan penutupan skala, dan lain-lain, untuk mengawal kerugian tunggal dengan berkesan.
Gabungan dengan penunjuk lain. Masukkan isyarat penunjuk lain seperti MACD, ATR, KD, dan sebagainya untuk mendapatkan pengesahan dimensi yang lebih besar dan meningkatkan kestabilan strategi.
Mengoptimumkan mekanisme keluar. Kajian pelbagai jenis strategi keluar, seperti cara untuk membalikkan isyarat keluar, bergerak berhenti keluar.
Strategi melintasi rata-rata bergerak secara keseluruhan adalah strategi pengesanan trend yang sangat tipikal dan praktikal. Ia mempunyai kelebihan untuk difahami dan dilaksanakan dengan mudah, tetapi ada ruang untuk penambahbaikan.
// @_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) )