کراس سائیکل دشاتمک حکمت عملی


تخلیق کی تاریخ: 2023-09-27 16:30:51 آخر میں ترمیم کریں: 2023-09-27 16:30:51
کاپی: 0 کلکس کی تعداد: 684
1
پر توجہ دیں
1617
پیروکار

جائزہ

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

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

  1. خرید و فروخت کے سگنل کا تعین کرنے کے لئے اعلی اور کم نقطہ توڑ کا استعمال کریں۔ جب قیمت 7 دورانیہ کی اونچائی کو توڑتی ہے تو نیچے دیکھیں ، اور 7 دورانیہ کی کم سے زیادہ توڑ دیں۔

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

  3. Bollinger Bands میں اتار چڑھاؤ کے ساتھ ، آپ کو جھٹکے کی شناخت کی اجازت دی جاتی ہے۔ جب قیمت قریب ہوتی ہے تو ، اس سے بچنے سے گریز کریں۔

  4. پوزیشنوں کا انتظام کرنے کے لئے موبائل اسٹاپ اور موبائل اسٹاپ کا استعمال کریں۔

طاقت کا تجزیہ

  1. دوہری ہموار ٹیکنالوجی کے ساتھ مل کر ، کراس پیریڈ اشارے رجحان کی سمت کو مؤثر طریقے سے پہچان سکتے ہیں ، اور مارکیٹ کے جھٹکے سے پریشان ہونے سے بچ سکتے ہیں۔

  2. ٹریڈنگ سگنل کو زیادہ قابل اعتماد بنانے کے لئے رجحان کی سمت اور اتار چڑھاؤ کے قوانین کو بھی مدنظر رکھیں۔

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

  4. اس کی حکمت عملی بہت سادہ ہے اور اسے سمجھنا اور اس پر عمل درآمد کرنا آسان ہے۔

خطرے کا تجزیہ

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

  2. فکسڈ سائیکل پیرامیٹرز مارکیٹ کی تبدیلیوں کے مطابق نہیں ہوسکتے ہیں۔ متحرک اصلاح کے پیرامیٹرز پر غور کیا جاسکتا ہے۔

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

  4. اسٹاپ اسٹاپ نقصان کا نقطہ مقررہ ہے ، مارکیٹ میں اتار چڑھاؤ کے مطابق ذہین طور پر ایڈجسٹ نہیں کیا جاسکتا ہے۔

اصلاح کی سمت

  1. مزید رجحانات کے بارے میں فیصلہ کرنے والے اشارے شامل کرنے پر غور کیا جاسکتا ہے تاکہ حکمت عملی کا مجموعہ تشکیل دیا جاسکے اور فیصلہ کی درستگی کو بہتر بنایا جاسکے۔

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

  3. مشین لرننگ الگورتھم متعارف کروانا ، پیرامیٹرز کی متحرک اصلاح کے لئے۔

  4. قیمت کے اسٹاپ نقصان ماڈیول میں شامل ہونے سے ، جب نقصانات کسی خاص حد تک پہنچ جاتے ہیں تو نقصان کو روکنے اور اس سے باہر نکل سکتے ہیں۔

  5. مارکیٹ میں اتار چڑھاو کی بنیاد پر اسٹاپ نقصان کا تناسب حساب لگانا ، اسٹاپ نقصان کو روکنے کے لئے ذہین ایڈجسٹمنٹ حاصل کرنا۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-08-27 00:00:00
end: 2023-09-26 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Eltrut", shorttitle="Eltrut Strat", overlay=true, pyramiding=0, default_qty_type= strategy.percent_of_equity,calc_on_order_fills=false, slippage=25,commission_type=strategy.commission.percent,commission_value=0.075)

testStartYear = input(2016, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)


// R E F L E X / T R E N D F L E X

f_supersmoother(_src,_len)=>
    pi = 2 * asin(1)
    _a = exp(-sqrt(2) * pi / _len)
    _c2 = 2 * _a * cos(sqrt(2) * pi / _len)
    _c3 = -_a * _a
    _c1 = 1 - _c2 - _c3
    _out = 0.0
    _out := _c1 * _src + _c2 * nz(_out[1],nz(_src[1],_src)) + _c3 * nz(_out[2],nz(_src[2],nz(_src[1],_src)))

