এসএমএ ক্রসওভার কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৩-১১-০৮ ১১ঃ৩৬ঃ৫১
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটি দ্রুত এবং ধীর চলমান গড়ের ক্রসওভারের উপর ভিত্তি করে ট্রেডিং সংকেত তৈরি করে। এটি দ্রুত চলমান গড় নীচে থেকে ধীর চলমান গড়ের উপরে ক্রস করার সময় ক্রয় সংকেত উত্পাদন করে। এটি দ্রুত চলমান গড় উপরে থেকে ধীর চলমান গড়ের নীচে ক্রস করার সময় বিক্রয় সংকেত উত্পাদন করে।

নীতিমালা

এই কৌশলটি দ্রুত এবং ধীর চলমান গড় গণনা করতে sma ফাংশন ব্যবহার করে। দ্রুত_SMA হল সময়ের দৈর্ঘ্য fast_SMA_input সহ দ্রুত চলমান গড়। ধীর_SMA হল সময়ের দৈর্ঘ্য slow_SMA_input সহ ধীর চলমান গড়।

কৌশলটি দ্রুত এবং ধীর চলমান গড়ের মধ্যে ক্রসওভার নির্ধারণের জন্য ক্রস এবং ক্রসন্ডার ফাংশন ব্যবহার করে। যখন দ্রুত চলমান গড় ধীর চলমান গড়ের উপরে অতিক্রম করে, তখন লং ভেরিয়েবলটি সত্য এবং একটি ক্রয় সংকেত উত্পন্ন হয়। যখন দ্রুত চলমান গড় ধীর চলমান গড়ের নীচে অতিক্রম করে, তখন শর্ট ভেরিয়েবলটি সত্য এবং একটি বিক্রয় সংকেত উত্পন্ন হয়।

সুবিধা

এই কৌশল নিম্নলিখিত সুবিধাগুলি আছেঃ

  1. সহজ নীতি, সহজেই বোঝা যায় এবং বাস্তবায়ন করা যায়।
  2. বিভিন্ন বাজারের পরিবেশে অভিযোজিত, কাস্টমাইজযোগ্য চলমান গড় সময়কাল।
  3. এটি বাজারের কিছু গোলমাল ফিল্টার করে এবং তুলনামূলকভাবে নির্ভরযোগ্য ট্রেডিং সিগন্যাল তৈরি করে।
  4. প্রবণতার সূচনা এবং বাঁক পয়েন্ট উভয়ই ধরা পড়ে।

ঝুঁকি

এই কৌশলটি নিম্নলিখিত ঝুঁকিগুলিও বহন করেঃ

  1. যদি সেটিংগুলি সঠিক না হয় তবে অতিরিক্ত ট্রেডিং সংকেত তৈরি করতে পারে, যার ফলে ওভারট্রেডিং হতে পারে।
  2. পার্শ্ববর্তী বাজারে অনেক মিথ্যা সংকেত তৈরি করতে পারে।
  3. প্রবণতার সময়কাল নির্ধারণ করা যায় না, এটি অকাল বিপরীত হতে পারে।

ঝুঁকি ব্যবস্থাপনাঃ

  1. ফিল্টারিং এফেক্ট এবং সংবেদনশীলতা ভারসাম্য বজায় রাখার জন্য উপযুক্ত চলমান গড় পরামিতি সেট করুন।
  2. মিথ্যা সংকেত এড়াতে প্রবণতা সূচক ফিল্টার যোগ করুন।
  3. ট্রেড প্রতি ক্ষতি নিয়ন্ত্রণের জন্য স্টপ লস পয়েন্ট সেট করুন।

অপ্টিমাইজেশন

এই কৌশল নিম্নলিখিত দিক থেকে অপ্টিমাইজ করা যেতে পারেঃ

  1. ভূল ব্রেকআউট এড়ানোর জন্য ভলিউম বা অস্থিরতার উপর ফিল্টারিং শর্ত যোগ করুন।
  2. প্রবণতার দিকনির্দেশ এবং শক্তি চিহ্নিত করতে প্রবণতা সূচক অন্তর্ভুক্ত করুন।
  3. মেশিন লার্নিং মডেল যোগ করুন মুভিং গড় পরামিতি স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করার জন্য।
  4. ট্রেডিং রেঞ্জ নির্ধারণ এবং এন্ট্রি নির্ভুলতা উন্নত করতে সমর্থন/প্রতিরোধ এবং বোলিংজার ব্যান্ডের সাথে সংযুক্ত করুন।

