
এই কৌশলটি 30 দিনের দ্রুত সরল চলমান গড় এবং 33 দিনের ধীর সরল চলমান গড় গণনা করে একটি লং বা শর্ট এন্ট্রি তৈরি করে যখন তাদের গোল্ডেন ফর্ক বা ডেড ফর্ক ঘটে। বিপরীত সংকেত উপস্থিত হলে অবিলম্বে বন্ধ হয়ে যায়। এটি কার্যকরভাবে প্রবণতার পরিবর্তনগুলি ধরতে পারে।
এই কৌশলটির মূল বিষয় হল দ্রুত ৩০ দিনের গড় এবং ধীর ৩৩ দিনের গড় গণনা করা। দ্রুত লাইনটি মূল্য পরিবর্তনের জন্য দ্রুত সাড়া দেয় এবং ধীর লাইনটি আরও ভাল তরঙ্গের প্রভাব ফেলে। যখন দ্রুত লাইনটি নীচে থেকে ধীর লাইনটি ভেঙে উপরে যায় তখন এটি একটি কেনার সংকেত দেয়। এটি বোঝায় যে দাম বাড়তে শুরু করে এবং দ্রুত লাইনটি সাড়া দেয় তবে ধীর লাইনটি এখনও পিছনে রয়েছে। যখন দ্রুত লাইনটি নীচে থেকে ধীর লাইনটি ভেঙে পড়ে তখন এটি একটি বিক্রয় সংকেত দেয়।
এই ধরনের ধীর এবং সমান্তরাল ক্রস ডিজাইনের মাধ্যমে ট্রেডিং সিগন্যাল প্রবণতা শুরু হওয়ার সময় তৈরি করা যায় এবং বিপরীত সিগন্যালের সময় স্টপডোজ কার্যকরভাবে মধ্য ও দীর্ঘ লাইনের দামের প্রবণতা ক্যাপচার করে। একই সাথে অত্যধিক বাজারের ওঠানামা দ্বারা বিভ্রান্ত হওয়া এড়ানো যায়।
এই কৌশলটির কিছু সুবিধা রয়েছেঃ
এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ
প্যারামিটার অপ্টিমাইজেশান, স্টপ লস সেটিং এবং ট্রেডিং শুধুমাত্র যখন ট্রেন্ডটি স্পষ্ট হয় তার মাধ্যমে এই ঝুঁকিগুলি নিয়ন্ত্রণ এবং হ্রাস করা যেতে পারে।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে উন্নত করা যেতে পারেঃ
পরীক্ষার মাধ্যমে এবং অপ্টিমাইজেশনের মাধ্যমে, কৌশলগত নিয়মগুলি ক্রমাগত উন্নত করা যায়, বিভিন্ন বাজার পরিবেশে আরও নির্ভরযোগ্য ট্রেডিং সংকেত পাওয়া যায়।
ডাবল ইয়ারলাইন ক্রস-ব্রেকিং কৌশলটি সামগ্রিকভাবে সহজ এবং ব্যবহারিক, দ্রুত গড় এবং ধীর গড়ের সংমিশ্রণ দ্বারা, মধ্য-দীর্ঘ লাইনের প্রবণতার সূচনাকে কার্যকরভাবে সনাক্ত করা যায় এবং আরও নির্ভরযোগ্য ট্রেডিং সংকেত উত্পন্ন করা যায়। এটির স্টপ লস বিধিটি বাস্তবায়ন করাও সহজ। আরও অপ্টিমাইজেশনের মাধ্যমে, কৌশলটি দীর্ঘমেয়াদী মূল্যবান একটি পরিমাণগত সিস্টেম হতে পারে।
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//future strategy
//strategy(title = "es1!_1minute_hull", default_qty_type = strategy.fixed, initial_capital=250000, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2, calc_on_order_fills=false, calc_on_every_tick=false,pyramiding=0)
//strategy.risk.max_position_size(2)
//stock strategy
strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital=1000000, overlay = false)//, calc_on_order_fills=true, calc_on_every_tick=true)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true,initial_capital=250000, default_qty_type = strategy.percent_of_equity)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true, commission_type=strategy.commission.percent,commission_value=.005,default_qty_value=10000)
//strategy.risk.allow_entry_in(strategy.direction.long) // There will be no short entries, only exits from long.
testStartYear = 2010
testStartMonth = 1
testStartDay = 1
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testEndYear = 2039
testEndMonth = 1
testEndDay = 1
testPeriodEnd = timestamp(testEndYear,testEndMonth,testEndDay,0,0)
testPeriod() =>
//true
time >= testPeriodStart and time <= testPeriodEnd ? true : false
fast_length = 30
slow_length = 33
ema1 = 0.0
ema2 = 0.0
volumeSum1 = sum(volume, fast_length)
volumeSum2 = sum(volume, slow_length)
//ema1 := (((volumeSum1 - volume) * nz(ema1[1]) + volume * close) / volumeSum1)
ema1 := ema(close,fast_length)
//ema2 := (((volumeSum2 - volume) * nz(ema2[1]) + volume * close) / volumeSum2)
ema2 := ema(close,slow_length)
plot(ema1,color=#00ff00, linewidth=3)
plot(ema2, color=#ffff00, linewidth=3)
go_long = crossover(ema1,ema2)
go_short = crossunder(ema1,ema2)
if testPeriod()
strategy.entry("long_ride", strategy.long, when=go_long)
strategy.entry("short_ride", strategy.short,when=go_short)
strategy.close("long_ride",when=go_short)
strategy.close("short_ride",when=go_long)