এই কৌশলটি গড় সত্য পরিসীমা (এটিআর) সূচকের উপর ভিত্তি করে একটি গতিশীল ট্রেলিং স্টপ কৌশল। এটি এটিআর মানগুলির মাধ্যমে গতিশীলভাবে স্টপ-লস অবস্থানগুলি সামঞ্জস্য করে এবং ইএমএ ক্রসওভারগুলি ব্যবহার করে ট্রেডিং সংকেতগুলি নিশ্চিত করে। কৌশলটি নমনীয় অবস্থান পরিচালনা সমর্থন করে এবং বিভিন্ন বাজার পরিবেশ এবং ট্রেডিং সরঞ্জামগুলির উপর ভিত্তি করে ক্রয় / বিক্রয় পরিমাণের কাস্টমাইজেশনের অনুমতি দেয়। এটি 5 মিনিট থেকে 2 ঘন্টা পর্যন্ত মাঝারি সময়সীমার মধ্যে বিশেষত ভাল সম্পাদন করে, কার্যকরভাবে বাজারের প্রবণতা ক্যাপচার করে।
কৌশলটির মূল যুক্তি বেশ কয়েকটি মূল উপাদানের উপর ভিত্তি করেঃ
এই কৌশলটি এটিআর সূচক এবং ইএমএ চলমান গড়কে একত্রিত করে একটি নির্ভরযোগ্য গতিশীল ট্রেলিং স্টপ সিস্টেম তৈরি করে। এর শক্তিগুলি বাজারের অস্থিরতার অভিযোজন, বিস্তৃত ঝুঁকি ব্যবস্থাপনা এবং অপারেশনাল নমনীয়তায় রয়েছে। যদিও অন্তর্নিহিত ঝুঁকি রয়েছে, কৌশলটি ধারাবাহিক অপ্টিমাইজেশন এবং উন্নতির মাধ্যমে বিভিন্ন বাজারের পরিবেশে স্থিতিশীল পারফরম্যান্সের প্রতিশ্রুতি দেখায়। ব্যবসায়ীদের লাইভ ট্রেডিংয়ের আগে প্যারামিটার সংমিশ্রণগুলি পুঙ্খানুপুঙ্খভাবে পরীক্ষা করার এবং নির্দিষ্ট যন্ত্রের বৈশিষ্ট্যগুলির উপর ভিত্তি করে অপ্টিমাইজ করার পরামর্শ দেওয়া হয়।
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-10 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title='ADET GİRMELİ Trend İz Süren Stop Strategy', overlay=true, overlay=true,default_qty_type = strategy.fixed, default_qty_value = 1) // Inputs a = input(9, title='Key Value. "This changes the sensitivity"') c = input(3, title='ATR Period') h = input(false, title='Signals from Heikin Ashi Candles') xATR = ta.atr(c) nLoss = a * xATR src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, lookahead=barmerge.lookahead_off) : close xATRTrailingStop = 0.0 iff_1 = src > nz(xATRTrailingStop[1], 0) ? src - nLoss : src + nLoss iff_2 = src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), src + nLoss) : iff_1 xATRTrailingStop := src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), src - nLoss) : iff_2 pos = 0 iff_3 = src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0) pos := src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0) ? 1 : iff_3 xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue ema = ta.ema(src, 1) above = ta.crossover(ema, xATRTrailingStop) below = ta.crossover(xATRTrailingStop, ema) buy = src > xATRTrailingStop and above sell = src < xATRTrailingStop and below barbuy = src > xATRTrailingStop barsell = src < xATRTrailingStop // Alım ve Satım Sinyalleri buySignal = src > xATRTrailingStop and above sellSignal = src < xATRTrailingStop and below // Kullanıcı girişi sell_quantity = input.int(1, title="Sell Quantity", minval=1) buy_quantity = input.int(1, title="Buy Quantity", minval=1) // Portföy miktarı (örnek simülasyon verisi) var portfolio_quantity = 0 // Sinyal üretimi (örnek sinyal, gerçek stratejinizle değiştirin) indicator_signal = (src > xATRTrailingStop and above) ? "buy" : (src < xATRTrailingStop and below) ? "sell" : "hold" // Şartlara göre al/sat if indicator_signal == "buy" and portfolio_quantity < buy_quantity strategy.entry("Buy Order", strategy.long, qty=buy_quantity) portfolio_quantity := portfolio_quantity + buy_quantity if indicator_signal == "sell" and portfolio_quantity >= sell_quantity strategy.close("Buy Order", qty=sell_quantity) portfolio_quantity := portfolio_quantity - sell_quantity // Plot buy and sell signals plotshape(buy, title='Buy', text='Buy', style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.white, 0), size=size.tiny) plotshape(sell, title='Sell', text='Sell', style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny) // Bar coloring barcolor(barbuy ? color.rgb(6, 250, 14) : na) barcolor(barsell ? color.red : na) // Alerts alertcondition(buy, 'UT Long', 'UT Long') alertcondition(sell, 'UT Short', 'UT Short') // Strategy Entry and Exit if buy strategy.entry('Long', strategy.long) if sell strategy.entry('Short', strategy.short) // Optional Exit Conditions if sell strategy.close('Long') if buy strategy.close('Short')