इस रणनीति में चलती औसत रणनीति, इचिमोको क्लाउड चार्ट और केल्टनर चैनल तकनीकी संकेतकों को एकीकृत किया गया है ताकि प्रवृत्ति का अनुसरण और सफलता व्यापार प्राप्त किया जा सके, जो उच्च आवृत्ति एल्गोरिथम व्यापार के लिए उपयुक्त है।
यह रणनीति ट्रेंड ट्रैकिंग और कुशल सफलता व्यापार प्राप्त करने के लिए कई तकनीकी संकेतकों के साथ इचिमोकू क्लाउड चार्ट, केल्टनर चैनलों और चलती औसत रणनीतियों को एकीकृत करती है। एक एकल संकेतक की तुलना में, इस रणनीति का निर्णय कुछ झूठे संकेतों से बचते हुए अधिक व्यापक और सटीक है। साथ ही, ऐसी समस्याएं भी हैं कि पैरामीटर सेटिंग्स अधिक जटिल हैं और व्यक्तिगत शेयरों के लिए अनुकूलित होने की आवश्यकता है। सामान्य तौर पर, यह रणनीति महत्वपूर्ण प्रभावों के साथ उच्च आवृत्ति एल्गोरिथम ट्रेडिंग के लिए उपयुक्त है।
/*backtest start: 2023-11-19 00:00:00 end: 2023-12-19 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // Author: Persio Flexa // Description: Ichimoku Clouds with Keltner Channel, perfect for margin trading strategy("Ichimoku Keltner Strategy", overlay=true) // -- Keltner ------------------------------------------------------------------ source = close useTrueRange = input(true) length = input(18, minval=1) mult = input(1.8) ma = sma(source, length) range = useTrueRange ? tr : high - low rangema = sma(range, length) upper = ma + rangema * mult lower = ma - rangema * mult plot(ma, title="BASE", color=orange,transp=85) plot(upper, title="UPPER", color=red) plot(lower, title="LOWER", color=green) //crossUpper = crossover(source, upper) //crossLower = crossunder(source, lower) crossUpper = source > upper crossLower = source < lower bprice = 0.0 bprice := crossUpper ? high+syminfo.mintick : nz(bprice[1]) sprice = 0.0 sprice := crossLower ? low -syminfo.mintick : nz(sprice[1]) crossBcond = false crossBcond := crossUpper ? true : na(crossBcond[1]) ? false : crossBcond[1] crossScond = false crossScond := crossLower ? true : na(crossScond[1]) ? false : crossScond[1] cancelBcond = crossBcond and (source < ma or high >= bprice ) cancelScond = crossScond and (source > ma or low <= sprice ) // --------------------------------------------------------------------- // -- Ichimoku ATRlength = input(200, minval=1) ATRMult = input(2.272, minval=1) ATR = rma(tr(true), ATRlength) len = input(26, minval=1, title="EMA Length") src = input(close, title="Source") out = ema(src, len) emaup = out+(ATR*ATRMult) emadw = out-(ATR*ATRMult) conversionPeriods = input(15, minval=1), basePeriods = input(35, minval=1) laggingSpan2Periods = input(52, minval=1), displacement = input(26, minval=1) donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) p1 = plot(leadLine1, offset = displacement, color=green,transp=85, title="Lead 1") p2 = plot(leadLine2, offset = displacement, color=red,transp=85, title="Lead 2") fill(p1, p2,silver) longCond = crossover(conversionLine, baseLine) shortCond = crossunder(conversionLine, baseLine) // ------------------------------------------------------------------------- if (crossUpper and (conversionLine > baseLine)) strategy.entry("long", strategy.long, stop=bprice, comment="LONG") if (crossLower and (conversionLine < baseLine)) strategy.entry("short", strategy.short, stop=sprice, comment="SHORT") strategy.close("long", when = (shortCond and source < lower)) strategy.close("short", when = (longCond and source > upper))