قلیل مدتی رجحان سے باخبر رہنے اور جھٹکا دبانے کی حکمت عملی


تخلیق کی تاریخ: 2023-12-12 15:52:37 آخر میں ترمیم کریں: 2023-12-12 15:52:37
کاپی: 1 کلکس کی تعداد: 657
1
پر توجہ دیں
1621
پیروکار

قلیل مدتی رجحان سے باخبر رہنے اور جھٹکا دبانے کی حکمت عملی

جائزہ

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

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

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

سب سے پہلے ، EMA انڈیکس کی 200 ادوار کی حرکت پذیری اوسط کا حساب لگائیں اور فیصلہ کریں کہ آیا قیمت اس EMA لائن سے نیچے ہے یا اس سے اوپر ہے۔ اگر قیمت اس لائن سے نیچے ہے تو ، EMA اشارے ایک خالی سر سگنل دیتا ہے۔ -1؛ اگر قیمت اس لائن سے اوپر ہے تو ، EMA اشارے ایک کثیر سر سگنل دیتا ہے۔

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

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

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

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

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

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

  2. جعلی سگنل کو فلٹر کرنے کے لئے تین اشارے کے فیصلے کے سگنل کی مستقل مزاجی کا استعمال کرتے ہوئے ، غیر ضروری تجارت کو کم کیا جاسکتا ہے ، اور حکمت عملی کو زیادہ قابل اعتماد بنایا جاسکتا ہے۔

  3. ایک معقول اسٹاپ نقصان کی حد مقرر کریں جو منافع کو روکنے اور نقصانات کو بڑھانے سے روکنے کے لئے استعمال کیا جاسکتا ہے۔

  4. منتخب کردہ پیرامیٹرز کو زیادہ تر اسٹاک اور غیر ملکی کرنسی کی اقسام کے لئے بہتر بنایا گیا ہے۔

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

اسٹریٹجک رسک

  1. جب تینوں اشارے judgement کے مابین متضاد ہوتے ہیں تو ، dimers ظاہر ہوتے ہیں ، جو تجارت کے مواقع سے محروم ہوجاتے ہیں۔ judgement قواعد کو بہتر بنانے پر غور کیا جاسکتا ہے۔

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

  3. کساد بازاری کے حالات میں ، اسٹاپ نقصان کو توڑ دیا جاسکتا ہے ، جس سے زیادہ نقصان ہوتا ہے۔ ریئل ٹائم آپٹمائزڈ اسٹاپ نقصان کی جگہ پر غور کیا جاسکتا ہے۔

  4. اس کے علاوہ ، یہ بھی کہا گیا ہے کہ اس طرح کی سرگرمیوں کے بارے میں مؤثر انداز میں فیصلہ نہیں کیا جاسکتا ہے ، اور اس طرح کی سرگرمیوں کے نتیجے میں جیلوں میں قید ہوسکتی ہے۔

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

  1. مزید اشارے کے مجموعے کی جانچ پڑتال کی جاسکتی ہے تاکہ مضبوط فیصلے کے قواعد کی تلاش کی جاسکے۔ مثال کے طور پر آر ایس آئی اشارے شامل کرنا وغیرہ۔

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

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

  4. اس کے علاوہ ، آپ کو یہ معلوم کرنے کے لئے کہ کیا آپ کو ایک ہی وقت میں ایک دوسرے کے ساتھ تجارت کرنے کی ضرورت ہے:

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-12-05 00:00:00
end: 2023-04-14 00:00:00
period: 1d
basePeriod: 1h
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/
// © ajahanbin1374

//@version=5
strategy(title = "EMA + TTS + STC", shorttitle = "EMA + TTS + STC", overlay = true, calc_on_order_fills=false, calc_on_every_tick = false, initial_capital = 100, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type = strategy.commission.percent, commission_value = 0.01)

////////////////////////////////////////////////////////////
// Strategy entry
////////////////////////////////////////////////////////////
profit = input.float(defval = 0.1, minval = 0.0, title="Profit %", step=0.01, group = "Strategy") * 0.01

////////////////////////////////////////////////////////////
// Emponential Moving Average
////////////////////////////////////////////////////////////
ema = ta.ema(close, 200)
posEma = close < ema ? -1 : 1

////////////////////////////////////////////////////////////
// Trend Trader Strategy
////////////////////////////////////////////////////////////
Length = input.int(21, minval=1, group="Trend Trader Strategy")
Multiplier = input.float(3, minval=0.000001, group="Trend Trader Strategy")
avgTR = ta.wma(ta.atr(1), Length)
highestC = ta.highest(Length)
lowestC = ta.lowest(Length)
hiLimit = highestC[1] - avgTR[1] * Multiplier
loLimit = lowestC[1] + avgTR[1] * Multiplier
ret = 0.0
posTts = 0.0
ret:= close > hiLimit and close > loLimit ? hiLimit :
         close < loLimit and close < hiLimit ? loLimit : nz(ret[1], close)
