Chiến lược này sử dụng kích thước cơ thể của nến và chỉ số đà xu hướng EMA để xác định xu hướng thị trường và thực hiện giao dịch tự động để mua thấp và bán cao. Ý tưởng cơ bản của nó là theo đuổi tăng trong xu hướng tăng và thêm các vị trí dài trên giảm trong xu hướng giảm.
Ý tưởng tổng thể của chiến lược này rất đơn giản và dễ hiểu, với
/*backtest start: 2023-10-23 00:00:00 end: 2023-11-22 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //Author @divonn1994 strategy(title='Trend Follower Strategy v2 [divonn1994]', shorttitle='TrendFollowStrategyV2', overlay=false, pyramiding=0, default_qty_value=100, default_qty_type=strategy.percent_of_equity, precision=7, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent, initial_capital=100) //Important Constants for Classifying Candle Size---------------------------------------------------------------------------------------------------------------------------------------------- timesBigger = 2 crumbSize = 1400 crumbSize2 = 2100 bigCandleSize = 3800 //Key Alerts and Classifications of Candle Size and EMAs--------------------------------------------------------------------------------------------------------------------------------------- emaAlert = ta.ema(close, 8) > ta.ema(open, 8) ? 1 : 0 CandleSize = close * 1 - open * 1 previousCandleSize = close[1] * 1 - open[1] * 1 greenCandle = close > open ? 1 : 0 previousGreenCandle = close[1] > open[1] ? 1 : 0 crumb = (greenCandle==1 and CandleSize<=crumbSize) or (greenCandle==0 and -CandleSize<=crumbSize) ? 1 : 0 bigCrumb = (greenCandle==1 and CandleSize<=crumbSize2 and CandleSize>crumbSize) or (greenCandle==0 and -CandleSize<=crumbSize2 and -CandleSize>crumbSize) ? 1 : 0 previousCandleIsSmallCrumb = (previousGreenCandle==1 and previousCandleSize<=crumbSize) or (previousGreenCandle==0 and -previousCandleSize<=crumbSize) ? 1 : 0 previousCandleIsBigCrumb = (previousGreenCandle==1 and previousCandleSize<=crumbSize2 and previousCandleSize>crumbSize) or (previousGreenCandle==0 and -previousCandleSize<=crumbSize2 and -previousCandleSize>crumbSize) ? 1 : 0 bigCandle = (greenCandle==1 and previousCandleIsBigCrumb==1 and CandleSize>=math.abs(timesBigger*previousCandleSize)) or (greenCandle==1 and previousCandleIsSmallCrumb==1 and CandleSize>=bigCandleSize) or (greenCandle==1 and previousCandleIsSmallCrumb==0 and previousCandleIsBigCrumb==0 and CandleSize>=math.abs(timesBigger*previousCandleSize)) ? 1 : 0 //Engine (Secret Sauce)------------------------------------------------------------------------------------------------------------------------------------------------------------------------ buy = (crumb==0 and bigCrumb==0 and greenCandle==0) or (greenCandle==1 and bigCandle==1) or (emaAlert==0) ? 0 : 1 //Strategy------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if ta.crossover(buy, 0.5) strategy.entry('long', strategy.long, comment='long') if ta.crossunder(buy, 0.5) strategy.close('long') //Plot Strategy Behavior----------------------------------------------------------------------------------------------------------------------------------------------------------------------- plot(buy, color=color.new(color.silver, 0)) plot(0.5, color=color.new(color.fuchsia, 0))