ملٹی انڈیکیٹر اسکورنگ ٹریڈنگ کی حکمت عملی


تخلیق کی تاریخ: 2023-11-07 16:16:45 آخر میں ترمیم کریں: 2023-11-07 16:16:45
کاپی: 0 کلکس کی تعداد: 730
1
پر توجہ دیں
1617
پیروکار

ملٹی انڈیکیٹر اسکورنگ ٹریڈنگ کی حکمت عملی

جائزہ

کثیر اشارے کی درجہ بندی کی تجارتی حکمت عملی تکنیکی اشارے کی درجہ بندی کو مربوط کرکے ، رجحان کی سمت اور طاقت کی نشاندہی کرکے ، خود کار طریقے سے تجارت کو انجام دیتی ہے۔ اس حکمت عملی میں اشارے کے ایک گروپ پر جامع غور کیا گیا ہے ، جس میں Ichimoku Cloud ، HMA ، RSI ، Stoch ، CCI اور MACD شامل ہیں۔ ہر اشارے کے نتائج کے مطابق ، اس کی درجہ بندی کریں ، اور پھر تمام اشارے کی درجہ بندی کو اکٹھا کریں ، تاکہ ایک مجموعی درجہ بندی تشکیل دی جاسکے۔ جب مجموعی طور پر درجہ بندی طے شدہ حد سے زیادہ ہو تو زیادہ کام کریں ، جب طے شدہ حد سے کم ہو۔

حکمت عملی کا اصول

اس حکمت عملی کے کئی حصے ہیں:

  1. اشارے کے ایک سیٹ کا حساب لگائیں ، بشمول Ichimoku Cloud ، Hull Moving Average ، Relative Strength and Weakness ، Randomization ، Commodity Channel Index ، اور Moving Average Sensitivity۔

  2. ہر ایک اشارے کے لئے درجہ بندی کریں۔ جب اشارے کثیر سر سگنل دکھاتا ہے تو مثبت دیا جاتا ہے ، اور خالی سر سگنل کے لئے منفی دیا جاتا ہے۔

  3. تمام انڈیکیٹر اسکور کو جمع اور اوسط کریں ، اور ایک جامع اسکور حاصل کریں۔

  4. جامع اسکور کا موازنہ پہلے سے طے شدہ حد سے کیا جاتا ہے تاکہ مجموعی طور پر رجحان کی سمت کا اندازہ لگایا جاسکے۔ اسکور حد سے زیادہ ہونے پر زیادہ نظر آتے ہیں اور حد سے کم ہونے پر نظرانداز ہوتے ہیں۔

  5. جب آپ زیادہ دیکھتے ہیں تو زیادہ کریں ، جب آپ کم دیکھتے ہیں تو کم کریں۔

  6. اے ٹی آر اشارے کے ذریعہ اسٹاپ نقصان کا تعین۔

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

طاقت کا تجزیہ

یہ حکمت عملی مندرجہ ذیل فوائد رکھتی ہے:

  1. متعدد اشارے جامع فیصلے ، سگنل کی درستگی کو بہتر بنائیں۔ ایک ہی اشارے غلط فیصلے کا باعث بن سکتا ہے ، اس حکمت عملی سے اوسط درجے کی طرف سے ، جعلی سگنل کو مؤثر طریقے سے فلٹر کیا جاسکتا ہے۔

  2. اشارے کی طاقت کا استعمال کرتے ہوئے ، رجحانات اور موجودہ طاقت کی نشاندہی کریں۔ مثال کے طور پر ، Ichimoku بادل بڑے رجحانات کا تعین کرتا ہے ، اسٹوک اوور بیئر اوور سیل کا تعین کرتا ہے۔

  3. خود کار طریقے سے ٹریڈنگ جذباتی اثرات سے بچنے کے لئے، حکمت عملی سگنل پر سختی سے عملدرآمد.

  4. اے ٹی آر کا استعمال کرتے ہوئے اسٹاپ نقصان کا فائدہ لگانا ، جو خطرے پر قابو پانے میں مددگار ہے۔

  5. مختلف اقسام کے لئے پیرامیٹرز کو ایڈجسٹ کیا جاسکتا ہے۔ اشارے کے پیرامیٹرز اور درجہ بندی کی حد کو بہتر بنایا جاسکتا ہے۔

  6. حکمت عملی کی منطق سادہ اور واضح ہے، اسے سمجھنے اور تبدیل کرنے میں آسانی ہے۔

خطرے کا تجزیہ

