Esta estratégia otimiza os parâmetros do indicador MACD, combina-se com a média móvel, a ação do preço e os tempos de negociação específicos para alcançar uma estratégia de negociação forex de alta taxa de ganho.
Utilize 3 linhas K para julgar a tendência dos preços. Se os preços de encerramento das últimas 3 linhas K forem superiores aos preços de abertura, é julgado como uma tendência ascendente; se os preços de encerramento das últimas 3 linhas K forem inferiores aos preços de abertura, é julgado como uma tendência descendente.
Calcule a linha rápida, linha lenta e diferença MACD. O parâmetro da linha rápida é 12, o parâmetro da linha lenta é 26, e o parâmetro da linha de sinal é 9.
O horário de negociação é definido para 09:00-09:15 todos os dias.
O take profit é definido em 0,3 pips, e o stop loss é definido em 100 pips.
Fechar todas as posições durante as 21:00-21:15.
Utilização de uma combinação de indicadores de vários prazos para avaliar de forma abrangente a direção da tendência e melhorar a precisão das decisões.
Otimizar o tempo de negociação para evitar períodos de alta volatilidade do mercado, reduzindo o risco desnecessário de stop loss.
Estabelecer rácios razoáveis para obter lucro e parar a perda para maximizar o bloqueio do lucro e evitar a ampliação da perda.
Em geral, a estratégia tem uma taxa de ganhos muito elevada e é adequada para negociações frequentes de curto prazo.
O horário de negociação é relativamente fixo, pode perder oportunidades de negociação se não puder entrar no mercado a tempo.
O indicador MACD é propenso a sinais enganosos.
Os parâmetros devem ser ajustados de acordo com diferentes produtos.
O risco global é pequeno, mas posições excessivamente grandes sob alta alavancagem podem levar a perdas enormes.
Combinar com outros indicadores para determinar a tendência, evitando sinais enganosos do MACD. Por exemplo, combinar Bandas de Bollinger, RSI etc.
Otimizar os rácios take profit/stop loss através do cálculo de parâmetros ideais a partir dos dados do backtest.
Aumentar as variedades de comércio aplicáveis à estratégia, avaliar os efeitos do ajuste dos parâmetros em diferentes produtos.
Introduzir algoritmos de aprendizagem automática para selecionar os parâmetros ideais de forma dinâmica com base em condições de mercado variáveis.
Em geral, esta estratégia é bem adequada para os traders novatos. A lógica é clara, o espaço de otimização é grande e os riscos são controláveis. Ao personalizar os tempos de abertura e definir rácios de perda de lucro razoáveis, altos retornos podem ser alcançados. Outras otimizações podem ser feitas para ajustar dinamicamente os parâmetros e se adaptar a ambientes de mercado mais complexos.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © exlux99 //@version=4 strategy("Very high win rate strategy", overlay=true) // fast_length =12 slow_length= 26 src = close signal_length = 9 sma_source = false sma_signal = false // Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal //ma len=10 srca = input(close, title="Source") out = hma(srca, len) fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2000, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2021, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true timeinrange(res, sess) => time(res, sess) != 0 // = input('0900-0915', type=input.session, title="My Defined Hours") myspecifictradingtimes = '0900-0915' exittime = '2100-2115' optionmacd=true entrytime = time(timeframe.period, myspecifictradingtimes) != 0 exit = time(timeframe.period, exittime) != 0 if(time_cond and optionmacd ) if(close > open and close[1] > open[1] and close[2] > open[2] and entrytime and crossover(hist,0)) strategy.entry("long",1) if(close< open and close[1] < open[1] and close[2] < open[2] and entrytime and crossunder(hist,0)) strategy.entry("short",0) tp = input(0.0003, title="tp") //tp = 0.0003 sl = input(1.0 , title="sl") //sl = 1.0 strategy.exit("closelong", "long" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closelong") strategy.exit("closeshort", "short" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closeshort")