ডাবল বটম বিপরীতমুখী গড় বিপরীতমুখী ডিসিএ গ্রিড কৌশল মূলত ধীরে ধীরে অবস্থান নির্মাণ বাস্তবায়নের জন্য গড় বিপরীতমুখী মূল্য এবং ডিসিএ কৌশল প্রয়োগ করে। এটি ডাবল বটম বিপরীতমুখী প্যাটার্নের উপর ভিত্তি করে বিপরীতমুখী সুযোগগুলি নির্ধারণ করে। একবার বিপরীতমুখী প্যাটার্নটি ট্রিগার হয়ে গেলে, এটি ধীরে ধীরে গ্রিড অবস্থানগুলি প্রতিষ্ঠার জন্য ডিসিএর সাথে মিলিত বিভিন্ন মূল্যে একাধিক সীমা অর্ডার ব্যবহার করে।
কৌশলটি প্রথমে পরীক্ষা করে যে মোমবাতি চার্টে নীচের সমান দুটি ধারাবাহিক বন্ধের মূল্য রয়েছে কিনা, যাকে
বিশেষত, সাম্প্রতিক 14টি মোমবাতিগুলির উপর ATR সূচকটি প্রথমে ta.atr এর মাধ্যমে প্রাপ্ত হয়। তারপরে সাম্প্রতিক 5টি মোমবাতিগুলির উপর মূল্যের অস্থিরতা গণনা করা হয়। এগুলি গ্রিড অঞ্চল নির্ধারণের জন্য ব্যবহৃত প্রধান পরামিতি। গ্রিডে 4 টি মূল্য স্তর রয়েছে - নীচের দাম + অস্থিরতা, নীচের দাম + 0.75 * অস্থিরতা, এবং আরও অনেক কিছু। একবার ডাবল নীচের শর্তটি ট্রিগার হয়ে গেলে, এই সূত্র অনুসারে সমান আকারের 4 টি সীমা অর্ডার স্থাপন করা হবে। বেশ কয়েকটি মোমবাতি পরে পূরণ না করা অর্ডার বাতিল করা হবে।
এছাড়াও, কৌশলটি একটি স্টপ লস মূল্য এবং একটি লাভের মূল্যও সেট করে। স্টপ লস মূল্যটি ডাবল নীচের বিয়োগ এক টিক আকারের সর্বনিম্ন মূল্যে সেট করা হয়, যখন লাভের মূল্যটি প্রবেশের মূল্য প্লাস 5 গুণ এটিআর এ সেট করা হয়। এই দুটি মূল্য রিয়েল টাইমে আপডেট হবে যখন অবস্থানের আকার 0 এর চেয়ে বড় হয়।
এই কৌশলটির প্রধান সুবিধাগুলো হল:
প্রধান ঝুঁকিঃ
যেসব ক্ষেত্রে উন্নতি করা যেতে পারে:
ডাবল বটম বিপরীত অর্থ বিপরীত DCA গ্রিড কৌশল মূল্য প্যাটার্ন, সূচক কৌশল এবং গ্রিড ট্রেডিং একীভূত করে। এটিতে সঠিক সময়, নিয়ন্ত্রণযোগ্য ব্যয় ভিত্তি এবং ড্রডাউন সুরক্ষা রয়েছে। এখনও অপ্টিমাইজেশনের জন্য জায়গা রয়েছে এবং এটি গবেষণা করার মতো। সঠিকভাবে কনফিগার করা হলে, পরিসীমা-সীমাবদ্ধ বাজারে ভাল ফলাফল অর্জন করতে পারে।
/*backtest start: 2024-02-12 00:00:00 end: 2024-02-19 00:00:00 period: 3m basePeriod: 1m 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/ // © cherepanovvsb //@version=5 strategy("Reversal (only long)", overlay=true, margin_long=1, margin_short=1,initial_capital=1000,commission_type = strategy.commission.percent,commission_value =0.1,currency='USD', process_orders_on_close=true) plotshape(low == low[1], style=shape.triangleup, location=location.belowbar, color=color.blue, title="1 Setup") plotshape(low == low[1] and low[1]==low[2], style=shape.triangleup, location=location.belowbar, color=color.red, title="Triple Setup") ATRlenght = input.int(title="ATR length for taking profit", defval=14, group="Strategy Settings") rewardMultiplier= input.int(title="ATR multiplier", defval=5, group="Strategy Settings") Volatility_length=input.int(title='Volatility length',defval=5,group="Strategy Settings") Volatility_multiplier=input.float(title='Volatility multiplier',defval=0.5,step=0.1, group="Strategy Settings") Candles_to_wait=input.int(title='How many candles to wait after placing orders grid?',defval=4,group="Strategy Settings") // Get ATR atr1 = ta.atr(ATRlenght) //Get volatility values (not ATR) float result = 0 for i = 0 to Volatility_length result+=high[i]-low[i] volatility=result*Volatility_multiplier/Volatility_length //Validate entrance points validlow = low [2]== low[1] and not na(atr1) validlong = validlow and strategy.position_size == 0 and low[1]<low // Calculate SL/TP longStopPrice = low[1]-syminfo.mintick longStopDistance = close - longStopPrice longTargetPrice = close + (longStopDistance * rewardMultiplier) strategy.initial_capital = 50000 //Assign all variables var tradeStopPrice = 0.0 var tradeTargetPrice = 0.0 var point1=0.0 var point2=0.0 var point3=0.0 var point4=0.0 var contracts = int(strategy.initial_capital/close)/4 if validlong tradeStopPrice := longStopPrice tradeTargetPrice := longTargetPrice point1:=low[1]+volatility point2:=low[1]+volatility*0.75 point3:=low[1]+volatility*0.5 point4:=low[1]+volatility*0.25 strategy.entry ("Long1", strategy.long,limit=point1,qty=contracts, when=validlong) strategy.entry ("Long2", strategy.long,limit=point2,qty=contracts, when=validlong) strategy.entry ("Long3", strategy.long,limit=point3,qty=contracts, when=validlong) strategy.entry ("Long4", strategy.long,limit=point4,qty=contracts, when=validlong) stopcondition = ta.barssince(validlong) == Candles_to_wait strategy.cancel("Long1",when=stopcondition) strategy.cancel("Long2",when=stopcondition) strategy.cancel("Long3",when=stopcondition) strategy.cancel("Long4",when=stopcondition) strategy.exit(id="Long Exit", limit=tradeTargetPrice, stop=tradeStopPrice, when=strategy.position_size > 0) plot(strategy.position_size != 0 or validlong ? tradeStopPrice : na, title="Trade Stop Price", color=color.red, style=plot.style_linebr, linewidth=3) plot(strategy.position_size != 0 or validlong ? tradeTargetPrice : na, title="Trade Target Price", color=color.green, style=plot.style_linebr, linewidth=3) plot(strategy.position_size != 0? point1 : na, title="Long1", color=color.green, style=plot.style_linebr, transp=0) plot(strategy.position_size != 0? point2 : na, title="Long2", color=color.green, style=plot.style_linebr, transp=0) plot(strategy.position_size != 0? point3 : na, title="Long3", color=color.green, style=plot.style_linebr, transp=0) plot(strategy.position_size != 0? point4 : na, title="Long4", color=color.green, style=plot.style_linebr, transp=0)