
এটি একটি চলমান গড়ের উপর ভিত্তি করে একটি ব্রেক ট্রেডিং কৌশল। এটি একটি নির্দিষ্ট সময়ের গড় মূল্যকে গড় হিসাবে গণনা করে, যখন দাম গড়ের বাইরে চলে যায় তখন একটি ট্রেডিং সিগন্যাল তৈরি করে।
এই কৌশলটি মূলত মুভিং এভারেজ সূচকের উপর ভিত্তি করে তৈরি করা হয়েছে। এটি sma ফাংশন ব্যবহার করে একটি নির্দিষ্ট সময়ের মধ্যে গড় ক্লোজিং মূল্য গণনা করে এবং একটি মুভিং এভারেজ পায়। সর্বশেষ ক্লোজিং মূল্য যখন নীচে থেকে উপরে থেকে মুভিং এভারেজকে ভেঙে দেয় তখন একটি কেনার সংকেত উত্পন্ন হয়; যখন সর্বশেষ ক্লোজিং উপরে থেকে নীচে থেকে মুভিং এভারেজকে ভেঙে দেয় তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।
বিশেষত, এটি কৌশলটিতে চলমান গড়ের গণনা উত্স (সাম্প্রতিক ক্লোজ-আপ মূল্য) এবং চক্রের দৈর্ঘ্য সংজ্ঞায়িত করে এবং চলমান গড়ের ডেটা সিকোয়েন্স পায়। তারপরে এটি দুটি শর্ত সেট করেঃ দামের উপরে গড় অতিক্রম করার সময় ক্রয় অর্ডার তৈরি করা; দামের নীচে গড় অতিক্রম করার সময় বিক্রয় অর্ডার তৈরি করা। অর্ডার তৈরি হওয়ার পরে, এটি স্টপ লসও সেট করেঃ অর্ডারটি যখন লাভের একটি সেট অনুপাত পৌঁছেছে তখন একটি পজিশন বন্ধ করে দেয় এবং যখন অর্ডারটি সেট স্টপ বা স্টপ লস মূল্য পৌঁছেছে তখন পুরো অবস্থানটি বন্ধ করে দেয়।
এটি একটি সহজ এবং কার্যকরী ট্রেন্ড ট্র্যাকিং কৌশল। এর সুবিধা হলঃ
যদিও এই কৌশলটির অনেক সুবিধা রয়েছে, তবে এর কিছু ঝুঁকিও রয়েছেঃ
এই ঝুঁকি নিয়ন্ত্রণের জন্য, আমরা ফিল্টারিং অপ্টিমাইজেশানকে অন্যান্য সূচকগুলির সাথে একত্রিত করতে পারি, বড় আকারের স্বল্পমেয়াদী প্রবণতা বিচার বা মেশিন লার্নিং পদ্ধতি ব্যবহার করে সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পেতে পারি।
এই কৌশলটি মূলত নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
অন্যান্য প্রযুক্তিগত নির্দেশক যুক্ত করা, ট্রেডিং সিস্টেম গঠন করা, কৌশলগত সাফল্যের হার বৃদ্ধি করা। যেমন MACD, KD ইত্যাদি সহায়ক বিচারক যোগ করা।
স্টপ মেশিনের সাথে যোগ দিন। ট্র্যাকিং স্টপ বা টাইম স্টপ ব্যবহার করে লাভের উপর লক করুন এবং ক্ষতির বিস্তার এড়াতে।
প্যারামিটার অপ্টিমাইজেশান করুন। চলমান গড়ের পিরিয়ড প্যারামিটার পরিবর্তন করুন এবং সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে বের করুন। আপনি বিভিন্ন ধরণের চলমান গড় পরীক্ষা করতে পারেন।
মেশিন লার্নিং বিচার বৃদ্ধি করুন। র্যান্ডম বন, এলএসটিএম এবং অন্যান্য অ্যালগরিদম ব্যবহার করে প্রবণতা নির্দেশ করার জন্য একাধিক ফ্যাক্টর যুক্ত করুন।
প্রবেশ ও প্রস্থান লজিক অপ্টিমাইজ করুন। প্রবণতা ফিল্টারিং শর্ত সেট করুন, প্রবণতা শেষ হওয়ার পরে বিপরীত অপারেশন এড়াতে। ব্যাচিং প্লেইন হোল্ডিং লজিক ব্যবহার করার কথা বিবেচনা করুন।
এই চলমান সমান্তরাল বিভাজন কৌশলটি সামগ্রিকভাবে কোয়ান্টাম ট্রেডিংয়ের প্রারম্ভিক কৌশল হিসাবে খুব উপযুক্ত। এটির ধারণাটি সহজ, সহজেই বোঝা এবং পরিচালনা করা যায় এবং এর কিছু বাস্তব যুদ্ধের প্রভাব রয়েছে। এটি পরবর্তী পরীক্ষার এবং অপ্টিমাইজেশনের জন্য প্রচুর জায়গাও ছেড়ে দেয়। আমরা এর ভিত্তিতে আরও প্রযুক্তিগত সূচক এবং মডেলগুলি প্রবর্তন করতে পারি, আরও কার্যকর কোয়ান্টাম কৌশল বিকাশ করতে পারি।
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-22 08:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// |-- Initialize Strategy Parameters:
strategy(
// |-- Strategy Title.
title='[Tutorial][RS]Working with orders',
// |-- if shorttitle is specified, it will overwrite the name on the chart window.
shorttitle='WwO',
// |-- if true it overlays current chart window, otherwise it creates a drawer to display plotting outputs.
overlay=true,
// |-- Strategy unit type for default quantity, possible arguments: (strategy.cash, strategy.fixed, strategy.percent_of_equity)
default_qty_type=strategy.cash,
// |-- Value to use for default trade size
default_qty_value=1000,
// |-- Default Account size
initial_capital=100000,
// |-- Account Currency parameter
currency=currency.USD
)
// |-- Strategy Profit/loss parameters:
profit = input(defval=5000, title='Take Profit')
loss = input(defval=5000, title='Stop Loss')
ratio = input(defval=2.0, title='Ratio at wich to take out a percentage off the table (take profit / ratio).')
percent = input(defval=50.0, title='Percentage of position to take profit.')
// |-- Signal Parameters:
// |
// |-- Moving Average input source and length parameters.
src = input(defval=close)
length = input(defval=100)
// |-- Moving Average Data series.
ma = sma(src, length)
// |-- Condition for triggering a buy(long) order(trade).
if crossover(src, ma)
// |-- Create the order.
strategy.order(id='Buy', long=true)
// |-- Issue a exit order to close a percentage of the trade when a specified ratio(take profit / ratio) is reached.
strategy.exit(id='Buy Half Exit', from_entry='Buy', qty_percent=percent, profit=profit/ratio)
// |-- Issue a exit order to close the full position, when take profit or stop loss's are reached.
strategy.exit(id='Buy Full Exit', from_entry='Buy', qty_percent=100, profit=profit, loss=loss)
if crossunder(src, ma)
// |-- Create the order.
strategy.order(id='Sell', long=false)
// |-- Issue a exit order to close a percentage of the trade when a specified ratio(take profit / ratio) is reached.
strategy.exit(id='Sell Half Exit', from_entry='Sell', qty_percent=percent, profit=profit/ratio)
// |-- Issue a exit order to close the full position, when take profit or stop loss's are reached.
strategy.exit(id='Sell Full Exit', from_entry='Sell Half Exit', qty_percent=100, profit=profit, loss=loss)
// |-- Output Functions.
plot(series=ma, title='MA', color=black)