
এই কৌশলটি বাজারের প্রবণতার দিকটি সনাক্ত করতে তিনটি ভিন্ন সময়ের চলমান গড় ব্যবহার করে। যখন তিনটি চলমান গড়ের দিকটি একত্রিত হয়, তখন পজিশনে প্রবেশ করুন। একই সাথে, সাম্প্রতিক এন-রুট কে লাইনের সর্বোচ্চ বা সর্বনিম্ন মূল্যের সাথে মিলিত হয়ে একটি স্টপ লস সেট করুন।
দীর্ঘমেয়াদী, মধ্যমেয়াদী এবং স্বল্পমেয়াদী তিনটি চলমান গড় গণনা করুন। ব্যবহারকারীরা তাদের নিজস্ব সময়কাল সেট করতে পারেন। ডিফল্টরূপে 20 দিন, 10 দিন এবং 5 দিন।
তিনটি চলমান গড়ের দিকনির্দেশের তুলনা করুন। যখন স্বল্পমেয়াদী চলমান গড়টি মাঝারি এবং মাঝারিটি দীর্ঘমেয়াদে পরিধান করা হয়, তখন এটি একটি মাল্টি-হেড বাজার হিসাবে বিচার করা হয়। যখন স্বল্পমেয়াদী চলমান গড়টি মাঝারি এবং মাঝারিটি দীর্ঘমেয়াদে পরিধান করা হয়, তখন এটি একটি ফাঁকা বাজার হিসাবে বিচার করা হয়।
মাল্টি-হেড মার্কেটে, যদি দামটি সর্বশেষ এন-রেজিন কে লাইনের মধ্যে সর্বোচ্চ মূল্যকে ভেঙে দেয় তবে আরও বেশি করুন; খালি বাজারে, যদি দামটি সর্বশেষ এন-রেজিন কে লাইনের মধ্যে সর্বনিম্ন মূল্যকে ভেঙে দেয় তবে খালি করুন। N ব্যবহারকারীর জন্য একটি কাস্টমাইজড প্যারামিটারও।
পজিশনে প্রবেশের পর, স্টপ লস সেট করুন। মাল্টি-হেড মার্কেট স্টপ হল সর্বশেষ N-রেজ কে লাইনের মধ্যে সর্বনিম্ন মূল্য এবং খালি হেড মার্কেট স্টপ হল সর্বশেষ N-রেজ কে লাইনের মধ্যে সর্বোচ্চ মূল্য।
এই কৌশলটি চলমান গড় সূচক এবং কে-লাইন গ্রাফের সাথে মিলিত হয়, যা বাজারের গতিবিধি সম্পর্কে আরও ভাল ধারণা দেয়। একই সাথে, স্টপ লস স্টপ সেট যুক্তিসঙ্গত, যা বড় ক্ষতি এড়াতে সহায়ক।
একক চলমান গড়ের তুলনায়, এই কৌশলটি তিনটি চলমান গড় ব্যবহার করে, যা বাজারের গতিবিধির উপর নির্ভরযোগ্যতা দেয়। একই সময়ে, সাম্প্রতিক এন রুট কে লাইনের সর্বোচ্চ মূল্য বা সর্বনিম্ন মূল্যকে পজিশনে প্রবেশের জন্য বিরতি দেওয়া একটি সাধারণ বিরতি কৌশল। সামগ্রিকভাবে, কৌশলটি পরিষ্কার এবং বাস্তবায়নের জন্য সহজ।
এই কৌশলটির প্রধান ঝুঁকিগুলো হলঃ
তিনটি চলমান গড়ের দিকনির্দেশে ত্রুটির সম্ভাবনা নির্ধারণ করা। যদি মাঝারি-স্বল্পমেয়াদী চলমান গড়টি ভুল সংকেত দেয় তবে অপ্রয়োজনীয় ক্ষতি হতে পারে।
প্রবেশের সময় নির্ধারণে ভুল সিদ্ধান্ত নেওয়া সহজ। প্রবেশের সময় নির্ধারণে যথাযথভাবে অপ্টিমাইজ করা উচিত।
স্টপ-আউট সেটটি খুব ছোট, স্টপ-আউট প্রসারিত করলে রানিং রুমের দাম বাড়তে সাহায্য করে।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
অন্যান্য সূচক ফিল্টার যোগ করুন যাতে চলমান গড় সংকেতের নির্ভরযোগ্যতা নিশ্চিত করা যায়। উদাহরণস্বরূপ, লেনদেনের পরিমাণ বাড়ানোর জন্য ফাঁকা বিচার।
চলমান গড়ের পর্যায়ের প্যারামিটারগুলিকে অপ্টিমাইজ করা হয়েছে যাতে এটি বিভিন্ন জাতের সাথে আরও ভালভাবে মানিয়ে নেওয়া যায়।
মেশিন লার্নিং অ্যালগরিদম যুক্ত করুন এবং প্যারামিটারগুলির স্বয়ংক্রিয় অপ্টিমাইজেশন করুন।
উচ্চ-ফ্রিকোয়েন্সি তথ্যের উপর এই কৌশলটির কার্যকারিতা পরীক্ষা করা।
এই কৌশলটি সামগ্রিকভাবে সহজ, সাধারণ, ধারণাগতভাবে পরিষ্কার এবং কার্যকরভাবে কার্যকর। একটি চলমান গড় ক্রস সিস্টেমের উদাহরণ হিসাবে, এটি নতুনদের জন্য একটি সাধারণ পছন্দ। যথাযথ অপ্টিমাইজেশনের মাধ্যমে, সিস্টেমটি আরও বিস্তৃত জাত এবং সময়কালের জন্য প্রয়োগ করা যেতে পারে, যার ফলে স্থিতিশীল আয় পাওয়া যায়।
/*backtest
start: 2023-01-30 00:00:00
end: 2024-02-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © hobbiecode
//@version=5
strategy("Cross Breakout - Hobbiecode", shorttitle="Cross - HOBBIE", overlay=true)
// User-defined input for moving averages
long_period = input(20, title="Long Period")
medium_period = input(10, title = "Medium Period")
short_period = input(5, title="Short Period")
type_ma = input.string("SMA", title = "MA type", options = ["SMA", "EMA"])
candles_back = input(10, title = "Candles Back")
bars_valid = input(3, title = "Bars to Exit")
// Calculating moving averages
long_ma = 0.0
medium_ma = 0.0
short_ma = 0.0
if type_ma == "SMA"
long_ma := ta.sma(close, long_period)
medium_ma := ta.sma(close, medium_period)
short_ma := ta.sma(close, short_period)
else
long_ma := ta.ema(close, long_period)
medium_ma := ta.ema(close, medium_period)
short_ma := ta.ema(close, short_period)
// Plot moving averages
plot(long_ma, title="Long Moving Average", color=color.red)
plot(medium_ma, title = "Medium Moving Average", color = color.yellow)
plot(short_ma, title="Short Moving Average", color=color.green)
// Check last min/max
last_min = ta.lowest(candles_back)
last_max = ta.highest(candles_back)
// Strategy logic for crossing of moving averages
longCondition = short_ma > medium_ma and medium_ma > long_ma and high == last_max
shortCondition = short_ma < medium_ma and medium_ma < long_ma and low == last_min
longCondition_entry = longCondition and strategy.position_size == 0
shortCondition_entry = shortCondition and strategy.position_size == 0
// Check last min/max for operation
last_min_op = ta.lowest(candles_back)[1]
last_max_op = ta.highest(candles_back)[1]
// Plot lines
var line r1Line = na
// Entry orders
// if (longCondition)
// from_line = chart.point.now(high)
// to_line = chart.point.from_index(bar_index + candles_back, high)
// r1Line := line.new(from_line, to_line, color = color.green, width = 2)
if longCondition_entry and ta.crossover(close,last_max_op)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", from_entry="Long", stop=low)
// if (shortCondition)
// from_line = chart.point.now(low)
// to_line = chart.point.from_index(bar_index + candles_back, low)
// r1Line := line.new(from_line, to_line, color = color.red, width = 2)
if shortCondition_entry and ta.crossunder(close,last_min_op)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", from_entry="Short", stop=high)
if ta.barssince(longCondition_entry) >= bars_valid
strategy.close("Long")
if ta.barssince(shortCondition_entry) >= bars_valid
strategy.close("Short")