اس حکمت عملی میں مندرجہ ذیل خطرات بھی ہیں:

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

  2. جب اشارے غلط سگنل دیتے ہیں تو ، اسکور اوسط سے بھی نقصان سے مکمل طور پر بچا نہیں جاسکتا ہے۔

  3. اے ٹی آر اسٹاپ نقصان بہت قریب یا بہت نرمی ہوسکتا ہے ، جس کو نسل کی خصوصیات کے مطابق ایڈجسٹ کرنے کی ضرورت ہے۔

  4. ضرورت سے زیادہ اصلاح کے نتیجے میں پیدا ہونے والی منحنی فٹنس سے بچنے کی ہے۔ مختلف اقسام اور وقت کی مدت میں حکمت عملی کی استحکام کی جانچ کی جانی چاہئے۔

  5. اس کے نتیجے میں، آپ کو آپ کے ٹریڈنگ کی شرح میں اضافہ ہوسکتا ہے، اور آپ کے ٹریڈنگ کے اخراجات آپ کی آمدنی کو متاثر کرسکتے ہیں.

اصلاح کی سمت

اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:

  1. مزید اشارے کے مجموعے کی جانچ کریں تاکہ کسی خاص قسم کے لئے بہترین اشارے کا انتخاب کیا جاسکے۔

  2. ہر اشارے کے لئے درجہ بندی کے وزن کو ایڈجسٹ کریں ، درجہ بندی کے الگورتھم کو بہتر بنائیں۔

  3. متحرک طور پر اے ٹی آر پیرامیٹرز کو ایڈجسٹ کریں تاکہ مارکیٹ میں اتار چڑھاؤ کے ل stop اسٹاپ نقصان کو زیادہ موزوں بنایا جاسکے

  4. ٹریڈنگ فلٹرنگ کی شرائط شامل کریں ، غیر ضروری ٹریڈنگ کی تعدد کو کم کریں۔ جیسے رجحان فلٹرنگ ، ٹریڈنگ حجم فلٹرنگ وغیرہ

  5. مرحلہ وار اصلاح کے ذریعے پیرامیٹرز کی اصلاح کی حد تلاش کریں ، اور پھر بہترین پیرامیٹرز کا مجموعہ تلاش کرنے کے لئے بے ترتیب / گرڈ کی اصلاح کریں۔

  6. حکمت عملی کی استحکام کو متعدد نسلوں اور متعدد ٹائم فریموں میں جانچیں ، زیادہ سے زیادہ اصلاح سے گریز کریں۔

  7. دوسرے موثر تجارتی حکمت عملیوں کے ساتھ مل کر حکمت عملی کا مجموعہ بنائیں۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-10-31 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Ichi HMA RSI Stoch CCI MACD Technicals Rating Strategy",shorttitle="TRSv420",overlay=true,default_qty_type=strategy.percent_of_equity,default_qty_value=50,commission_type=strategy.commission.percent,commission_value=0.05)
res = input("", title="Indicator Timeframe", type=input.resolution)
Period = input(defval = 14, title = "Period Length", minval = 2)
MinSignalStrength= input(title="Minimum Signal Strength", type=input.float, defval=1.1, minval=0.00, maxval=2.00, step=0.1)
Price = input(defval=open, title="Price Source", type=input.source)
Use_Only_Buy= input(false, title = "Use ONLY BUY mode",type=input.bool)
Use_Only_Sell= input(false, title = "Use ONLY SELL mode",type=input.bool)
Use_ATR_SL_TP= input(true, title = "Use ATR for TP & SL",type=input.bool)
Use_Ichimoku= input(true, title = "Use Ichimoku",type=input.bool)
Use_HMA= input(true, title = "Use Hull MA",type=input.bool)
Use_RSI= input(true, title = "Use RSI",type=input.bool)
Use_Stoch= input(true, title = "Use Stoch",type=input.bool)
Use_CCI= input(true, title = "Use CCI",type=input.bool)
Use_MACD= input(true, title = "Use MacD",type=input.bool)
// Ichimoku Cloud
donchian(len) => avg(lowest(len), highest(len))
ichimoku_cloud() =>
    conversionLine = donchian(9)
    baseLine = donchian(26)
    leadLine1 = avg(conversionLine, baseLine)
    leadLine2 = donchian(52)
    [conversionLine, baseLine, leadLine1, leadLine2]
