ডাবল বটম রিভার্সাল মিডন রিভার্সাল ডিসিএ গ্রিড কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৪-০২-২০ ১১ঃ৯ঃ৩৩
ট্যাগঃ

img

সারসংক্ষেপ

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

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

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

বিশেষত, সাম্প্রতিক 14টি মোমবাতিগুলির উপর ATR সূচকটি প্রথমে ta.atr এর মাধ্যমে প্রাপ্ত হয়। তারপরে সাম্প্রতিক 5টি মোমবাতিগুলির উপর মূল্যের অস্থিরতা গণনা করা হয়। এগুলি গ্রিড অঞ্চল নির্ধারণের জন্য ব্যবহৃত প্রধান পরামিতি। গ্রিডে 4 টি মূল্য স্তর রয়েছে - নীচের দাম + অস্থিরতা, নীচের দাম + 0.75 * অস্থিরতা, এবং আরও অনেক কিছু। একবার ডাবল নীচের শর্তটি ট্রিগার হয়ে গেলে, এই সূত্র অনুসারে সমান আকারের 4 টি সীমা অর্ডার স্থাপন করা হবে। বেশ কয়েকটি মোমবাতি পরে পূরণ না করা অর্ডার বাতিল করা হবে।

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

শক্তি

এই কৌশলটির প্রধান সুবিধাগুলো হল:

  1. বিপরীতমুখীতা নির্ধারণের জন্য ডাবল নীচের ব্যবহার সঠিকতা উন্নত করে এবং মিথ্যা বিরতি এড়ায়।
  2. ডিসিএ গ্রিড ব্যবসায়ীদের ধীরে ধীরে বিভিন্ন মূল্যে অবস্থান তৈরি করতে দেয়, যা খরচ ভিত্তি হ্রাস করে।
  3. ডায়নামিক এটিআর এবং অস্থিরতা পরামিতিগুলি বাজারের পরিবর্তনের উপর ভিত্তি করে গ্রিড এবং মুনাফা পরিসীমা সামঞ্জস্য করে।
  4. স্বয়ংক্রিয় স্টপ লস কার্যকরভাবে প্রতি ট্রেড ক্ষতির পরিমাণ নিয়ন্ত্রণ করে।

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

প্রধান ঝুঁকিঃ

  1. মূল্য বিপরীত ছাড়াই সমর্থনটি ভেঙে ফেলতে পারে, স্টপ লস এবং ক্ষতির সূচনা করে। সুরক্ষার জন্য স্টপ লস দূরত্ব প্রসারিত করুন।
  2. ভুল ডিসিএ গ্রিড সেটিং কম ভরাট হার হতে পারে। ভরাট হার নিশ্চিত করার জন্য বিভিন্ন পরামিতি পরীক্ষা করুন।
  3. অস্থির বাজারে ঘন ঘন মুনাফার সাথে হুইপসো ব্যবহার করুন। বৃহত্তর মুনাফা গ্রহণের অনুমতি বিবেচনা করুন।

উন্নতির ক্ষেত্র

যেসব ক্ষেত্রে উন্নতি করা যেতে পারে:

  1. প্রবণতা বিচার যোগ করুন, শুধুমাত্র প্রধান প্রবণতা বরাবর বিপরীত ট্রেড ক্ষতি এড়াতে।
  2. মূলধন ব্যবহারের দক্ষতা বাড়ানোর জন্য প্রথম এন্ট্রি জন্য বৃহত্তর আকার এবং গ্রিড এন্ট্রি জন্য ছোট আকার বিবেচনা করুন।
  3. সর্বোত্তম প্যারামিটার খুঁজে পেতে বিভিন্ন প্যারামিটার সমন্বয় পরীক্ষা করুন অথবা গতিশীল সমন্বয় লজিক ডিজাইন করুন।
  4. অটো প্যারামিটার অপ্টিমাইজেশান অর্জনের জন্য উন্নত প্ল্যাটফর্মে মেশিন লার্নিংকে একীভূত করুন।

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

ডাবল বটম বিপরীত অর্থ বিপরীত 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)



আরো