یہ حکمت عملی ایک مخصوص وقت کی مدت کے اندر اندر قیمتوں میں خرابی کی بنیاد پر تجارتی سگنل تیار کرتی ہے۔ بنیادی خیال یہ ہے کہ مخصوص ادوار کے دوران قیمتوں کی نقل و حرکت کا مشاہدہ کیا جائے اور رجحان کی تبدیلیوں کا تعین کرنے کے لئے قیمت کی حد میں خرابی کا استعمال کیا جائے۔
حکمت عملی قیمت کی نقل و حرکت کا اندازہ کرنے کے لئے ایک خاص وقت کے فریم کے اندر قیمت کے سب سے زیادہ اعلی اور سب سے کم کم کا حساب لگاتی ہے ، جسے محور اعلی اور محور کم کہا جاتا ہے۔
خاص طور پر ، یہ پچھلے N باروں میں سے سب سے زیادہ اعلی کو محور اعلی کے طور پر اور پچھلے M باروں میں سے سب سے کم کم کو محور کم کے طور پر شمار کرتا ہے۔ ایک لمبا سگنل اس وقت پیدا ہوتا ہے جب موجودہ بار
اندراج کے بعد ، حکمت عملی اسٹاپ نقصان اور انٹرا ڈے اسٹاپ نقصان کے لئے اے ٹی آر کا استعمال کرتی ہے۔ یہ ایک مخصوص ٹائم فریم پر تمام پوزیشنوں کو بھی بند کرتی ہے (جیسے 14: 55).
یہ حکمت عملی مخصوص ادوار کے دوران سادہ قیمتوں کے وقفوں کا استعمال کرتے ہوئے رجحانات کو مؤثر طریقے سے پکڑتی ہے ، جس سے یہ دن کے اندر تجارت کے لئے مثالی ہے۔ منطق واضح اور لاگو کرنا آسان ہے۔
ممکنہ تاخیر، ابتدائی رجحان کے آغاز کو یاد کر سکتا ہے
داخلہ کے لئے ٹائم فریم کو ایڈجسٹ کریں یا دوسرے اشارے کو یکجا کریں
جب رجحان واضح نہیں ہوتا ہے تو زیادہ غلط سگنل
پیرامیٹرز ٹیون کریں، فلٹرز شامل کریں جیسے اشارے، حجم وغیرہ
فعال دن کے اندر تجارت کے لئے زیادہ سرمایہ لاگت
پوزیشن سائزنگ کو ایڈجسٹ کریں، برقرار رکھنے کی مدت میں توسیع
پیرامیٹر کی اصلاح پر انحصار
مشین لرننگ وغیرہ کا استعمال کرتے ہوئے بدلتے ہوئے مارکیٹ کے حالات میں پیرامیٹرز کو ایڈجسٹ کریں
دیگر قیمت کے اعداد و شمار جیسے عام قیمت، درمیانی قیمت وغیرہ کی جانچ کریں.
حجم، اتار چڑھاؤ جیسے فلٹرز شامل کریں
مختلف پیرامیٹر مجموعے کی کوشش کریں
سمت کا تعین کرنے کے لئے رجحان کے اشارے شامل کریں
مشین لرننگ کا استعمال کرتے ہوئے پیرامیٹرز کو خود بخود بہتر بنائیں
بہتر اندراج کے لئے متعدد ٹائم فریموں میں توسیع کریں
اس حکمت عملی کا ایک واضح اور جامع منطق ہے ، جس میں منافع بخش عوامل کے ساتھ قلیل مدتی رجحانات کو حاصل کرنے کے لئے قیمتوں میں خرابیوں سے مؤثر طریقے سے فائدہ اٹھایا جاتا ہے۔ جانچ اور اصلاح کے لئے آسان چند ٹن قابل پیرامیٹرز کے ساتھ ، یہ اندرونی دن کی تجارت کے لئے موزوں ہے۔ اگرچہ تاخیر اور جھوٹے سگنل موجود ہیں ، لیکن پیرامیٹر ٹیوننگ ، فلٹرز وغیرہ شامل کرنے کے ذریعے ان سے نمٹا جاسکتا ہے۔ حکمت عملی کافی اصلاح کی جگہ کے ساتھ ایک مضبوط بریک آؤٹ پر مبنی تجارتی فریم ورک فراہم کرتی ہے۔
/*backtest start: 2022-10-27 00:00:00 end: 2023-11-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // ____________ _________ _____________ // |____________| ||________| ||__________| // || || || || // || ||________|| || // || H E ||________ U L L || H A R T I S T // || || || || // || ||________|| ||__________ // || ||________| ||__________| //@version=5 // strategy("PIVOT STRATEGY [5MIN TF]",overlay=true ,commission_type = strategy.cash, commission_value = 30 , slippage = 2, default_qty_value = 60, currency = currency.NONE, pyramiding = 0) leftbars = input(defval = 10) rightbars = input(defval = 15) // ═══════════════════════════ // // ——————————> INPUTS <——————— // // ═══════════════════════════ // EMA1 = input.int(title='PRICE CROSS EMA', defval = 150, minval = 10 ,maxval = 400) factor1 = input.float(title='_ATR LONG',defval = 3.2 , minval = 1 , maxval = 5 , step = 0.1, tooltip = "ATR TRAIL LONG") factor2 = input.float(title='_ATR SHORT',defval = 3.2 , minval = 1 , maxval = 5 , step = 0.1, tooltip = "ATR TRAIL SHORT") risk = input.float(title='RISK',defval = 200 , minval = 1 , maxval = 5000 , step = 50, tooltip = "RISK PER TRADE") var initialCapital = strategy.equity t = time(timeframe.period, '0935-1400:1234567') time_cond = true // ══════════════════════════════════ // // ———————————> EMA DATA <——————————— // // ══════════════════════════════════ // ema1 = ta.ema(close, EMA1) plot(ema1, color=color.new(color.yellow, 0), style=plot.style_linebr, title='ema1') // ══════════════════════════════════ // // ————————> TRAIL DATA <———————————— // // ══════════════════════════════════ // // *******Calculate LONG TRAIL data***** ATR_LO = ta.atr(14)*factor1 // *******Calculate SHORT TRAIL data***** ATR_SH = ta.atr(14)*factor2 longStop = close - ATR_LO shortStop = close + ATR_SH // Plot atr data //plot(longStop, color=color.new(color.green, 0), style=plot.style_linebr, title='Long Trailing Stop') //plot(shortStop , color=color.new(color.red, 0), style=plot.style_linebr, title='Short Trailing Stop') // ══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════ // // ————————————————————————————————————————————————————————> PIVOT DATA <———————————————————————————————————————————————————————————————————————————————————————————————————— // // ══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════ // ph = ta.pivothigh(close,leftbars, rightbars) pl = ta.pivotlow(close,leftbars, rightbars) pvt_condition1 = not na(ph) upper_price = 0.0 upper_price := pvt_condition1 ? ph : upper_price[1] pvt_condition2 = not na(pl) lower_price = 0.0 lower_price := pvt_condition2 ? pl : lower_price[1] // Signals long = ta.crossover(high, upper_price + syminfo.mintick) short = ta.crossunder(low, lower_price - syminfo.mintick) plot(upper_price, color= close > ema1 ? color.green : na, style=plot.style_line, title='PH') plot(lower_price, color= close < ema1 ? color.red : na, style=plot.style_line, title='PL') // ══════════════════════════════════// // ————————> LONG POSITIONS <————————// // ══════════════════════════════════// //******barinstate.isconfirmed used to avoid repaint in real time******* if ( long and strategy.opentrades==0 and barstate.isconfirmed and time_cond and close >= ema1 ) strategy.entry(id= "Long" ,direction = strategy.long, comment = "B") //plot(longStop , color=color.new(color.blue, 0), style=plot.style_linebr, title='long Stop') if strategy.position_size > 0 strategy.exit("long tsl", "Long" , stop = longStop ,comment='S') // ═════════════════════════════════════// // ————————> SHORT POSITIONS <————————— // // ═════════════════════════════════════// if ( short and strategy.opentrades==0 and barstate.isconfirmed and time_cond and close <= ema1 ) strategy.entry(id = "Short" ,direction = strategy.short, comment = "S") if strategy.position_size < 0 strategy.exit("short tsl", "Short" , stop = shortStop ,comment='B') // ════════════════════════════════════════════════// // ————————> CLOSE ALL POSITIONS BY 3PM <————————— // // ════════════════════════════════════════════════// strategy.close_all(when = hour == 14 and minute == 55) // ════════════════════════════════════════// // ————————> MAX INTRADAY LOSS <————————— // // ════════════════════════════════════════// // strategy.risk.max_intraday_loss(type = strategy.cash, value = risk)