f_IQIFM(_src1,_max)=>
    _src = _src1 < 0.001 ? _src1 * 10000 : _src1
    _imult = 0.635, _qmult = 0.338 , _inphase = 0.0, _quad = 0.0
    _re = 0.0, _im = 0.0, _deltaphase = 0.0, _instper = 0.0, _per = 0.0, _v4 = 0.0
    _v1 = _src - nz(_src[7])
    _inphase := 1.25 * (nz(_v1[4]) - _imult * _v1[2]) + _imult * nz(_inphase[3])
    _quad := _v1[2] - _qmult * _v1 + _qmult * nz(_quad[2])
    _re := 0.2 * (_inphase * _inphase[1] + _quad * _quad[1]) + 0.8 * nz(_re[1])
    _im := 0.2 * (_inphase * _quad[1] - _inphase[1] * _quad) + 0.8 * nz(_im[1])
    if _re != 0.0
        _deltaphase := atan(_im / _re)
    for i = 0 to _max
        _v4 := _v4 + _deltaphase[i]
        if _v4 > 4 * asin(1) and _instper == 0.0
            _instper := i
    if _instper == 0.0
        _instper := nz(_instper[1])
    _per := 0.25 * _instper + 0.75 * nz(_per[1])
    _per

f_flex(_src1, _fixed_len, _reflex) =>
    _src = _src1
    _len = _fixed_len 
    _ss1 = f_supersmoother(_src, _len)
    _ss = _ss1
    _slope = (_ss[_len] - _ss) / _len
    _sum = 0.0
    for _i = 1 to _len
        _c1 = _reflex ? _ss + _i * _slope - _ss[_i] : _ss - _ss[_i]
        _sum := _sum + _c1
    _sum := _sum / _len
    _ms = 0.0
    _ms := 0.04 * pow(_sum,2) + 0.96 * nz(_ms[1])
    _flex1 = _ms != 0 ? _sum / sqrt(nz(_ms)) : 0.0
    _flex = _flex1
    _flex

rflx = f_flex(close, 20, true)  
trndflx = f_flex(close, 20, false)   

// S I G N A L
hi7 = highest(7)
lo7 = lowest(7)
long_cond = crossunder(close, lo7[1])
short_cond = crossover(close, hi7[1])

// F I L T E R S

long_filter1 = trndflx < 1
short_filter1 = trndflx > -1

basis = sma(close, 35)
dev = 3 * stdev(close, 35)
long_filter2 = close > basis - dev
short_filter2 = close < basis + dev

// S T R A T E G Y

long = long_cond and long_filter1 and long_filter2
short = short_cond and short_filter1 and short_filter2

if( true)
    strategy.entry("Long", strategy.long, when = long)
    strategy.entry("Long", strategy.long, when = short)


// User Options to Change Inputs (%)
stopPer = input(3, title='Stop Loss %', type=input.float) / 100
takePer = input(9, title='Take Profit %', type=input.float) / 100

// Determine where you've entered and in what direction
longStop = strategy.position_avg_price * (1 - stopPer)
shortStop = strategy.position_avg_price * (1 + stopPer)
shortTake = strategy.position_avg_price * (1 - takePer)
longTake = strategy.position_avg_price * (1 + takePer)

if strategy.position_size > 0 
    strategy.exit(id="Exit Long", stop=longStop, limit=longTake)
if strategy.position_size < 0 
    strategy.exit(id="Exit Short", stop=shortStop, limit=shortTake)


// P L O T 

plotshape(long, color = #1e90ff, text = "", style=shape.triangleup, location=location.belowbar, size=size.tiny)
plotshape(short, color = #ff69b4, text = "", style=shape.triangledown, location=location.abovebar, size=size.tiny)

alertcondition(long, "Long", "Enter Long")
alertcondition(short, "Short", "Enter S")