
Es ist eine Strategie, die die beiden Richtungen der Position zu eröffnen nutzt, wenn ein starker Durchbruch in beiden Richtungen des Marktes signalisiert wird. Es wählt die Richtung, in der die Position eröffnet wird, nachdem zwei starke K-Linien gleichzeitig aufgetreten sind, und setzt dann einen Stop-Stop-Loss, um Risikomanagement durchzuführen.
Die Strategie basiert auf zwei starken K-Linien-Signalen, um die Richtung des Marktes zu bestimmen. Insbesondere berechnet sie die Kursbewegungen für jede K-Line, und wenn die beiden aufeinanderfolgenden K-Linien-Bewegungen die vom Benutzer gesetzte Schwelle überschreiten (z. B. 6%), wird die Richtung als eine starke Richtung beurteilt und eine Position auf der dritten K-Line geöffnet.
Mehr Bedingungen: Zwei aufeinanderfolgende K-Linien schließen mehr als 6% höher als am Vortag Leerlaufbedingungen: Zwei aufeinanderfolgende K-Linie-Abschlusspreise im Vergleich zum Vortag-Abschlusspreis um mehr als 6%
Nach dem Börsengang wird eine Stop-Loss-Distanz festgelegt, um das Risiko zu kontrollieren. Die Stop-Loss-Distanz wird vom Benutzer eingegeben, die Stop-Loss-Distanz ist ein bestimmtes Vielfaches des Börsengangspreises (z. B. 8x).
Die Strategie bietet außerdem einige zusätzliche Funktionen zur Risikokontrolle, wie zum Beispiel die Einführung von Positionen nur für bestimmte Zeiträume und die Festlegung eines maximalen Verlustbetrags.
Dies ist eine stabilere und zuverlässigere, zweiseitige Handelsstrategie. Die Hauptvorteile sind:
Mit Hilfe von Zwei-Wege-Trading können Sie sowohl bei steigenden als auch bei fallenden Märkten Gewinne erzielen und Stabilität schaffen.
Aufgrund von zwei starken Signalbeurteilungs-Trends kann der Lärm effektiv gefiltert werden, wodurch die eingegangene Positionsqualität höher ist.
Die Stop-Loss-Einstellungen sind vernünftig, fördern die Risikokontrolle und begrenzen die Verluste.
Die zusätzlichen Funktionen, wie z. B. Zeitkontrolle, Maximalverlustkontrolle usw., ermöglichen eine gute Risikokontrolle.
Es ist einfach, in der Praxis zu überprüfen und zu optimieren, und die Strategielogik ist einfach und klar.
Die wichtigsten Risiken dieser Strategie sind:
Bei Marktschwankungen können Stopwords Verluste verursachen. Sie können die ersten Signal-Urteilsparameter entsprechend anpassen, um die Signalqualität zu gewährleisten.
Die Wahrscheinlichkeit, dass man auf drei superstarke K-Linien trifft, ist geringer, und die Chance, eine Position zu eröffnen, ist möglicherweise geringer. Die Parameter können angemessen heruntergefahren werden, aber die Signalqualität muss abgewogen werden.
Unvernünftige Handlungen, die durch unvorhergesehene Ereignisse verursacht werden, können zu erheblichen Verlusten führen, die über die Stop-Loss-Distanz hinausgehen.
Bei der Durchführung von Zwei-Wege-Transaktionen ist auf die Vermögensverwaltung zu achten. Wenn die Vermögensverteilung ungleich ist, kann dies dazu führen, dass das Konto nur Verluste verursacht.
Die Strategie kann in folgenden Bereichen weiter optimiert werden:
Optimierung der Urteilslogik des ersten Signals und Verbesserung der Signalqualität. Es kann in Betracht gezogen werden, weitere Faktoren hinzuzufügen, z. B. Veränderungen des Handelsvolumens, Volatilität usw.
Optimierung der Stop-Loss-Standards. Die Parameter können an die verschiedenen Märkte angepasst werden, um die Stop-Loss-Vergleiche zu optimieren. Die Stop-Loss-Distanz kann auch als dynamischer Stop-Loss eingestellt werden.
Weitere Module zur Risikokontrolle, wie z. B. maximale Ein-Tages-Verluste, maximale Folgeverluste usw., um eine sichere und effiziente Verwendung von Geldern zu gewährleisten.
Optimierung der Verwendungsquote. Die Verteilung der Gelder für die Überschussgeschäfte wird rationalisiert und es wird verhindert, dass nur ein Gewinn und kein Verlust erzielt werden.
Optimierung der Rückmeldung und Verbesserung der Anpassungsfähigkeit durch die Einstellung verschiedener Parameterkombinationen für verschiedene Handelsarten.
Diese Strategie ist eine eher robuste, zweiseitige Ausgleichsstrategie. Sie hat eine hohe Signalqualität und eine gewisse Risikokontrolle. Es gibt viel Spielraum für Optimierungen, die die Ertragsstabilität weiter verbessern können.
/*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