سپر ٹرینڈ ایڈوانس حکمت عملی کلاسیکی سپر ٹرینڈ اشارے پر مبنی ایک بہتر اور اپ گریڈ شدہ ورژن ہے۔ یہ سگنل کے معیار کو بہتر بنانے ، شور کو کم کرنے اور مارکیٹ کے رجحانات میں ہونے والی تبدیلیوں کو زیادہ درست طریقے سے پکڑنے کے لئے قیمت کی کارروائی ، اتار چڑھاؤ اور متعدد تکنیکی اشارے کو یکجا کرتا ہے۔
سپر ٹرینڈ ایڈوانس حکمت عملی کا بنیادی حصہ سپر ٹرینڈ لائن ہے۔ یہ ممکنہ رجحان کی سمت اور موڑ کے مقامات کا تعین کرنے کے لئے اوسط حقیقی رینج اور قیمت کی رفتار کی بنیاد پر شمار کیا جاتا ہے۔ جب قیمت سپر ٹرینڈ لائن سے اوپر ہوتی ہے تو ، یہ ایک اپ ٹرینڈ کی نشاندہی کرتی ہے۔ اس کے برعکس ، جب لائن سے نیچے ہوتی ہے تو ، یہ ایک ڈاؤن ٹرینڈ کی نشاندہی کرتی ہے۔
روایتی سپر ٹرینڈ اشارے کے برعکس جس میں بنیادی طور پر اختتامی قیمت اور اے ٹی آر پر غور کیا جاتا ہے ، ایڈوانس حکمت عملی میں تجارتی حجم ، رفتار آسکیلیٹرز ، اور یہاں تک کہ سگنلز کی وشوسنییتا کی توثیق کرنے کے لئے بنیادی اعداد و شمار جیسے طول و عرض بھی شامل ہیں۔ یہ کثیر جہتی نقطہ نظر اس بات کو یقینی بناتا ہے کہ تیار کردہ سگنل زیادہ قابل اعتماد اور مارکیٹ شور کے لئے کم شکار ہیں۔
سپر ٹرینڈ ایڈوانس حکمت عملی کے اہم فوائد میں شامل ہیں:
زیادہ درست رجحان کی نشاندہی اور جھوٹے بریک آؤٹ فلٹرنگ۔ متعدد اشارے سے تصدیق کا انتظار کرکے ، حکمت عملی میں بہتری آتی ہے۔
کم شور مداخلت۔ فلٹرز کا امتزاج مارکیٹ کے غیر اہم اعداد و شمار کو ختم کرتا ہے ، جس سے فیصلے واضح ہوجاتے ہیں۔
بہتر رسک مینجمنٹ۔ واضح تجارتی سگنل سٹاپ نقصانات کی منصوبہ بندی کو آسان بناتے ہیں اور زیادہ مؤثر طریقے سے منافع حاصل کرتے ہیں۔
ورسٹائل۔ رجحانات کی نشاندہی کرنے کے علاوہ ، حکمت عملی کو جامع تجارتی نظام بنانے کے لئے دیگر تکنیکی ٹولز کے ساتھ بھی جوڑا جاسکتا ہے۔
سپر ٹرینڈ ایڈوانس حکمت عملی میں مندرجہ ذیل اہم خطرات بھی ہیں:
پیرامیٹر سیٹنگ کے خطرات۔ پیرامیٹر کے غلط مجموعے حکمت عملی کو غیر موثر بنا سکتے ہیں یا بہت سارے غلط سگنل کو متحرک کرسکتے ہیں۔
رجحانات کی غلط تشخیص کے خطرات۔ کوئی حکمت عملی فیصلے کی غلطیوں کے خطرے سے مکمل طور پر بچ نہیں سکتی ہے۔ جب رجحانات غیر متوقع طور پر بدل جاتے ہیں تو ، نقصانات ہوسکتے ہیں۔
زیادہ سے زیادہ اصلاح کے خطرات۔ جب پیرامیٹرز کو تاریخی اعداد و شمار سے زیادہ فٹ کیا جاتا ہے تو ، حکمت عملی بدلتی ہوئی مارکیٹ کے حالات کے مطابق ڈھالنے میں ناکام ہوسکتی ہے۔
تجارتی لاگت کے خطرات۔ جیسے جیسے تجارت کی تعدد میں اضافہ ہوتا ہے ، کمیشن اور سلائڈج جیسے اخراجات بھی نمایاں طور پر بڑھتے ہیں۔
متعلقہ حل:
پیرامیٹر کی ترتیبات کو بہتر بنائیں اور باقاعدگی سے مضبوطی کا بیک ٹیسٹ کریں.
سٹاپ نقصان مقرر کریں اور فی تجارت نقصان کی حد کے لئے منافع لے لو.
عمومی صلاحیت کو برقرار رکھنے کے لئے زیادہ سے زیادہ اصلاح سے بچیں.
سگنلز کے خطرے / انعام کا حساب لگائیں اور تجارتی اخراجات کا انتظام کریں۔
سپر ٹرینڈ ایڈوانس حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:
مختلف مارکیٹوں پر مبنی پیرامیٹرز کو ان کی خصوصیات کے مطابق بہتر بنانے کے ل.
آٹو ٹون اشارے میں موافقت پذیر فلٹرنگ میکانزم شامل کریں یا مارکیٹ کی کچھ حالتوں میں فلٹرز کو غیر فعال کریں۔
نیورل نیٹ ورکس کا استعمال کرتے ہوئے پیرامیٹرز کو متحرک طور پر بہتر بنانے کے لئے مشین لرننگ کے طریقوں کو دریافت کریں۔
غیر منظم اعداد و شمار کا استعمال کرتے ہوئے کارکردگی کو بہتر بنانے کے لئے جذبات کے اعداد و شمار اور خبروں کا تجزیہ شامل کریں.
جب جیت کی شرح بہت زیادہ ہو تو منافع بڑھانے کے لئے پوزیشن سائزنگ کی صلاحیت شامل کریں.
متعدد فلٹرز اور تصدیق کے اشارے متعارف کرانے سے ، سپر ٹرینڈ ایڈوانس اسٹریٹیجی کلاسیکی سپر ٹرینڈ اشارے کو زیادہ درست طریقے سے رجحانات کا جائزہ لینے اور سگنل کے معیار کو بہتر بنانے کے لئے بہتر بناتی ہے۔ واحد اشارے کے مقابلے میں ، یہ کثیر جہتی حکمت عملی زیادہ مضبوط ، جامع اور موثر تجارتی حل مہیا کرتی ہے۔ تاہم ، مناسب پیرامیٹر ٹیوننگ اور فیصلے کی غلطیوں جیسے خطرات سے بھی مناسب رسک کنٹرول کے اقدامات اپنانے سے بچنا چاہئے۔ مزید اصلاحات اور دوسرے ٹولز کے ساتھ انضمام کے ساتھ ، سپر ٹرینڈ ایڈوانس اسٹریٹیجی میں درخواست کی بہت بڑی صلاحیت ہے۔
/*backtest start: 2023-12-31 00:00:00 end: 2024-01-07 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © JS_TechTrading //@version=5 strategy("Supertrend advance", overlay=true,default_qty_type =strategy.percent_of_equity,default_qty_value = 1,process_orders_on_close = false) // group string//// var string group_text000="Choose Strategy" var string group_text0="Supertrend Settings" var string group_text0000="Ema Settings" var string group_text00="Rsi Settings" var string group_text1="Backtest Period" var string group_text2="Trade Direction" var string group_text3="Quantity Settings" var string group_text4="Sl/Tp Settings" var string group_text5="Enable/Disable Condition Filter" var string group_macd="Macd Set" var group_cci="Cci Set" var string group_text6="Choose Sl/Tp" var string group_text7="Percentage Sl/Tp" var string group_text9="Atr SL/Tp" var string group_text8='Swing Hl & Supertrend Sl/Tp' // filter enable and disbale on_ma =input.bool(true,"Ema Condition On/Off",group=group_text5,inline = "CL") en_rsi = input.bool(true,"Rsi Condition On/Off",group = group_text5,inline = "CL") en_macd=input.bool(true,title ="Enable Macd Condition",group =group_text5,inline = "CS") en_cci=input.bool(true,title ="Enable/Disable CCi Filter",group =group_text5,inline = "CS") //////////////////// option_ch=input.string('Pullback',title = "Type Of Stratgey",options =['Pullback','Simple'],group = "Choose Strategy Type") // option for stop loss and take profit option_ts=input.string("Percentage","Chosse Type Of Sl/tp",["Percentage","Supertrend","Swinghl","Atr"],group=group_text6) //atr period input supertrend atrPeriod = input(10, "ATR Length",group = group_text0) factor = input.float(3.0, "Factor", step = 0.01,group=group_text0) [supertrend, direction] = ta.supertrend(factor, atrPeriod) bodyMiddle = plot((open + close) / 2, display=display.none) upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr) downTrend = plot(direction < 0? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr) fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps=false) fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps=false) long=direction < 0 ? supertrend : na short=direction < 0? na : supertrend longpos=false shortpos=false longpos :=long?true :short?false:longpos[1] shortpos:=short?true:long?false:shortpos[1] fin_pullbuy= (ta.crossunder(low[1],long) and long and high>high[1]) fin_pullsell=(ta.crossover(high[1],short) and short and low<low[1]) //Ema 1 ma_len= input.int(200, minval=1, title="Ema Length",group = group_text0000) ma_src = input.source(close, title="Ema Source",group = group_text0000) ma_out = ta.ema(ma_src, ma_len) ma_buy=on_ma?close>ma_out?true:false:true ma_sell=on_ma?close<ma_out?true:false:true // rsi indicator and condition // Get user input rsiSource = input(title='RSI Source', defval=close,group = group_text00) rsiLength = input(title='RSI Length', defval=14,group = group_text00) rsiOverbought = input(title='RSI BUY Level', defval=50,group = group_text00) rsiOversold = input(title='RSI SELL Level', defval=50,group = group_text00) // Get RSI value rsiValue = ta.rsi(rsiSource, rsiLength) rsi_buy=en_rsi?rsiValue>=rsiOverbought ?true:false:true rsi_sell=en_rsi?rsiValue<=rsiOversold?true:false:true // Getting inputs macd fast_length = input(title="Fast Length", defval=12,group =group_macd) slow_length = input(title="Slow Length", defval=26,group =group_macd) macd_src = input(title="Source", defval=close,group =group_macd) signal_length = input.int(title="Signal Smoothing", minval = 1, maxval = 50, defval = 9,group =group_macd) [macdLine, signalLine, histLine] = ta.macd(macd_src, fast_length ,slow_length,signal_length) buy_macd=en_macd?macdLine>0?true:false:true sell_macd=en_macd?macdLine<0?true:false:true // CCI indicator length_cci = input.int(20, minval=1,group = group_cci) src_cci = input(hlc3, title="Source",group = group_cci) cci_gr=input.int(200,title = "CCi > Input",group = group_cci,tooltip ="CCi iS Greater thn 100 buy") cci_ls=input.int(-200,title = "CCi < -Input",group = group_cci,tooltip ="CCi iS Less thn -100 Sell") ma = ta.sma(src_cci, length_cci) cci = (src_cci - ma) / (0.015 * ta.dev(src_cci, length_cci)) //cci buy and sell buy_cci=en_cci?cci>cci_gr?true:false:true sell_cci=en_cci?cci<cci_ls?true:false:true // final condition buy_cond=option_ch=='Simple'?long and not(longpos[1]) and rsi_buy and ma_buy and buy_macd and buy_cci:option_ch=='Pullback'?fin_pullbuy and rsi_buy and ma_buy and buy_macd and buy_cci:na sell_cond=option_ch=='Simple'?short and not(shortpos[1]) and rsi_sell and ma_sell and sell_macd and sell_cci:option_ch=='Pullback'?fin_pullsell and rsi_sell and ma_sell and sell_macd and sell_cci:na //backtest engine start = input(timestamp('2005-01-01'), title='Start calculations from',group=group_text1) end=input(timestamp('2045-03-01'), title='End calculations',group=group_text1) time_cond = true // Make input option to configure trade direction tradeDirection = input.string(title='Trade Direction', options=['Long', 'Short', 'Both'], defval='Both',group = group_text2) // Translate input into trading conditions longOK = (tradeDirection == "Long") or (tradeDirection == "Both") shortOK = (tradeDirection == "Short") or (tradeDirection == "Both") // quantity qty_new=input.float(1.0,step =0.10,title ="Quantity",group =group_text3) // supertrend and swing high and low tpnewf = input.float(title="take profit swinghl||supertrend ", step=0.1, defval=1.5, group=group_text8) hiLen = input.int(title='Highest High Lookback', defval=6, minval=2, group=group_text8) loLen = input.int(title='Lowest Low Lookback', defval=6, minval=2, group=group_text8) globl = option_ts=="Swinghl"? nz(ta.lowest(low, loLen),low[1]):option_ts=="Supertrend"?nz(supertrend,low[1]):na globl2=option_ts=="Swinghl"? nz(ta.highest(high, hiLen),high[1]) :option_ts=="Supertrend"?nz(supertrend,high[1]):na var store = float(na) var store2=float(na) // strategy start if buy_cond and longOK and time_cond and strategy.position_size==0 strategy.entry("enter long",direction = strategy.long,qty =qty_new) store:=globl if sell_cond and shortOK and time_cond and strategy.position_size==0 strategy.entry("enter short",direction =strategy.short,qty =qty_new) store2:=globl2 //stop loss and take profit enable_trail=input.bool(false,"Enable Trail",group =group_text7) stopPer = input.float(1.0,step=0.10,title='Stop Loss %',group=group_text7)* 0.01 takePer = input.float(2.0,step=0.10, title='Take Profit %',group=group_text7)* 0.01 //TRAILING STOP CODE trailStop = input.float(title='Trailing Stop (%)', minval=0.0, step=0.1, defval=1,group=group_text7) * 0.01 longStopPrice = 0.0 shortStopPrice = 0.0 longStopPrice := if strategy.position_size > 0 stopValue = close * (1 - trailStop) math.max(stopValue, longStopPrice[1]) else 0 shortStopPrice := if strategy.position_size < 0 stopValue = close * (1 + trailStop) math.min(stopValue, shortStopPrice[1]) else 999999 // Determine where you've entered and in what direction longStop = 0.0 shortStop =0.0 shortTake =0.0 longTake = 0.0 if (option_ts=="Percentage" ) // 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 enable_trail and (option_ts=="Percentage" ) longStop := longStopPrice shortStop := shortStopPrice //single take profit exit position if strategy.position_size > 0 and option_ts=="Percentage" strategy.exit(id='Close Long',from_entry = "enter long", stop=longStop, limit=longTake) if strategy.position_size < 0 and option_ts=="Percentage" strategy.exit(id='Close Short',from_entry = "enter short", stop=shortStop, limit=shortTake) //PLOT FIXED SLTP LINE plot(strategy.position_size > 0 and option_ts=="Percentage" ? longStop : na, style=plot.style_linebr, color=enable_trail?na:color.new(#c0ff52, 0), linewidth=1, title='Long Fixed SL') plot(strategy.position_size < 0 and option_ts=="Percentage"? shortStop : na, style=plot.style_linebr, color=enable_trail?na:color.new(#5269ff, 0), linewidth=1, title='Short Fixed SL') plot(strategy.position_size > 0 and option_ts=="Percentage"? longTake : na, style=plot.style_linebr, color=color.new(#5e6192, 0), linewidth=1, title='Long Take Profit') plot(strategy.position_size < 0 and option_ts=="Percentage"? shortTake : na, style=plot.style_linebr, color=color.new(#dcb53d, 0), linewidth=1, title='Short Take Profit') //PLOT TSL LINES plot(series=strategy.position_size > 0 and option_ts=="Percentage" and enable_trail ? longStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1) plot(series=strategy.position_size < 0 and option_ts=="Percentage" and enable_trail ? shortStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Short Trail Stop', offset=1) // swing high and low //take profit takeProfit_buy = strategy.position_avg_price - ((store - strategy.position_avg_price) * tpnewf) takeProfit_sell = strategy.position_avg_price - ((store2 - strategy.position_avg_price) * tpnewf) // Submit stops based on highest high and lowest low if strategy.position_size >= 0 and (option_ts=="Swinghl" or option_ts=="Supertrend") strategy.exit(id='XL HH',from_entry = "enter long", stop=store,limit=takeProfit_buy,comment ="Long Exit") if strategy.position_size <= 0 and (option_ts=="Swinghl" or option_ts=="Supertrend") strategy.exit(id='XS LL',from_entry = "enter short", stop=store2,limit=takeProfit_sell,comment = "Short Exit") // plot take profit plot(series=strategy.position_size < 0 and (option_ts=="Swinghl" or option_ts=="Supertrend")? takeProfit_sell : na, style=plot.style_circles, color=color.orange, linewidth=1, title="take profit sell") plot(series=strategy.position_size > 0 and (option_ts=="Swinghl" or option_ts=="Supertrend")? takeProfit_buy: na, style=plot.style_circles, color=color.blue, linewidth=1, title="take profit buy") // Plot stop Loss for visual confirmation plot(series=strategy.position_size > 0 and (option_ts=="Swinghl" or option_ts=="Supertrend")? store : na, style=plot.style_circles, color=color.new(color.green, 0), linewidth=1, title='Lowest Low Stop') plot(series=strategy.position_size < 0 and (option_ts=="Swinghl" or option_ts=="Supertrend")? store2 : na, style=plot.style_circles, color=color.new(color.red, 0), linewidth=1, title='Highest High Stop') // atr enable_atrtrail=input.bool(false,"Enable Atr Trail",group = group_text9) atrLength = input(title='ATR Length', defval=14,group =group_text9) slATRMult = input.float(title='Stop loss ATR multiplier',step=0.1, defval=2.0,group =group_text9) tpATRMult = input.float(title='Take profit multiplier',step=0.1, defval=1.5,group =group_text9) lookback = input.int(title='How Far To Look Back For High/Lows', defval=7, minval=1,group =group_text9) atr = ta.atr(atrLength) lowestLow = ta.lowest(low, lookback) highestHigh = ta.highest(high, lookback) longStopa = (enable_atrtrail ? lowestLow : close) - atr * slATRMult shortStopa = (enable_atrtrail ? highestHigh : close) + atr * slATRMult atr_l=0.0 atr_s=0.0 atr_l:=nz(strategy.position_avg_price-(atr[1] * slATRMult),strategy.position_avg_price-(1 * slATRMult)) atr_s:=nz(strategy.position_avg_price+ (atr[1] * slATRMult),strategy.position_avg_price-(1 * slATRMult)) stoploss_l = ta.valuewhen(strategy.position_size != 0 and strategy.position_size[1] == 0,atr_l, 0) stoploss_s = ta.valuewhen(strategy.position_size != 0 and strategy.position_size[1] == 0,atr_s, 0) takeprofit_l = strategy.position_avg_price - ((stoploss_l - strategy.position_avg_price) * tpATRMult) takeprofit_s = strategy.position_avg_price - ((stoploss_s - strategy.position_avg_price) * tpATRMult) // Submit stops based on highest high and lowest low if strategy.position_size > 0 and (option_ts=="Atr") strategy.exit(id='Xl', stop= enable_atrtrail?longStopa:stoploss_l,limit=takeprofit_l ,comment ="Long Exit") if strategy.position_size < 0 and (option_ts=="Atr") strategy.exit(id='XH', stop=enable_atrtrail?shortStopa:stoploss_s,limit=takeprofit_s,comment = "Short Exit") // // plot take profit plot(series=strategy.position_size > 0 and (option_ts=="Atr")? takeprofit_l : na, style=plot.style_circles, color=color.orange, linewidth=1, title="take profit sell") plot(series=strategy.position_size < 0 and (option_ts=="Atr")? takeprofit_s: na, style=plot.style_circles, color=color.blue, linewidth=1, title="take profit buy") // Plot stop Loss for visual confirmation plot(series=strategy.position_size >0 and (option_ts=="Atr") and not enable_atrtrail? stoploss_l : na, style=plot.style_circles, color=color.new(color.green, 0), linewidth=1, title='Lowest Low Stop') plot(series=strategy.position_size < 0 and (option_ts=="Atr") and not enable_atrtrail? stoploss_s : na, style=plot.style_circles, color=color.new(color.red, 0), linewidth=1, title='Highest High Stop') //PLOT TSL LINES plot(series=strategy.position_size >0 and option_ts=="Atr" and enable_atrtrail ? longStopa : na, color=color.new(color.green, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1) plot(series=strategy.position_size < 0 and (option_ts=="Atr") and enable_atrtrail? shortStopa : na, style=plot.style_linebr, color=color.new(color.red, 0), linewidth=1, title='short Trail Stop', offset=1)