
یہ حکمت عملی ایک سپر ٹرینڈ اشارے پر مبنی بٹ کوائن خودکار مقدار کی تجارت کی حکمت عملی ہے۔ یہ مارکیٹ کے رجحانات کا فیصلہ کرنے کے لئے سپر ٹرینڈ اشارے کا استعمال کرتا ہے ، اے ٹی آر اسٹاپ اصول کے ساتھ مل کر خطرے کو کنٹرول کرتا ہے ، اور طویل مدتی دو طرفہ تجارت کو ممکن بناتا ہے۔ اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ خطرہ اور منافع کا تناسب اچھا ہے ، اور اسٹاپ نقصان کی حکمت عملی قابل اعتماد ہے ، جو درمیانی اور طویل مدتی کے لئے موزوں ہے۔ یہ حکمت عملی Coinbase Pro جیسے مرکزی دھارے کے تبادلے پر 4 گھنٹے کی سطح پر کام کر سکتی ہے۔
اس حکمت عملی میں مارکیٹ کے رجحان کی سمت کا تعین کرنے کے لئے سپر ٹرینڈ اشارے کا استعمال کیا گیا ہے۔ جب سپر ٹرینڈ اشارے گرنے کے رجحان سے بڑھتے ہوئے رجحان میں تبدیل ہوجاتا ہے تو ، ایک ہیڈ میں داخل ہوتا ہے۔ جب سپر ٹرینڈ اشارے بڑھنے کے رجحان سے گرنے کے رجحان میں تبدیل ہوجاتا ہے تو ، ایک ہیڈ میں داخل ہوتا ہے۔
خاص طور پر ، اس حکمت عملی نے پہلے اے ٹی آر اشارے کی لمبائی 14 سائیکلوں کی حساب کتاب کی ، اور ہر ایک کے اسٹاپ ڈسٹنس کا تعین اے ٹی آر اسٹاپ نقصان کے ضرب سے کیا گیا (جیسے 1.5 گنا) ۔ اس کے بعد سپر ٹرینڈ اشارے کا حساب لگایا گیا ، جس میں اشارے کے پیرامیٹرز کو ڈیفالٹ ویلیو ((اے ٹی آر سائیکل 9 ، سپر ٹرینڈ فیکٹر 2.5)) کے ساتھ استعمال کیا گیا ہے۔ جب سپر ٹرینڈ اشارے کی سمت تبدیل ہوتی ہے تو ٹریڈنگ سگنل جاری ہوتا ہے۔
داخلے کے بعد ، اسٹاپ نقصان ATR اسٹاپ سے اوپر یا نیچے طے ہوتا ہے۔ پہلی اسٹاپ نقصان کا حساب لگانے کے لئے خطرہ کی واپسی کے تناسب پر مبنی ہوتا ہے ، اور اس کا مطلب یہ ہے کہ 0.75 ، یعنی اسٹاپ فاصلہ اسٹاپ نقصان کے فاصلے کا 0.75 گنا ہے۔ جب قیمت پہلی اسٹاپ تک پہنچ جاتی ہے تو ، 50٪ پوزیشن کو صاف کریں ، اور اسٹاپ نقصان کو کھولنے کی پوزیشن کی قیمت پر منتقل کریں ((منافع کے بعد اضافہ کریں) ، تاکہ اس پوزیشن کو منافع میں لاک کیا جاسکے۔ دوسرا اسٹاپ نقصان 0.75 رسک کی واپسی کے تناسب کے حساب سے جاری ہے۔ اگر قیمت اسٹاپ نقصان کا باعث بنتی ہے تو ، باقی تمام پوزیشنوں کو روک دیا جائے گا۔
اس طرح ، اس حکمت عملی کو اس بات کی ضمانت دی جاسکتی ہے کہ اسٹاپ نقصان کا خطرہ قابو میں ہے ، جزوی اسٹاپ کی طرف سے منافع کو یقینی بنایا جاسکتا ہے ، جو درمیانے اور لمبے فاصلے پر انعقاد کی سرمایہ کاری کی حکمت عملی کے لئے موزوں ہے۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ اس کا خطرہ منافع کا اچھا تناسب ہے ، جو درمیانی اور طویل مدتی میں رکھا جاسکتا ہے۔ اس کے مخصوص فوائد یہ ہیں:
سپر رجحانات کا استعمال کرتے ہوئے مارکیٹ کے رجحانات کا تعین کریں ، مارکیٹ کے شور کو فلٹر کریں ، اور اہم رجحانات سے محروم نہ ہوں۔
اے ٹی آر متحرک ٹریکنگ سٹاپ نقصان ، قابل اعتماد کنٹرول واحد نقصان
اس طرح ، آپ کو منافع کو لاک کرنے کے لئے ایک جزوی روک تھام کا طریقہ ملتا ہے ، جس میں زیادہ خطرہ ہوتا ہے۔
جب قیمت اسٹاپ 1 تک پہنچ جاتی ہے تو اسٹاپ نقصان کو کھولنے کی قیمت میں ایڈجسٹ کریں ، منافع کو یقینی بنائیں ، حکمت عملی کی استحکام کو بڑھا دیں۔
سپر سادہ ٹرانزیکشن منطق، آسانی سے سمجھنے کے لئے لاگو، پیرامیٹرز کو ایڈجسٹ کرنے کے لئے وسیع جگہ.
مرکزی دھارے کے تبادلے کے دن کے اندر یا ہائی فریکوئینسی ڈیٹا پر لاگو کیا جا سکتا ہے، لچکدار.
اس حکمت عملی میں کچھ خطرات بھی ہیں، جن میں سے کچھ درج ذیل ہیں:
مارکیٹ میں اچانک ہونے والے واقعات سے خلا یا چھلانگ لگ جاتی ہے ، نقصان کا سامنا کرنا پڑتا ہے ، بڑے نقصان کا سامنا کرنا پڑتا ہے۔ اے ٹی آر اسٹاپ نقصان کے ضارب کو مناسب طریقے سے ایڈجسٹ کرکے خطرے کو کم کیا جاسکتا ہے۔
سپر ٹرینڈ اشارے کی تشخیص میں ناکامی ، جس سے تجارتی سگنل کی غلطی ہوتی ہے۔ اے ٹی آر اور سپر ٹرینڈ پیرامیٹرز کے مجموعے کو بہتر بنانے کے لئے مناسب طریقے سے ایڈجسٹ کیا جاسکتا ہے۔
کچھ پوزیشنوں کا تناسب اتنا زیادہ ہے کہ اس سے کافی حد تک فائدہ نہیں مل سکتا ہے۔ کچھ پوزیشنوں کا تناسب مختلف مارکیٹوں کے مطابق ایڈجسٹ کیا جانا چاہئے۔
تجارت کی فریکوئینسی بہت زیادہ یا بہت کم ہوسکتی ہے۔ بہترین توازن تلاش کرنے کے لئے سپر ٹرینڈ پیرامیٹرز کو ایڈجسٹ کیا جانا چاہئے۔
اس حکمت عملی میں بہتری کی گنجائش موجود ہے اور یہ مندرجہ ذیل پہلوؤں پر مرکوز ہے:
اے ٹی آر کو روکنے کے مختلف طریقوں کو آزمائیں ، جیسے معیاری اے ٹی آر ، موٹروے اسٹاپ ، اور برن بینڈ اسٹاپ ، اور اپنی اسٹاپ حکمت عملی کو بہتر بنائیں۔
مختلف پیرامیٹرز کے سپر ٹرینڈ اشارے کی جانچ کریں اور بہترین پیرامیٹرز کا مجموعہ تلاش کریں۔ مرحلہ وار اصلاح یا جینیاتی الگورتھم کا استعمال کرتے ہوئے کثیر پیرامیٹرز کی اصلاح کی جاسکتی ہے۔
اسٹاپ نقصان پر ایک سیکنڈ لیئر اسٹاپ نقصان کا اشارے لگانے کی کوشش کریں ، جیسے ڈونچیئن چینل ، تاکہ نقصان کو زیادہ قابل اعتماد بنایا جاسکے۔
مختلف جزوی بیعانہ تناسب کی جانچ کریں تاکہ منافع کی واپسی اور خطرے کا بہترین توازن تلاش کیا جاسکے۔ جزوی بیعانہ تناسب کو متحرک طور پر بھی ایڈجسٹ کیا جاسکتا ہے۔
مشین سیکھنے پر مبنی متحرک رکاوٹ ، متحرک پوزیشن ایڈجسٹمنٹ اور دیگر حکمت عملیوں کی تلاش کریں۔
یہ حکمت عملی سپر ٹرینڈ پر مبنی ایک مقداری حکمت عملی ہے جس میں ٹریڈ ، اے ٹی آر متحرک اسٹاپ نقصان ، اور جزوی اسٹاپ منافع ہے۔ یہ خطرہ منافع کا ایک اچھا توازن ہے ، جو خود کار طریقے سے تجارت کے لئے موزوں ہے۔ یہ حکمت عملی سپر سینس ، اسٹاپ نقصان ، منافع بخش طریقوں وغیرہ کو نمایاں طور پر بہتر بناسکتی ہے اور طویل مدتی میں بہتر بنانے اور استعمال کرنے کے قابل ہے۔
/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
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/
// Developed by © StrategiesForEveryone
//@version=5
strategy("SuperTrend Strategy for BTCUSD 4H", overlay=true, process_orders_on_close = true, initial_capital = 100, default_qty_type = strategy.cash, precision = 2, slippage = 50, commission_value = 0.03, backtest_fill_limits_assumption = 50)
// ------ Date filter (obtained from ZenAndTheArtOfTrading) ---------
initial_date = input(title="Initial date", defval=timestamp("10 Feb 2014 13:30 +0000"), group="Time filter", tooltip="Enter the start date and time of the strategy")
final_date = input(title="Final date", defval=timestamp("01 Jan 2030 19:30 +0000"), group="Time filter", tooltip="Enter the end date and time of the strategy")
dateFilter(int st, int et) => time >= st and time <= et
colorDate = input.bool(defval=false, title="Date background", tooltip = "Add color to the period of time of the strategy tester")
bgcolor(colorDate and dateFilter(initial_date, final_date) ? color.new(color.blue, transp=90) : na)
// ------------ Super Trend ----------
atrPeriod = input(9, "ATR Length SuperTrend")
factor = input.float(2.5, "Factor SuperTrend", step = 0.05)
[supertrend, direction] = ta.supertrend(factor, atrPeriod)
show_supertrend = input.bool(defval = false, title="Show supertrend ?", group = "Appearance")
bodyMiddle = plot(show_supertrend ? ((open + close) / 2) : na, display=display.none)
upTrend = plot(show_supertrend and direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend = plot(show_supertrend and direction > 0 ? supertrend : na, "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)
// ---------- Atr stop loss (obtained from garethyeo)
source_atr = input(close, title='Source', group = "Atr stop loss", inline = "A")
length_atr = input.int(14, minval=1, title='Period', group = "Atr stop loss" , inline = "A")
multiplier = input.float(1.5, minval=0.1, step=0.1, title='Atr multiplier', group = "Atr stop loss", inline = "A", tooltip = "Defines the stop loss distance based on the Atr stop loss indicator")
shortStopLoss = source_atr + ta.atr(length_atr) * multiplier
longStopLoss = source_atr - ta.atr(length_atr) * multiplier
show_atr_stoploss = input.bool(defval=false, title="Show Atr stop loss ?", group = "Appearance")
plot(show_atr_stoploss ? longStopLoss : na, color=color.white, style = plot.style_circles)
plot(show_atr_stoploss ? shortStopLoss : na, color=color.white, style = plot.style_circles)
// ------------- Money management --------------
strategy_contracts = strategy.equity / close
distance_sl_atr_long = -1 * (longStopLoss - close) / close
distance_sl_atr_short = (shortStopLoss - close) / close
risk = input.float(2.5, '% Account risk per trade', step=1, group = "Risk management for trades", tooltip = "Percentage of total account to risk per trade")
long_amount = strategy_contracts * (risk / 100) / distance_sl_atr_long
short_amount = strategy_contracts * (risk / 100) / distance_sl_atr_short
// ---------- Risk management ---------------
risk_reward_breakeven_long= input.float(title="Risk/reward for breakeven long", defval=0.75, step=0.05, group = "Risk management for trades")
risk_reward_take_profit_long= input.float(title="Risk/reward for take profit long", defval=0.75, step=0.05, group = "Risk management for trades")
risk_reward_breakeven_short= input.float(title="Risk/reward for break even short", defval=0.75, step=0.05, group = "Risk management for trades")
risk_reward_take_profit_short= input.float(title="Risk/reward for take profit short", defval=0.75, step=0.05, group = "Risk management for trades")
tp_percent=input.float(title="% of trade for first take profit", defval=50, step=5, group = "Risk management for trades", tooltip = "Closing percentage of the current position when the first take profit is reached.")
// ------------ Trade conditions ---------------
bought = strategy.position_size > 0
sold = strategy.position_size < 0
long_supertrend=ta.crossover(close, supertrend)
short_supertrend=ta.crossunder(close, supertrend)
var float sl_long = na
var float sl_short = na
var float be_long = na
var float be_short = na
var float tp_long = na
var float tp_short = na
if not bought
sl_long:=na
if not sold
sl_short:=na
// ---------- Strategy -----------
// Long position
if not bought and long_supertrend
sl_long:=longStopLoss
long_stoploss_distance = close - longStopLoss
be_long := close + long_stoploss_distance * risk_reward_breakeven_long
tp_long:=close+(long_stoploss_distance*risk_reward_take_profit_long)
strategy.entry('L', strategy.long, long_amount, alert_message = "Long")
strategy.exit("Tp", "L", stop=sl_long, limit=tp_long, qty_percent=tp_percent)
strategy.exit('Exit', 'L', stop=sl_long)
if high > be_long
sl_long := strategy.position_avg_price
strategy.exit("Tp", "L", stop=sl_long, limit=tp_long, qty_percent=tp_percent)
strategy.exit('Exit', 'L', stop=sl_long)
if bought and short_supertrend
strategy.close("L", comment="CL")
// Short position
if not sold and short_supertrend
sl_short:=shortStopLoss
short_stoploss_distance=shortStopLoss - close
be_short:=((short_stoploss_distance*risk_reward_breakeven_short)-close)*-1
tp_short:=((short_stoploss_distance*risk_reward_take_profit_short)-close)*-1
strategy.entry("S", strategy.short, short_amount, alert_message = "Short")
strategy.exit("Tp", "S", stop=sl_short, limit=tp_short, qty_percent=tp_percent)
strategy.exit("Exit", "S", stop=sl_short)
if low < be_short
sl_short:=strategy.position_avg_price
strategy.exit("Tp", "S", stop=sl_short, limit=tp_short, qty_percent=tp_percent)
strategy.exit("Exit", "S", stop=sl_short)
if sold and long_supertrend
strategy.close("S", comment="CS")
// ---------- Draw position on chart -------------
if high>tp_long
tp_long:=na
if low<tp_short
tp_short:=na
if high>be_long
be_long:=na
if low<be_short
be_short:=na
show_position_on_chart = input.bool(defval=true, title="Draw position on chart ?", group = "Appearance", tooltip = "Activate to graphically display profit, stop loss and break even")
position_price = plot(show_position_on_chart? strategy.position_avg_price : na, style=plot.style_linebr, color = color.new(#ffffff, 10), linewidth = 1)
sl_long_price = plot(show_position_on_chart and bought ? sl_long : na, style = plot.style_linebr, color = color.new(color.red, 10), linewidth = 1)
sl_short_price = plot(show_position_on_chart and sold ? sl_short : na, style = plot.style_linebr, color = color.new(color.red, 10), linewidth = 1)
tp_long_price = plot(strategy.position_size>0 and show_position_on_chart? tp_long : na, style = plot.style_linebr, color = color.new(#11eb47, 10), linewidth = 1)
tp_short_price = plot(strategy.position_size<0 and show_position_on_chart? tp_short : na, style = plot.style_linebr, color = color.new(#11eb47, 10), linewidth = 1)
breakeven_long = plot(strategy.position_size>0 and high<be_long and show_position_on_chart ? be_long : na , style = plot.style_linebr, color = color.new(#00ff40, 60), linewidth = 1)
breakeven_short = plot(strategy.position_size<0 and low>be_short and show_position_on_chart ? be_short : na , style = plot.style_linebr, color = color.new(#00ff40, 60), linewidth = 1)
position_profit_long = plot(bought and show_position_on_chart and strategy.openprofit>0 ? close : na, style = plot.style_linebr, color = color.new(#4cd350, 10), linewidth = 1)
position_profit_short = plot(sold and show_position_on_chart and strategy.openprofit>0 ? close : na, style = plot.style_linebr, color = color.new(#4cd350, 10), linewidth = 1)
fill(plot1 = position_price, plot2 = position_profit_long, color = color.new(color.green,90))
fill(plot1 = position_price, plot2 = position_profit_short, color = color.new(color.green,90))
fill(plot1 = position_price, plot2 = sl_long_price, color = color.new(color.red,90))
fill(plot1 = position_price, plot2 = sl_short_price, color = color.new(color.red,90))
fill(plot1 = position_price, plot2 = tp_long_price, color = color.new(color.green,90))
fill(plot1 = position_price, plot2 = tp_short_price, color = color.new(color.green,90))