ایس ایم اے آفسیٹ اتار چڑھاؤ ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-19 10:52:10
ٹیگز:

img

حکمت عملی کا جائزہ

اس حکمت عملی میں خرید / فروخت پوائنٹس کا تعین کرنے کے لئے سادہ حرکت پذیر اوسط (ایس ایم اے) اور کچھ ریاضی کے حساب کتاب کا استعمال کیا جاتا ہے۔ ہم اپنی بنیاد کے طور پر 100 دن کی ایس ایم اے لائن رکھتے ہیں۔ اگر اختتامی قیمت اس لائن سے نیچے ہے تو ، ہم اس فیصد کی بنیاد پر افتتاحی پوزیشن کا تعین کرتے ہیں جس کی بنیاد پر قیمت لائن سے نیچے ہے (کم آفسیٹ) ، جو تشکیل پذیر ہے۔ اسی طرح ، ہم طویل پوزیشنوں کو بند کرنے سے پہلے 100 دن کے ایس ایم اے کے اوپر ایک اعلی آفسیٹ فیصد مقرر کرتے ہیں۔ اگر ہم بہت جلد بند کرنے کی کوشش کرتے ہیں جبکہ قیمت اب بھی بڑھ رہی ہے تو ، ٹریلنگ اسٹاپ نقصان کو متحرک کیا جائے گا۔

حکمت عملی منطق

حکمت عملی میں تین ایس ایم اے لائنیں استعمال کی جاتی ہیں: فاسٹ لائن (ڈیفالٹ 14 دن) ، سست لائن (ڈیفالٹ 100 دن) ، اور ریفرنس لائن (ڈیفالٹ 30 دن) ۔

یہ طویل ہوتا ہے جب اختتامی قیمت حوالہ لائن سے نیچے ہوتی ہے ، سست لائن سے نیچے فیصد (کم آفسیٹ) تشکیل شدہ قیمت سے زیادہ ہوتا ہے ، تیز لائن بڑھ رہی ہے اور سست لائن گر رہی ہے۔ جب یہ شرط پوری ہوتی ہے تو ، تیز اور سست لائن جلد ہی عبور کرنے کا امکان بہت زیادہ ہوتا ہے ، لہذا یہ ایک اچھا انٹری پوائنٹ ہے۔

یہ طویل بند ہوجاتا ہے جب بندش کی قیمت حوالہ لائن سے اوپر ہوتی ہے ، سست لائن (اعلی آفسیٹ) سے زیادہ فیصد تشکیل شدہ قیمت سے زیادہ ہوتا ہے ، بندش کی قیمت 3 لگاتار موم بتیوں کے لئے بڑھتی ہے ، ہمارے پاس کھلی منافع ہے ، اور تیز لائن سست لائن سے اوپر ہے۔ اگر طویل بندش کے بعد قیمت میں اضافہ ہوتا رہتا ہے تو ، ٹریلنگ اسٹاپ نقصان شروع ہوجائے گا۔

آرڈر کا سائز کل ایکویٹی کے فیصد پر مبنی ہے، یہ ہماری پوزیشن کا سائز کنٹرول کرتا ہے۔

فوائد کا تجزیہ

  1. ایس ایم اے کا فائدہ اٹھائیں جو قیمتوں میں اتار چڑھاؤ کو ہموار کرنے اور مارکیٹ شور کو فلٹر کرنے کے قابل ہے۔
  2. ایس ایم اے کراس اوورز میں رجحان کی تبدیلیوں کی پیش گوئی کرنے کی کچھ صلاحیت ہے۔
  3. آفسیٹس کی ترتیب سے ایس ایم اے لائنوں کے جھوٹے بریک آؤٹ سے بچنے میں مدد ملتی ہے۔
  4. رجحان اور کراس اوور اشارے کا امتزاج ٹریڈنگ سگنل کی درستگی کو بہتر بناتا ہے۔
  5. ٹریلنگ سٹاپ نقصان منافع میں تالے اور drawdowns روکتا ہے.

