ট্রেন্ড-অনুসরণকারী মুভিং এভারেজ ক্যান্ডেলস্টিক গণনা কৌশল


সৃষ্টির তারিখ: 2023-09-16 19:04:02 অবশেষে সংশোধন করুন: 2023-09-16 19:04:02
অনুলিপি: 0 ক্লিকের সংখ্যা: 880
1
ফোকাস
1617
অনুসারী

ওভারভিউ

এই নিবন্ধটি একটি K-লাইন গণনা ভিত্তিক অনুসরণ প্রবণতা কৌশল সম্পর্কে আলোচনা করবে। এই কৌশলটি K-লাইনগুলির দিকনির্দেশনা পরিসংখ্যান করে, ট্রেডের গতিবিধি নির্ধারণ করে এবং স্থির রুট K-লাইনগুলির পরে প্রবেশ করে।

কৌশল নীতি

এই কৌশলটি নিম্নলিখিত নীতির উপর ভিত্তি করে তৈরি হয়েছেঃ

  1. পরিসংখ্যান K লাইন দিক, বিচার ঘটনা Bias ৷ যখন N রুট ক্রমাগত K লাইন দিক একই সময়ে, বিচার প্রবণতা গঠন ৷

  2. ঊর্ধ্বমুখী প্রবণতায়, যখন N ক্রমাগত শূন্য লাইন দেখা দেয় তখন বেশি করুন; নিম্নমুখী প্রবণতায়, যখন N ক্রমাগত সূক্ষ্ম লাইন দেখা দেয় তখন খালি করুন।

  3. N এর মান ছোট হলে, কৌশলটি ট্রেন্ডটি দ্রুত ধরতে পারে; কিন্তু N এর মান খুব ছোট হলে বাজারের ঝড়ের দ্বারা বিভ্রান্ত হওয়ার সম্ভাবনা বেশি থাকে।

  4. মুনাফা লক এবং ঝুঁকি নিয়ন্ত্রণের জন্য একটি স্থায়ী স্টপ-অফ স্টপ লস সেট করা যেতে পারে।

  5. বিপরীত K লাইন উপস্থিত হলে, পজিশন বন্ধ।

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

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

  1. K-লাইন পরিসংখ্যান ব্যবহার করে প্রবণতা নির্ণয় করুন, সহজ সরল, সহজেই পরিচালনা করুন।

  2. এই প্রবণতাগুলির মধ্যে একটি হল, “অনুসরণ করুন” এবং “অনুসরণ করুন” ।

  3. ফিক্সড স্টপ লস পয়েন্ট, যা কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করতে পারে।

  4. K লাইন গণনা পরামিতিগুলি বিভিন্ন বাজার পরিবেশে প্রযোজ্য।

  5. কৌশলগুলি সহজ এবং স্পষ্ট, পরিবর্তন এবং অপ্টিমাইজ করার জন্য সহজ।

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

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

  1. ঝড়ের সময়, কে-লাইন গণনা ভুল সংকেত দিতে পারে।

  2. ফিক্সড স্টপ লস পয়েন্টগুলি খুব বেশি কঠিন হতে পারে এবং পুরোপুরি মুনাফা অর্জন করতে পারে না।

  3. ভুলভাবে রিভার্সাল সিগন্যাল নির্ণয় করলে অকাল মৃত্যু হতে পারে।

  4. প্যারামিটারগুলি যথাযথভাবে সামঞ্জস্য করুন এবং পজিশনের আকার নিয়ন্ত্রণ করুন।

  5. ব্যবসায়ীরা গণনা প্যারামিটারগুলির যুক্তিসঙ্গততা সম্পর্কে সতর্কতা অবলম্বন করতে হবে।

সারসংক্ষেপ

এই কৌশলটি কে-লাইন পরিসংখ্যান এবং প্রবণতা অনুসরণের ধারণাগুলিকে একত্রিত করে। প্যারামিটারগুলি যুক্তিসঙ্গতভাবে সেট করা হলে, এটি ভাল প্রভাব ফেলতে পারে। তবে ব্যবসায়ীদের এখনও বাজারের পরিবেশকে সতর্কতার সাথে মূল্যায়ন করতে হবে এবং দীর্ঘমেয়াদী লাভ অর্জনের জন্য প্যারামিটারগুলি যথাযথভাবে সামঞ্জস্য করতে হবে।

