Cette stratégie LONG-ONLY utilise le système Ichimoku Kinko Hyo pour les transactions. Il combine plusieurs facteurs Ichimoku pour aller long lorsque les critères sont remplis.
La logique de négociation est la suivante:
Calculer la conversion, la ligne de base, les travées principales 1 et 2
Considérez long lorsque la fermeture est au-dessus du nuage et que le nuage monte, avec conversion au-dessus de la ligne de base
En outre, la portée de retard doit être au-dessus du nuage et le prix pour la confirmation de la tendance haussière
Lorsque tous les critères sont remplis, allez long
Si la durée de retard tombe en dessous du prix ou du nuage, fermer long
La stratégie utilise les indicateurs d'Ichimoku
Ichimoku synthétise plusieurs facteurs pour la détermination de la tendance
Arrêt dynamique pour maximiser le verrouillage des bénéfices
Des règles simples et claires pour une mise en œuvre facile
Ichimoku est lent et peut manquer des opportunités.
Une optimisation minutieuse des périodes de rétrospective est nécessaire
C'est juste que de bonnes occasions ont été ratées.
Cette stratégie tire parti de la synthèse des indicateurs d'Ichimoku pour définir la direction de la tendance.
/*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)