এই কৌশলটি সাইবার চক্র তত্ত্বের উপর ভিত্তি করে মসৃণ মূল্য সংকেত গণনা করে যা ইহলার্স মসৃণ ট্রেডিং সংকেতগুলির সাথে একটি ট্রেডিং কৌশল ডিজাইন করার জন্য প্রস্তাব করেছিলেন। এটি কার্যকরভাবে বাজারের গোলমাল ফিল্টার করতে পারে এবং আরও নির্ভরযোগ্য ট্রেডিং সংকেত তৈরি করতে পারে।
সূক্ষ্ম সূক্ষ্ম সংকেত পেতে দ্বিতীয় অর্ডার সূক্ষ্মতার সাথে মূল মূল্য সংকেত src মসৃণ করুন।
মসৃণ সংকেত উপর ভিত্তি করে চক্রীয় সূচক চক্র গণনা করুন। গণনার পদ্ধতি হলঃ চক্র:= (1 -.5আলফা) (1 - .5 আলফা)(গরম - ২)মসৃণ[1] + মসৃণ[2]) + 2(১-আলফা)চক্র[1] - (1 - আলফা)(1-আলফা) * চক্র[2]
যেখানে α হল মসৃণকরণ পরামিতি।
চূড়ান্ত ট্রেডিং সিগন্যাল সিগন্যাল পাওয়ার জন্য প্রথম অর্ডারের সমতলকরণের সাথে চক্রীয় সূচকটি এক্সপোনেন্সিয়ালি মসৃণ করুন। গণনার পদ্ধতিটি হলঃ সিগন্যাল:= আলফা ২চক্র + (1 - আলফা 2)nz ((সিগন্যাল[1])
যেখানে α2 হল প্রথম শ্রেণীর মসৃণকরণ পরামিতি।
দীর্ঘ যখন সংকেত সংকেতের উপরে অতিক্রম করে [1]; সংকেত সংকেতের অধীনে অতিক্রম করার সময় সংক্ষিপ্ত [1]।
মূল্য সংকেতটির দ্বিতীয় শ্রেণীর মসৃণতা কার্যকরভাবে উচ্চ-ফ্রিকোয়েন্সি গোলমাল ফিল্টার করতে পারে এবং ট্রেডিং সংকেতগুলিকে আরও নির্ভরযোগ্য করে তুলতে পারে।
এহেলার্স সাইবার চক্র তত্ত্ব প্রয়োগ করে বাজারের প্রবণতার পালা পয়েন্টটি আরও সঠিকভাবে নির্ধারণ করা যায়।
প্রথম শ্রেণীর এক্সপোনেন্সিয়াল মসৃণকরণ আরও নির্ভরযোগ্য ট্রেডিং সংকেত তৈরি করতে চক্রীয় সূচকের কিছু গোলমাল ফিল্টার করে।
কৌশলটির পুরো প্রক্রিয়াটি যুক্তিসঙ্গত এবং বৈজ্ঞানিক, বড় প্যারামিটার অপ্টিমাইজেশান স্পেস এবং দুর্দান্ত প্রকৃত কর্মক্ষমতা সহ।
অন্যান্য প্রযুক্তিগত সূচক কৌশলগুলির মতো, এই কৌশলটিও সিস্টেমিক বাজার ঝুঁকিতে তুলনামূলকভাবে সংবেদনশীল। এটি কালো সোয়ান ইভেন্টের ক্ষেত্রে বড় ক্ষতির সম্মুখীন হতে পারে।
জটিল গণনা প্রক্রিয়ার কারণে, অনুপযুক্ত পরামিতি সেটিংগুলি গণনার বিলম্বের কারণ হতে পারে, যার ফলে প্রকৃত কর্মক্ষমতা প্রভাবিত হয়। বৈজ্ঞানিক এবং যুক্তিসঙ্গত সেটিংস নিশ্চিত করার জন্য পরামিতিগুলি সাবধানে পরীক্ষা করা দরকার।
সুগমীকরণ প্রক্রিয়াকরণের ফলে ট্রেডিং সিগন্যালগুলিও পিছিয়ে যায়, যা বাজারের পাল্টা পয়েন্টগুলি সময়মতো ধরতে ব্যর্থ হতে পারে, যার ফলে সুযোগগুলি হারাতে পারে। সুগমীকরণ পরামিতিগুলির সেটিংয়ের ভারসাম্য বজায় রাখতে হবে।
সর্বোত্তম মসৃণকরণ স্কিমটি খুঁজে পেতে বিভিন্ন ধরণের মসৃণকরণ অ্যালগরিদম পরীক্ষা করা যেতে পারে, যেমন প্রথম শ্রেণীর এক্সপোনেন্সিয়াল মসৃণকরণ, চলমান গড় মসৃণকরণ ইত্যাদি।
কৌশলটির দৃঢ়তা বাড়াতে বাজারের অবস্থার উপর ভিত্তি করে গতিশীলভাবে পরামিতিগুলি সামঞ্জস্য করার জন্য একটি অভিযোজনযোগ্য পরামিতি সেটিং প্রক্রিয়া চালু করা যেতে পারে।
স্টপ লস এবং লাভ নেওয়ার কৌশলগুলি একক ক্ষতির ঝুঁকি হ্রাস করতে এবং একই সাথে লাভকে লক করতে ডিজাইন করা যেতে পারে।
এটি অন্যান্য মেশিন লার্নিং মডেলগুলির সাথে মডেল পোর্টফোলিও অর্জনের জন্য একত্রিত করা যেতে পারে এবং ট্রেডিং সংকেতগুলি ফিল্টার করতে অন্যান্য মডেলগুলি ব্যবহার করতে পারে।
এই কৌশলটি মূল্য সংকেত মসৃণকরণ এবং Ehlers সাইবার চক্র সূচক গণনার মাধ্যমে একটি ট্রেডিং সিগন্যাল মসৃণকরণ Ehlers সাইবার চক্র ট্রেডিং কৌশল ডিজাইন করে। এটি কার্যকরভাবে গোলমাল ফিল্টার করতে পারে এবং আরও নির্ভরযোগ্য ট্রেডিং সংকেত তৈরি করতে পারে। একই সাথে, পরামিতি স্থানটি বড় এবং প্রকৃত কর্মক্ষমতা ভাল। অভিযোজনশীল প্রক্রিয়া, স্টপ লস কৌশল এবং অন্যান্য অপ্টিমাইজেশান প্রবর্তন করে, কৌশলটির স্থায়িত্ব এবং কার্যকারিতা আরও বাড়ানো যেতে পারে।
/*backtest start: 2024-01-19 00:00:00 end: 2024-02-18 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Ehlers Cyber Cycle Strategy",overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 1, commission_type = strategy.commission.percent, commission_value = 0.1) src = input(hl2, title = "Source") alpha = input(.07, title = "Alpha") lag = input(9, title = "Lag") smooth = (src + 2 * src[1] + 2 * src[2] + src[3]) / 6 cycle = na if na(cycle[7]) cycle := (src - 2 * src[1] + src[2]) / 4 else cycle := (1 - .5 * alpha) * (1 - .5 * alpha) * (smooth - 2 * smooth[1] + smooth[2]) + 2 * (1 - alpha) * cycle[1] - (1 - alpha) * (1 - alpha) * cycle[2] alpha2 = 1 / (lag + 1) signal = na signal := alpha2 * cycle + (1 - alpha2) * nz(signal[1]) oppositeTrade = input(true) barsSinceEntry = 0 barsSinceEntry := nz(barsSinceEntry[1]) + 1 if strategy.position_size == 0 barsSinceEntry := 0 if (crossover(signal, signal[1]) and not oppositeTrade) or (oppositeTrade and crossunder(signal, signal[1])) strategy.entry("Long", strategy.long) barsSinceEntry := 0 if (crossunder(signal, signal[1]) and not oppositeTrade) or (oppositeTrade and crossover(signal, signal[1])) strategy.entry("Short", strategy.short) barsSinceEntry := 0 if strategy.openprofit < 0 and barsSinceEntry > 8 strategy.close_all() barsSinceEntry := 0 plot(0, title="ZeroLine", color=gray) plotSrc = signal cyclePlot = plot(plotSrc, title = "CyberCycle", color = blue) triggerPlot = plot(plotSrc[1], title = "Trigger", color = green) fill(cyclePlot, triggerPlot, color = plotSrc < plotSrc[1] ? red : lime, transp = 50)