এই কৌশলটি কেভিন ডেভির ফ্রি অপরিশোধিত তেলের ফিউচার ট্রেডিং কৌশল থেকে অভিযোজিত। এটি অপরিশোধিত তেলের বাজারে প্রবণতা নির্ধারণের জন্য 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()))