কৌশল সোর্স কোড
/*backtest
start: 2023-08-16 00:00:00
end: 2023-09-15 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//@author=Daveatt

StrategyName = "BEST Candle Meter Strategy"
ShortStrategyName = "BEST Candle Meter Strategy"

// strategy(title=StrategyName, shorttitle=ShortStrategyName, overlay=true, 
//  pyramiding=0, default_qty_value=100, precision=7, currency=currency.USD,
//  commission_value=0.2,commission_type=strategy.commission.percent, initial_capital=10000)

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////// INPUTS ///////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

// TD Sequential approach would be setting bar_counter == 9
bar_counter = input(5, "Bar Counter",minval=1, step=1)

// if based on same candle
GreenCandle = close > open
RedCandle = close < open

// if based on previous candle open
GreenPrevCandle = close > open[1]
RedPrevCandle = close < open[1]

// conditons
barUP = GreenCandle
barDN = RedCandle

///////////////////////////////////////////////////////////////////////////////
////////////////////////////// COUNTERS ///////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
var barsFromUp = 0
var barsFromDn = 0
barsFromUp := barUP ? barsFromUp + 1 : 0
barsFromDn := barDN ? barsFromDn + 1 : 0

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////// PLOTS ///////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

plot_color = barsFromUp > 0 ? color.lime : color.red
//plot(barsFromUp, title="UP Histogram", color=plot_color, style=plot.style_histogram, linewidth=4)
//plot(barsFromDn, title="DN Histogram", color=plot_color, style=plot.style_histogram, linewidth=4)

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////// HLINE ///////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

//hline(9, '9 TD Sequential Line', linestyle=hline.style_solid, linewidth=2, color=color.black)
//hline(13, '12 TD Sequential Line', linestyle=hline.style_solid, linewidth=3, color=color.purple)

///////////////////////////////////////////////////////////////////////////////
/////////////////////////////// PLOTCHAR //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

// var _lbl_UP = label(na)
// if barsFromUp > 0
//     _lbl_UP := label.new(bar_index, close, tostring(barsFromUp, '#'), textcolor=color.green, style=label.style_none, yloc=yloc.price, xloc=xloc.bar_index, size=size.normal)

// var _lbl_DN = label(na)
// if barsFromDn > 0
//     _lbl_DN := label.new(bar_index, close, tostring(barsFromDn, '#'), textcolor=color.red, style=label.style_none, yloc=yloc.price, xloc=xloc.bar_index, size=size.normal)


//plotshape(barsFromUp > 0, "", shape.arrowup,      location.abovebar, color.green,     text="A")

///////////////////////////////////////////////////////////////////////////////
/////////////////////////////// ALERTS ////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

// alertcondition(barsFromUp == 9, title='🔔Sell 9 Alert🔔', message="Sell 9 Alert")
// alertcondition(barsFromDn == 9, title='🔔Buy 9 Alert🔔', message='Buy 9 Alert')
// alertcondition(barsFromUp > 9, title='🔔Sell > 9 Alert🔔', message="Sell > 9 Alert")
// alertcondition(barsFromDn > 9, title='🔔Buy > 9 Alert🔔', message='Buy > 9 Alert')

///////////////////////////////////////////////
//* Backtesting Period Selector | Component *//
///////////////////////////////////////////////


StartYear = input(2017, "Backtest Start Year",minval=1980)
StartMonth = input(1, "Backtest Start Month",minval=1,maxval=12)
StartDay = input(1, "Backtest Start Day",minval=1,maxval=31)
testPeriodStart = timestamp(StartYear,StartMonth,StartDay,0,0)

StopYear = input(2020, "Backtest Stop Year",minval=1980)
StopMonth = input(12, "Backtest Stop Month",minval=1,maxval=12)
StopDay = input(31, "Backtest Stop Day",minval=1,maxval=31)
testPeriodStop = timestamp(StopYear,StopMonth,StopDay,0,0)

testPeriod() => true

isLong  = barsFromUp == bar_counter
isShort = barsFromDn == bar_counter

long_entry_price    = valuewhen(isLong, close, 0)
short_entry_price   = valuewhen(isShort, close, 0)

sinceNUP = barssince(isLong)
sinceNDN = barssince(isShort)

buy_trend   = sinceNDN > sinceNUP
sell_trend  = sinceNDN < sinceNUP

//////////////////////////
//* Profit Component *//
//////////////////////////

//////////////////////////// MinTick ///////////////////////////
fx_pips_value = syminfo.type == "forex" ? syminfo.mintick*10 : 1

input_tp_pips = input(60, "Backtest Profit Goal (in USD)",minval=0)*fx_pips_value
input_sl_pips = input(30, "Backtest STOP Goal (in USD)",minval=0)*fx_pips_value

tp = buy_trend? long_entry_price + input_tp_pips : short_entry_price - input_tp_pips
sl = buy_trend? long_entry_price - input_sl_pips : short_entry_price + input_sl_pips

plot_tp = buy_trend and high[1] <= tp ? tp : sell_trend and low[1] <= tp ? tp : na
plot_sl = buy_trend and low[1] >= sl ? sl : sell_trend and high[1] >= sl ? sl : na

plot(plot_tp, title="TP", style=plot.style_circles, linewidth=3, color=color.blue)
plot(plot_sl, title="SL", style=plot.style_circles, linewidth=3, color=color.red)

longClose   = isShort
shortClose  = isLong

if testPeriod()
    strategy.entry("Long", 1, when=isLong)
    strategy.close("Long", when=longClose )
    strategy.exit("XL","Long", limit=tp,  when=buy_trend, stop=sl)

if testPeriod()
    strategy.entry("Short", 0,  when=isShort)
    strategy.close("Short", when=shortClose )
    strategy.exit("XS","Short", when=sell_trend, limit=tp, stop=sl)