HMA اور CCI کمبو ٹرینڈ اسٹریٹجی کے بعد

مصنف:چاؤ ژانگ، تاریخ: 2023-09-11 15:02:37
ٹیگز:

یہ حکمت عملی HMA اور CCI کو یکجا کرتی ہے تاکہ رجحانات کی نشاندہی اور تجارت کی جاسکے۔ خاص طور پر ، جب HMA اوپر کی طرف ٹوٹ جاتا ہے اور CCI نچلے بینڈ سے تجاوز کرتا ہے تو یہ لمبا ہوجاتا ہے ، اور جب HMA نیچے کی طرف ٹوٹ جاتا ہے اور CCI اوپری بینڈ سے تجاوز کرتا ہے تو یہ مختصر ہوجاتا ہے۔ جب HMA مخالف سمت میں واپس ٹوٹ جاتا ہے یا CCI دہلیز کی حد میں داخل ہوتا ہے تو باہر نکل جاتا ہے۔

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

خلاصہ میں ، HMA اور CCI کمبو ٹرینڈ کی پیروی کرنے والی حکمت عملی مضبوط رجحانات کے مراحل کے دوران مہذب نتائج پیدا کرسکتی ہے۔ لیکن براہ راست تجارت میں ، ابھی بھی LIQR واقعات سے ہونے والے نقصانات کو کم کرنے کے لئے اسٹاپ نقصان پر توجہ کی ضرورت ہے۔ صرف پیرامیٹر کی مناسب اصلاح کے ساتھ ہی اس حکمت عملی کو طویل مدتی میں کامیابی کے ساتھ لاگو کیا جاسکتا ہے۔


/*backtest
start: 2023-08-11 00:00:00
end: 2023-09-10 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("HMA+CCI strategy", overlay=true)

src = input(close)
hmaLen = input(21)
cciLen = input(10)
cciLower = input(-50)
cciUpper = input(50)
cciLowerExit = input(-100)
cciUpperExit = input(100)
hmaExit = input(false)
cciExit = input(true)
//rciLower = input(-60)
//rciUpper = input(60)

// Backtest
fromyear = input(2017, 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(21, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

leverage = input(100)

term = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))

//itvs = input(9, "short interval")
//itvm = input(36, "middle interval")
//itvl = input(52, "long interval")
//src = input(close, "source")
//upperband=input(title="High line[%]",defval=80,type=integer)
//lowerband=input(title="Low line[%]",defval=-80,type=integer)

ord(seq, idx, itv) =>
    p = seq[idx]
    o = 1
    for i = 0 to itv - 1
        if p < seq[i]
            o := o + 1
    o

d(itv) =>
    sum = 0.0
    for i = 0 to itv - 1
        sum := sum + pow((i + 1) - ord(src, i, itv), 2)
    sum

rci(itv) => (1.0 - 6.0 * d(itv) / (itv * (itv * itv - 1.0))) * 100.0

hullma = wma(2*wma(src, hmaLen/2)-wma(src, hmaLen), round(sqrt(hmaLen)))
cci = cci(close, cciLen)
plot(hullma, color=hullma[1]>hullma?red:green, linewidth=4)
longCondition = hullma[1] < hullma and crossover(cci, cciLower) //rci < -60 // crossover(cci, cciLower)
shortCondition = hullma[1] > hullma and crossunder(cci, cciUpper) //rci > 60
exitLong1 = hmaExit ? hullma[1] > hullma : false
exitLong2 = cciExit ? cci > cciUpperExit : false
exitShort1 = hmaExit ? hullma[1] < hullma : false
exitShort2 = cciExit ? cci < cciLowerExit : false

if (longCondition and term)
    strategy.entry("Long",  strategy.long )
if (shortCondition and term)
    strategy.entry("Short",  strategy.short)
        
if strategy.position_size > 0 and term
    if (exitLong1 or exitLong2)
        strategy.close_all()
if strategy.position_size < 0 and term
    if (exitShort1 or exitShort2)
        strategy.close_all()

مزید