ডনচিয়ান ওয়েভ চ্যানেল ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2023-11-08 12:31:56 অবশেষে সংশোধন করুন: 2023-11-08 12:31:56
অনুলিপি: 0 ক্লিকের সংখ্যা: 452

ডনচিয়ান ওয়েভ চ্যানেল ট্রেডিং কৌশল

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি last ((history) চক্রের সর্বোচ্চ মূল্য pcmax এবং সর্বনিম্ন মূল্য pcmin গণনা করে একটি চ্যানেল তৈরি করে। চ্যানেলের আপ-ট্র্যাক এবং ডাউন-ট্র্যাক গণনা পদ্ধতি হলঃ

ট্র্যাকের উপরেyh = pcmax - (pcmax - pcmin) * (100 - percentDev)/100

নিচের ট্র্যাকyl = pcmin + (pcmax - pcmin) * percentDev/100

এর মধ্যে ১৩ শতাংশই ডেভ মুরের পক্ষে।

যখন দাম উর্ধ্বমুখী হয়, একটি দীর্ঘ সংকেত উৎপন্ন হয়; যখন দাম নিম্নমুখী হয়, একটি ছোট সংকেত উৎপন্ন হয়।

নির্দিষ্ট ট্রেডিং সিগন্যালের জন্য বিচার পদ্ধতি নিম্নরূপঃ

  1. boundup = high > yh রেলপথ ভেঙেছে কিনা তা নির্ধারণ করা

  2. bounddn = low < yl ট্র্যাক থেকে বেরিয়ে যাওয়া

  3. upsign = sma(bounddn, 2) == ১। বন্ডডনের গড়রেখার দ্বারা বিচার করে ধারাবাহিকভাবে ট্র্যাকের নিচে ভেঙে যায়

  4. dnsign = sma(boundup, 2) == 1 বন্ডআপের গড়রেখার দ্বারা বিচার করে ধারাবাহিকভাবে ট্র্যাকের উপরে উঠে যায়

  5. exitup = dnsign প্লেইন সিগন্যাল উৎপন্ন করে

  6. exitdn = upsign নিচের ট্র্যাকটি ভেঙে সমতল সংকেত তৈরি করে

  7. if upsign নিম্নরেখা অতিক্রম করে একাধিক সংকেত উৎপন্ন করে

  8. if dnsign রেলপথ ভেঙে একটি ফাঁকা সংকেত তৈরি করে

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

কৌশলগত সুবিধা

  1. টং চিয়াং চ্যানেল ব্যবহার করে প্রবণতা নির্ণয় করা, রিটার্নিং কার্যকর

  2. একই সময়ে, আপনি উভয় দিকে ট্রেড করতে পারেন, একটি ওভার এবং একটি ডাউন সিগন্যাল সেট করে

  3. ভুল লেনদেন এড়ানোর জন্য সিগন্যালগুলিকে সমান্তরাল ফিল্টার করে বিচার করুন

  4. স্টপ লস সেট করুন এবং ঝুঁকি নিয়ন্ত্রণ করুন

  5. রাতারাতি পজিশনের ঝুঁকি এড়ানোর জন্য ট্রেডিং শুরু করার সময় নির্ধারণ করুন

কৌশলগত ঝুঁকি

  1. টং চ্যান চ্যানেল ইতিহাস এবং শতাংশ ডিভের সংবেদনশীল, বিভিন্ন জাতের জন্য প্যারামিটারগুলি অপ্টিমাইজ করা প্রয়োজন

  2. ভূমিকম্পে ভুল সংকেত হতে পারে

  3. অর্ডার ম্যানেজমেন্ট ফ্যাক্টর ছাড়াই, রিয়েল-সিস্টেম মুনাফা প্রভাবিত হতে পারে

  4. পজিশন ম্যানেজমেন্ট ফ্যাক্টরগুলিকে বিবেচনা না করে, স্থির স্থানে অতিরিক্ত পজিশনের ঝুঁকি থাকতে পারে

  5. ফান্ড ম্যানেজমেন্ট ফ্যাক্টর ছাড়াই, ট্রেডিং ফান্ডগুলিকে রিয়েল ডিস্কে যুক্তিসঙ্গতভাবে সেট আপ করা দরকার

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

  1. ইতিহাস এবং শতাংশ ডিভের জন্য অপ্টিমাইজ করা হয়েছে যাতে এটি বিভিন্ন জাতের জন্য আরও উপযুক্ত হয়

  2. ফিল্টার যুক্ত করুন যাতে কম্পনের সময় ত্রুটিপূর্ণ সংকেত না পাওয়া যায়

  3. পজিশন ম্যানেজমেন্ট মডিউল যোগ করুন, একক পজিশনের মূলধনের অনুপাত নিয়ন্ত্রণ করুন

  4. ক্যাপিটাল ম্যানেজমেন্ট মডিউল যোগ করা হয়েছে, মোট পজিশনের জন্য ক্যাপিটাল অনুপাত সীমিত করা হয়েছে

  5. অর্ডার ম্যানেজমেন্ট ফাংশন যোগ করুন, অর্ডার পদ্ধতি অপ্টিমাইজ করুন

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

////////////////////////////////////////////////////////////
//  Copyright by AlexInc v1.0 02/07/2018  @aav_1980
// PriceChannel strategy
// If you find this script helpful, you can also help me by sending donation to 
// BTC 16d9vgFvCmXpLf8FiKY6zsy6pauaCyFnzS
// LTC LQ5emyqNRjdRMqHPHEqREgryUJqmvYhffM
////////////////////////////////////////////////////////////
//@version=3
strategy("AlexInc PriceChannel Str", overlay=false)
history = input(20)
percentDev = input(13)
capital = input(100)

needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usestoploss = input(true, defval = true, title = "Stop Loss")
stoplossmult = input(3.8, defval = 3.8, minval = 1, maxval = 10, title = "Stop loss multiplicator")


fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

bodymin = min( open, close)
bodymax = max(open, close)

pcmax = highest(bodymax, history)
pcmin = lowest(bodymin, history)

yh = ((pcmax - pcmin) / 100 * (100 - percentDev)) + pcmin
yl = ((pcmax - pcmin) / 100 * percentDev) + pcmin

plot(pcmax)
plot(pcmin)
plot(yh)
plot(yl)

//1
bounddn = low < yl ? 1 : 0
boundup = high > yh ? 1 : 0
upsign = sma(bounddn, 2) == 1
dnsign = sma(boundup, 2) == 1
//2
//upsign = crossover(bodymin, yl)
//dnsign = crossunder(bodymax , yh)


exitup = dnsign
exitdn = upsign

lot = strategy.equity / close * capital / 100


xATR = atr(history)
nLoss = usestoploss ? stoplossmult * xATR : na

stop_level_long = 0.0
stop_level_long := nz(stop_level_long[1])

stop_level_short = 0.0
stop_level_short := nz(stop_level_short[1])

pos = strategy.position_size
if pos >0 and pos[1] <= 0 //crossover(pos, 0.5)
    stop_level_long = strategy.position_avg_price - nLoss
if pos < 0 and pos[1] >= 0 //crossunder(pos, -0.5)
    stop_level_short = strategy.position_avg_price + nLoss
if pos == 0    
    stop_level_long = bodymin - nLoss
    stop_level_short = bodymax + nLoss

//plot(bodymax + nLoss, color=red)
//plot(bodymin - nLoss, color=red)
plot(stop_level_long, color=red)
plot(stop_level_short, color=red)

if upsign
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)

if dnsign
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)

if true
    strategy.close_all()


//if strategy.position_size != 0
//    strategy.exit("Exit Long", from_entry = "Long", stop = stop_level_long)
//    strategy.exit("Exit Short", from_entry = "Short", stop = stop_level_short)