یہ حکمت عملی متعدد تکنیکی اشارے پر مبنی ایک جامع تجارتی نظام ہے ، جس میں بنیادی طور پر ایکسپونینشل موونگ ایوریجز (ای ایم اے) ، رشتہ دار طاقت انڈیکس (آر ایس آئی) ، اور تجارتی سگنل تیار کرنے اور پوزیشنوں کا انتظام کرنے کے لئے تجارتی حجم کا استعمال کیا جاتا ہے۔ یہ حکمت عملی ای ایم اے کراس اوور کے ذریعہ مارکیٹ کے رجحانات کا تعین کرتی ہے ، زیادہ خریدنے اور زیادہ فروخت کی حالتوں کا فیصلہ کرنے کے لئے آر ایس آئی اشارے کا استعمال کرتی ہے ، اور سگنل کی طاقت کی تصدیق کے لئے تجارتی حجم کو جوڑتی ہے۔ اس کے علاوہ ، اس حکمت عملی میں متحرک منافع اور اسٹاپ نقصان کے طریقہ کار کے ساتھ ساتھ خطرہ کو کنٹرول کرنے اور تجارتی کارکردگی کو بہتر بنانے کے لئے ایک مقررہ ہولڈنگ ٹائم کی حد بھی شامل ہے۔
ٹریڈ سگنل جنریشن:
متحرک منافع اور سٹاپ نقصان:
فکسڈ اسٹینڈ وقت:
EMA سٹاپ نقصان:
حجم کی تصدیق:
ملٹی انڈیکیٹر ہم آہنگی: جامع مارکیٹ تجزیہ کے لئے ای ایم اے ، آر ایس آئی ، اور حجم کو یکجا کرتا ہے ، جس سے سگنل کی وشوسنییتا میں بہتری آتی ہے۔
متحرک رسک مینجمنٹ: مارکیٹ کی اتار چڑھاؤ کی بنیاد پر ریئل ٹائم میں منافع لینے اور اسٹاپ نقصان کو ایڈجسٹ کرتا ہے ، مختلف مارکیٹ کے ماحول کو اپناتا ہے۔
فکسڈ ہولڈنگ ٹائم: طویل مدتی ہولڈنگ کے ساتھ منسلک خطرات سے بچنے، ہر تجارت کے لئے نمائش کا وقت کنٹرول.
ای ایم اے متحرک سٹاپ نقصان: متحرک معاونت اور مزاحمت کے طور پر چلتی اوسط کا استعمال کرتا ہے ، جو زیادہ لچکدار اسٹاپ نقصان کی حفاظت فراہم کرتا ہے۔
حجم کی تصدیق: سگنل کی طاقت کی تصدیق کرنے کے لئے حجم کے وقفے کا استعمال کرتا ہے ، جس سے تجارت کی درستگی میں اضافہ ہوتا ہے۔
بصری امداد: چارٹ پر خرید / فروخت کے سگنل اور اہم قیمت کی سطحوں کو نوٹ کرتا ہے ، تجزیہ اور فیصلہ سازی میں سہولت فراہم کرتا ہے۔
متضاد مارکیٹ کا خطرہ: ای ایم اے کراس اوورز سائیڈ ویز ، اتار چڑھاؤ والے بازاروں میں کثرت سے غلط سگنل پیدا کرسکتے ہیں۔
مقررہ RSI کی حد: مقررہ RSI کی حد تمام مارکیٹ کے حالات کے لئے موزوں نہیں ہو سکتا.
حجم کی حد کی حساسیت: 3x اوسط حجم کی حد بہت زیادہ یا کم ہوسکتی ہے، مخصوص مارکیٹوں کے لئے ایڈجسٹمنٹ کی ضرورت ہوتی ہے.
فکسڈ ہولڈنگ ٹائم کی حد: 15 موم بتیوں کا فکسڈ کلوزنگ ٹائم منافع بخش تجارتوں کو قبل از وقت ختم کرسکتا ہے۔
منافع اور سٹاپ نقصان کی قیمتوں کا تعین: منافع اور سٹاپ نقصان کے لئے اعلی حجم کے واقعے میں اختتامی قیمت کا استعمال کرنا زیادہ سے زیادہ نہیں ہوسکتا ہے۔
متحرک آر ایس آئی کی حدیں: مارکیٹ کی اتار چڑھاؤ کی بنیاد پر آر ایس آئی کی زیادہ خرید / زیادہ فروخت کی حدوں کو خود بخود ایڈجسٹ کریں۔
حجم کی حد کو بہتر بنائیں: تاریخی اعداد و شمار کی بنیاد پر حجم کے بریک آؤٹ ضرب کو متحرک طور پر ایڈجسٹ کرنے کے لئے ایک موافقت پذیر میکانزم متعارف کروائیں۔
ہولڈنگ ٹائم مینجمنٹ کو بہتر بنائیں: رجحان کی طاقت اور منافع کی بنیاد پر زیادہ سے زیادہ ہولڈنگ ٹائم کو متحرک طور پر ایڈجسٹ کریں۔
ٹیک منافع اور اسٹاپ نقصان کی ترتیبات کو بہتر بنائیں: مارکیٹ کی اتار چڑھاؤ کی بنیاد پر منافع اور سٹاپ نقصان کی قیمتوں کو متحرک طور پر طے کرنے کے لئے اے ٹی آر اشارے کو شامل کرنے پر غور کریں۔
رجحان فلٹرز شامل کریں: بنیادی رجحان کے خلاف تجارت سے بچنے کے لئے طویل مدتی EMAs یا رجحان اشارے متعارف کروائیں۔
قیمت ایکشن تجزیہ شامل کریں: داخلہ اور باہر نکلنے کی درستگی کو بہتر بنانے کے لئے موم بتی کے نمونوں اور حمایت / مزاحمت کی سطح کو یکجا کریں.
ڈراؤنڈ کنٹرول پر غور کریں: زیادہ سے زیادہ ڈراؤنڈ کی حد مقرر کریں ، جب مخصوص ڈراؤنڈ کی سطح تک پہنچ جائیں تو پوزیشن بند کرنے پر مجبور کریں۔
یہ کثیر اشارے متحرک تجارتی حکمت عملی ای ایم اے ، آر ایس آئی ، اور حجم کو جوڑ کر ایک جامع تجارتی نظام تشکیل دیتی ہے۔ یہ نہ صرف مارکیٹ کے رجحانات کو حاصل کرتی ہے بلکہ متحرک منافع / اسٹاپ نقصان اور فکسڈ ہولڈنگ اوقات کے ذریعہ خطرے کا انتظام بھی کرتی ہے۔ حکمت عملی کی طاقت اس کے کثیر جہتی تجزیہ اور لچکدار رسک مینجمنٹ میں ہے ، لیکن اسے بدلتے ہوئے مارکیٹ کے ماحول سے بھی چیلنجوں کا سامنا کرنا پڑتا ہے۔ آر ایس آئی کی حدوں ، حجم کے فیصلے کے معیار ، ہولڈنگ ٹائم مینجمنٹ ، اور منافع / اسٹاپ نقصان کی ترتیبات کو مزید بہتر بنانے سے ، اس حکمت عملی میں مختلف مارکیٹ کے حالات میں بہتر کارکردگی کا مظاہرہ کرنے کی صلاحیت ہے۔ آخر کار ، یہ حکمت عملی تاجروں کو ایک قابل اعتماد فریم ورک فراہم کرتی ہے جسے انفرادی تجارتی طرز اور مارکیٹ کی خصوصیات کے مطابق اپنی مرضی کے مطابق اور بہتر بنایا جاسکتا ہے۔
/*backtest start: 2024-06-29 00:00:00 end: 2024-07-29 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA & RSI Strategy", overlay=true) // Install indicators ema34 = ta.ema(close, 34) ema89 = ta.ema(close, 89) ema54 = ta.ema(close, 54) ema150 = ta.ema(close, 150) rsi = ta.rsi(close, 14) // Draw indicator plot(ema34, color=color.red, title="EMA 34") plot(ema89, color=color.blue, title="EMA 89") //plot(ema54, color=color.green, title="EMA 54") //plot(ema150, color=color.yellow, title="EMA 150") hline(50, "RSI 50", color=color.gray) plot(rsi, title="RSI", color=color.orange, linewidth=2, offset=-1) // condition long or short longCondition = ta.crossover(ema34, ema89) and rsi > 30 shortCondition = ta.crossunder(ema34, ema89) and rsi < 70 // Add strategy long if (longCondition) strategy.entry("Long", strategy.long) // Add strategy short if (shortCondition) strategy.entry("Short", strategy.short) // Calculate the average volume of previous candles length = 20 // Number of candles to calculate average volume avgVolume = ta.sma(volume, length) highVolumeCondition = volume > 3 * avgVolume // Determine take profit and stop loss prices when there is high volume var float takeProfitPriceLong = na var float stopLossPriceLong = na var float takeProfitPriceShort = na var float stopLossPriceShort = na if (longCondition) takeProfitPriceLong := na stopLossPriceLong := na if (shortCondition) takeProfitPriceShort := na stopLossPriceShort := na // Update take profit and stop loss prices when volume is high if (strategy.opentrades.entry_id(0) == "Long" and highVolumeCondition) takeProfitPriceLong := close stopLossPriceLong := close if (strategy.opentrades.entry_id(0) == "Short" and highVolumeCondition) takeProfitPriceShort := close stopLossPriceShort := close // Execute exit orders for buy and sell orders when there is high volume if (not na(takeProfitPriceLong)) strategy.exit("Take Profit Long", from_entry="Long", limit=takeProfitPriceLong, stop=stopLossPriceLong) if (not na(takeProfitPriceShort)) strategy.exit("Take Profit Short", from_entry="Short", limit=takeProfitPriceShort, stop=stopLossPriceShort) // Track the number of candles since the order was opened var int barsSinceEntryLong = na var int barsSinceEntryShort = na var bool longPositionClosed = false var bool shortPositionClosed = false if (longCondition) barsSinceEntryLong := 0 longPositionClosed := false if (shortCondition) barsSinceEntryShort := 0 shortPositionClosed := false if (strategy.opentrades.entry_id(0) == "Long") barsSinceEntryLong := barsSinceEntryLong + 1 if (strategy.opentrades.entry_id(0) == "Short") barsSinceEntryShort := barsSinceEntryShort + 1 // Check the conditions to close the order at the 15th candle if (strategy.opentrades.entry_id(0) == "Long" and barsSinceEntryLong >= 15 and not longPositionClosed) strategy.close("Long") longPositionClosed := true if (strategy.opentrades.entry_id(0) == "Short" and barsSinceEntryShort >= 15 and not shortPositionClosed) strategy.close("Short") shortPositionClosed := true // Thêm stop loss theo EMA34 if (strategy.opentrades.entry_id(0) == "Long") strategy.exit("Stop Loss Long", from_entry="Long", stop=ema34) if (strategy.opentrades.entry_id(0) == "Short") strategy.exit("Stop Loss Short", from_entry="Short", stop=ema34) // Displays buy/sell signals and price levels on the chart plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Displays take profit and stop loss prices on the chart // var line takeProfitLineLong = na // var line stopLossLineLong = na // var line takeProfitLineShort = na // var line stopLossLineShort = na // if (not na(takeProfitPriceLong)) // if na(takeProfitLineLong) // takeProfitLineLong := line.new(x1=bar_index, y1=takeProfitPriceLong, x2=bar_index + 1, y2=takeProfitPriceLong, color=color.blue, width=1, style=line.style_dashed) // else // line.set_xy1(takeProfitLineLong, x=bar_index, y=takeProfitPriceLong) // line.set_xy2(takeProfitLineLong, x=bar_index + 1, y=takeProfitPriceLong) // if (not na(stopLossPriceLong)) // if na(stopLossLineLong) // stopLossLineLong := line.new(x1=bar_index, y1=stopLossPriceLong, x2=bar_index + 1, y2=stopLossPriceLong, color=color.red, width=1, style=line.style_dashed) // else // line.set_xy1(stopLossLineLong, x=bar_index, y=stopLossPriceLong) // line.set_xy2(stopLossLineLong, x=bar_index + 1, y=stopLossPriceLong) // if (not na(takeProfitPriceShort)) // if na(takeProfitLineShort) // takeProfitLineShort := line.new(x1=bar_index, y1=takeProfitPriceShort, x2=bar_index + 1, y2=takeProfitPriceShort, color=color.blue, width=1, style=line.style_dashed) // else // line.set_xy1(takeProfitLineShort, x=bar_index, y=takeProfitPriceShort) // line.set_xy2(takeProfitLineShort, x=bar_index + 1, y=takeProfitPriceShort) // if (not na(stopLossPriceShort)) // if na(stopLossLineShort) // stopLossLineShort := line.new(x1=bar_index, y1=stopLossPriceShort, x2=bar_index + 1, y2=stopLossPriceShort, color=color.red, width=1, style=line.style_dashed) // else // line.set_xy1(stopLossLineShort, x=bar_index, y=stopLossPriceShort) // line.set_xy2(stopLossLineShort, x=bar_index + 1, y=stopLossPriceShort) // // Shows annotations for take profit and stop loss prices // if (not na(takeProfitPriceLong)) // label.new(x=bar_index, y=takeProfitPriceLong, text="TP Long", style=label.style_label_down, color=color.blue, textcolor=color.white) // if (not na(stopLossPriceLong)) // label.new(x=bar_index, y=stopLossPriceLong, text="SL Long", style=label.style_label_up, color=color.red, textcolor=color.white) // if (not na(takeProfitPriceShort)) // label.new(x=bar_index, y=takeProfitPriceShort, text="TP Short", style=label.style_label_up, color=color.blue, textcolor=color.white) // if (not na(stopLossPriceShort)) // label.new(x=bar_index, y=stopLossPriceShort, text="SL Short", style=label.style_label_down, color=color.red, textcolor=color.white)