AlexInc's Bar v1.2 بریک آؤٹ جمع کرنے کی حکمت عملی بامعنی بار فلٹرنگ پر مبنی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-03 16:30:16
ٹیگز:

img

جائزہ

یہ حکمت عملی K لائنوں کی معنی خیز بار کا فیصلہ کرکے رجحانات کی پیش گوئی کرتی ہے ، اور بریک آؤٹ سگنلز کے ساتھ مل کر تجارتی سگنل تیار کرتی ہے۔ یہ حکمت عملی بہت چھوٹی K لائنوں کو فلٹر کرتی ہے اور صرف معنی خیز بار کا تجزیہ کرتی ہے تاکہ کثرت سے معمولی اتار چڑھاؤ سے مداخلت سے بچنے کے ل the ، سگنل کو ہموار اور زیادہ قابل اعتماد بنایا جاسکے۔

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

  1. موجودہ K- لائن کے جسم کی لمبائی کا فیصلہ کریں۔ اگر یہ پچھلی 6 K- لائنوں کے اوسط جسم کی قیمت سے 3 گنا زیادہ ہے تو ، اسے معنی خیز بار سمجھا جاتا ہے۔

  2. اگر لمبے جسم کے ساتھ لگاتار 3 معنی خیز سلاخیں ہیں تو ، اسے لمبا اشارہ سمجھا جاتا ہے۔ اگر مختصر جسم کے ساتھ لگاتار 3 سلاخیں ہیں تو ، اسے مختصر اشارہ سمجھا جاتا ہے۔

  3. سگنل کا جائزہ لیتے ہوئے ، اگر قیمت پچھلے اعلی یا کم نقطہ کو توڑ دیتی ہے تو ، اضافی تجارتی سگنل بھی تیار کیے جائیں گے۔

  4. ایس ایم اے کو فلٹر کے طور پر استعمال کریں۔ صرف اس وقت پوزیشن کھولیں جب قیمت ایس ایم اے کو توڑ دے۔

  5. پوزیشن لینے کے بعد، اگر قیمت دوبارہ انٹری پوائنٹ یا ایس ایم اے کو توڑتی ہے، تو پوزیشن بند کریں۔

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

  1. رجحانات کا اندازہ کرنے کے لئے "معقول بار" کا استعمال غیر ضروری مداخلت کو فلٹر کر سکتا ہے اور واضح سگنل بنا سکتا ہے۔

  2. رجحان سگنل اور بریکآؤٹ سگنل کا امتزاج سگنل کے معیار کو بہتر بناتا ہے اور جھوٹے سگنل کو کم کرتا ہے۔

  3. ایس ایم اے فلٹرز اعلی خریدنے اور کم فروخت کرنے سے گریز کرتے ہیں۔ صرف بند سے نیچے خریدیں ، بند سے اوپر فروخت کریں ، اس طرح وشوسنییتا کو بہتر بنائیں۔

  4. منافع لینے اور سٹاپ نقصان کی شرائط کا تعین بروقت رسک کنٹرول کو آسان بناتا ہے۔

خطرے کا تجزیہ

  1. یہ جارحانہ حکمت عملی صرف 3 بار سے سگنل کا جائزہ لیتی ہے اور قلیل مدتی اتار چڑھاؤ کو رجحان کی تبدیلی کے طور پر غلط اندازہ لگاسکتی ہے۔

  2. بیک ٹسٹنگ کے اعداد و شمار ناکافی ہیں۔ نتائج مصنوعات اور وقت کے فریم کے درمیان مختلف ہوسکتے ہیں۔

  3. راتوں رات پوزیشن کنٹرول نہیں، راتوں رات ہولڈنگ کے خطرے کے ساتھ.

اصلاح کی ہدایات

  1. مزید معنی خیز سلاخوں کے لئے پیرامیٹرز کو بہتر بنائیں ، جیسے فیصلہ کردہ سلاخوں کی تعداد اور معنی خیز کی تعریف۔

  2. زیادہ سے زیادہ پیرامیٹرز تلاش کرنے کے لئے مختلف ٹائم فریم کے اثرات کی جانچ کریں.

  3. خطرات کو کنٹرول کرنے کے لئے اے ٹی آر پر مبنی سٹاپ نقصان شامل کریں.

  4. رات بھر پوزیشن کنٹرول شامل کرنے پر غور کریں.

خلاصہ

یہ حکمت عملی معنی خیز بار فلٹرنگ اور رجحان فیصلے کا استعمال کرتی ہے تاکہ بریک آؤٹ کے ساتھ مل کر تجارتی سگنل تیار کیے جاسکیں۔ یہ واضح اور زیادہ قابل اعتماد سگنل کے ل unnecessary غیر ضروری معمولی اتار چڑھاؤ کو مؤثر طریقے سے فلٹر کرتی ہے۔ تاہم ، مختصر فیصلے کے دورانیوں کی وجہ سے ، کچھ غلط فیصلے کے خطرات موجود ہیں۔ پیرامیٹر کی اصلاح اور رسک کنٹرول کے ذریعے مزید بہتری لائی جاسکتی ہے۔


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//AlexInc
//2018

// закрытие - вычислить и в течение скольки-то баров его добиваться
// если нет, то по первому противоположному
// по стоп-лоссу в любом случае - стоп вычислить

