یہ حکمت عملی بنیادی طور پر مارکیٹ کے رجحان اور کھلی پوزیشنوں کا تعین کرنے کے لئے ہائی لو انڈیکس، چلتی اوسط انڈیکس اور سپر ٹرینڈ انڈیکس کو یکجا کرتی ہے۔
ہائی لو انڈیکس اس بات کا اندازہ لگاتا ہے کہ آیا کسی خاص مدت کے دوران تازہ ترین قیمت نے ایک نئی اونچائی یا نئی کم کردی ہے ، اور اسکور جمع کرتا ہے۔ جب اسکور بڑھتا ہے تو ، اس کی نمائندگی بولش فورسز کی مضبوطی ہوتی ہے۔ جب اسکور گرتا ہے تو ، اس کی نمائندگی bearish فورسز کی مضبوطی ہوتی ہے۔
موونگ ایوریج انڈیکس اس بات کا فیصلہ کرتا ہے کہ قیمت اوپر کی سیڑھی کی شکل میں ہے یا نیچے کی سیڑھی کی شکل میں ہے۔ جب موونگ ایوریج میں سیڑھی کی شکل میں اضافہ ہوتا ہے تو ، اس سے بولش فورسز کی مضبوطی ظاہر ہوتی ہے۔ جب اس میں سیڑھی کی شکل میں کمی ہوتی ہے تو ، اس سے bearish فورسز کی مضبوطی ظاہر ہوتی ہے۔
مارکیٹ کے رجحان کا تعین کرنے کے لئے ہائی لو انڈیکس اور موونگ ایوریج انڈیکس کے فیصلوں کو یکجا کریں ، اور پھر سپر ٹرینڈ انڈیکس کی سمت کے ساتھ مل کر تجارتی مواقع تلاش کریں۔ خاص طور پر ، جب ہائی لو انڈیکس اور موونگ ایوریج انڈیکس دونوں میں تیزی سے قوتیں ظاہر ہوتی ہیں اور سپر ٹرینڈ انڈیکس کی سمت نیچے کی طرف ہے تو ، طویل پوزیشنیں کھولیں۔ جب دونوں انڈیکس میں bearish قوتوں کی مضبوطی ظاہر ہوتی ہے اور سپر ٹرینڈ انڈیکس کی سمت اوپر کی طرف ہے تو ، مختصر پوزیشنیں کھولیں۔
ہائی لو انڈیکس مؤثر طریقے سے قیمت کی نقل و حرکت اور رفتار میں ہونے والی تبدیلیوں کا فیصلہ کرسکتا ہے۔ حرکت پذیر اوسط انڈیکس مؤثر طریقے سے قیمت کے رجحان کا تعین کرسکتا ہے۔ دونوں کا امتزاج مارکیٹ کی سمت کو زیادہ درست طریقے سے طے کرسکتا ہے۔
سپر ٹرینڈ انڈیکس کے ساتھ مل کر پوزیشن کھولنے سے پوزیشنوں کے قبل از وقت یا دیر سے کھولنے سے بچا جاسکتا ہے۔ سپر ٹرینڈ انڈیکس مؤثر طریقے سے قیمت کی تبدیلی کے مقامات کی نشاندہی کرسکتا ہے۔
متعدد اشارے ایک دوسرے کی تصدیق کرتے ہیں اور غلط سگنل کو کم کرتے ہیں۔
ہائی لو انڈیکس اور موونگ ایوریج انڈیکس کے غلط سگنل نقصان دہ پوزیشنوں کا باعث بن سکتے ہیں۔
ناقص شرکت اور سپر ٹرینڈ انڈیکس کی ناقص پیرامیٹرز کی ترتیبات غلط سگنل پیدا کرسکتی ہیں۔
تیزی سے رجحان کی تبدیلی اور غلط سٹاپ نقصان کی ترتیبات بڑے نقصانات کا باعث بن سکتی ہیں۔
خطرات کو اشارے کے پیرامیٹرز کو بہتر بنانے ، اسٹاپ نقصان کی قیمتوں کی سطح کو ایڈجسٹ کرنے وغیرہ سے کم کیا جاسکتا ہے۔
پیرامیٹرز کے بہترین مجموعہ کو تلاش کرنے کے لئے مختلف قسم کے حرکت پذیر اوسط اشارے کی جانچ کریں.
سگنل کو زیادہ مستحکم اور قابل اعتماد بنانے کے لئے ہائی لو انڈیکس اور موونگ اوسط انڈیکس کے پیرامیٹرز کو بہتر بنائیں۔
غلط سگنل کو کم کرنے کے لیے تصدیق کے لیے دیگر اشارے شامل کریں، جیسے MACD، KD وغیرہ۔
خودکار طور پر پیرامیٹرز اور سگنل وزن کو بہتر بنانے کے لئے مشین لرننگ الگورتھم شامل کریں.
کم مقبول مصنوعات کی تجارت سے بچنے کے لئے جذبات کا تجزیہ شامل کریں.
یہ حکمت عملی مارکیٹ کے رجحانات اور رفتار کو ہائی لو انڈیکس اور موونگ ایوریج انڈیکس کے ذریعہ طے کرتی ہے ، اور پھر سپر ٹرینڈ انڈیکس کا استعمال کرتے ہوئے سگنلز کو فلٹر کرتی ہے ، جب بولش اور بیرش فورسز ایک دوسرے کا سامنا کرتی ہیں اور سپر ٹرینڈ انڈیکس الٹ جاتا ہے تو پوزیشنیں کھولتی ہے۔ اس کے فوائد متعدد سگنل کی تصدیق اور پوزیشنوں کو بروقت کھولنے میں پڑتے ہیں ، جو خطرات کو مؤثر طریقے سے کنٹرول کرسکتے ہیں۔ موجودہ مسائل میں غلط سگنل اور رجحان کی غلط تشخیص شامل ہیں۔ حکمت عملی کو زیادہ مضبوط اور قابل اعتماد بنانے کے لئے پیرامیٹر کی اصلاح ، اسٹاپ نقصان کی ترتیبات ، سگنل فلٹرنگ وغیرہ کے ذریعے مختلف بہتری کی جاسکتی ہے۔
/*backtest start: 2023-10-21 00:00:00 end: 2023-11-20 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © HeWhoMustNotBeNamed //@version=4 strategy("AlignedMA and Cumulative HighLow Strategy", overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type = strategy.commission.percent, pyramiding = 1, commission_value = 0.01, calc_on_order_fills = true) MAType = input(title="Moving Average Type", defval="sma", options=["ema", "sma", "hma", "rma", "vwma", "wma"]) includePartiallyAligned = input(true) HighLowPeriod = input(50, minval=1,step=1) LookbackPeriod = input(10, minval=1,step=1) supertrendMult = input(2, minval=1, maxval=10, step=0.5) supertrendLength = input(10, minval=1) tradeDirection = input(title="Trade Direction", defval=strategy.direction.long, options=[strategy.direction.all, strategy.direction.long, strategy.direction.short]) backtestYears = input(10, minval=1, step=1) f_getMovingAverage(source, MAType, length)=> ma = sma(source, length) if(MAType == "ema") ma := ema(source,length) if(MAType == "hma") ma := hma(source,length) if(MAType == "rma") ma := rma(source,length) if(MAType == "vwma") ma := vwma(source,length) if(MAType == "wma") ma := wma(source,length) ma f_getMaAlignment(MAType, includePartiallyAligned)=> ma5 = f_getMovingAverage(close,MAType,5) ma10 = f_getMovingAverage(close,MAType,10) ma20 = f_getMovingAverage(close,MAType,20) ma30 = f_getMovingAverage(close,MAType,30) ma50 = f_getMovingAverage(close,MAType,50) ma100 = f_getMovingAverage(close,MAType,100) ma200 = f_getMovingAverage(close,MAType,200) upwardScore = 0 upwardScore := close > ma5? upwardScore+1:upwardScore upwardScore := ma5 > ma10? upwardScore+1:upwardScore upwardScore := ma10 > ma20? upwardScore+1:upwardScore upwardScore := ma20 > ma30? upwardScore+1:upwardScore upwardScore := ma30 > ma50? upwardScore+1:upwardScore upwardScore := ma50 > ma100? upwardScore+1:upwardScore upwardScore := ma100 > ma200? upwardScore+1:upwardScore upwards = close > ma5 and ma5 > ma10 and ma10 > ma20 and ma20 > ma30 and ma30 > ma50 and ma50 > ma100 and ma100 > ma200 downwards = close < ma5 and ma5 < ma10 and ma10 < ma20 and ma20 < ma30 and ma30 < ma50 and ma50 < ma100 and ma100 < ma200 upwards?1:downwards?-1:includePartiallyAligned ? (upwardScore > 5? 0.5: upwardScore < 2?-0.5:upwardScore>3?0.25:-0.25) : 0 f_getHighLowValue(HighLowPeriod)=> currentHigh = highest(high,HighLowPeriod) == high currentLow = lowest(low,HighLowPeriod) == low currentHigh?1:currentLow?-1:0 inDateRange = time >= timestamp(syminfo.timezone, year(timenow) - backtestYears, 01, 01, 0, 0) maAlignment = f_getMaAlignment(MAType,includePartiallyAligned) alignedMaIndex = sum(maAlignment,LookbackPeriod) maAlignmentDirection = alignedMaIndex > alignedMaIndex[1] ? 1 : alignedMaIndex < alignedMaIndex[1] ? -1 : 0 maAlignmentDirection := maAlignmentDirection == 0? nz(maAlignmentDirection[1],0):maAlignmentDirection highLowIndex = f_getHighLowValue(HighLowPeriod) cumulativeHighLowIndex = sum(highLowIndex,LookbackPeriod) hlDirection = cumulativeHighLowIndex > cumulativeHighLowIndex[1] ? 1 : cumulativeHighLowIndex < cumulativeHighLowIndex[1] ? -1 : 0 hlDirection := hlDirection == 0? nz(hlDirection[1],0):hlDirection [superTrend, dir] = supertrend(supertrendMult, supertrendLength) buyEntry = (dir == -1 and maAlignmentDirection == 1 and hlDirection == 1) sellEntry = (dir == 1 and maAlignmentDirection == -1 and hlDirection == -1) barColor = buyEntry?color.lime:sellEntry?color.orange:color.gray barcolor(barColor) // strategy.risk.allow_entry_in(tradeDirection) strategy.entry("Buy", strategy.long, when=barColor == color.lime and inDateRange, oca_name="oca_buy") strategy.close("Buy", when=dir == 1) strategy.entry("Sell", strategy.short, when=barColor == color.orange and inDateRange, oca_name="oca_sell") strategy.close("Sell", when=dir == -1)