posTts:=  close > ret ? 1 :close < ret ? -1 : nz(posTts[1], 0)


////////////////////////////////////////////////////////////
// Schaff Trend Cycle (STC)
////////////////////////////////////////////////////////////
EEEEEE = input.int(12, 'Length', group ="Schaff Trend Cycle")
BBBB = input.int(26, 'FastLength', group ="Schaff Trend Cycle")
BBBBB = input.int(50, 'SlowLength', group ="Schaff Trend Cycle")

AAAA(BBB, BBBB, BBBBB) =>
    fastMA = ta.ema(BBB, BBBB)
    slowMA = ta.ema(BBB, BBBBB)
    AAAA = fastMA - slowMA
    AAAA

AAAAA(EEEEEE, BBBB, BBBBB) =>
    AAA = input.float(0.5, group ="Schaff Trend Cycle")
    var CCCCC = 0.0
    var DDD = 0.0
    var DDDDDD = 0.0
    var EEEEE = 0.0
    BBBBBB = AAAA(close, BBBB, BBBBB)
    CCC = ta.lowest(BBBBBB, EEEEEE)
    CCCC = ta.highest(BBBBBB, EEEEEE) - CCC
    CCCCC := CCCC > 0 ? (BBBBBB - CCC) / CCCC * 100 : nz(CCCCC[1])
    DDD := na(DDD[1]) ? CCCCC : DDD[1] + AAA * (CCCCC - DDD[1])
    DDDD = ta.lowest(DDD, EEEEEE)
    DDDDD = ta.highest(DDD, EEEEEE) - DDDD
    DDDDDD := DDDDD > 0 ? (DDD - DDDD) / DDDDD * 100 : nz(DDDDDD[1])
    EEEEE := na(EEEEE[1]) ? DDDDDD : EEEEE[1] + AAA * (DDDDDD - EEEEE[1])
    EEEEE

mAAAAA = AAAAA(EEEEEE, BBBB, BBBBB)
mColor = mAAAAA > mAAAAA[1] ? color.new(color.green, 20) : color.new(color.red, 20)
posStc = mAAAAA > mAAAAA[1] ? 1 : -1

////////////////////////////////////////////////////////////
// Strategy entry
////////////////////////////////////////////////////////////
pos = posEma == 1 and posTts == 1 and posStc == 1 ? 1 : posEma == -1 and posTts == -1 and posStc == -1 ? -1 : 0

currentPostition = strategy.position_size > 0 ? 1 : strategy.position_size < 0 ? -1 : 0
noOpenPosition = strategy.position_size == 0

signal = pos != pos[1] and pos == 1 and noOpenPosition ? 1 : pos != pos[1] and pos == -1 and noOpenPosition ? -1 : 0

stopPriceForLong = math.min(close * (1 - profit), low[1] * 0.9998, low[2] * 0.9998)
limitPriceForLong = close + (close - stopPriceForLong)
stopPriceForShort = math.max(close * (1 + profit), high[1] * 1.0002, high[2] * 1.0002)
limitPriceForShort = close - (stopPriceForShort - close)

if signal == 1
    strategy.entry(id="L", direction=strategy.long)
    strategy.exit(id='EL', from_entry='L', limit=limitPriceForLong, stop=stopPriceForLong)
if signal == -1
    strategy.entry(id="S", direction=strategy.short)
    strategy.exit(id='ES', from_entry='S', limit=limitPriceForShort, stop=stopPriceForShort)

////////////////////////////////////////////////////////////
// Plots - Debuger
////////////////////////////////////////////////////////////
plotchar(signal, title='singal', char = '')
plotchar(posEma, title='posEma', char = '')
plotchar(posTts, title='posTts', char = '')
plotchar(pos, title='pos', char = '')
plotchar(currentPostition, title = 'currentPostition', char='')
plotchar(stopPriceForLong, title = "stopPriceForLong", char ='')
plotchar(limitPriceForLong, title = 'limitPriceForLong', char='')
plotchar(stopPriceForShort, title = "stopPriceForShort", char ='')
plotchar(limitPriceForShort, title = 'limitPriceForShort', char='')

////////////////////////////////////////////////////////////
// Plots
////////////////////////////////////////////////////////////
plot(ret, color=color.new(color.black, 0), title='Trend Trader Strategy')
plotchar(mAAAAA, color=mColor, title='STC', location = location.bottom, char='-', size=size.normal)
plot(series = ema, title = "ema")