//@version=2
strategy(title = "AlexInc's Bar v1.2", shorttitle = "AlexInc Bar 1.2", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usemar = input(false, defval = false, title = "Use Martingale")
tryprofitbars = input(6, defval = 6, minval = 1, maxval = 100, title = "Number of candles to take profit anyway")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")

useSMAfilter = input(false, defval = true, title = "Use SMA filter")
SMAlimit = input(10, defval = 10, minval = 1, maxval = 30, title = "SMA filter limit")
bodysizeMlt = input(3, defval = 3, minval = 1, maxval = 10, title = "Body Size Multiplier")
meanfulbardiv = input(3, title = "Meanful Bar size Divider")

showarr = input(false, defval = false, title = "Show Arrows")
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")

//SMA #
index = 0
index := barstate.isfirst ==true ? 0 : nz(index[1])+1

buyindex = 0
buyindex := barstate.isfirst ==true ? 0 : buyindex[1]

sellindex = 0
sellindex := barstate.isfirst ==true ? 0 : sellindex[1]

//predictprofit = barstate.isfirst ==true ? 0 : predictprofit[1]

smafilter = sma(close, SMAlimit)

//Body
body = abs(close - open)
range = abs(high - low)
abody = sma(body, 6)

max3 = 0
if body >= body[1] and body >= body[2]
    max3 := body
else
    if body[1] >= body and body[1] >= body[2]
        max3 := body[1]
    else 
        if body[2] >= body and body[2] >= body[1]
            max3 := body[2]

prevmax3 = 0
prevmax3 := nz(max3[1])


bar = close > open ? 1 : close < open ? -1 : 0
firstbullishopen = 0
firstbullishopen := bar == 1 and bar[1] != 1 ? open : nz(firstbullishopen[1])
firstbearishopen = 0
firstbearishopen := bar == -1 and bar[1] != -1 ? open : nz(firstbearishopen[1])

meanfulbar = body > abody / meanfulbardiv

meanfulbearish = 0
meanfulbearish := nz(meanfulbearish[1])

meanfulbullish = 0
meanfulbullish := nz(meanfulbullish[1])

if meanfulbar
    if bar == 1
        meanfulbullish := 1 + meanfulbullish
        meanfulbearish := 0
    else
        if bar == -1
            meanfulbearish := 1 + meanfulbearish
            meanfulbullish := 0


plot(min(low, high)-10, style=circles, color = meanfulbar ? yellow:black, linewidth=3)

//Signals
up1 = (meanfulbearish >= 3) and (close < firstbullishopen or 1) and (strategy.position_size == 0 or close < strategy.position_avg_price) and body > abody / 5 and (useSMAfilter == false or close < smafilter)
if up1 == true
	predictprofit = sma(body, 3)
up2 = sma(bar, 1) == -1 and body > prevmax3 * bodysizeMlt and (strategy.position_size == 0 or close < strategy.position_avg_price) and body > abody / 5 and (useSMAfilter == false or close < smafilter)
if up2 == true
	predictprofit = body * 0.5
plot(min(low, high), style=circles, color = up1?blue:up2?green:gray, linewidth=3)

dn1 = (meanfulbullish >= 3) and (close > firstbearishopen or 1)  and (strategy.position_size == 0 or close > strategy.position_avg_price) and body > abody / 5 and (useSMAfilter==false or close > smafilter)
if dn1 ==true 
	predictprofit = sma(body, 3)
dn2 = sma(bar, 1) == 1 and body > prevmax3 * bodysizeMlt and (strategy.position_size == 0 or close > strategy.position_avg_price) and body > abody / 5 and (useSMAfilter==false or close > smafilter)
if dn2 ==true	
	predictprofit = body * 0.5
plot(max(low, high), style=circles, color = dn1?blue:dn2?green:gray, linewidth=3)


exit = (((strategy.position_size > 0 and bar == 1 ) or (strategy.position_size < 0 and bar == -1)) and body > abody / 2 )
// or index >= buyindex (or sellindex) + tryprofitbars


//Arrows
col = exit ? black : up1 or dn1 ? blue : up2 or dn2 ? red : na
needup = up1 or up2
needdn = dn1 or dn2
needexitup = exit and strategy.position_size < 0
needexitdn = exit and strategy.position_size > 0
plotarrow(showarr and needup ? 1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needdn ? -1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needexitup ? 1 : na, colorup = black, colordown = black, transp = 0)
plotarrow(showarr and needexitdn ? -1 : na, colorup = black, colordown = black, transp = 0)


//Trading
profit = exit ? ((strategy.position_size > 0 and close > strategy.position_avg_price) or (strategy.position_size < 0 and close < strategy.position_avg_price)) ? 1 : -1 : profit[1]
mult = usemar ? exit ? profit == -1 ? mult[1] * 2 : 1 : mult[1] : 1
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 * mult : lot[1]

if up1 or up2
    if strategy.position_size < 0
        strategy.close_all()
		buyindex = index
		sellindex = index
	if strategy.position_size == 0
		buyindex = index
		
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot )

if dn1 or dn2
    if strategy.position_size > 0
        strategy.close_all()
		buyindex = index
		sellindex = index
	if strategy.position_size == 0
		sellindex = index
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot )
    
if  exit
    strategy.close_all()

مزید