اعلی-کم اشارے اور متحرک اوسط اشارے کی حکمت عملی


تخلیق کی تاریخ: 2023-11-21 15:19:35 آخر میں ترمیم کریں: 2023-11-21 15:19:35
کاپی: 2 کلکس کی تعداد: 648
1
پر توجہ دیں
1617
پیروکار

اعلی-کم اشارے اور متحرک اوسط اشارے کی حکمت عملی

جائزہ

اس حکمت عملی میں مارکیٹ کے رجحانات کا اندازہ لگانے کے لئے اعلی ، کم ، اوسط اور سپر ٹرینڈ اشارے کا استعمال کیا جاتا ہے۔

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

  1. اعلی اور کم کے اشارے کے ذریعہ یہ فیصلہ کریں کہ آیا حالیہ ایک خاص دور میں قیمت نے نئی اونچائی یا نئی کم پیدا کی ہے ، اور اسکور جمع کریں۔ جب اسکور بڑھتا ہے تو ، کثیر سر قوت میں اضافہ ہوتا ہے۔ جب اسکور کم ہوتا ہے تو ، خالی سر قوت میں اضافہ ہوتا ہے۔

  2. اوسط لائن کے اشارے کے ذریعہ ، یہ فیصلہ کریں کہ آیا قیمت اوپر کی طرف سے نیچے کی طرف ایک سیڑھی کے اوپر کی طرف ہے یا نیچے کی طرف ایک سیڑھی کے نیچے کی طرف ہے۔ جب اوسط لائن میں سیڑھی کی طرح اضافہ ہوتا ہے تو ، کثیر جہتی طاقت میں اضافہ ہوتا ہے۔ جب اوسط لائن میں سیڑھی کی طرح کمی ہوتی ہے تو ، اس کا مطلب یہ ہوتا ہے کہ فضائی طاقت میں اضافہ ہوتا ہے۔

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

اسٹریٹجک فوائد

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

  2. سپر ٹرینڈ اشارے کے ساتھ مل کر ذخیرہ اندوزی کی جاتی ہے ، تاکہ ذخیرہ اندوزی سے پہلے یا بعد میں بچایا جاسکے۔ سپر ٹرینڈ اشارے قیمتوں میں تبدیلی کی موثر شناخت کرسکتے ہیں۔

  3. متعدد اشارے ایک دوسرے کی توثیق کرتے ہیں ، جعلی سگنل کو کم کرتے ہیں۔

اسٹریٹجک رسک

  1. اگر اعلی ، کم اور اوسط اشارے غلط سگنل دیتے ہیں تو ، اس سے نقصان کا خطرہ ہوتا ہے۔

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

  3. اگر رجحان بہت تیزی سے تبدیل ہوجاتا ہے تو ، اسٹاپ نقصان کی غلط ترتیب سے زیادہ نقصان ہوسکتا ہے۔

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

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

  1. مختلف قسم کے اوسط لکیری اشارے کی جانچ کر سکتے ہیں، بہترین پیرامیٹرز کا مجموعہ تلاش کرنے کے لئے.

  2. اعلی اور کم اشارے اور اوسط اشارے کے پیرامیٹرز کو بہتر بنایا جاسکتا ہے ، تاکہ سگنل زیادہ مستحکم اور قابل اعتماد ہو۔

  3. دیگر اشارے کے ساتھ مل کر تصدیق کی جاسکتی ہے ، جیسے MACD ، KD وغیرہ ، جعلی سگنل کو کم کریں۔

  4. مشین لرننگ الگورتھم کو جوڑ کر پیرامیٹرز اور سگنل وزن کو خود بخود بہتر بنایا جاسکتا ہے۔

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*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)