
Esta estratégia de negociação é uma estratégia de negociação de compra cruzada e venda forçada de ouro através da computação de um indicador de volume líquido personalizado.
A lógica central da estratégia é calcular o valor líquido (NV) de um indicador personalizado. O indicador de NV determina a direção da mudança de preço, tomando o volume de transação do dia se for positivo, o valor negativo do volume de transação do dia se for negativo e 0 se não houver mudança. Isso pode refletir com mais clareza a relação entre a mudança de preço e o volume de transação.
Depois, a estratégia calcula a média móvel simples de 3 dias do indicador NV, como uma linha de cruz dourada e uma linha de cruz morta, respectivamente. Quando o indicador NV quebra a linha de cruz dourada de baixo para cima, faça mais; quando o NV quebra a linha de cruz morta de cima para baixo, faça zero.
Além disso, a estratégia define um tempo de início e fim parametrizado para controlar o tempo de negociação.
A maior vantagem da estratégia é que a estratégia é simples e clara, fácil de entender, configuração de parâmetros é flexível, você pode personalizar a variedade de negociação, o tempo de negociação, etc. Além disso, a estratégia é uma estratégia de seguimento de tendência, que pode efetivamente capturar a tendência dos preços, reduzir a frequência de negociação e obter uma maior taxa de lucro.
A estratégia tem os seguintes riscos:
A falta de estratégia pode levar a uma falha na resposta às tendências de preços. Pode ser que você perca algumas oportunidades de negociação ou não consiga parar o seu prejuízo a tempo.
O cruzamento de ouro quantitativo tem um certo atraso em si, o que pode levar a atrasos de entrada e expandir os prejuízos.
O mercado de criptomoedas é um mercado de criptomoedas que não filtra o ruído do mercado de forma eficaz, e que pode ser facilmente enganado.
A média móvel dinâmica, combinada com filtros de outros indicadores, pode reduzir o risco.
A estratégia pode ser melhorada em vários aspectos:
Aumentar a estratégia de stop loss, usando stop loss móvel, stop loss durante a noite e outros meios para controlar os perdas individuais.
Aumentar os indicadores de filtragem, utilizando MACD, KDJ e outros indicadores para filtrar os sinais de falsidade, aumentando a estabilidade da estratégia.
Optimização de parâmetros, busca iterativa de combinações ótimas de parâmetros por meio de algoritmos genéticos, cadeias de Markov e outros métodos.
A combinação de estratégias, em combinação com outras estratégias não relevantes, pode dispersar ainda mais o risco e aumentar a taxa de retorno geral.
Esta estratégia permite um acompanhamento de tendências simples e eficazes através da quantificação do cruzamento do ouro. Embora haja um certo atraso, a configuração de parâmetros é flexível e fácil de entender, uma estratégia adequada para a prática de iniciantes. Com otimização contínua, pode aumentar gradualmente a eficácia da estratégia e reduzir os riscos.
/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-15 03:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="@DankCoins - Customized Net Volume")
src = input(defval = close, title = "VA Source")
nv = change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume
// Inputs //
VHigh = input(defval = 50, title = "VHigh Amount")
VLow = input(defval = -50, title = "VLow Amount")
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2012)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2012)
MAV1 = sma(volume, 3)
MAV2 = -sma(volume, 3)
enterShort = crossunder(nv, MAV1)
exitShort = crossunder(nv, MAV2)
enterLong = crossover(nv, MAV2)
exitLong = crossover(nv, MAV1)
// Time Function
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
strategy.entry(id="Long Entry", long=true, when=enterLong and window())
strategy.entry(id="Short Entry", long=false, when=enterShort and window())
strategy.exit("Exit Long", from_entry = "Long Entry", when=exitLong and window())
strategy.exit("Exit Short", from_entry = "Short Entry", when=exitShort and window())
// Plot
plot(nv, color=blue, title="NV")
plot(VHigh, color=red)
plot(VLow, color=red)
plot(MAV1, color=green)
plot(MAV2, color=green)