یہ حکمت عملی دوہری حرکت پذیر اوسط کراس اوور کے عام رجحان کی پیروی کرنے کے طریقہ کار کو اپناتی ہے ، جس میں خطرہ مینجمنٹ کے طریقہ کار جیسے اسٹاپ نقصان ، منافع حاصل کرنا ، اور ٹریلنگ اسٹاپ نقصان شامل ہیں ، جس کا مقصد رجحان مارکیٹوں سے بڑے منافع حاصل کرنا ہے۔
خطرات کو کم کیا جا سکتا ہے:
غلط اشاروں کو دوسرے اشارے سے فلٹر کرنا۔
تجارتی تعدد کو کم کرنے کے لئے پیرامیٹرز کو بہتر بنانا۔
رینج بائنڈ مارکیٹ ٹریڈنگ سے بچنے کے لئے رجحانات کا اندازہ کرنے والے اشارے شامل کرنا۔
4۔ واحد تجارتی خطرات کو کم کرنے کے لئے پوزیشن سائزنگ کو ایڈجسٹ کرنا۔
حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:
خلاصہ یہ ہے کہ ، یہ ایک عام ڈبل ای ایم اے کراس اوور ٹرینڈ ٹریکنگ حکمت عملی ہے۔ اس کا فائدہ یہ ہے کہ یہ اسٹاپ نقصان ، منافع لینے اور ٹریلنگ اسٹاپ نقصان جیسے رسک مینجمنٹ میکانزم کے ساتھ مربوط ، رجحانات کی نقل و حرکت کو پکڑتا ہے۔ لیکن اس میں کچھ عام کمزوریاں بھی ہیں ، جیسے شور اور رینج سے منسلک مارکیٹوں کی طرف اعلی حساسیت ، پھنس جانے کا امکان ہے۔ اضافی اشارے ، پیرامیٹرز کی اصلاح ، متحرک ایڈجسٹمنٹ اور پورٹ فولیو کے استعمال کو متعارف کرانے سے اس حکمت عملی کی کارکردگی کو بڑھانے کے ل 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)