اس حکمت عملی میں ٹرینڈ کی سمت کی نشاندہی کرنے کے لئے کراس پیریڈ تکنیکی اشارے استعمال کیے جاتے ہیں ، جس میں کم خطرہ والے ٹرینڈ ٹریکنگ ٹریڈنگ کے حصول کے لئے ٹرینڈ فلٹرنگ اور اتار چڑھاؤ فلٹرنگ کے ساتھ مل کر۔
خرید و فروخت کے سگنل کا تعین کرنے کے لئے اعلی کم نقطہ کی پیشرفت کا استعمال کریں۔ جب قیمت 7 مدت کی اونچائی کو توڑتی ہے تو مختصر ہوجائیں ، اور جب یہ 7 مدت کی کم سے کم کو توڑتی ہے تو طویل ہوجائیں۔
ٹرینڈ فلیکس اشارے اہم رجحان کی سمت کا تعین کرتا ہے۔ یہ اشارے ڈبل ہموار کرنے کی تکنیکوں کو جوڑتا ہے اور مؤثر طریقے سے رجحان کے درمیانی حصوں کی نشاندہی کرسکتا ہے۔ 1 سے زیادہ کی قیمت ایک بڑھتی ہوئی رجحان کی نشاندہی کرتی ہے ، جبکہ -1 سے نیچے کی قیمت ایک نیچے کی رجحان کی نشاندہی کرتی ہے۔ یہاں ہمیں لانگ کے لئے ٹرینڈ فلیکس > 1 اور شارٹس کے لئے < -1 کی ضرورت ہوتی ہے ، اس طرح استحکام کی حالتوں کو فلٹر کرنا۔
نوسانات کی حدوں کی نشاندہی کرنے کے لئے بولنگر بینڈ استعمال کریں۔ جب بند ہونے کی قیمت بینڈ کے اندر ہو تو لانگ اور شارٹس سے گریز کریں۔
پوزیشنوں کا انتظام کرنے کے لئے سٹاپ نقصان اور منافع لے کر منتقل کریں.
کراس پیریڈ اشارے دوہری ہموار کرنے کی تکنیک کے ساتھ مل کر مؤثر طریقے سے رجحانات کی سمتوں کی نشاندہی کرسکتے ہیں اور مارکیٹس میں اتار چڑھاؤ سے بچ سکتے ہیں۔
رجحان کی سمت اور اتار چڑھاؤ کے پیٹرن دونوں کو مدنظر رکھتے ہوئے تجارتی سگنل کو زیادہ قابل اعتماد بناتا ہے۔
معقول سٹاپ نقصان اور منافع لینے کی ترتیبات منافع میں مقفل ہیں اور نقصانات کو بڑھانے سے روکتے ہیں۔
یہ حکمت عملی نسبتاً سادہ اور لاگو کرنا آسان ہے۔
بریک آؤٹ سگنلز میں غلط بریک آؤٹ ہوسکتے ہیں ، جس کے نتیجے میں غلط تجارت ہوتی ہے۔ فلٹرنگ کے مزید حالات پر غور کیا جاسکتا ہے۔
فکسڈ سائیکل پیرامیٹرز مارکیٹ کی تبدیلیوں کے مطابق نہیں ہوسکتے ہیں۔ پیرامیٹرز کی متحرک اصلاح پر غور کیا جاسکتا ہے۔
قیمتوں میں رکاوٹوں کی عدم موجودگی انتہائی مارکیٹ کے حالات سے ہونے والے بڑے نقصانات کو روکنے میں ناکام رہتی ہے۔
مقررہ منافع اور سٹاپ نقصان کے پوائنٹس کو مارکیٹ کی اتار چڑھاؤ کے مطابق ذہین طور پر ایڈجسٹ نہیں کیا جا سکتا.
فیصلے کی درستگی کو بہتر بنانے کے لئے حکمت عملی کا مجموعہ بنانے کے لئے مزید رجحانات کے فیصلے کے اشارے شامل کرنے پر غور کریں۔
خطرہ کو کم کرنے کے لئے جب اتار چڑھاؤ شدید ہو تو تجارت کو روکنے کے لئے اتار چڑھاؤ کی نشاندہی کرنے والے ماڈیول شامل کریں۔
متحرک پیرامیٹر کی اصلاح کے حصول کے لئے مشین لرننگ الگورتھم متعارف کروانا۔
نقصانات کو روکنے کے لئے قیمت سٹاپ نقصان کے ماڈیولز کو شامل کریں جب نقصانات ایک مخصوص حد تک پہنچیں.
منافع لینے اور نقصان روکنے کے تناسب کا حساب مارکیٹ کی اتار چڑھاؤ کی بنیاد پر منافع لینے اور نقصان روکنے کے ذہین ایڈجسٹمنٹ کو حاصل کرنے کے لئے.
مجموعی طور پر ، یہ حکمت عملی نسبتا stable مستحکم اور قابل اعتماد ہے ، جبکہ بہتری کی گنجائش بھی ہے۔ بنیادی خیال سائیکلوں میں رجحان کی سمت کا تعین کرنا ہے ، اور پھر اعلی معیار کے سگنل پیدا کرنے کے لئے رجحان کی طاقت کے اشارے اور اتار چڑھاؤ کے اشارے کا استعمال کرتے ہوئے فلٹر کرنا ہے۔ یہ سادہ اور عملی حکمت عملی درمیانی اور طویل مدتی رجحانات کو ٹریک کرنے کے لئے بہت موزوں ہے۔ زیادہ مشروط فیصلے اور متحرک پیرامیٹر کی اصلاح متعارف کرانے سے ، حکمت عملی کے اثر کو مزید بہتر بنایا جاسکتا ہے۔
/*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")