Ini adalah strategi untuk membuka posisi dua arah menggunakan sinyal pasar yang kuat di kedua arah. Ini akan memilih arah untuk membuka posisi setelah muncul dua garis K yang kuat di sisi yang sama, kemudian mengatur stop loss dan manajemen risiko.
Strategi ini didasarkan pada dua sinyal K-line yang kuat untuk menentukan arah pasar. Secara khusus, ia akan menghitung kenaikan dan penurunan untuk setiap K-line, dan ketika kenaikan dan penurunan dua K-line berturut-turut melampaui ambang batas yang ditetapkan pengguna (misalnya 6%), maka arah tersebut akan ditentukan sebagai arah yang kuat, dan posisi akan terbuka / kosong di K-line ketiga.
Tergantung pada kondisi: dua garis K berturut-turut ditutup dengan kenaikan lebih dari 6% dari hari sebelumnya Kondisi Do-Low: Dua garis K berturut-turut ditutup dengan penurunan lebih dari 6% dari hari sebelumnya
Setelah membuka posisi, stop loss distance akan diatur untuk mengontrol risiko. Stop loss distance yang dimasukkan oleh pengguna, stop loss distance adalah beberapa kali lipat dari harga pembukaan posisi (misalnya 8 kali lipat).
Strategi ini juga memiliki beberapa fitur tambahan untuk mengendalikan risiko, seperti hanya membuka posisi dalam jangka waktu tertentu, menetapkan jumlah kerugian maksimum, dan sebagainya.
Ini adalah strategi perdagangan dua arah yang lebih stabil dan dapat diandalkan. Keuntungan utama adalah:
Dengan menggunakan perdagangan dua arah, Anda bisa mendapatkan keuntungan di saat pasar naik dan turun, meningkatkan stabilitas.
Berdasarkan dua tren penilaian sinyal yang kuat, dapat secara efektif memfilter kebisingan, kualitas posisi yang masuk lebih tinggi.
Pengaturan Stop Loss yang masuk akal, menguntungkan untuk pengendalian risiko, kerugian terbatas.
Fungsi tambahan yang lebih baik, seperti pengendalian waktu, pengendalian kerugian maksimum, dan lain-lain, dapat mengontrol risiko dengan baik.
Mudah untuk divalidasi dan dioptimalkan di lapangan, logika strategi sederhana dan jelas.
Risiko utama dari strategi ini adalah:
Ketika pasar bergejolak, stopwords mudah terjadi. Anda dapat menyesuaikan parameter penilaian sinyal pertama dengan tepat untuk memastikan kualitas sinyal.
Kemungkinan kecil untuk menemukan tiga garis K super kuat, kemungkinan kecil untuk membuka posisi. Parameter dapat diturunkan secara tepat, tetapi perlu mempertimbangkan kualitas sinyal.
Tindakan tidak rasional yang disebabkan oleh insiden mendadak dapat menyebabkan kerugian besar melebihi jarak penghentian kerusakan. Ini membutuhkan kontrol maksimum kerugian tambahan untuk diselesaikan.
Bila transaksi dua arah diterapkan secara konkret, perlu diperhatikan masalah pengelolaan dana. Jika dana tidak terdistribusi secara merata, akun dapat menghasilkan hanya kerugian.
Strategi ini dapat dioptimalkan lebih lanjut dalam beberapa hal:
Optimalkan logika penilaian dari sinyal pertama, meningkatkan kualitas sinyal. Anda dapat mempertimbangkan untuk menambahkan lebih banyak faktor, seperti perubahan volume transaksi, tingkat fluktuasi, dll.
Optimalkan standar stop loss. Parameter dapat disesuaikan dengan pasar yang berbeda, sehingga stop loss lebih masuk akal. Jarak stop loss juga dapat disetel sebagai stop loss dinamis.
Menambahkan lebih banyak modul pengendalian risiko. Misalnya, kerugian maksimum dalam satu hari, kerugian maksimum berturut-turut, dll.
Mengoptimalkan rasio penggunaan dana. Membuat alokasi dana yang lebih rasional dan mencegah kerugian.
Optimalkan umpan balik dengan pengaturan kombinasi parameter yang berbeda untuk varietas perdagangan yang berbeda untuk meningkatkan adaptasi.
Strategi ini adalah strategi kompensasi dua arah yang lebih kuat. Ini memiliki kualitas sinyal yang lebih tinggi dan memiliki kemampuan pengendalian risiko tertentu. Ruang optimasi juga lebih besar dan dapat meningkatkan stabilitas pendapatan lebih lanjut.
/*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