이 전략은 빠른 및 느린 이동 평균의 황금 십자 및 죽은 십자 기반으로 설계되었습니다. 빠른 MA가 느린 MA보다 높을 때, 길게 가십시오. 빠른 MA가 느린 MA보다 낮을 때, 짧게 가십시오. 이 전략은 중장기 거래에 적합하며 시장의 트렌드 반전을 포착 할 수 있습니다.
이 전략은 빠른 및 느린 라인을 계산하기 위해 기하급수적인 이동 평균 (EMA) 을 사용합니다. 빠른 MA 길이는 10 기간이고 느린 MA 길이는 30 기간입니다. 전략은 먼저 빠른 EMA와 느린 EMA를 계산하고, 그 다음 라인을 그래프화하고 트렌드 방향을 표시하기 위해 다른 색상의 배경을 보여줍니다.
오늘 마감이 빠른 MA보다 높고 빠른 MA는 느린 MA보다 높을 때 배경은 녹색으로 상승 추세를 나타냅니다. 오늘 마감이 빠른 MA보다 낮고 빠른 MA는 느린 MA보다 낮을 때 배경은 빨간색으로 하락 추세를 나타냅니다.
상승 트렌드에서, 빨간 촛불이 있고 어제도 빨간 촛불이 있었다면, 장거리. 300 포인트로 스톱 로스를 설정하고 쇼트 포지션을 닫음으로써 이윤을 취하십시오.
하락 추세에서 녹색 촛불이 있고 어제 또한 녹색 촛불이 있다면, 단축하십시오. 300 포인트로 손실을 중지하고 긴 포지션을 닫음으로써 이익을 취하십시오.
각 방향으로 포지션을 열면, 유지 시간이 1008000000 밀리 초 (약 2주) 를 초과하면, 정체를 방지하기 위해 포지션을 강제로 닫습니다.
전체적으로 이 전략은 트렌드 및 촛불 필터에 대한 이중 EMA를 사용하여 잘못된 신호를 피하기 위해 추가 규칙을 사용하여 상당히 균형 잡힌 것입니다. 그러나 EMA 매개 변수 및 스톱 손실 / 이익 규칙은 추가 최적화가 필요합니다. 전체적으로 신뢰할 수있는 트렌드 거래 전략입니다.
/*backtest start: 2023-10-10 00:00:00 end: 2023-11-09 00:00:00 period: 1h 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/ // © yeainshukla //@version=5 strategy('BuyRedSellGreen4H', overlay = true) greenCandle = close > open redCandle = open > close start = timestamp(2023,9,18,0,00) end = timestamp(2023,12,31,0,00) fastLength = input.int(10, title="Fast Average Length") slowLength = input.int(30, title="Slow Average Length") averageData = input.source(close, title="Average Data Source") // Calculate exponential moving averages fastAverage = ta.ema(averageData, fastLength) slowAverage = ta.ema(averageData, slowLength) // Plot averages plot(fastAverage, color=color.navy, title="Fast EMA") plot(slowAverage, color=color.fuchsia, linewidth=2, title="Slow EMA") // Show the moving average trend with a coloured background backgroundColor = if close > fastAverage and fastAverage > slowAverage color.new(color.green, 85) else if close < fastAverage and fastAverage < slowAverage color.new(color.red, 85) else color.new(color.orange, 90) bgcolor(backgroundColor, title="EMA Background") if time >= start and time < end if(close < open) if(close[1] < open[1]) strategy.entry("Enter Long", strategy.long) strategy.exit("Exit Long", from_entry="Enter Long") strategy.close("Enter Short") else if(close[1] > open[1]) strategy.entry("Enter Short", strategy.short) strategy.exit("Exit Short", from_entry="Enter Short") strategy.close("Enter Long") if strategy.position_size < 0 or strategy.position_size > 0// short and long is opened. if((time - strategy.opentrades.entry_time(strategy.opentrades - 1)) > 1008000000) strategy.close("Enter Short") strategy.close("Enter Long")