চলমান গড় ব্রেকআউট কৌশল একটি স্বল্পমেয়াদী ট্রেডিং কৌশল যা প্রবেশ এবং প্রস্থান নির্ধারণের জন্য চলমান গড় ব্যবহার করে। এটি এর সরলতা এবং ব্যবহারের সহজতার দ্বারা চিহ্নিত।
মূল যুক্তি দুটি চলমান গড়ের উপর নির্ভর করে, একটি দ্রুত লাইন এবং একটি ধীর লাইন, দামের প্রবণতা পরিমাপ করতে। দ্রুত লাইনের একটি স্বল্প সময়কাল রয়েছে এবং এটি আরও সংবেদনশীল। ধীর লাইনের একটি দীর্ঘ সময়কাল রয়েছে এবং এটি আরও স্থিতিশীল।
কোডটি ব্যবহারকারীদের ইনপুট পরামিতিগুলির মাধ্যমে দ্রুত লাইন সময় shortPeriod এবং ধীর লাইন সময় longPeriod সেট করতে দেয়। দুটি চলমান গড়ের মানগুলি shortSMA এবং longSMA হিসাবে গণনা করা হয়।
যখন দ্রুত চলমান গড় ধীর চলমান গড়ের উপরে অতিক্রম করে, এটি একটি আপসাইড ব্রেকআউট এবং দীর্ঘ প্রবেশের সংকেত দেয়। যখন দ্রুত এমএ ধীর এমএ এর নীচে অতিক্রম করে, এটি একটি ডাউনসাইড ব্রেকআউট এবং সংক্ষিপ্ত প্রবেশের সংকেত দেয়।
দীর্ঘ প্রবেশের শর্তঃ
Fast MA crosses above slow MA
Fast MA > Slow MA
সংক্ষিপ্ত প্রবেশের শর্তঃ
Fast MA crosses below slow MA
Fast MA < Slow MA
কৌশলটি ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস, লাভ গ্রহণ এবং অবস্থান আকারের সেটিংস অন্তর্ভুক্ত করে।
ঝুঁকি ব্যবস্থাপনাঃ
চলমান গড় ব্রেকআউট কৌশলটি বোঝা সহজ, দ্রুত এবং ধীর এমএগুলির সাথে সংকেত উত্পন্ন করে। তবে এর কিছু ত্রুটি যেমন মিথ্যা বিরতি এবং বিলম্বিত সমস্যা রয়েছে। প্যারামিটার টিউনিং, অতিরিক্ত ফিল্টার এবং অন্যান্য উন্নতির সাথে কৌশলটি উন্নত করা যেতে পারে। সামগ্রিকভাবে এটি অ্যালগরিদমিক ট্রেডিংয়ে একটি শিক্ষানবিস-বান্ধব প্রথম পদক্ষেপ হিসাবে কাজ করে এবং মূল ধারণাগুলি উপলব্ধি করার পরে আরও উন্নত কৌশলগুলির পথ প্রশস্ত করে।
/*backtest start: 2023-08-26 00:00:00 end: 2023-09-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © YohanNaftali //@version=5 /////////////////////////////////////////////////////////////////////////////// // Heikin Ashi Candle Startegy // ver 2021.12.29 // © YohanNaftali // This script composed by Yohan Naftali for educational purpose only // Reader who will use this signal must do own research /////////////////////////////////////////////////////////////////////////////// strategy( title = 'Heikin Ashi Candle Startegy Long', shorttitle = 'HA Strategy Long', format = format.price, precision = 0, overlay = true) // Input validationPeriod = input.int( defval = 3, title = 'Validation Period', group = 'Candle') qtyOrder = input.float( defval = 1.0, title = 'Qty', group = 'Order') maxActive = input.float( defval = 1.0, title = 'Maximum Active Open Position', group = 'Order') // Long Strategy tpLong = input.float( defval = 1, title = "Take Profit (%)", minval = 0.0, step = 0.1, group = "Long") * 0.01 slLong = input.float( defval = 25, title = "Stop Loss (%)", minval=0.0, step=0.1, group="Long") * 0.01 trailingStopLong = input.float( defval = 0.2, title = "Trailing Stop (%)", minval = 0.0, step = 0.1, group = 'Long') * 0.01 // Calculation haTicker = ticker.heikinashi(syminfo.tickerid) haClose = request.security(haTicker, timeframe.period, close) haOpen = request.security(haTicker, timeframe.period, open) // Long limitLong = tpLong > 0.0 ? strategy.position_avg_price * (1 + tpLong) : na stopLong = slLong > 0.0 ? strategy.position_avg_price * (1 - slLong) : na float trailLong = 0.0 trailLong := if strategy.position_size > 0 trailClose = close * (1 - trailLong) math.max(trailClose, trailLong[1]) else 0 isGreen = true for i = 0 to validationPeriod-1 isGreen := isGreen and haClose[i] > haOpen[i] isLong = isGreen and haClose[validationPeriod] < haOpen[validationPeriod] plot( limitLong, title = 'Limit', color = color.rgb(0, 0, 255, 0), style = plot.style_stepline, linewidth = 1) plot( trailLong, title = 'Trailing', color = color.rgb(255, 255, 0, 0), style = plot.style_stepline, linewidth = 1) plot( stopLong, title = 'Stop', style = plot.style_stepline, color = color.rgb(255, 0, 0, 0), linewidth = 1) // plotshape( // isLong, // title = 'Entry', // style = shape.arrowup, // location = location.belowbar, // offset = 1, // color = color.new(color.green, 0), // text = 'Long Entry', // size = size.small) // Strategy strategy.risk.max_position_size(maxActive) strategy.risk.allow_entry_in(strategy.direction.long) strategy.entry( id = "Long", direction = strategy.long, qty = qtyOrder, when = isLong, alert_message = "LN") if (strategy.position_size > 0) strategy.exit( id = "Long Exit", from_entry = "Long", limit = limitLong, stop = stopLong, trail_price = trailLong, alert_message = "LX")