यह रणनीति केविन डेवी की मुक्त कच्चे तेल वायदा व्यापार रणनीति से अनुकूलित है। यह कच्चे तेल बाजार में प्रवृत्ति निर्धारित करने के लिए ADX संकेतक का उपयोग करता है और, मूल्य ब्रेकआउट सिद्धांत के साथ संयुक्त, कच्चे तेल के लिए एक सरल और व्यावहारिक स्वचालित व्यापार रणनीति लागू करता है।
रणनीति मुख्य रूप से प्रवृत्ति निर्धारित करने के लिए ADX संकेतक पर निर्भर करती है, और प्रवृत्ति की स्थिति में निश्चित चक्र मूल्य ब्रेकआउट के आधार पर ट्रेडिंग संकेत उत्पन्न करती है। समग्र रणनीति तर्क बहुत सरल और स्पष्ट है।
कुल मिलाकर यह एक बहुत ही व्यावहारिक कच्चे तेल की ट्रेडिंग रणनीति है। यह प्रवृत्ति को बहुत ही उचित रूप से निर्धारित करने के लिए ADX संकेतक का उपयोग करता है। मूल्य ब्रेकआउट सिद्धांत अच्छा बैकटेस्ट परिणामों के साथ सरल और प्रभावी है। उसी समय, केविन डेवी की सार्वजनिक मुक्त रणनीति के रूप में, यह वास्तविक लड़ाई में बहुत मजबूत विश्वसनीयता है। हालांकि अभी भी रणनीति में सुधार के लिए जगह है, यह शुरुआती और छोटे पूंजी व्यापारियों के लिए शुरू करने और अभ्यास करने के लिए एक बहुत ही उपयुक्त विकल्प है।
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // Strategy idea coded from EasyLanguage to Pinescript //@version=5 strategy("Kevin Davey Crude free crude oil strategy", shorttitle="CO Fut", format=format.price, precision=2, overlay = true, calc_on_every_tick = true) adxlen = input(14, title="ADX Smoothing") dilen = input(14, title="DI Length") dirmov(len) => up = ta.change(high) down = -ta.change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = ta.rma(ta.tr, len) plus = fixnan(100 * ta.rma(plusDM, len) / truerange) minus = fixnan(100 * ta.rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) sig = adx(dilen, adxlen) plot(sig, color=color.red, title="ADX") buy = sig > 10 and (close - close[65]) > 0 and (close - close[65])[1] < 0 sell = sig > 10 and (close - close[65]) < 0 and (close - close[65])[1] > 0 plotshape(buy, style = shape.arrowup, location = location.belowbar,size = size.huge) plotshape(sell, style = shape.arrowdown, location = location.abovebar,size = size.huge) if buy strategy.entry("long", strategy.long) if sell strategy.entry("short", strategy.short) if strategy.position_size != 0 strategy.exit("long", profit = 450, loss = 300) strategy.exit("short", profit = 450, loss = 300) // GetTickValue() returns the currency value of the instrument's // smallest possible price movement. GetTickValue() => syminfo.mintick * syminfo.pointvalue // On the last historical bar, make a label to display the // instrument's tick value if barstate.islastconfirmedhistory label.new(x=bar_index + 1, y=close, style=label.style_label_left, color=color.black, textcolor=color.white, size=size.large, text=syminfo.ticker + " has a tick value of:\n" + syminfo.currency + " " + str.tostring(GetTickValue()))