
Ini adalah strategi untuk membuka kedudukan dua arah menggunakan isyarat penembusan kuat di kedua-dua arah di pasaran. Ia akan memilih arah untuk membuka kedudukan setelah muncul dua garis K yang kuat di seberang, kemudian menetapkan stop loss dan pengurusan risiko.
Strategi ini berdasarkan kepada dua isyarat K yang kuat untuk menentukan arah pasaran. Khususnya, ia akan mengira kenaikan dan penurunan setiap K, dan apabila kenaikan dan penurunan dua K berturut-turut melebihi ambang yang ditetapkan oleh pengguna (seperti 6%) maka ia akan menentukan arah itu sebagai arah yang kuat, dan membuka kedudukan di K ketiga.
Lebih banyak syarat: dua laluan K berturut-turut ditutup dengan kenaikan lebih daripada 6% berbanding hari sebelumnya Syarat penutupan: dua penutupan K secara berturut-turut turun lebih 6% berbanding penutupan hari sebelumnya
Selepas membuka kedudukan, jarak hentian dan hentian akan ditetapkan untuk mengawal risiko. Jarak hentian dan hentian dimasukkan oleh pengguna, jarak hentian dan hentian adalah beberapa kali ganda harga pembukaan kedudukan (seperti 8 kali ganda).
Strategi ini juga mempunyai beberapa fungsi tambahan untuk mengawal risiko, seperti membuka kedudukan hanya dalam tempoh masa tertentu, menetapkan jumlah kerugian maksimum dan sebagainya.
Ini adalah strategi perdagangan dua hala yang lebih stabil dan boleh dipercayai.
Dengan menggunakan perdagangan dua hala, anda boleh memperoleh keuntungan ketika pasaran naik dan turun, meningkatkan kestabilan.
Berdasarkan dua trend penilaian isyarat yang kuat, ia boleh menyaring kebisingan dengan berkesan, kualiti kedudukan yang masuk lebih tinggi.
Tetapan Stop Loss adalah munasabah, membantu mengawal risiko, dan mengurangkan kerugian.
Fungsi tambahan yang lebih baik, seperti kawalan masa, kawalan kerugian maksimum dan sebagainya, dapat mengawal risiko dengan baik.
Mudah untuk disahkan dan dioptimumkan di lapangan, logik strategi mudah dan jelas.
Risiko utama strategi ini ialah:
Apabila pasaran bergolak, stopwords mudah berlaku. Anda boleh menyesuaikan parameter penilaian isyarat pertama dengan betul untuk memastikan kualiti isyarat.
Terdapat kemungkinan kecil untuk menghadapi tiga garis K yang sangat kuat, peluang untuk membuka kedudukan mungkin lebih kecil. Parameter boleh diturunkan dengan sewajarnya, tetapi kualiti isyarat perlu diseimbangkan.
Tindakan tidak rasional yang disebabkan oleh peristiwa yang tidak dijangka boleh menyebabkan kerugian besar melebihi jarak berhenti. Ini memerlukan kawalan maksimum kerugian tambahan untuk diselesaikan.
Dalam pelaksanaan transaksi dua hala, perlu berhati-hati dengan pengurusan dana. Jika dana tidak diedarkan secara merata, ia boleh menyebabkan akaun hanya mengalami kerugian.
Strategi ini boleh dioptimumkan dengan cara berikut:
Mengoptimumkan logik penghakiman isyarat pertama, meningkatkan kualiti isyarat. Anda boleh mempertimbangkan untuk menambah lebih banyak faktor, seperti perubahan jumlah perdagangan, kadar turun naik dan sebagainya.
Optimumkan piawaian hentian hentian. Parameter boleh disesuaikan mengikut pasaran yang berbeza, menjadikan hentian dan kerugian lebih munasabah. Jarak hentian juga boleh ditetapkan sebagai hentian dinamik.
Menambah modul kawalan risiko. Sebagai contoh, kerugian maksimum dalam sehari, kerugian maksimum berturut-turut, dan sebagainya.
Mengoptimumkan peratusan penggunaan dana. Membuat pembahagian dana perdagangan bebas lebih munasabah dan mengelakkan hanya menang tanpa rugi.
Mengoptimumkan tindak balas dan meningkatkan kesesuaian dengan menetapkan kombinasi parameter yang berbeza untuk pelbagai jenis perdagangan.
Strategi ini adalah strategi penyesuaian dua arah yang lebih mantap. Ia mempunyai kualiti isyarat yang lebih tinggi dan mempunyai keupayaan untuk mengawal risiko. Terdapat ruang yang lebih besar untuk pengoptimuman yang dapat meningkatkan kestabilan pendapatan.
/*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