
Cette stratégie est une stratégie de trading automatique qui utilise la taille de l’entité K et l’indicateur de dynamique de la tendance EMA pour juger de la tendance du marché et réaliser des achats et des ventes à bas prix. L’idée de base est de poursuivre les baisses dans les conditions de hausse et de compenser davantage dans les conditions de baisse.
L’idée générale de cette stratégie est claire et facile à comprendre. Elle se caractérise principalement par deux caractéristiques: la direction de la ligne principale du marché est déterminée par un simple indicateur EMABOLL, et l’entité de la ligne K est déterminée par un ajustement local, permettant des transactions efficaces à faible absorption et à haute dispersion. La stratégie est très stable et se comporte particulièrement bien dans les crypto-monnaies, ce qui mérite d’être testé et optimisé.
/*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))