
A estratégia de ruptura horizontal de ponto único médio é uma estratégia de negociação quantitativa baseada no indicador de movimento de Chande. A estratégia determina se o mercado está em fase de liquidação horizontal, calculando a mudança de dinâmica do preço.
A estratégia primeiro calcula a variação dinâmica dos preçosmommE depois dividimos isso em massa positiva.m1e a dinâmica negativam2◦ Em seguida, calcule a soma de massa positiva e negativa em um determinado período.sm1esm2E, finalmente, o indicador de potência de Chande.chandeMOO indicador tem 0 como o eixo central, quando o indicador é maior que 0 indica que a força ascendente é maior que a força descendente, e quando menor que 0 é o oposto.
Quando o indicador de movimento de Chande quebra a linha de compra a partir do nível baixo, indicando que o preço sai do período de queda e entra na fase de liquidação para a alta, a estratégia é feita para comprar. Quando o indicador cai do nível alto para a linha de venda, é feita a operação de venda.
Pode-se definir linhas de compra e venda dinâmicas, ou combinadas com outros sinais de filtragem de indicadores. Também deve-se definir um stop loss para controlar o risco.
A estratégia de ruptura horizontal de ponto médio simples, através do indicador de movimento de Chande, determina o ponto de viragem do preço, que vai da baixa para a correção e depois para a alta. A estratégia é simples e prática, capaz de capturar efetivamente a reversão da tendência.
/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//* Backtesting Period Selector | Component *//
//* https://www.tradingview.com/script/eCC1cvxQ-Backtesting-Period-Selector-Component *//
//* https://www.tradingview.com/u/pbergden/ *//
//* Modifications made *//
testStartYear = input(2021, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(10, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(999999, "Backtest Stop Year")
testStopMonth = input(9, "Backtest Stop Month")
testStopDay = input(26, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => true
/////////////// END - Backtesting Period Selector | Component ///////////////
strategy(title="Chande Momentum Strat", shorttitle="ChandeMO Strat", format=format.price, precision=2)
length = input(9, minval=1)
src = input(close, "Price", type = input.source)
momm = change(src)
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m
m1 = f1(momm)
m2 = f2(momm)
sm1 = sum(m1, length)
sm2 = sum(m2, length)
percent(nom, div) => 100 * nom / div
chandeMO = percent(sm1-sm2, sm1+sm2)
plot(chandeMO, "Chande MO", color=color.blue)
hline(0, color=#C0C0C0, linestyle=hline.style_dashed, title="Zero Line")
buyline= input(-80)
sellline= input(80)
hline(buyline, color=color.gray)
hline(sellline, color=color.gray)
if testPeriod()
if crossover(chandeMO, buyline)
strategy.entry("Long", strategy.long, alert_message="a=ABCD b=buy e=binanceus q=1.2 s=uniusd")
// strategy.exit(id="Long Stop Loss", stop=strategy.position_avg_price*0.8) //20% stop loss
if crossunder(chandeMO, sellline)
strategy.entry("Short", strategy.short, alert_message="a=ABCD b=sell e=binanceus q=1.2 s=uniusd")
// strategy.exit(id="Short Stop Loss", stop=strategy.position_avg_price*1.2) //20% stop loss
// remember to alert as {{strategy.order.alert_message}}