মোমেন্টাম মূল্য প্রবণতা অনুসরণ কৌশল


সৃষ্টির তারিখ: 2023-11-13 16:44:58 অবশেষে সংশোধন করুন: 2023-11-13 16:44:58
অনুলিপি: 0 ক্লিকের সংখ্যা: 648
1
ফোকাস
1617
অনুসারী

মোমেন্টাম মূল্য প্রবণতা অনুসরণ কৌশল

ওভারভিউ

গতিশীল মূল্যের প্রবণতা ট্র্যাকিং কৌশলটি বিভিন্ন গতিশীল সূচক ব্যবহার করে মূল্যের প্রবণতা সনাক্ত করতে, প্রবণতার শুরুতে পজিশন স্থাপন করতে এবং স্টপ লস সেট করে মুনাফা লক করতে এবং মূল্যের প্রবণতা অনুসরণ করতে পারে।

কৌশল নীতি

গতিশীল মূল্য প্রবণতা ট্র্যাকিং কৌশল প্রধানত নিম্নলিখিত প্রযুক্তিগত সূচকগুলি ব্যবহার করেঃ

  1. ROC সূচক: এই সূচকটি একটি নির্দিষ্ট সময়ের মধ্যে দামের পরিবর্তনের গতির শতাংশ গণনা করে দামের গতিবিধি নির্ধারণ করে। যখন ROC ইতিবাচক হয়, তখন দাম বাড়ছে; যখন ROC নেতিবাচক হয়, তখন দাম কমছে। কৌশলটি ROC সূচকের মাধ্যমে দামের প্রবণতার দিক নির্ধারণ করে।

২. পল্টু শক্তি সূচক: এই সূচকটি পল্টু শক্তি এবং শূন্য শক্তির তুলনামূলক সম্পর্ককে প্রতিফলিত করে। পল্টু শক্তি> 0 মানে পল্টু শক্তি শূন্য শক্তির চেয়ে বড়, দাম বেড়ে যায়; বিপরীতে দাম কমে যায়। কৌশলটি এই সূচকটি পল্টু শক্তির তুলনা নির্ধারণ করতে এবং মূল্যের দিকনির্দেশের জন্য ব্যবহার করে।

৩. বিপরীত নির্দেশক: এই নির্দেশকটি মূল্য এবং লেনদেনের পরিমাণের বিপরীততার উপর ভিত্তি করে প্রবণতা বিপরীত হওয়ার বিষয়ে বিচার করে। কৌশলটি বিপরীত সংকেতকে প্রবেশের সময় হিসাবে ব্যবহার করে।

৪. ডোনচিয়ান চ্যানেলঃ এই সূচকটি দামের সর্বোচ্চ এবং সর্বনিম্ন মূল্যের মাধ্যমে একটি চ্যানেল তৈরি করে, চ্যানেলের সীমানা সমর্থন এবং প্রতিরোধের পয়েন্ট হিসাবে কাজ করতে পারে। কৌশলটি চ্যানেলের দিকনির্দেশের জন্য ব্যবহার করা হয়।

