
متحرک اوسط سے تجاوز کرنے والی حکمت عملی ایک اسٹاک ٹریڈنگ حکمت عملی ہے جس میں اوسط سے تجاوز کرنے والے سگنل کو متحرک اشارے کے ساتھ ملایا جاتا ہے۔ اس حکمت عملی میں متعدد تکنیکی اشارے جیسے انڈیکس کی حرکت پذیری اوسط ((EMA) ، سادہ حرکت پذیری اوسط ((SMA) ، اور متحرک اوسط اجزاء اشارے ((MACD) اور ترمیم کے بعد نسبتا strong مضبوط اشارے ((StockRSI) کا استعمال کیا جاتا ہے ، جس میں طویل مدتی رجحان کی تصدیق کی گئی ہے۔ جب قلیل مدتی متحرک پیمانے کے اشارے نے الٹ پلٹ سگنل دکھایا تو ، اس حکمت عملی میں اسٹاپ نقصان ہوتا ہے۔
اس حکمت عملی کے بنیادی اجزاء یہ ہیں:
EMA/SMA اوسط لائن کراسنگ: 9 سائیکل ای ایم اے تیز لائن اور 21 سائیکل ایس ایم اے سست لائن قائم کریں ، جب تیز لائن سست لائن کو عبور کرتی ہے تو خریدنے کا اشارہ پیدا ہوتا ہے۔
MACD اشارے: MACD اشارے میں MACD لائن ، سگنل لائن اور MACD کالم شامل ہیں۔ جب کالم مثبت ہو اور ای ایم اے / ایس ایم اے کے ذریعہ تیار کردہ خرید سگنل کے ساتھ مطابقت پذیر ہو تو اضافی تصدیق کے طور پر۔
اسٹاک آر ایس آئی: اسٹاک آر ایس آئی نے آر ایس آئی اشارے کے لئے ایک بہتر ورژن تیار کیا ہے۔ جب اشارے کی لائن اووربوٹ لائن ((80) سے زیادہ یا اوورسوڈ لائن ((20) سے کم ہو تو خریدنے کا اشارہ پیدا ہوتا ہے۔
برن بینڈ: بلین کی درمیانی سڑک 20 دن کی ایس ایم اے ہے ، جس میں مندرجہ بالا دونوں معیارات کے درمیان فرق ہے۔ اس کی ضرورت ہے کہ جب قیمت بلین بینڈ کے اندر ہو تو تجارتی سگنل پیدا ہو۔
سٹاپ نقصان اور سٹاپ پوزیشناسٹاپ نقصان اور اسٹاپ کی قیمتیں پچھلے 14 دنوں کے اے ٹی آر کے حساب سے ہیں۔
اس حکمت عملی کا تقاضا ہے کہ مذکورہ بالا اشارے میں سے کم از کم 2 اشارے بیک وقت خریدنے کا اشارہ دیں ، اور اسٹاک کی قیمت برن بینڈ کے اندر ہو اور طویل مدتی رجحان اوپر کی طرف ہو ، حتمی خریدنے کا اشارہ ہو۔ جب MACD اشارے نیچے کی طرف مڑ جاتے ہیں تو ، اسٹاک آر ایس آئی اوور بائڈ زون میں داخل ہونے کے بعد فروخت کا اشارہ دیتا ہے۔
اس حکمت عملی میں اوسط لکیری کراسنگ ، متحرک اشارے اور اتار چڑھاؤ کی شرح کے اشارے کے فوائد شامل ہیں ، جس میں درج ذیل اہم فوائد ہیں:
نتائج اچھے ہیں: ایک سے زیادہ اشارے اور ایک جیسے پختہ اشارے ، حکمت عملی کے نتائج بڑے ڈیسک اور واحد اشارے سے بہتر ہیں۔
پیرامیٹرز کو بہتر بنایا: اہم پیرامیٹرز جیسے ای ایم اے کا دورانیہ، برن بینڈ چینل کو بہتر بنایا گیا ہے، جو نظام کی استحکام کو بہتر بناتا ہے۔
خود کار طریقے سے روکنے / روکنےبرین بینڈ اور اے ٹی آر ریئل ٹائم میں اسٹاپ نقصان کو ایڈجسٹ کرتے ہیں ، جو خطرے پر قابو پانے میں مددگار ہے۔
لاگو کرنے میں کوئی دشواری نہیںکوڈ سادہ ہے، اشارے آسانی سے دستیاب ہیں، اور عملی طور پر کام کرنے میں کوئی مشکل نہیں ہے.
اگرچہ یہ حکمت عملی اچھی کارکردگی کا مظاہرہ کر رہی ہے ، لیکن اس میں مندرجہ ذیل اہم خطرات ہیں:
اشارے غلط سگنل: جب مارکیٹ میں غیر معمولی اتار چڑھاو یا اشارے کی ناکامی ہوتی ہے تو ، غلط سگنل ہوسکتے ہیں۔ اس وقت طویل مدتی رجحانات کے ساتھ فیصلہ کیا جانا چاہئے۔
غلط پیرامیٹرز: پیرامیٹرز کی غلط ترتیب سے زیادہ بار بار تجارت یا غیر حساس ردعمل کا سبب بن سکتا ہے۔ مختلف اقسام اور مارکیٹ کے حالات کے مطابق ایڈجسٹ کیا جانا چاہئے۔
بہت کم یا بہت زیادہ نقصاناسٹاپ نقصان: بہت کم آسانی سے پکڑ لیا جاتا ہے ، بہت زیادہ نقصان بہت زیادہ ہوتا ہے۔ اسٹاپ نقصان اور اسٹاپ کو متوازن کرنا چاہئے۔
مذکورہ بالا خطرات سے نمٹنے کے لئے مندرجہ ذیل اقدامات کیے جاسکتے ہیں:
انسانی مداخلت اور ترمیم: غیر معمولی حالات کی صورت میں ، سگنل کو دستی طور پر تصدیق کی جاسکتی ہے ، پیرامیٹرز میں ترمیم کی جاسکتی ہے یا پالیسی کو روک دیا جاسکتا ہے۔
پیرامیٹرز کو بہتر بنائیں: جینیاتی الگورتھم جیسے زیادہ سائنسی اور معروضی طریقوں کا استعمال کرتے ہوئے پیرامیٹرز کو بہتر بنانا۔
اتار چڑھاو کی شرح کے ساتھ ایڈجسٹ سٹاپ نقصان: اتار چڑھاؤ کی شرح کے مطابق خود کار طریقے سے اسٹاپ نقصان کی حد کو ایڈجسٹ کریں ، جیسے 1 سے 3 گنا اے ٹی آر۔
اس حکمت عملی کو مزید بہتر بنانے کے لیے مندرجہ ذیل اقدامات کیے جا سکتے ہیں:
نقصان کی روک تھام کے نظام میں استحکام: ٹریکنگ اسٹاپ یا انڈیکس چلتی اوسط کو روکنے کے لئے شامل کیا جاسکتا ہے۔
ٹرانزیکشن حجم کے ساتھ مل کر فلٹرٹرانزیکشن انڈیکس میں شامل ہونے سے ناکامیوں سے بچنے کے لئے:
متحرک ایڈجسٹمنٹ پیرامیٹر: مارکیٹ کے ماحول کے مطابق خود کار طریقے سے اوسط لائن کی مدت ، چینل کی چوڑائی وغیرہ کو بہتر بنایا جاسکتا ہے۔
مشین لرننگ الگورتھم متعارف کروانا: آر این این، ایل ایس ٹی ایم وغیرہ الگورتھم کا استعمال کرتے ہوئے پیرامیٹرز کے لئے متحرک اصلاح۔
تکنیکی اشارے کے جامع استعمال کے ساتھ متحرک طور پر یکساں لائن حکمت عملی کو توڑنا۔ طویل اور مختصر دوروں کے تعاون کے معاملے میں ، اچھی آمدنی حاصل کی گئی ہے۔ اس حکمت عملی کو روکنے کا نقصان کنٹرول میں ہے ، اس پر عمل درآمد کرنا زیادہ مشکل نہیں ہے۔ اگلے مرحلے میں نقصان کو روکنے کے طریقہ کار کو مزید بہتر بنایا جائے گا ، اور زیادہ ذہین طریقوں کا استعمال کرتے ہوئے پیرامیٹرز کو بہتر بنانے اور سگنل فلٹرنگ کے لئے ، زیادہ مستحکم اضافی آمدنی حاصل کرنے کی کوشش کی جائے گی۔
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Improved Custom Strategy", shorttitle="ICS", overlay=true)
// Volatility
volatility = ta.atr(14)
// EMA/MA Crossover
fast_length = 9
slow_length = 21
fast_ma = ta.ema(close, fast_length)
slow_ma = ta.sma(close, slow_length)
crossover_signal = ta.crossover(fast_ma, slow_ma)
// MACD
[macdLine, signalLine, macdHistogram] = ta.macd(close, 12, 26, 9)
macd_signal = crossover_signal and (macdHistogram > 0)
// Bollinger Bands
source = close
basis = ta.sma(source, 20)
upper = basis + 2 * ta.stdev(source, 20)
lower = basis - 2 * ta.stdev(source, 20)
// Fractal-based Support and Resistance levels
isFractalHigh = high[2] < high[1] and high[1] > high[0]
isFractalLow = low[2] > low[1] and low[1] < low[0]
resistance = ta.valuewhen(isFractalHigh, high[1], 0)
support = ta.valuewhen(isFractalLow, low[1], 0)
// StockRSI
length = 14
K = 100 * (close - ta.lowest(close, length)) / (ta.highest(close, length) - ta.lowest(close, length))
D = ta.sma(K, 3)
overbought = 80
oversold = 20
stockrsi_signal = ((K < D) and (K < oversold)) or ((K > D) and (K > overbought))
// Buy and sell conditions
mandatory_buy_conditions = (crossover_signal ? 1 : 0) + (macd_signal ? 1 : 0) + (stockrsi_signal ? 1 : 0)
// Long-term Trend Check
long_term_ma = ta.sma(close, 200)
long_term_bullish = close > long_term_ma
long_term_bearish = close < long_term_ma
// Plot the long-term MA for visual clarity
plot(long_term_ma, color=color.gray, title="200-Day MA", linewidth=1)
// Simplified Buy and Sell conditions
buy_condition = long_term_bullish and (mandatory_buy_conditions >= 2) and (close > lower) and (close < upper)
sell_condition = (macdHistogram < 0) and (K > D) and (K > overbought)
// Potential SL and TP based on volatility
potential_SL = close - volatility
potential_TP = close + 2 * volatility
plot(potential_SL, title="SL Level", color=color.red, linewidth=1, style=plot.style_linebr)
plot(potential_TP, title="TP Level", color=color.green, linewidth=1, style=plot.style_linebr)
// ... (rest of your code above)
// State variable to track if we're in a position, a counter for trades, and a delayed counter for plotting
var bool inPosition = false
var tradeCounter = 0
var tradeCounterDelayed = 0 // Declaration of the variable
// Buy logic: Check if tradeCounter is 0 and the buy condition is met
if tradeCounter == 0 and buy_condition
strategy.entry("BUY", strategy.long, stop=potential_SL, limit=potential_TP)
inPosition := true
tradeCounter := tradeCounter + 1
// Sell logic: Check if tradeCounter is 1, the sell condition is met, and we are in a position
if tradeCounter == 1 and inPosition and sell_condition
strategy.close("BUY")
inPosition := false
tradeCounter := tradeCounter - 1
// Update the delayed trade counter:
tradeCounterDelayed := tradeCounter
// Plotting
bgcolor(buy_condition ? color.new(color.green, 90) : sell_condition ? color.new(color.red, 90) : na)
plotshape(series=buy_condition and tradeCounterDelayed == 0, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", size=size.small)
plotshape(series=sell_condition and tradeCounterDelayed == 1, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", size=size.small)
// ... (rest of your code if any)