
এই কৌশলটি প্রচলিত মুভিং এভারেজ ক্রসিং কৌশলকে অপ্টিমাইজ করে, তিনটি ভিন্ন সময়ের জন্য একটি মুভিং এভারেজ সেট করে, 9 টি, 50 টি এবং 100 টি পিরিয়ডের মুভিং এভারেজ ব্যবহার করে একটি গোল্ডফোর্ক ফর্ম তৈরি করে, স্বল্পমেয়াদী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়ের মধ্যবর্তী গড়
এই কৌশলটি 9 পিরিয়ড, 50 পিরিয়ড এবং 100 পিরিয়ডের তিনটি চলমান গড় ব্যবহার করে। এর মধ্যে, 9 পিরিয়ডের চলমান গড়টি হ’ল স্বল্পমেয়াদী গড়, 50 পিরিয়ডের চলমান গড়টি মধ্যম লাইন, এবং 100 পিরিয়ডের চলমান গড়টি দীর্ঘমেয়াদী গড়। কৌশলটির ট্রেডিং সিগন্যালগুলি স্বল্পমেয়াদী গড় এবং মধ্যম লাইন গড়ের ক্রস থেকে আসে। সুনির্দিষ্ট যুক্তিটি হ’ল, দীর্ঘমেয়াদী গড়টি উচ্চতর প্রবণতার শর্তে (দীর্ঘমেয়াদী গড়ের গড়ের গড়ের চেয়ে বেশি) দীর্ঘমেয়াদী গড়ের গড়ের গড়ের গড়টি অতিক্রম করার সময় একটি ক্রয় সংকেত উত্পন্ন হয়; স্বল্পমেয়াদী গড়ের নীচে মধ্যম লাইন অতিক্রম করার সময় একটি বিক্রয় সংকেত উত্পন্ন হয়, এবং লেনদেন হয়।
প্রচলিত ডাবল মুভিং এভারেজ ক্রস-লাইন কৌশলগুলির তুলনায়, এই কৌশলটি ট্রেডিং সিগন্যাল উত্পন্ন হওয়ার আগে মাঝারি এবং দীর্ঘমেয়াদী প্রবণতা বিচার করার শর্ত যুক্ত করে, যা কিছু অকার্যকর সংকেতকে কার্যকরভাবে ফিল্টার করতে পারে। দীর্ঘমেয়াদী প্রবণতা অস্পষ্ট হলে কৌশলটি সংকেত উত্পন্ন করবে না, এটি প্যাচ করা এড়াতে পারে। একই সাথে, এই কৌশলটি স্বল্প ও মাঝারি মেয়াদে প্রবণতাপূর্ণ আচরণগুলি ক্যাপচার করার জন্য উপযুক্ত, এটি উত্তেজনার প্রবেশের সম্ভাবনা হ্রাস করে।
এই কৌশলটি প্যারামিটারগুলি সেট করার সময় গড়রেখার চক্রের সমন্বয়কে সামঞ্জস্য করতে হবে, বিভিন্ন চক্রের সমন্বয় কৌশলটির কার্যকারিতার উপর প্রভাব ফেলতে পারে। যদি চক্রের প্যারামিটারগুলি ভুলভাবে সেট করা হয় তবে খুব বেশি মিথ্যা সংকেত তৈরি হওয়ার ঝুঁকি রয়েছে। এছাড়াও, ব্যবসায়ীদের সম্ভাব্য সিস্টেমিক ঝুঁকি সম্পর্কে সতর্ক হওয়া দরকার এবং ঝুঁকি এড়াতে সময়মতো ক্ষতি বন্ধ করা উচিত।
বাজারের প্রবণতা নির্ধারণে সহায়তা করার জন্য অন্যান্য সূচক যেমন MACD, BOLL ইত্যাদির সাথে মিলিত হয়ে আরও কঠোর প্রবেশের শর্তগুলি সেট করার কথা বিবেচনা করা যেতে পারে, বা বাউলিং রেট সূচকগুলির সাথে মিলিত হয়ে একটি স্ব-অনুকূলিত চলমান গড় তৈরি করা যেতে পারে, যাতে প্যারামিটারগুলি বাজার পরিবেশের সাথে স্বয়ংক্রিয়ভাবে সামঞ্জস্য করতে পারে এবং কৌশলটি আরও অপ্টিমাইজ করতে পারে।
এই কৌশলটি প্রচলিত দ্বিগুণ চলমান গড়ের ক্রস-এর উপর ভিত্তি করে, দীর্ঘমেয়াদী গড়ের বিচার এবং ফিল্টার শর্ত যুক্ত করে, যা মিথ্যা সংকেতগুলিকে কার্যকরভাবে ফিল্টার করতে পারে, যা স্বল্প-মধ্যমেয়াদী প্রবণতা ট্রেডিংয়ের জন্য উপযুক্ত, এটি একটি সহজ ব্যবহারিক প্রবণতা ট্র্যাকিং কৌশল। তবে ব্যবসায়ীদের এখনও প্যারামিটার অপ্টিমাইজেশন এবং পদ্ধতিগত ঝুঁকির দিকে মনোনিবেশ করতে হবে, বিজ্ঞানের তহবিল পরিচালনার কৌশল তৈরি করতে হবে।
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Golden Cross, SMA 100, Moving Average Strategy (by Coinrule)", shorttitle="Golden_Cross_Strat_MA100_optimized", overlay=true, initial_capital = 1000,process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
// Input
switch1=input(true, title="Enable Bar Color?")
switch2=input(false, title="Show Fast Moving Average")
switch3=input(true, title="Show Slow Moving Average")
//Calculate Moving Averages
movingaverage_fast = sma(close, input(9))
movingaverage_slow = sma(close, input(100))
movingaverage_normal= sma(close, input(50))
//Backtest dates
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
// Calculation
bullish_cross = crossover(movingaverage_fast, movingaverage_normal)
bearish_cross = crossunder(movingaverage_fast, movingaverage_normal)
//Entry and Exit
if bullish_cross and window() and movingaverage_slow > movingaverage_normal
strategy.entry("long", strategy.long)
strategy.close("long", when = bearish_cross and window())
// Colors
bartrendcolor = close > movingaverage_fast and close > movingaverage_slow and change(movingaverage_slow) > 0 ? color.green : close < movingaverage_fast and close < movingaverage_slow and change(movingaverage_slow) < 0 ? color.red : color.blue
barcolor(switch1?bartrendcolor:na)
// Output
plot(movingaverage_fast, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=3)
plot(movingaverage_normal, color=color.blue, linewidth=2)
bgcolor(color = showDate and window() ? color.gray : na, transp = 90)