এই কৌশলটি সরল চলমান গড়ের গোল্ডেন ক্রস এবং ডেডফোর্স নীতি ব্যবহার করে, একটি স্টককে দীর্ঘ-শর্ট করার জন্য। যখন দ্রুত লাইনটি নীচের দিক থেকে ধীর লাইনটি ভেঙে দেয়, তখন বেশি করুন; যখন দ্রুত লাইনটি নীচের দিক থেকে ধীর লাইনটি ভেঙে যায়, তখন শূন্য করুন।
এই কৌশলটি প্রথমে পরিমাপের শুরু এবং শেষ সময় নির্ধারণ করে এবং তারপরে গড়ের ধরণ এবং সময়কালের দৈর্ঘ্য সহ দুটি গড়ের জন্য গণনা প্যারামিটার সেট করে।
getMAType () ফাংশন ব্যবহার করে দুটি গড়ের মান গণনা করুন। 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)