সংক্ষিপ্তসার

এই কৌশলটি কার্যকরভাবে চলমান গড়ের সুবিধাগুলি ব্যবহার করে ট্রেডিং সংকেত উত্পন্ন করে। যদিও কিছু ঝুঁকি রয়েছে, তবে প্যারামিটার অপ্টিমাইজেশন, ফিল্টার ইত্যাদি যুক্ত করে সেগুলি উন্নত করা যেতে পারে। চলমান গড় ক্রসওভার কৌশলটি আরও গবেষণা এবং প্রয়োগের মূল্যবান।


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-13 00:00:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@author Jacques Grobler
//
//                  SIMPLE CROSS OVER BOT
//                  =====================
//
// This is a simple example of how to set up a strategy to go long or short
// If you make any modifications or have any suggestions, let me know
// When using this script, every section marked back testing should be 
// uncommented in order to use for back testing, same goes for using the script portion

///////////////////////////////////////////////////////////////////////////////////////
//// INTRO
//// -----
// BACKTESTING
//@version=4
strategy(title="SimpleCrossOver_Bot_V1_Backtester", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0, commission_type=strategy.commission.percent, commission_value=0.1)

// SIGNALS
//study(title="SimpleCrossOver_Bot_V1_Signals", overlay = true)

///////////////////////////////////////////////////////////////////////////////////////
//// INPUTS
//// ------
// BACKTESTING
dateSart_Year = input(2018, title="Start Year", minval=2000)
dateSart_Month = input(1, title="Start Month", minval=1, maxval=12)
dateSart_Day = input(1, title="Start Day", minval=1, maxval=31)
dateEnd_Year = input(2019, title="End Year", minval=2000)
dateEnd_Month = input(1, title="End Month", minval=1, maxval=12)
dateEnd_Day = input(1, title="End Day", minval=1, maxval=31)

// BACKTESTING AND SIGNALS
fast_SMA_input = input(7, title="SMA Fast")
slow_SMA_input = input(25, title="SMA Slow")

///////////////////////////////////////////////////////////////////////////////////////
//// INDICATORS
//// ----------
fast_SMA = sma(close, fast_SMA_input)
slow_SMA = sma(close, slow_SMA_input)

///////////////////////////////////////////////////////////////////////////////////////
//// STRATEGY
//// --------
LONG = cross(fast_SMA, slow_SMA) and fast_SMA > slow_SMA
stratLONG() => crossover(fast_SMA, slow_SMA)
SHORT = cross(fast_SMA, slow_SMA) and fast_SMA < slow_SMA
stratSHORT() => crossunder(fast_SMA, slow_SMA)

///////////////////////////////////////////////////////////////////////////////////////
//// TRIGGERS
//// --------
// BACKTESTING
testPeriodStart = timestamp(dateSart_Year, dateSart_Month, dateSart_Day, 0, 0)
testPeriodStop = timestamp(dateEnd_Year, dateEnd_Month, dateEnd_Day, 0, 0)
timecondition = true

strategy.entry(id="LONG", long = true, when=timecondition and stratLONG())
strategy.entry(id="SHORT", long = false, when=timecondition and stratSHORT())

// SIGNALS
//alertcondition(LONG, title="LONG")
//alertcondition(SHORT, title="SHORT")

///////////////////////////////////////////////////////////////////////////////////////
//// PLOTS
//// -----
// BACKTESTING AND SIGNALS
plot(fast_SMA, color=green, linewidth=1)
plot(slow_SMA, color=yellow, linewidth=1)
plotshape(LONG, title="LONG", style=shape.triangleup, text="LONG", location=location.belowbar, size=size.small, color=green)
plotshape(SHORT, title="SHORT", style=shape.triangledown, text="SHORT", location=location.abovebar, size=size.small, color=red)

আরো