حکمت عملی پر عمل کرتے ہوئے موم بتیوں کی اوسط تعداد کا رجحان

مصنف:چاؤ ژانگ، تاریخ: 2023-09-16 19:04:02
ٹیگز:

جائزہ

یہ مضمون موم بتیوں کی گنتی پر مبنی رجحان کی پیروی کرنے والی حکمت عملی متعارف کراتا ہے۔ یہ موم بتیوں کی سمت گن کر رجحان کی سمت کا فیصلہ کرتا ہے اور موم بتیوں کی ایک مقررہ تعداد کے بعد داخل ہوتا ہے۔

حکمت عملی منطق

اسٹریٹیجی کی بنیاد مندرجہ ذیل ہے:

  1. مارکیٹ کے تعصب کا تعین کرنے کے لئے موم بتیوں کی سمتوں کی گنتی۔ جب N لگاتار موم بتیاں ایک ہی سمت میں جاتی ہیں تو ، ایک رجحان کی نشاندہی کی جاتی ہے۔

  2. اپ ٹرینڈز میں ، N مسلسل bearish موم بتیوں کے بعد طویل چلیں۔ ڈاؤن ٹرینڈز میں ، N مسلسل bullish موم بتیوں کے بعد مختصر چلیں۔

  3. چھوٹے N اقدار تیزی سے رجحانات کو پکڑنے لیکن whipsaws کے لئے زیادہ حساس ہیں.

  4. منافع اور سٹاپ نقصان کے فکسڈ پوائنٹس منافع اور کنٹرول خطرے میں مقفل.

  5. بند پوزیشنوں جب ریورس موم بتیاں ظاہر.

فوائد کا تجزیہ

اس حکمت عملی کے فوائد:

  1. براہ راست رجحان کا فیصلہ کرنے کے لئے سادہ موم بتیوں کی گنتی۔ لاگو کرنا آسان ہے۔

  2. رجحان کے ساتھ اندراجات رجحان کو اچھی طرح سے منتقل کرتی ہیں.

  3. فکسڈ اسٹاپ مؤثر طریقے سے خطرے کا انتظام کرتے ہیں۔

  4. ایڈجسٹ پیرامیٹرز مختلف مارکیٹ کے ماحول کے مطابق ہیں.

  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)

مزید