Ini adalah strategi yang mengambil posisi di kedua arah dengan menggunakan sinyal terobosan yang kuat di kedua arah. Ini akan memilih arah untuk membuka posisi setelah dua candlestick kuat berturut-turut muncul di arah yang sama, kemudian mengatur stop profit dan stop loss untuk manajemen risiko.
Strategi ini menilai arah pasar berdasarkan sinyal dari dua candlestick yang kuat berturut-turut. Secara khusus, strategi ini menghitung persentase kenaikan/penurunan dari setiap candlestick. Ketika persentase kenaikan/penurunan dari dua candlestick berturut-turut keduanya melebihi ambang batas yang ditetapkan oleh pengguna (seperti 6%), strategi ini menentukan bahwa arahnya kuat, dan membuka posisi panjang/pendek di candlestick ketiga.
Kondisi panjang: Harga penutupan dua candlestick berturut-turut naik lebih dari 6% dibandingkan dengan harga penutupan sebelumnya
Kondisi pendek: Harga penutupan dua candlestick berturut-turut turun lebih dari 6% dibandingkan dengan harga penutupan sebelumnya
Setelah membuka posisi, itu akan mengatur jarak stop profit dan stop loss untuk mengendalikan risiko. Jarak stop profit dimasukkan oleh pengguna, dan jarak stop loss adalah kelipatan (seperti 8 kali) dari harga pembukaan.
Strategi ini juga memiliki beberapa fungsi tambahan untuk mengendalikan risiko, seperti hanya memungkinkan untuk membuka posisi selama periode waktu tertentu, menetapkan jumlah kerugian maksimum, dll.
Ini adalah strategi perdagangan dua arah yang relatif stabil dan dapat diandalkan.
Perdagangan dua arah dapat memperoleh keuntungan ketika pasar naik dan turun, meningkatkan stabilitas.
Menghakimi tren berdasarkan dua sinyal yang kuat dapat secara efektif menyaring kebisingan dan meningkatkan kualitas posisi yang dibuka.
Pengaturan stop profit dan stop loss wajar, yang bermanfaat untuk pengendalian risiko dan membatasi kerugian.
Fungsi bantuannya komprehensif, seperti kontrol waktu, kontrol kerugian maksimum, dll. Mereka dapat mengendalikan risiko dengan sangat baik.
Sangat mudah untuk backtest dan mengoptimalkan strategi ini karena logika sederhana dan jelas.
Risiko utama dari strategi ini adalah:
Kita dapat menyesuaikan parameter sinyal pertama dengan benar untuk memastikan kualitas sinyal.
Kemungkinan tiga candlestick super kuat berturut-turut relatif kecil, yang dapat menyebabkan lebih sedikit peluang untuk membuka posisi.
Perilaku irasional yang disebabkan oleh kejadian mendadak dapat menyebabkan kerugian besar melebihi jarak stop loss.
Untuk pelaksanaan perdagangan dua arah, kita perlu memperhatikan masalah alokasi dana, jika tidak, itu dapat menyebabkan keuntungan tanpa stop loss.
Strategi ini dapat dioptimalkan lebih lanjut dalam aspek berikut:
Mengoptimalkan logika penilaian sinyal pertama untuk meningkatkan kualitas sinyal. Lebih banyak faktor dapat dipertimbangkan seperti perubahan volume transaksi, tingkat volatilitas dll.
Optimalkan standar stop profit dan stop loss. Sesuaikan parameter berdasarkan pasar yang berbeda untuk membuat rasio risiko-imbalan lebih wajar. Jarak stop loss juga dapat ditetapkan sebagai stop loss dinamis.
Tambahkan lebih banyak modul pengendalian risiko. misalnya, kerugian harian maksimum, kerugian berturut-turut maksimum dll. untuk memastikan penggunaan dana yang efisien dan aman.
Mengoptimalkan rasio alokasi dana, untuk membuat alokasi modal perdagangan dua arah lebih wajar, mencegah keuntungan tanpa stop loss.
Atur kombinasi parameter yang berbeda untuk optimasi backtesting terhadap varietas perdagangan yang berbeda, untuk meningkatkan kemampuan beradaptasi.
Strategi ini adalah strategi posisi tambah dua arah yang relatif kuat. Ini memiliki kualitas sinyal yang tinggi dan kemampuan pengendalian risiko tertentu. Ini juga memiliki ruang besar untuk optimasi untuk meningkatkan stabilitas keuntungan lebih lanjut. Strategi ini cocok untuk pasar tren jangka menengah dan panjang, dan juga dapat memanfaatkan peluang selama konsolidasi pasar.
/*backtest start: 2022-11-20 00:00:00 end: 2023-11-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="GAVAD", shorttitle="GAVAD", overlay=false, initial_capital=36000) //////////////////////////////////////////////////////// // // // // // GAVAD % // // // // // //////////////////////////////////////////////////////// Sinal = input(6, title="Sinal", type=input.integer, minval=1, maxval=150) //Objetivo = input(6, title="Objetivo", type=input.integer, minval=1, maxval=100) Multip = input(10000, title="Sinal", type=input.integer, minval=1, maxval=100000) //GavadEntrada1 = (close - low [1])/close[1] //plot(GavadEntrada1, style=plot.style_line, linewidth=3, color=color.yellow) //sombra //DownOL = (low - open ) / open * -10000 //plot(DownOL, style=plot.style_area, linewidth=3, color=color.silver) // imprime o GAVAD GavadEntrada = (close - close [1])/close[1] * Multip plot(GavadEntrada, style=plot.style_histogram, linewidth=3, color=color.purple) //linha do Sinal plot(Sinal, style=plot.style_line, linewidth=1, color=color.yellow) //linha do Objetivo //plot(Objetivo, style=plot.style_line, linewidth=1, color=color.white) Fura1 = GavadEntrada [0] >= Sinal Fura2 = GavadEntrada [1] >= Sinal Alert = Fura1 plotshape(Alert, style=shape.circle, location = location.top, color= color.yellow) SinalON = Fura1 and Fura2 plotshape(SinalON, style=shape.circle, location = location.bottom, color= color.green) //////////////////////////////////////////////////////// // // // // // CONDIÇÕES DE OPERACAO // // // // // //////////////////////////////////////////////////////// Sell_Forte2 = SinalON //plotshape(Sell_Forte2, style=shape.xcross, color=color.yellow, location=location.bottom) //Call_Forte2 = SinalON //plotshape(Call_Forte2, style=shape.xcross, color=color.yellow, location=location.top) //////////////////////////////////////////////////////// // // // // // CALENDARIO // // // // // //////////////////////////////////////////////////////// //052) // trading view solicita que se ja informado data para gerar backtest a partir de tal data //começa backtest do trading sistem em qual data ? ano = input(2021, minval=1, title="Ano") mes = input(1, minval=1, maxval=12, title="Mes") dia = input(1, minval=1, maxval=30, title="Dia") hora = input(0, minval=1, maxval=23, title="hora") minuto = input(0, minval=1, maxval=59, title="minuto") horaabertura = input(10, minval=1, maxval=23, title="hora Inicio Operacao Robo") minutoabertura = input(40, minval=1, maxval=59, title="Minuto Encerra Tudo") horaencerra = input(17, minval=1, maxval=23, title="hora Fechamento") minutoencerra = input(50, minval=1, maxval=59, title="Minuto Encerra Novas Operacoes") minutofinaliza = input(50, minval=1, maxval=59, title="Minuto Encerra Tudo") //valida se o dia de hoje é posterior ao dia informado acima Validadia = year >= ano and month >= mes and dayofmonth >= dia //cria horario de abertura de negociaçao, considerar default 10 hs, pois os indicadores ja estarão corrigidos abreloja = year >= ano and month >= mes and dayofmonth >= dia and hour >= horaabertura //and minute >= minutoabertura) //cria horario de fechamento de todas as negociaçoes, considerar default 17:00 hs //nenhuma ordem pode ser aberta depois dessa data e as abertas devem ser fechadas fechaloja = year >= ano and month >= mes and dayofmonth >= dia and hour >= horaencerra //and minute >= minutoencerra) fechaloja2 = year >= ano and month >= mes and dayofmonth >= dia and hour >= horaencerra //and minute >= minutofinaliza) //valida horario de negociação, pra liberar as operacoes. lojaaberta = abreloja == true and fechaloja == false and fechaloja2 == false //////////////////////////////////////////////////////// // // // // // GERENCIAMENTO DE RISCO // // // // // //////////////////////////////////////////////////////// //seta meta mensal meta = input(150000, "Meta de Lucro") Contratos= input(5, "Contratos") //seta tamanho do lote (ordem inicial-unica) tamanhodolote = Contratos //seta stop gain final em pontos (metade da barra anterior) //gaintotal = input(30, "Gain") gaintotal = input(3, "Gain") //seta stop loss final em pontos lossmaximo = input(8, "Loss") //lossmaximo = (open- close)*100 //////////////////////////////////////////////////////// // // // Checkbox // // // //////////////////////////////////////////////////////// //ativacomprasretorno = input(title="Ativar Compras Retorno", type=input.bool , defval=true) //ativavendasretorno = input(title="Ativar Vendas Retorno", type=input.bool , defval=true) //////////////////////////////////////////////////////// // // // // // COMPRA E VENDA // // // // // //////////////////////////////////////////////////////// Tradenumber = strategy.closedtrades + 1 Batemeta = strategy.netprofit < meta //COMPRA RETORNO //longcondition2 = Validadia and Call_Forte2 and Batemeta //strategy.entry("Comprar", strategy.long, tamanhodolote, when=longcondition2, comment="[Oper=" + tostring(Tradenumber) + "]win=" + tostring(strategy.wintrades) + " | Loss=" + tostring(strategy.losstrades)) //strategy.exit("Saida Compra", "Comprar", profit=gaintotal, loss=lossmaximo) //if (CruzamentoFechaCallGG) //strategy.close(id="Comprar") //if (EscapeFechaCall) // strategy.close(id="Comprar") //plotchar(longcondition2, char="C", location=location.bottom, color=color.lime, transp=0) //alertcondition(longcondition2, "Comprar", "Compra Rápida!") //VENDA RETORNO Shortcondition2 = Validadia and Sell_Forte2 and Batemeta strategy.entry("Vender", strategy.short, tamanhodolote, when=Shortcondition2) strategy.exit("Fecha Venda", "Vender", profit=gaintotal, loss=lossmaximo) //if (CruzamentoFechaSellGG) // strategy.close(id="Vender") //if (EscapeFechaSell) // strategy.close(id="Comprar") //plotchar(CruzamentoFechaSellGG, char="Y", location=location.top, color=color.lime, transp=0) //plotchar(longcondition2, char="S", location=location.bottom, color=color.lime, transp=0) //alertcondition(longcondition2, "Vender", "Venda Rápida!") //fim do codigo