ডাবল বটম রিভার্সাল মুভিং এভারেজ ডিসিএ গ্রিড কৌশল


সৃষ্টির তারিখ: 2024-02-20 11:09:33 অবশেষে সংশোধন করুন: 2024-02-20 11:09:33
অনুলিপি: 3 ক্লিকের সংখ্যা: 839
1
ফোকাস
1617
অনুসারী

ডাবল বটম রিভার্সাল মুভিং এভারেজ ডিসিএ গ্রিড কৌশল

ওভারভিউ

ডাবল নীচে বিপরীত গড় লাইন DCA গ্রিড কৌশল প্রধানত প্রয়োগ গড় লাইন মূল্য বিপরীত এবং DCA কৌশল বাস্তবায়নের জন্য গ্রিড ধীরে ধীরে পজিশনিং। এটি ডাবল নীচে বিপরীত মোডের উপর ভিত্তি করে বিপরীত সুযোগের বিচার করে। একবার বিপরীত মোডটি ট্রিগার করার পরে, একাধিক ভিন্ন মূল্যের কন্ট্রাক্টর ব্যবহার করে, DCA এর সাথে মিলিত হয়ে ধীরে ধীরে গ্রিড পজিশন তৈরি করে।

কৌশল নীতি

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

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

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

সামর্থ্য বিশ্লেষণ

এই কৌশলটির সুবিধাগুলো হলঃ

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

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

প্রধান ঝুঁকিগুলো হলঃ

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

অপ্টিমাইজেশান দিক

এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*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)