৫. মুভিং এভারেজঃ এই সূচকটি মূল প্রবণতার দিক প্রকাশ করে, যা মূল্যের সমর্থনকারী এবং নিম্নমুখী ঝড়কে সরিয়ে দেয়। এটি মূল প্রবণতার দিকনির্দেশের জন্য কৌশল হিসাবে ব্যবহৃত হয়।

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

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

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

  1. প্রবণতা নির্ণয়ের জন্য বিভিন্ন সূচক ব্যবহার করুন, যাতে ভুল নির্ণয়ের সম্ভাবনা কম থাকে।

  2. সূচকটি সঠিকভাবে ট্রেন্ডের বিপরীত দিক ধরার জন্য ব্যবহৃত হয়।

  3. চ্যানেল এবং চলমান গড়ের সমন্বয়ে মূল প্রবণতা নির্ণয় করা।

  4. স্টপ-অফ-লস পয়েন্ট সেট করুন, সময়মতো স্টপ-অফ করুন এবং পুনরুদ্ধার প্রসারিত এড়াতে।

  5. বিভিন্ন ধরনের ও বিভিন্ন সময়কালের লেনদেনের জন্য প্যারামিটার অনুযায়ী সামঞ্জস্যপূর্ণ।

  6. কৌশলগত লজিক পরিষ্কার এবং সহজে বোঝা যায়, যা পরে অপ্টিমাইজ করা যায়।

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

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

  1. একাধিক সূচক সমন্বয় বিচার ভুল সংকেত সম্ভাবনা বৃদ্ধি করে, প্যারামিটার অপ্টিমাইজেশান সূচক ওজন সমন্বয় প্রয়োজন।

  2. স্টপ পয়েন্টের সেটিং খুব ছোট হওয়া স্টপ পয়েন্টের সম্ভাবনা বাড়িয়ে তুলতে পারে, এবং খুব বড় হওয়া স্টপ পয়েন্টের প্রত্যাহারকে প্রসারিত করতে পারে। যুক্তিসঙ্গত স্টপ পয়েন্ট নির্ধারণের জন্য সামগ্রিক বিবেচনা প্রয়োজন।

  3. বিভিন্ন বাজার চক্রের প্যারামিটারগুলিকে সামঞ্জস্য করতে হবে, অন্ধভাবে প্রয়োগ করা বাজার পরিবেশের সাথে মানিয়ে নিতে পারে না।

  4. মাল্টি-ইউনিট সিমুলেটেড ট্রেডিং সমর্থন করার জন্য পর্যাপ্ত তহবিল প্রয়োজন, অন্যথায় অতিরিক্ত রিটার্ন পাওয়া কঠিন হবে।

  5. প্রোগ্রাম ট্রেডিং এর মধ্যে ফিটনেস ঝুঁকি রয়েছে এবং এর কার্যকারিতা সম্পর্কে অনিশ্চয়তা রয়েছে।

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

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

  1. সূচক প্যারামিটারগুলিকে অপ্টিমাইজ করুন এবং বিভিন্ন পিরিয়ড এবং জাতের প্যারামিটারগুলির সর্বোত্তম সমন্বয় খুঁজে বের করুন।

  2. মেশিন লার্নিং অ্যালগরিদম যুক্ত করুন, স্বয়ংক্রিয়ভাবে সর্বোত্তম প্যারামিটার খুঁজুন।

  3. বাজারের অবস্থার উপর নির্ভর করে স্টপ লস পয়েন্টগুলিকে সামঞ্জস্য করার জন্য একটি স্বনির্ধারিত স্টপ লস ম্যানেজমেন্ট যুক্ত করা হয়েছে।

  4. উচ্চ ফ্রিকোয়েন্সি ফ্যাক্টর এবং মৌলিক সূচকগুলির সংমিশ্রণে, কৌশলগুলিকে উন্নত করার জন্য আলফা।

  5. স্বয়ংক্রিয় পরীক্ষার কাঠামো তৈরি করা, প্যারামিটার সমন্বয় করা এবং লেনদেনের কার্যকারিতা যাচাই করা।

  6. রিস্ক ম্যানেজমেন্ট মডিউল চালু করা, পজিশনের আকার নিয়ন্ত্রণ করা, প্রত্যাহার হ্রাস করা।

  7. মডুলার লেনদেন এবং রিয়েল-টাইম যাচাইকরণ যুক্ত করুন এবং কৌশলগুলির স্থিতিশীলতা বাড়ান।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-11-05 00:00:00
end: 2023-11-09 00:00:00
period: 1m
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/
// © mbagheri746

//@version=4
strategy("Bagheri IG Ether v2", overlay=true, margin_long=100, margin_short=100)

TP = input(3000, minval = 1 , title ="Take Profit")
SL = input(2200, minval = 1 , title ="Stop Loss")


//_________________ RoC Definition _________________


rocLength = input(title="ROC Length", type=input.integer, minval=1, defval=186)
smoothingLength = input(title="Smoothing Length", type=input.integer, minval=1, defval=50)
src = input(title="Source", type=input.source, defval=close)

ma = ema(src, smoothingLength)
mom = change(ma, rocLength)

sroc = nz(ma[rocLength]) == 0
     ? 100
     : mom == 0
         ? 0
         : 100 * mom / ma[rocLength]

//srocColor = sroc >= 0 ? #0ebb23 : color.red
//plot(sroc, title="SROC", linewidth=2, color=srocColor, transp=0)
//hline(0, title="Zero Level", linestyle=hline.style_dotted, color=#989898)


//_________________ Donchian Channel _________________

length1 = input(53, minval=1, title="Upper Channel")
length2 = input(53, minval=1, title="Lower Channel")
offset_bar = input(91,minval=0, title ="Offset Bars")

upper = highest(length1)
lower = lowest(length2)

basis = avg(upper, lower)


DC_UP_Band = upper[offset_bar]
DC_LW_Band = lower[offset_bar]

l = plot(DC_LW_Band, style=plot.style_line, linewidth=1, color=color.red)
u = plot(DC_UP_Band, style=plot.style_line, linewidth=1, color=color.aqua)

fill(l,u,color = color.new(color.aqua,transp = 90))

//_________________ Bears Power _________________


wmaBP_period = input(65,minval=1,title="BearsP WMA Period")
line_wma = ema(close, wmaBP_period)

BP = low - line_wma


//_________________ Balance of Power _________________

ES_BoP=input(15, title="BoP Exponential Smoothing")
BOP=(close - open) / (high - low)

SBOP = rma(BOP, ES_BoP)

