ডাইনামিক পার্সেন্ট বক্স ট্র্যাকিং কৌশল


সৃষ্টির তারিখ: 2023-11-23 10:32:39 অবশেষে সংশোধন করুন: 2023-11-23 10:32:39
অনুলিপি: 1 ক্লিকের সংখ্যা: 605
1
ফোকাস
1617
অনুসারী

ডাইনামিক পার্সেন্ট বক্স ট্র্যাকিং কৌশল

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি প্রথমে একটি বেস প্রাইস সেট করে, যার ১০% মূল্যের একটি মূল্যের ব্যাপ্তি, উপরের প্রান্তটি ক্রয় লাইন এবং নীচের প্রান্তটি স্টপ লস লাইন। যখন দাম ক্রয় লাইনটি ভেঙে যায়, তখন স্থির পরিমাণে ক্রয় করা হয়। যখন দাম স্টপ লস লাইনটি ভেঙে যায়, তখন প্লেইন স্টপ হয়। লাভের পরে, ক্রয় লাইন এবং স্টপ লস লাইন শতাংশ অনুসারে সামঞ্জস্য করে এবং লাভের ব্যাপ্তি প্রসারিত করে।

এই কৌশলটির আরেকটি গুরুত্বপূর্ণ দিক হল শুধুমাত্র এক ইউনিট ঝুঁকি গ্রহণ করা। অর্থাৎ, শুধুমাত্র বর্তমান পজিশনের মুনাফা অর্জনের পরই নতুন পজিশনের জন্য আমানত করা হবে। নতুন পজিশনের জন্য নতুন ক্রয় লাইন এবং স্টপ লস লাইনও সেট করা হবে। এটি ঝুঁকি সীমাবদ্ধ করতে পারে।

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

এই কৌশলটি ট্র্যাকিং স্টপ লস এবং স্টক ম্যানেজমেন্টের সুবিধাগুলিকে একত্রিত করে, যা কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করে এবং একই সাথে মুনাফা অর্জন করে।

  1. ট্রেন্ড ট্র্যাকার স্বয়ংক্রিয়ভাবে ট্রেন্ড ট্র্যাক করতে পারে, শতাংশের ব্যবধানের সাথে একটি কিনুন এবং বন্ধ করুন লাইন সেট করে
  2. ঝুঁকি নিয়ন্ত্রণ করুন, ক্ষতির পরিমাণ সীমিত করুন
  3. ‘অর্থনীতিতে বিনিয়োগ করুন শুধু লাভের পর, ক্ষতির পর ক্ষতির হাত থেকে বাঁচুন’
  4. লাভের পর স্টপ লস লাইনে স্থানান্তর, লাভ লক করা

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

এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ

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

এই ঝুঁকিগুলি প্যারামিটার পরিবর্তন করে এড়ানো যায়, যেমন শতাংশের ব্যাপ্তির আকার পরিবর্তন করা, পজিশনের শর্তগুলি পরিবর্তন করা ইত্যাদি।

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

এই কৌশলটি আরও উন্নত করার সুযোগ রয়েছেঃ

  1. ট্রেন্ড ইন্ডিকেটর ব্যবহার করে ট্রেন্ডের দিকনির্দেশনা নির্ধারণের পরই পজিশন করা যায়
  2. মেশিন লার্নিং মডেল যুক্ত করুন যাতে ইনপুট লাইন এবং স্টপ লস লাইন আরও স্মার্ট হয়
  3. ঝুঁকি আরও কমিয়ে আনতে বিভিন্ন শর্তাদি সেট করতে পারেন
  4. আপনি বিভিন্ন সময় পরীক্ষা করতে পারেন এবং সর্বোত্তম পজিশন সময়কাল খুঁজে পেতে পারেন

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HermanBrummer 4 April 2021

strategy ("The Box Percent Strat", shorttitle="The Box", overlay = true)

///     Designed for LONG only on Daily, 2D or 3D Charts
///     Uses fixed investment risk amount, meaning you're willing to lose that amount per trade
///     Limit buy to not overpay

RiskPerTrade            = input(10000, "Risk losing this much per trade", tooltip="This calculates how much you will lose based on difference between the entry price and stop loss price")
TradeAboveMAFilterPer   = input(50, "The System won't trade if price is below this MA")

UpBoxSize               = (input(10, "Box size in %") * 0.01)+1 // 1.1 == 10% up
DnBoxSize               = 1-(input(10, "Box size in %") * 0.01) // 0.9 == 10% dn


var FirstBar            = close > 0 ? close : na
var FirstTop            = FirstBar * UpBoxSize
var FirstBot            = FirstBar * DnBoxSize


var top                 = sma(FirstTop, 1)
var bot                 = sma(FirstBot, 1)

///     The Box Calcs
if  high[2] > top
    top                 := top * UpBoxSize
    bot                 := bot * UpBoxSize
if  low[1]  < bot
    top                 := top * DnBoxSize
    bot                 := bot * DnBoxSize

 
plot(bot,   "Bot",      #ff0000) // Green
plot(top,   "Top",      #00ff00) // Red

mid                     = ((top-bot)/2)+bot 
plot(mid,   "Mid", color.gray)

TradeAboveMAFilter      = sma(close, TradeAboveMAFilterPer)
plot(TradeAboveMAFilter, "Trade AboveMAF Filter", color.yellow, 3, style=plot.style_circles)

// col = high[1] < top and high >= top ? color.white : na
// bgcolor(col)


///     Shares
RiskRange                   = close * abs(DnBoxSize - 1) // 0.9 - 1 == 1.10 // 10% abs so you don't get a neg number NB NB
Shares                      = RiskPerTrade / RiskRange 
//plot(close-RiskRange, "RiskRange", color.fuchsia)

Enter   =   high >= top
             and close[1] > TradeAboveMAFilter
             and strategy.opentrades[0] == strategy.opentrades[1]
             and strategy.opentrades[1] == strategy.opentrades[2] 
             and strategy.opentrades[2] == strategy.opentrades[3]
             and strategy.opentrades[3] == strategy.opentrades[4] 
             and strategy.opentrades[4] == strategy.opentrades[5]
             and strategy.opentrades[5] == strategy.opentrades[6]
             // won't enter if new positon was taken in the last 6 bars
             // need better code for this.

///     Buy & Sell
//  (new highs)    and  (Close above moving average filter) and (No new trades were taken receently)
if  Enter //(high >= top)  and  (close[1] > TradeAboveMAFilter) and strategy.opentrades[0] == strategy.opentrades[1] 
    strategy.order("En", strategy.long, qty=Shares, limit=top)//, stop=top)
    
//barcolor(strategy.position_size != 0 ? #00ff00 : color.gray)


// ///     If ONE Position THEN this Stop Because: 
// if  strategy.position_size == 1
//     strategy.exit("Ex", "En", stop=bot)
///     If it has more than one trad OPEN
if  strategy.position_size > 0
    strategy.exit("Ex", "En", stop=bot[2] )   // puts stop on old bot

//plot(strategy.position_avg_price, "Avg Price", color.yellow)