이 전략은 이치모쿠 킨코 히오 지표의 변환 라인, 베이스 라인 및 라인 클라우드의 전과 후 경로를 사용하여 가격의 트렌드 방향을 식별하고 트렌드 추적 거래를 구현합니다. 가격이 클라우드 상점을 돌파 할 때 더 많이하고, 클라우드 하단을 돌파 할 때 공백을 만들고, 기본 수익률 정지점에 도달하고, 기본 손실 비율 정지점에 도달합니다.
이 전략은 주로 다음과 같은 이치모쿠 지표선을 사용합니다.
가격이 상향으로 전방위 구름을 통과하면 더 많이 하고, 가격이 하향으로 전방위 구름을 통과하면 공백을 한다. ConfigEntry와 ExitReason은 각각 구름 꼭대기와 구름 바닥을 돌파할 때 포지션을 열고, 이익과 손실 비율을 달성할 때 평점 포지션을 한다.
이 전략은 이치모쿠 클라우드 인식 트렌드 방향을 활용하여 간단하고 효과적으로 트렌드 추적 거래를 수행한다. 약간의 지연과 잘못된 신호의 위험이 있지만, 매개 변수 최적화, 상쇄 기술 개선, 다른 지표와 결합하여 개선 할 수 있다. 이 전략은 이해하기 쉽고 구현, 초보자 학습에 적합하며 다른 전략 참조로도 사용할 수 있다. 지속적인 테스트와 최적화를 통해 전략 매개 변수와 규칙을 더 완벽하게 만들고 실장에서의 더 나은 성능을 얻을 수 있다.
/*backtest
start: 2023-10-04 00:00:00
end: 2023-10-08 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Estratégia com Ichimoku" , pyramiding=0, calc_on_every_tick = true, initial_capital = 20000, commission_type = strategy.commission.cash_per_order, commission_value = 10.00)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////Ichimoku Clouds////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////(VERSÃO 40.0)//////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
periodoLinhaDeConversao = input(defval=9, title="Tenkan-sen (Linha de Conversão)", minval=1)
periodoLinhaBase = input(defval=26, title="Kijun-sen (Linha Base)", minval=1)
periodoNivelAdiantadoB = input(defval=52, title="Senkou Span B (Nível adiantado B)", minval=1)
deslocamento = input(defval=26, title="Deslocamento", minval=1)
linhaDeConversao = (highest(high,periodoLinhaDeConversao)+lowest(low,periodoLinhaDeConversao))/2
linhaBase = (highest(high,periodoLinhaBase)+lowest(low,periodoLinhaBase))/2
nivelAdiantadoA = (linhaDeConversao + linhaBase)/2
nivelAdiantadoB = (highest(high,periodoNivelAdiantadoB)+lowest(low,periodoNivelAdiantadoB))/2
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
strategy.initial_capital = 50000
//Hardcoded quantity - strategy.entry(qty=)
capitalInicial = strategy.initial_capital
lotes = (strategy.initial_capital - (strategy.initial_capital % (open*100)))/open
//Percentage input goal - strategy.exit(profit=)
percentGoal = input (defval = 5.0, title = "Goal (%)", type = float, minval=0.0, step=0.1)
longGoal = (strategy.position_avg_price * (percentGoal/100)) * 100
shortGoal = (strategy.position_avg_price - (strategy.position_avg_price / (1+(percentGoal/100)))) * 100
//Percentage input stop - strategy.exit(loss=)
percentStop = input (defval = 0.5, title = "Stop (%)", type = float, minval=0.0, step=0.1)
longStop = (strategy.position_avg_price * (percentStop/100)) * 100
shortStop = (strategy.position_avg_price * (percentStop/100)) * 100
strategy.entry('entryLong', strategy.long, lotes, when = strategy.position_size == 0 and crossover(close,max(nivelAdiantadoA[deslocamento], nivelAdiantadoB[deslocamento])))
strategy.entry('entryShort', strategy.short, lotes, when = strategy.position_size == 0 and crossunder(close,min(nivelAdiantadoA[deslocamento], nivelAdiantadoB[deslocamento])))
strategy.exit('exitLong', 'entryLong', profit = longGoal, loss = longStop)
strategy.exit('exitShort', 'entryShort', profit = shortGoal, loss = shortStop)
plot(strategy.equity, title="Variação de capital", color=white)
//plot(strategy.position_size, color=red)