[IC_CLine, IC_BLine, IC_Lead1, IC_Lead2] = ichimoku_cloud()    
calcRatingMA(ma, src) => na(ma) or na(src) ? na : (ma == src ? 0 : ( ma < src ? 1 : -1 ))
calcRating(buy, sell) => buy ? 1 : ( sell ? -1 : 0 )
calcRatingAll() =>
    //============== HMA =================
    HMA10 = hma(Price, Period)
    HMA20 = hma(Price, 20)
    HMA30 = hma(Price, 30)
    HMA50 = hma(Price, 50)
    HMA100 = hma(Price, 100)
    HMA200 = hma(Price, 200)
    // Relative Strength Index, RSI
    RSI = rsi(Price,14)
    // Stochastic
    lengthStoch = 14
    smoothKStoch = 3
    smoothDStoch = 3
    kStoch = sma(stoch(Price, high, low, lengthStoch), smoothKStoch)
    dStoch = sma(kStoch, smoothDStoch)
    // Commodity Channel Index, CCI
    CCI = cci(Price, 20)
    // Moving Average Convergence/Divergence, MACD
    [macdMACD, signalMACD, _] = macd(Price, 12, 26, 9)
    // -------------------------------------------
    PriceAvg = hma(Price, Period)
    DownTrend = Price < PriceAvg
    UpTrend = Price > PriceAvg
    float ratingMA = 0
    float ratingMAC = 0
    if(Use_HMA)
        if not na(HMA10)
            ratingMA := ratingMA + calcRatingMA(HMA10, Price)
            ratingMAC := ratingMAC + 1
        if not na(HMA20)
            ratingMA := ratingMA + calcRatingMA(HMA20, Price)
            ratingMAC := ratingMAC + 1
        if not na(HMA30)
            ratingMA := ratingMA + calcRatingMA(HMA30, Price)
            ratingMAC := ratingMAC + 1
        if not na(HMA50)
            ratingMA := ratingMA + calcRatingMA(HMA50, Price)
            ratingMAC := ratingMAC + 1
        if not na(HMA100)
            ratingMA := ratingMA + calcRatingMA(HMA100, Price)
            ratingMAC := ratingMAC + 1
        if not na(HMA200)
            ratingMA := ratingMA + calcRatingMA(HMA200, Price)
            ratingMAC := ratingMAC + 1
    if(Use_Ichimoku)
        float ratingIC = na
        if not (na(IC_Lead1) or na(IC_Lead2) or na(Price) or na(Price[1]) or na(IC_BLine) or na(IC_CLine))
            ratingIC := calcRating(
             IC_Lead1 > IC_Lead2 and Price > IC_Lead1 and Price < IC_BLine and Price[1] < IC_CLine and Price > IC_CLine,
             IC_Lead2 > IC_Lead1 and Price < IC_Lead2 and Price > IC_BLine and Price[1] > IC_CLine and Price < IC_CLine)
        if not na(ratingIC)
            ratingMA := ratingMA + ratingIC
            ratingMAC := ratingMAC + 1
    ratingMA := ratingMAC > 0 ? ratingMA / ratingMAC : na
    float ratingOther = 0
    float ratingOtherC = 0
    if(Use_RSI)
        ratingRSI = RSI
        if not(na(ratingRSI) or na(ratingRSI[1]))
            ratingOtherC := ratingOtherC + 1
            ratingOther := ratingOther + calcRating(ratingRSI < 30 and ratingRSI[1] < ratingRSI, ratingRSI > 70 and ratingRSI[1] > ratingRSI)
    if(Use_Stoch)
        if not(na(kStoch) or na(dStoch) or na(kStoch[1]) or na(dStoch[1]))
            ratingOtherC := ratingOtherC + 1
            ratingOther := ratingOther + calcRating(kStoch < 20 and dStoch < 20 and kStoch > dStoch and kStoch[1] < dStoch[1], kStoch > 80 and dStoch > 80 and kStoch < dStoch and kStoch[1] > dStoch[1])
    if(Use_CCI)
        ratingCCI = CCI
        if not(na(ratingCCI) or na(ratingCCI[1]))
            ratingOtherC := ratingOtherC + 1
            ratingOther := ratingOther + calcRating(ratingCCI < -100 and ratingCCI > ratingCCI[1], ratingCCI > 100 and ratingCCI < ratingCCI[1])
    if(Use_MACD)
        if not(na(macdMACD) or na(signalMACD))
            ratingOtherC := ratingOtherC + 1
            ratingOther := ratingOther + calcRating(macdMACD > signalMACD, macdMACD < signalMACD)
    ratingOther := ratingOtherC > 0 ? ratingOther / ratingOtherC : na
    float ratingTotal = 0
    float ratingTotalC = 0
    if not na(ratingMA)
        ratingTotal := ratingTotal + ratingMA
        ratingTotalC := ratingTotalC + 1
        ratingTotal := ratingTotal + ratingOther
        ratingTotalC := ratingTotalC + 1
    ratingTotal := ratingTotalC > 0 ? ratingTotal / ratingTotalC : na
    [ratingTotal, ratingOther, ratingMA, ratingOtherC, ratingMAC]
[ratingTotal, ratingOther, ratingMA, ratingOtherC, ratingMAC]  = security(syminfo.tickerid, res, calcRatingAll(), lookahead=false)
tradeSignal = ratingTotal+ratingOther+ratingMA
dynSLpoints(factor) => factor * atr(14) / syminfo.mintick
if not (Use_Only_Sell)
    strategy.entry("long", strategy.long, when = tradeSignal > MinSignalStrength)
if not (Use_Only_Buy)    
    strategy.entry("short", strategy.short, when = tradeSignal < -MinSignalStrength)
if(Use_ATR_SL_TP)
    strategy.exit("sl/tp", loss = dynSLpoints(3), trail_points = dynSLpoints(5), trail_offset = dynSLpoints(2))