리소스 로딩... 로딩...

이치모쿠 거래 전략

저자:차오장, 날짜: 2023-09-14 16:13:33
태그:

전략 논리

이 LONG-ONLY 전략은 이치모쿠 킨코 히오 (Ichimoku Kinko Hyo) 시스템을 사용하여 여러 이치모쿠 요인을 결합하여 기준이 충족되면 긴 거래를 합니다.

거래의 논리는 다음과 같습니다.

  1. 변환 계산, 기본 선, 선행 스프랜 1 & 2

  2. 클라우드 위의 클로즈와 클라우드 상승, 기본 라인 위의 변환을 통해 긴 고려

  3. 또한, 뒤떨어진 스펜은 클라우드 이상과 상승 추세를 확인하기 위해 가격이 있어야합니다

  4. 모든 기준이 충족되면,

  5. 지연 스펜이 가격 또는 구름 아래로 떨어지면 긴 문을 닫습니다.

이 전략은 트렌드를 확인하기 위해 이치모쿠의 지표를 이용하고, 위험 통제를 위한 동적 정지점으로 클라우드를 사용합니다.

장점

  • 이치모쿠는 트렌드 결정에 필요한 여러 요인을 합성합니다.

  • 수익을 최대화하기 위한 동적 중지

  • 단순하고 명확한 규칙

위험성

  • 이치모쿠는 느리고 기회를 놓칠 수도 있어

  • 회상 기간을 신중하게 최적화해야 합니다

  • 길게만, 그래서 좋은 짧은 기회는 놓쳤어

요약

이 전략은 트렌드 방향을 정의하기 위해 이치모쿠의 지표 합성을 활용합니다. 최적화된 매개 변수로 간단한 롱-온리 시스템을 제공합니다. 그러나 지연과 롱-온리라는 한계에는 주의가 필요합니다.


/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Ichimoku Cloud", shorttitle="Doubled Ichimoku", overlay=true, initial_capital=1000, default_qty_value=100, default_qty_type=strategy.percent_of_equity)
conversionPeriods = input(20, minval=1, title="Conversion Line Length")
basePeriods = input(60, minval=1, title="Base Line Length")
laggingSpan2Periods = input(120, minval=1, title="Leading Span B Length")
displacement = input(30, minval=1, title="Displacement")
Stoploss = input(1, minval=0.1, title="Stoploss (% below cloud)") 
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
plot(conversionLine, color=#2962FF, title="Conversion Line")
plot(baseLine, color=#B71C1C, title="Base Line")
plot(close, offset = -displacement + 1, color=#43A047, title="Lagging Span")

p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
	 title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
	 title="Leading Span B")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))

bool TKcross = conversionLine > baseLine
bool aboveCloud = close > leadLine1 and close > leadLine2
bool greenCloud = leadLine1 > leadLine2
bool lagLong = close > leadLine1[2*displacement+1] and close > leadLine2[2*displacement+1] and close > close[displacement]
bool longCondition = false
bool close_trade = crossover(leadLine1[displacement], close) or crossover (leadLine2[displacement], close) or close < close[displacement] or crossover(baseLine, close)
var position_count = 0 

if (TKcross and aboveCloud and greenCloud and lagLong and position_count==0)
    position_count = 1
    strategy.entry(id="buy", long=true)

if (close_trade)
    strategy.close_all()
   // strategy.entry(id="sell", long=false)
    position_count = 0

    
//if (longCondition)
   
//    strategy.close("long", when=exit_trade)
//    strategy.exit("exit","long",stop=stop_level,limit=profit_level)

더 많은