Esta estratégia utiliza a linha K e a linha D de indicadores aleatórios para gerar sinais de negociação e é uma estratégia típica de negociação de indicadores aleatórios.
Calcule os indicadores aleatórios K e D em um determinado período.
Quando a linha K atravessa a linha D de baixo, gera um sinal de compra.
Quando a linha K atravessa a linha D de cima para baixo, gera um sinal de venda.
Pode-se definir um intervalo de tempo para testar a eficácia da estratégia.
A estratégia é simples e clara.
Os indicadores aleatórios são mais sensíveis a sobrecompra e sobrevenda.
As linhas K e D são fáceis de formar sinais de transação.
A eficácia da estratégia pode ser comprovada por meio de um teste de retorno.
Indicadores aleatórios são fáceis de calcular e implementar.
O código é simples e fácil de reutilizar.
O cruzamento aleatório de indicadores pode produzir falsos sinais.
Não há parâmetro de parada de perda.
Não é possível distinguir entre tendências e balanços.
Detecção de anomalias de compatibilidade.
A implementação em tempo real pode variar.
Teste diferentes parâmetros para encontrar o melhor.
Aumentar a filtragem de indicadores de tendências.
Estabelecer um mecanismo de contenção de danos.
Introduzir outros fatores para a validação do sinal.
Os dados de retrospecção são tratados para eliminar os desvios.
Simulação do disco real para otimizar a configuração dos parâmetros.
A estratégia usa um simples cruzamento de indicadores aleatórios para negociar, é fácil de implementar, mas precisa de mais otimização para aumentar a estabilidade. Aumentada por meio de ajustes de parâmetros, controle de risco, etc., pode ser construída como uma estratégia de negociação quantitativa confiável.
/*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")