یہ حکمت عملی خریدنے اور بیچنے کے وقت کا تعین کرنے کے لئے ایک مخصوص مدت کے دوران تبدیلی کی شرح کا حساب لگانے کی طرف سے استعمال کیا جاتا ہے. یہ تاجروں کو مختصر مدت کی قیمتوں میں تبدیلی کے مواقع پر قبضہ کرنے میں مدد ملتی ہے.
یہ حکمت عملی بنیادی طور پر مندرجہ ذیل اشارے پر مبنی ہے:
خرید و فروخت کے قواعد:
خاص طور پر بیچنے والے قواعد:
آرڈر کا سائز مجموعی حقوق کے حصول کے فیصد کے طور پر مقرر کیا گیا ہے (ڈیفالٹ 96٪) ، جو فائدہ اٹھانے کا اثر فراہم کرسکتا ہے۔
اس حکمت عملی کے اہم فوائد یہ ہیں:
مجموعی طور پر ، اس حکمت عملی میں قیمتوں میں تبدیلی کی شرح ، ایس ایم اے اشارے اور دیگر ٹولز کا بھرپور استعمال کیا گیا ہے ، جس سے اتار چڑھاؤ کے حالات میں بہتر کارکردگی کا مظاہرہ کیا جاسکتا ہے۔
اس حکمت عملی میں مندرجہ ذیل خطرات بھی ہیں:
تبدیلی کی شرح اور ایس ایم اے پیرامیٹرز کی غلط ترتیب سے ٹریڈنگ سگنل کی غلطی یا غلطی ہوسکتی ہے۔ مختلف مارکیٹوں کے لئے پیرامیٹرز کو ایڈجسٹ کرنے کی ضرورت ہے۔
آرڈر کا سائز زیادہ سے زیادہ خطرے کو بڑھاتا ہے۔ ٹیسٹ کے مرحلے میں آرڈر تناسب کو بہتر بنانے کی سفارش کی جاتی ہے۔
ٹریکنگ سٹاپ زلزلے کے حالات میں ممکنہ طور پر قبل از وقت اسٹاپ۔ اسٹاپ کی مقدار کو ایڈجسٹ کرنے پر غور کیا جاسکتا ہے۔
اسٹریٹجک ٹرانزیکشن اسٹیب کو ٹریڈنگ کے لئے استعمال کیا جاسکتا ہے۔ اسٹریٹجک ٹرانزیکشن اسٹیب کو ٹریڈنگ کے لئے استعمال کیا جاسکتا ہے۔ اسٹریٹجک ٹرانزیکشن اسٹیب کو ٹریڈنگ کے لئے استعمال کیا جاسکتا ہے۔
اعداد و شمار کے مطابق ہونے کا خطرہ۔ حکمت عملی کی مضبوطی کو مختلف مارکیٹوں میں کئی بار تجربہ کار طریقے سے جانچنا چاہئے۔
ان خطرات کے لئے ، پیرامیٹرز کی اصلاح ، آرڈر ایڈجسٹمنٹ ، اسٹاپ نقصان کی حکمت عملی کی اصلاح ، اور عملی طور پر توثیق جیسے ذرائع کے ذریعہ خطرے پر قابو پایا جاسکتا ہے۔
اس حکمت عملی کو مندرجہ ذیل طریقوں سے بھی بہتر بنایا جاسکتا ہے:
دیگر تکنیکی اشارے کے فیصلے کو شامل کریں ، جیسے اتار چڑھاؤ کی شرح ، ٹرانزیکشن حجم وغیرہ ، سگنل کی درستگی کو بہتر بنائیں۔
ٹرانزیکشن کی تعداد کو بہتر بنانا ، ٹرانزیکشن کی تعدد کو کم کرکے ٹرانزیکشن اسٹاب مارکیٹ کے اثرات کو کم کرنا۔
بریک ٹریڈنگ سگنل کو اہم قیمت کی سطح کے قریب قائم کرنے کے لئے ایک بریک ٹریڈنگ حکمت عملی کے ساتھ مل کر.
مشین سیکھنے کے طریقوں کا استعمال کرتے ہوئے پیرامیٹرز کی ترتیبات کو خود کار طریقے سے بہتر بنائیں۔
متعدد مارکیٹوں میں طویل عرصے تک حکمت عملی کی طاقت کو جانچنے اور موافقت کو بہتر بنانے کے لئے۔
اسٹاک، غیر ملکی کرنسی، وغیرہ کی مختلف اقسام کی خصوصیات کو مدنظر رکھتے ہوئے، مخصوص پیرامیٹرز کا ایک مجموعہ مقرر کریں۔
حکمت عملی سگنل اور خطرے کے کنٹرول کے طریقوں کو بہتر بنانے کے لئے لائیو نتائج کے مطابق مسلسل اور بار بار.
اس حکمت عملی میں تبدیلی کی شرح اور ایس ایم اے اشارے کے ذریعہ فیصلہ کیا گیا ہے ، جس میں مختصر لائن قیمت کے اتار چڑھاؤ میں تجارت کے مواقع تلاش کیے جاتے ہیں۔ یہ تیز رفتار رجحانات کو پکڑنے کے لئے فائدہ مند ہے ، لیکن خطرے پر قابو پانے پر بھی توجہ دینے کی ضرورت ہے۔ پیرامیٹرز کی اصلاح ، آرڈر ایڈجسٹمنٹ ، اسٹاپ نقصان کی حکمت عملی میں بہتری اور لیبارٹری جانچ پڑتال کے ذریعے حکمت عملی کی استحکام اور موافقت کو بہتر بنایا جاسکتا ہے۔ یہ حکمت عملی مقدار کی تجارت کے لئے ایک حوالہ ٹیمپلیٹ فراہم کرتی ہے ، لیکن عملی استعمال میں مارکیٹ کی خصوصیات کے مطابق ایڈجسٹمنٹ اور اصلاح کی ضرورت ہے۔
/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// @version=4
// Author: Sonny Parlin (highschool dropout)
// Best if run on 5m timeframe
strategy(shorttitle="ROC+Strategy", title="Rate of Change Strategy",
overlay=true, currency=currency.USD,
initial_capital=10000)
// Inputs and variables
ss = input(14, minval=10, maxval=50, title="SMA Fast (days)")
ff = input(100, minval=55, maxval=200, title="SMA Slow (days)")
ref = input(30, minval=20, maxval=50, title="SMA Reference (days)")
lowOffset = input(0.023, "ROC Low (%)", minval=0, step=0.01)
highOffset = input(0.047, "ROC High (%)", minval=0, step=0.01)
orderStake = input(0.96, "Order Stake (%)", minval=0, step=0.01)
lookback = input(12, "Lookback Candles", minval=1, step=1)
// SMA
smaFast = sma(close, ss)
smaSlow = sma(close, ff)
smaRef = sma(close, ref)
ROC = (max(close[lookback],close) - min(close[lookback],close)) / max(close[lookback],close)
// Set up SMA plot but don't show by default
plot(smaFast, "smaFast", color=#00ff00, display = 0)
plot(smaSlow, "smaSlow", color=#ff0000, display = 0)
plot(smaRef, "smaRef", color=#ffffff, display = 0)
// The buy stratey:
// Guard that the low is under our SMA Reference line
// Guard that the rate of change over the lookback period is greater than our
// ROC lowOffset %, default is 0.023. (low < smaRef) and (ROC > lowOffset)
// SMA fast is on the rise and SMA slow is falling and they are very likely
// to cross. (rising(smaFast,1)) and (falling(smaSlow, 1))
enterLong = (low < smaRef) and (ROC > lowOffset) and (rising(smaFast,1)) and (falling(smaSlow,1))
// The sell Strategy:
// Guard that close is higher than our SMA reference line and that the rate of
// change over the lookback period is greater than our highOffset %, default
// is 0.047. (close > smaRef) and (ROC > highOffset)
// Guard that close has risen by 3 candles in a row (rising(close,3))
// Guard that we currently have profit (strategy.openprofit > 0)
// Guard that SMA fast is higher than smaSlow (smaFast > smaSlow)
// If it keeps going up past our close position the trailing stoploss will kick in!
enterShort = (close > smaRef) and (ROC > highOffset) and (rising(close,3)) and (strategy.openprofit > 0) and (smaFast > smaSlow)
// Order size is based on total equity
// Example 1:
// startingEquity = 2000
// close = 47434.93
// orderStake = 0.45
// (2,000 × orderStake) / close = orderSize = 0.0189733599 = approx $900
// Example 2:
// startingEquity = 2000
// close = 1.272
// orderStake = 0.45
// (startingEquity × orderStake) / close = orderSize = 707.5471698113 = approx $900
orderSize = (strategy.equity * orderStake) / close
// Trailing Stoploss
// I'm using 2.62 as my default value, play with this for different results.
longTrailPerc = input(title="Trailing Stoploss (%)",
type=input.float, minval=0.0, step=0.1, defval=3.62) * 0.01
longStopPrice = 0.0
longStopPrice := if (strategy.position_size > 0)
stopValue = close * (1 - longTrailPerc)
max(stopValue, longStopPrice[1])
else
0
if (enterLong)
strategy.entry("Open Long Position", strategy.long, orderSize, when=strategy.position_size <= 0)
if (enterShort)
strategy.exit(id="Close Long Position", stop=longStopPrice)
//plot(strategy.equity)