এই কৌশলটি স্টকগুলির জন্য দীর্ঘ এবং সংক্ষিপ্ত অবস্থান বাস্তবায়নের জন্য সহজ চলমান গড়ের সোনার ক্রস এবং মৃত্যুর ক্রস নীতিগুলি ব্যবহার করে। যখন দ্রুত এমএ ধীর এমএ এর উপরে অতিক্রম করে তখন এটি দীর্ঘ হয় এবং যখন দ্রুত এমএ ধীর এমএ এর নীচে অতিক্রম করে তখন এটি সংক্ষিপ্ত হয়।
কৌশলটি প্রথমে ব্যাকটেস্টিংয়ের সময়সীমা নির্ধারণ করে, তারপর দুটি চলমান গড়ের জন্য গণনার পরামিতিগুলি নির্ধারণ করে, যার মধ্যে এমএ প্রকার এবং সময়ের দৈর্ঘ্য অন্তর্ভুক্ত রয়েছে।
getMAType (() ফাংশন দুটি এমএ এর মান গণনা করে। দ্রুত এমএ হ'ল স্বল্প সময়ের এমএ, এবং ধীর এমএ হ'ল দীর্ঘ সময়ের এমএ।
মূল যুক্তি:
যখন fastMA slowMA এর উপরে অতিক্রম করে, তখন একটি দীর্ঘ সংকেত প্রেরণ করা হয়।
যখন fastMA slowMA এর নিচে চলে যায়, তখন একটি সংক্ষিপ্ত সংকেত প্রেরণ করা হয়।
অবশেষে, ব্যাকটেস্টিংয়ের সময়, দীর্ঘ সংকেত দেখলে দীর্ঘ অবস্থান নিন এবং সংক্ষিপ্ত সংকেত দেখলে সংক্ষিপ্ত অবস্থান নিন।
ঝুঁকিগুলির বিরুদ্ধে সম্ভাব্য অপ্টিমাইজেশনঃ
প্রবণতা সনাক্তকরণের জন্য অন্যান্য প্রযুক্তিগত সূচক যোগ করুন।
স্টপ লস প্রতি ট্রেড লস পরিমাণে নিয়ন্ত্রণ যোগ করুন।
উইপসা মার্কেট এড়াতে ভলিউম ইন্ডিকেটর যোগ করুন।
স্বয়ংক্রিয়ভাবে সর্বোত্তম প্যারামিটার সেট খুঁজে পেতে প্যারামিটার অপ্টিমাইজেশান প্রক্রিয়া তৈরি করুন।
কৌশলটি নিম্নলিখিত দিকগুলিতে আরও অনুকূলিত করা যেতে পারেঃ
স্টপ লস স্ট্র্যাটেজি যুক্ত করুন যেমন স্টপ লস পয়েন্ট বা স্টপ লস পয়েন্ট।
ট্রেডিং ঝুঁকি নিয়ন্ত্রণের জন্য স্থির বা গতিশীল অবস্থানের আকারের মতো অবস্থান আকারের কৌশল যুক্ত করুন।
প্রবণতা চিহ্নিত করতে এবং জয়ের হার উন্নত করতে অন্যান্য প্রযুক্তিগত সূচকগুলির সাথে সংমিশ্রণ করে ফিল্টার যুক্ত করুন।
সর্বোত্তম মান খুঁজে পেতে গ্রিড অনুসন্ধান এবং রৈখিক রিগ্রেশন মত পদ্ধতি দ্বারা পরামিতি অপ্টিমাইজ করুন।
ট্রেডিং কৌশল সমৃদ্ধ করতে ব্রেকআউট পলব্যাক, অর্ডার স্কেল এর মতো এন্ট্রি কৌশল সম্প্রসারণ করুন।
উইপসা মার্কেট এড়াতে ভলিউম ইন্ডিকেটর যোগ করুন।
স্টক সূচক, ফরেক্স, ক্রিপ্টোকারেন্সি ইত্যাদিতে পণ্য সম্প্রসারণ করুন।
এই কৌশলটি এমএ ক্রসওভার নীতিগুলির উপর ভিত্তি করে দীর্ঘ / সংক্ষিপ্ত স্টক নির্বাচন বাস্তবায়ন করে। কৌশল ধারণাটি সহজ এবং পরিষ্কার, ব্যাপকভাবে ব্যবহৃত, অত্যন্ত অভিযোজিত এবং ব্যবহারিকভাবে মূল্যবান। তবে এর কিছু পিছিয়ে যাওয়া এবং উইপসা ফিল্টারিং সমস্যাও রয়েছে। ভবিষ্যতের অপ্টিমাইজেশানগুলি আরও সুবিধাজনক করার জন্য স্টপ লস, প্যারামিটার অপ্টিমাইজেশন, ফিল্টার ইত্যাদি যুক্ত করার দিকে মনোনিবেশ করতে পারে।
/*backtest start: 2023-09-10 00:00:00 end: 2023-10-10 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //strategy("Golden X BF Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0) /////////////// Time Frame /////////////// testStartYear = input(2010, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0) testStopYear = input(2019, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(31, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0) testPeriod() => true ///////////// MA Params ///////////// source1 = input(title="MA Source 1", defval=close) maType1 = input(title="MA Type 1", defval="sma", options=["sma", "ema", "swma", "wma"]) length1 = input(title="MA Length 1", defval=50) source2 = input(title="MA Source 2", defval=close) maType2 = input(title="MA Type 2", defval="sma", options=["sma", "ema", "swma", "wma"]) length2 = input(title="MA Length 2", defval=200) ///////////// Get MA Function ///////////// getMAType(maType, sourceType, maLen) => res = sma(close, 1) if maType == "ema" res := ema(sourceType, maLen) if maType == "sma" res := sma(sourceType, maLen) if maType == "swma" res := swma(sourceType) if maType == "wma" res := wma(sourceType, maLen) res ///////////// MA ///////////// fastMA = getMAType(maType1, source1, length1) slowMA = getMAType(maType2, source2, length2) long = crossover(fastMA, slowMA) short = crossunder(fastMA, slowMA) /////////////// Plotting /////////////// checkColor() => fastMA > slowMA colCheck = checkColor() ? color.lime : color.red p1 = plot(fastMA, color = colCheck, linewidth=1) p2 = plot(slowMA, color = colCheck, linewidth=1) fill(p1, p2, color = checkColor() ? color.lime : color.red) bgcolor(long ? color.lime : short ? color.red : na, transp=20) /////////////// Execution /////////////// if testPeriod() strategy.entry("Long", strategy.long, when=long) strategy.entry("Short", strategy.short, when=short)