//_________________ Alligator _________________

//_________________ CCI _________________

//_________________ Moving Average _________________

sma_period = input(74, minval = 1 , title = "SMA Period")
sma_shift = input(37, minval = 1 , title = "SMA Shift")

sma_primary = sma(close,sma_period)

SMA_sh = sma_primary[sma_shift]

plot(SMA_sh, style=plot.style_line, linewidth=2, color=color.yellow)

//_________________ Long Entry Conditions _________________//

MA_Lcnd = SMA_sh > low and SMA_sh < high

ROC_Lcnd = sroc < 0

DC_Lcnd = open < DC_LW_Band

BP_Lcnd = BP[1] < BP[0] and BP[1] < BP[2]

BOP_Lcnd = SBOP[1] < SBOP[0]

//_________________ Short Entry Conditions _________________//

MA_Scnd = SMA_sh > low and SMA_sh < high

ROC_Scnd = sroc > 0

DC_Scnd = open > DC_UP_Band

BP_Scnd = BP[1] > BP[0] and BP[1] > BP[2]

BOP_Scnd = SBOP[1] > SBOP[0]

//_________________ OPEN POSITION __________________//

if strategy.position_size  == 0
    strategy.entry(id = "BUY", long = true , when = MA_Lcnd and ROC_Lcnd and DC_Lcnd and BP_Lcnd and BOP_Lcnd)
    strategy.entry(id = "SELL", long = false , when = MA_Scnd and ROC_Scnd and DC_Scnd and BP_Scnd and BOP_Scnd)

//_________________ CLOSE POSITION __________________//

strategy.exit(id = "CLOSE BUY", from_entry = "BUY", profit = TP , loss = SL)

strategy.exit(id = "CLOSE SELL", from_entry = "SELL" , profit = TP , loss = SL)

//_________________ TP and SL Plot __________________//

currentPL= strategy.openprofit
pos_price = strategy.position_avg_price
open_pos = strategy.position_size

TP_line = (strategy.position_size  > 0) ? (pos_price + TP/100) : strategy.position_size < 0 ? (pos_price - TP/100) : 0.0
SL_line = (strategy.position_size  > 0) ? (pos_price - SL/100) : strategy.position_size < 0 ? (pos_price + SL/100) : 0.0

// hline(TP_line, title = "Take Profit", color = color.green , linestyle = hline.style_dotted, editable = false)
// hline(SL_line, title = "Stop Loss", color = color.red , linestyle = hline.style_dotted, editable = false)


Tline = plot(TP_line != 0.0 ? TP_line : na , title="Take Profit", color=color.green, trackprice = true, show_last = 1)
Sline = plot(SL_line != 0.0 ? SL_line : na, title="Stop Loss", color=color.red, trackprice = true, show_last = 1)
Pline = plot(pos_price != 0.0 ? pos_price : na, title="Stop Loss", color=color.gray, trackprice = true, show_last = 1)


fill(Tline , Pline, color = color.new(color.green,transp = 90))
fill(Sline , Pline, color = color.new(color.red,transp = 90))

//_________________ Alert __________________//

//alertcondition(condition = , title = "Position Alerts", message = "Bagheri IG Ether\n Symbol: {{ticker}}\n Type: {{strategy.order.id}}")

//_________________ Label __________________//


inMyPrice           = input(title="My Price", type=input.float, defval=0)
inLabelStyle        = input(title="Label Style", options=["Upper Right", "Lower Right"], defval="Lower Right")

posColor = color.new(color.green, 25)
negColor = color.new(color.red, 25)
dftColor = color.new(color.aqua, 25)
posPnL   = (strategy.position_size != 0) ? (close * 100 / strategy.position_avg_price - 100) : 0.0
posDir   = (strategy.position_size  > 0) ? "long" : strategy.position_size < 0 ? "short" : "flat"
posCol   = (strategy.openprofit > 0) ? posColor : (strategy.openprofit < 0) ? negColor : dftColor
myPnL    = (inMyPrice != 0) ? (close * 100 / inMyPrice - 100) : 0.0

var label lb = na
label.delete(lb)
lb := label.new(bar_index, close,
   color=posCol,
   style=inLabelStyle=="Lower Right"?label.style_label_upper_left:label.style_label_lower_left,
   text=
      "╔═══════╗" +"\n" + 
      "Pos: "  +posDir +"\n" +
      "Pos Price: "+tostring(strategy.position_avg_price) +"\n" +
      "Pos PnL: "  +tostring(posPnL, "0.00") + "%" +"\n" +
      "Profit: "  +tostring(strategy.openprofit, "0.00") + "$" +"\n" +
      "TP: "  +tostring(TP_line, "0.00") +"\n" +
      "SL: "  +tostring(SL_line, "0.00") +"\n" +
      "╚═══════╝")