এই কৌশলটি এসএমএ লাইনের উপর ভিত্তি করে একটি সহজ পজিশন হোল্ডিং কৌশল। যখন স্বল্পমেয়াদী এসএমএ লাইন দীর্ঘমেয়াদী এসএমএ লাইনের উপরে অতিক্রম করে তখন এটি দীর্ঘ যায় এবং যখন স্বল্পমেয়াদী এসএমএ লাইন দীর্ঘমেয়াদী এসএমএ লাইনের নীচে অতিক্রম করে তখন অবস্থানটি বন্ধ করে দেয়।
কৌশলটি দুটি এসএমএ লাইন ব্যবহার করে, একটি স্বল্পমেয়াদী 20 দিনের লাইন এবং একটি দীর্ঘমেয়াদী 50 দিনের লাইন। স্বল্পমেয়াদী লাইনটি দামের প্রবণতা পরিবর্তনগুলি দ্রুত ধরতে পারে, যখন দীর্ঘমেয়াদী লাইনটি স্বল্পমেয়াদী গোলমাল ফিল্টার করে। যখন স্বল্পমেয়াদী লাইনটি দীর্ঘমেয়াদী লাইনের উপরে দ্রুত বৃদ্ধি পায়, তখন এটি নির্দেশ করে যে প্রবণতাটি দীর্ঘমেয়াদী উত্থান শুরু হতে পারে, তাই আমরা এখানে দীর্ঘ যাই। যখন স্বল্পমেয়াদী লাইনটি দীর্ঘমেয়াদী লাইনের নীচে পড়ে, তখন এটি প্রস্তাব করে যে উত্থান প্রবণতা শেষ হতে পারে, তাই আমরা এখানে অবস্থান বন্ধ করি।
সংক্ষেপে, এই কৌশলটি দুটি সময়ের মাত্রায় মূল্য আন্দোলনের প্রবণতা নির্ধারণের জন্য এসএমএ লাইনের বক্ররেখা বৈশিষ্ট্যগুলি ব্যবহার করে এবং তুলনামূলকভাবে স্থিতিশীল অবস্থান ধরে রেখে স্থিতিশীল মুনাফা অর্জন করে।
এই কৌশলটির সুবিধাগুলির মধ্যে রয়েছেঃ
এই কৌশলের ঝুঁকিগুলির মধ্যে রয়েছেঃ
এই কৌশল নিম্নলিখিত দিকগুলির মধ্যে আরও অপ্টিমাইজ করা যেতে পারেঃ
সংক্ষেপে, এই এসএমএ পজিশন হোল্ডিং কৌশলটি স্থিতিশীল, সহজ এবং পরিচালনা করা সহজ, নতুনদের লাইভ ট্রেডিংয়ের জন্য উপযুক্ত। যেমন আলগো ট্রেডিং বিকশিত হচ্ছে, এই কৌশলটি আরও ভাল পারফরম্যান্সের জন্য আরও সূচক এবং কৌশল অন্তর্ভুক্ত করতে পারে।
/*backtest start: 2022-12-11 00:00:00 end: 2023-12-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Zlema Strateg Long 5m', overlay=true ) // FUNCTIONS Atr(p) => atr = 0. Tr = math.max(high - low, math.max(math.abs(high - close[1]), math.abs(low - close[1]))) atr := nz(atr[1] + (Tr - atr[1]) / p, Tr) atr // ZLEMA length = input(title='Length', defval=14) highlightMovements = input(title='Highlight Movements ?', defval=true) src = input(title='Source', defval=close) lag = math.floor((length - 1) / 2) zlema = ta.ema(src + src - src[lag], length) zlemaColor = highlightMovements ? zlema > zlema[1] ? color.green : color.red : #6d1e7f plot(zlema, title='ZLEMA', linewidth=2, color=zlemaColor, transp=0) // TAKE PROFIT AND STOP LOSS long_tp1_inp = input.float(1, title='Long Take Profit 1 %', step=0.1) / 100 long_tp1_qty = input.int(10, title='Long Take Profit 1 Qty', step=1) long_tp2_inp = input.float(5, title='Long Take Profit 2%', step=0.1) / 100 long_tp2_qty = input.int(50, title='Long Take Profit 2 Qty', step=1) long_take_level_1 = strategy.position_avg_price * (1 + long_tp1_inp) long_take_level_2 = strategy.position_avg_price * (1 + long_tp2_inp) // Stop Loss multiplier = input.float(2.2, 'SL Mutiplier', minval=1, step=0.1) ATR_period = input.int(17, 'ATR period', minval=1, step=1) // Strategy entry_long = zlema > zlema[1] entry_price_long = ta.valuewhen(entry_long, close, 0) SL_floating_long = entry_price_long - multiplier * Atr(ATR_period) exit_long = zlema < zlema[1] ///// BACKTEST PERIOD /////// testStartYear = input(2022, 'Backtest Start Year') testStartMonth = input(1, 'Backtest Start Month') testStartDay = input(1, 'Backtest Start Day') testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0) testStopYear = input(9999, 'Backtest Stop Year') testStopMonth = input(12, 'Backtest Stop Month') testStopDay = input(31, 'Backtest Stop Day') testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) testPeriod() => time >= testPeriodStart and time <= testPeriodStop ? true : false if testPeriod() strategy.entry('long', strategy.long, comment='Long', when=entry_long) strategy.exit('TP1', 'long', qty_percent=long_tp1_qty, limit=long_take_level_1) //, trail_points=entry_price_long * long_trailing / syminfo.mintick, trail_offset=entry_price_long * long_trailing / syminfo.mintick) strategy.exit('TP2', qty_percent=long_tp2_qty, limit=long_take_level_2) //, trail_points=entry_price_long * long_trailing / syminfo.mintick, trail_offset=entry_price_long * long_trailing / syminfo.mintick) strategy.close('long', when=exit_long, comment='exit long') // LONG POSITION plot(strategy.position_size > 0 ? long_take_level_1 : na, style=plot.style_linebr, color=color.new(color.green, 0), linewidth=1, title='1st Long Take Profit') plot(strategy.position_size > 0 ? long_take_level_2 : na, style=plot.style_linebr, color=color.new(color.green, 0), linewidth=1, title='2nd Long Take Profit') plot(strategy.position_size > 0 ? SL_floating_long : na, style=plot.style_linebr, color=color.new(color.red, 0), linewidth=1, title='Long Stop Loss') if testPeriod() strategy.entry('long', strategy.long, comment='Long', when=entry_long) // LONG POSITIONplot(strategy.position_size > 0 ? SL_floating_long : na, style=plot.style_linebr, color=color.new(color.red, 0), linewidth=1, title='Long Stop Loss')