ক্রসিং মুভিং এভারেজ ব্রেকআউট কৌশল

লেখক:চাওঝাং, তারিখঃ 2024-02-06 15:02:33
ট্যাগঃ

img

সারসংক্ষেপ

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

কৌশলগত যুক্তি

  1. দীর্ঘমেয়াদী, মাঝারি মেয়াদী এবং স্বল্পমেয়াদী তিনটি চলমান গড় গণনা করুন। ব্যবহারকারীরা সময়কাল নিজেই সেট করতে পারেন। ডিফল্ট মান 20, 10 এবং 5 হয়।

  2. তিনটি চলমান গড়ের দিকের তুলনা করুন। যখন স্বল্পমেয়াদী চলমান গড় মধ্যমেয়াদী একের উপরে ক্রস করে এবং মাঝারি মেয়াদী দীর্ঘমেয়াদী একের উপরে ক্রস করে, এটি একটি ষাঁড় বাজার হিসাবে বিচার করা হয়। যখন স্বল্পমেয়াদী মধ্যমেয়াদী নীচে ক্রস করে এবং মাঝারি মেয়াদী দীর্ঘমেয়াদী নীচে ক্রস করে, এটি একটি ভালুক বাজার হিসাবে বিচার করা হয়।

  3. একটি ষাঁড়ের বাজারে, যদি মূল্য সর্বশেষ N মোমবাতিগুলির সর্বোচ্চ মূল্য অতিক্রম করে, দীর্ঘ যান; একটি ভালুকের বাজারে, যদি মূল্য সর্বশেষ N মোমবাতিগুলির সর্বনিম্ন মূল্য অতিক্রম করে, শর্ট যান। N এছাড়াও ব্যবহারকারীদের দ্বারা কাস্টমাইজযোগ্য একটি পরামিতি।

  4. একটি পজিশনে প্রবেশ করার পর, স্টপ লস সেট করুন এবং মুনাফা নিন। একটি ষাঁড়ের বাজারে স্টপ লসটি সাম্প্রতিক N মোমবাতিগুলির মধ্যে সর্বনিম্ন মূল্য হিসাবে সেট করা হয় এবং একটি ভালুকের বাজারে এটি সর্বোচ্চ মূল্য হিসাবে সেট করা হয়।

সুবিধা বিশ্লেষণ

এই কৌশলটি চলমান গড় সূচক এবং ক্যান্ডেলস্টিক চার্টকে একত্রিত করে, যা বাজারের প্রবণতা আরও ভালভাবে নির্ধারণ করতে পারে। একই সাথে, স্টপ লস এবং লাভ গ্রহণের সেটিং যুক্তিসঙ্গত, যা বৃহত্তর ক্ষতি এড়াতে সহায়ক।

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

ঝুঁকি বিশ্লেষণ

এই কৌশলটির প্রধান সম্ভাব্য ঝুঁকিগুলি হলঃ

  1. তিনটি চলমান গড়ের দিক সম্পর্কে ভুল সিদ্ধান্ত নেওয়ার সম্ভাবনা। যদি মাঝারি-স্বল্পমেয়াদী চলমান গড় ভুল সংকেত দেয় তবে অপ্রয়োজনীয় ক্ষতি হতে পারে।

  2. পজিশনে প্রবেশের সময় সঠিক নয়, যা সহজেই ধরা পড়ে। প্রবেশের সময় যথাযথভাবে অনুকূল করা উচিত।

  3. স্টপ লস দূরত্ব খুব ছোট সেট করা হয়। স্টপ লস দূরত্ব প্রসারিত মূল্যের জন্য আরো রানিং রুম অনুমতি সাহায্য করে।

অপ্টিমাইজেশান নির্দেশাবলী

এই কৌশলটি অপ্টিমাইজ করার দিকনির্দেশনাগুলির মধ্যে রয়েছেঃ

  1. চলমান গড় সংকেতগুলির নির্ভরযোগ্যতা নিশ্চিত করার জন্য ফিল্টারিংয়ের জন্য অন্যান্য সূচক যুক্ত করুন। উদাহরণস্বরূপ, ট্রেডিং ভলিউমের দীর্ঘ / সংক্ষিপ্ত বিচার যুক্ত করুন।

  2. বিভিন্ন পণ্যের সাথে আরও ভালভাবে খাপ খাইয়ে নেওয়ার জন্য চলমান গড় সময়ের অপ্টিমাইজ করা।

  3. স্বয়ংক্রিয় প্যারামিটার অপ্টিমাইজেশান অর্জনের জন্য মেশিন লার্নিং অ্যালগরিদম যুক্ত করুন।

  4. উচ্চ ফ্রিকোয়েন্সি ডেটাতে এই কৌশলটির কার্যকারিতা পরীক্ষা করুন।

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

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


/*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")

আরো