ڈبل ایم اے کراس اوور ٹرینڈ ٹریکنگ کی حکمت عملی

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

img

جائزہ

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

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

  1. مختصر مدت کے لئے تیز رفتار لائن کے طور پر n دن کے EMA کا حساب لگائیں۔
  2. طویل مدتی کے لئے سست لائن کے طور پر m دن کے EMA کا حساب لگائیں؛
  3. جب تیز رفتار لائن سست لائن کو توڑتی ہے تو اوپر کی طرف اور جب نیچے کی طرف ٹوٹتی ہے تو مختصر ہو جاتی ہے۔
  4. باہر نکلنے کا اشارہ: ریورس کراس اوور (مثال کے طور پر طویل کراس اوور ہونے پر باہر نکلنے کی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لم
  5. سٹاپ نقصان کا استعمال کریں، منافع لے، خطرات کو منظم کرنے کے لئے ٹریلنگ سٹاپ نقصان.

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

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

خطرے کا تجزیہ

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

خطرات کو کم کیا جا سکتا ہے:

  1. غلط سگنلز کو دوسرے اشارے سے فلٹر کرنا۔
  2. کم ٹریڈنگ فریکوئنسی کے لئے پیرامیٹرز کو بہتر بنانا.
  3. حد سے محدود مارکیٹ ٹریڈنگ سے بچنے کے لئے رجحانات کا اندازہ کرنے والے اشارے شامل کرنا۔
  4. ایک ہی تجارت کے خطرات کو کم کرنے کے لئے پوزیشن سائزنگ کو ایڈجسٹ کرنا۔

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

حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:

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

خلاصہ

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


/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy(title = "Strategy Code Example", shorttitle = "Strategy Code Example", overlay = true)

// Revision:        1
// Author:          @JayRogers
//
// *** THIS IS JUST AN EXAMPLE OF STRATEGY RISK MANAGEMENT CODE IMPLEMENTATION ***

// === GENERAL INPUTS ===
// short ma
maFastSource   = input(defval = open, title = "Fast MA Source")
maFastLength   = input(defval = 14, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource   = input(defval = open, title = "Slow MA Source")
maSlowLength   = input(defval = 21, title = "Slow MA Period", minval = 1)

// === STRATEGY RELATED INPUTS ===
tradeInvert     = input(defval = false, title = "Invert Trade Direction?")
// the risk management inputs
inpTakeProfit   = input(defval = 1000, title = "Take Profit", minval = 0)
inpStopLoss     = input(defval = 200, title = "Stop Loss", minval = 0)
inpTrailStop    = input(defval = 200, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset  = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)

// === RISK MANAGEMENT VALUE PREP ===
// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na

// === SERIES SETUP ===
/// a couple of ma's..
maFast = ema(maFastSource, maFastLength)
maSlow = ema(maSlowSource, maSlowLength)

// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50)
slow = plot(maSlow, title = "Slow MA", color = red, linewidth = 2, style = line, transp = 50)

// === LOGIC ===
// is fast ma above slow ma?
aboveBelow = maFast >= maSlow ? true : false
// are we inverting our trade direction?
tradeDirection = tradeInvert ? aboveBelow ? false : true : aboveBelow ? true : false

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() => not tradeDirection[1] and tradeDirection // functions can be used to wrap up and work out complex conditions
exitLong() => tradeDirection[1] and not tradeDirection
strategy.entry(id = "Long", long = true, when = enterLong()) // use function or simple condition to decide when to get in
strategy.close(id = "Long", when = exitLong()) // ...and when to get out
// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort() => tradeDirection[1] and not tradeDirection
exitShort() => not tradeDirection[1] and tradeDirection
strategy.entry(id = "Short", long = false, when = enterShort())
strategy.close(id = "Short", when = exitShort())

// === STRATEGY RISK MANAGEMENT EXECUTION ===
// finally, make use of all the earlier values we got prepped
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)


مزید