Esta estratégia utiliza cruzamento estocástico entre as linhas K e D para gerar sinais de negociação, uma estratégia de negociação estocástica típica.
Calcular as linhas estocásticas K e D durante um determinado período.
O cruzamento da linha K acima da linha D gera sinais de compra.
O cruzamento da linha K abaixo da linha D gera sinais de venda.
Pode definir um intervalo de datas de backtest para testar a eficácia da estratégia.
Regras simples e claras para negociar crossover estocástico.
Estocásticos sensíveis aos níveis de sobrecompra e sobrevenda.
As linhas K e D formam sinais comerciais fáceis.
O backtest verifica a performance da estratégia.
Estocástica fácil de calcular e implementar.
Código conciso e fácil de desenvolver.
O cruzamento pode gerar sinais falsos.
Não há stop loss nem take profit no local.
Não consegue diferenciar tendências e intervalos.
O backtest tem uma tendência para o futuro.
Os resultados reais das negociações podem diferir dos resultados dos backtests.
Parâmetros de ensaio para encontrar valores ótimos.
Adicionar um filtro de tendência para validação adicional.
Construir mecanismos de stop loss e take profit.
Incorporar outros fatores para confirmação do sinal.
Manusear dados de backtest para eliminar preconceitos.
Negociação em papel para otimizar parâmetros para negociação ao vivo.
Esta estratégia negocia crossovers estocásticos simples, fáceis de implementar, mas requer refinamentos para estabilidade.
/*backtest start: 2023-08-20 00:00:00 end: 2023-09-19 00:00:00 period: 2h 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/ // © utanico //@version=4 strategy(title="Stochastic", overlay=true, shorttitle="Stoch") periodK = input(35, title="K", minval=1) periodD = input(21, title="D", minval=1) smoothK = input(21, title="Smooth", minval=1) startYear = input(type=input.integer, title = "開始年", defval = 2020) startMonth = input(type=input.integer, title = "開始月", defval = 1) startDay = input(type=input.integer, title = "開始日", defval = 1) endYear = input(type=input.integer, title = "終了年", defval = 2030) endMonth = input(type=input.integer, title = "終了月", defval = 12) endDay = input(type=input.integer, title = "終了日", defval = 31) //開始日時 test_start = timestamp(startYear, startMonth, startDay, 00, 00) //終了日時 test_end = timestamp(endYear, endMonth, endDay, 00, 00) //テスト期間の指定 is_test = true k = sma(stoch(close, high, low, periodK), smoothK) d = sma(k, periodD) if (is_test) if (k > d) strategy.entry("Stoch_LE", strategy.long, comment="Stoch_LE") //if (strategy.opentrades > 0 and k < d) //strategy.close("Stoch_LE",comment="CloseLONG") if (k < d) strategy.entry("Stoch_SE", strategy.short, comment="Stoch_SE") //if (strategy.opentrades < 0 and k > d) //strategy.close("Stoch_SE",comment="CloseShort")