خطرے کا تجزیہ

  1. خود ایس ایم اے میں تاخیر ہوتی ہے اور قیمتوں میں موڑ کے مقامات کو یاد کر سکتی ہے۔
  2. غلط آفسیٹ سیٹنگ حکمت عملی کو بہت جارحانہ یا بہت محتاط بنا سکتی ہے۔
  3. غلط سٹاپ نقصان پیرامیٹر بہت جلد روکنے یا سٹاپ نقصان فیصد بہت بڑا ہو سکتا ہے.
  4. قیمتوں میں شدید اتار چڑھاؤ سے نمٹنے کے قابل نہیں

متعلقہ بہتری:

  1. فلٹر اندراجات میں دیگر اہم اشارے شامل کریں۔
  2. بیک ٹیسٹ اور آفسیٹس کو بہتر بنائیں.
  3. بیک ٹیسٹ اور بہترین سٹاپ نقصان پیرامیٹرز تلاش کریں.
  4. اعلی اتار چڑھاؤ کے دوران پوزیشن کا سائز کم کریں۔

اصلاح کی ہدایات

  1. بہترین پیرامیٹرز تلاش کرنے کے لئے مختلف ادوار کے SMAs کی جانچ کریں.
  2. مارکیٹ کی ساخت اور رجحان کا تعین کرنے کے لئے دیگر اشارے شامل کریں.
  3. زیادہ منافع میں مقفل کرنے کے لئے پیچھے سٹاپ نقصان پیرامیٹرز کو بہتر بنائیں.
  4. مارکیٹ کی اتار چڑھاؤ کی بنیاد پر پوزیشن سائزنگ کو ایڈجسٹ کریں۔
  5. متنوع بنانے کے لئے ایک ہی وقت میں متعدد مصنوعات پر حکمت عملی کا اطلاق کریں۔

نتیجہ

ایس ایم اے آفسیٹ اتار چڑھاؤ ٹریڈنگ حکمت عملی مختلف ایس ایم اے لائنوں کی بنیاد پر آفسیٹس طے کرکے زیادہ سے زیادہ انٹری پوائنٹس کی نشاندہی کرتی ہے۔ باہر نکلنے کا طریقہ کار فوائد کو مقفل کرنے کے لئے ٹریلنگ اسٹاپ نقصان طے کرتا ہے۔ اس حکمت عملی کو سمجھنا اور نافذ کرنا آسان ہے۔ ایس ایم اے ادوار ، آفسیٹس ، اسٹاپ نقصان کی سطح جیسے پیرامیٹرز کو بہتر بنانے سے ، بہتر نتائج حاصل کیے جاسکتے ہیں۔ یہ مستحکم منافع کی تلاش میں درمیانی اور طویل مدتی سرمایہ کاروں کے لئے موزوں ہے۔


/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4
// Author: Sonny Parlin (highschool dropout)
strategy(shorttitle="SMA+Strategy", title="SMA Offset 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.001, "Low Offset (%)", minval=0, step=0.001)
highOffset = input(0.0164, "High Offset (%)", minval=0, step=0.0001)
orderStake = input(0.96, "Order Stake (%)", minval=0, step=0.01)

// SMA
smaFast = sma(close, ss)
smaSlow = sma(close, ff)
smaRef = sma(close, ref)
distanceLow = (close - smaSlow) / close
distanceHigh = (close - smaSlow) / 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 low reference line by our lowOffset %, 
// default is 0.001. (low < smaRef) and (distanceLow > 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 (distanceLow > lowOffset) and (rising(smaFast,1)) and (falling(smaSlow, 1)) 

// The sell Strategy:
// Guard that close is higher than our sma high reference line by our 
// highOffset %, default is 0.0164. (close > smaRef) and (distanceHigh > 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 (distanceHigh > 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 1.35 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=1.35) * 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)

مزید