جائزہ: یہ ایک رجحان کی پیروی کرنے والی حکمت عملی ہے جو رجحانات کی نشاندہی کرنے کے لئے ویو ٹرینڈ آسکیلیٹر کا استعمال کرتی ہے۔ یہ ویو ٹرینڈ لائن کو پلاٹ کرنے کے لئے اوسط قیمت اور مطلق قیمت کے فرق کے تیزی سے چلنے والے اوسط کا حساب لگاتی ہے۔ جب ویو ٹرینڈ لائن اوور بک / اوور سیل زون کو عبور کرتی ہے تو تجارتی سگنل پیدا ہوتے ہیں۔ حرکت پذیر اوسط اور حجم پر اضافی فلٹر غلط سگنل سے بچتے ہیں۔
حکمت عملی منطق:
اوسط قیمت کا حساب لگائیں ap = (اعلی + کم + بند) / 3
ای ایس اے حاصل کرنے کے لئے اے پی کے این 1 مدت ای ایم اے کا حساب لگائیں
ڈی حاصل کرنے کے لئے اے پی اور ای ایس اے کے درمیان مطلق فرق کے این 1 پیریڈ ای ایم اے کا حساب لگائیں
حساب لگانا لہر رجحان لائن: ci = (ap - esa) / ((0.015*d)
حتمی لہر رجحان لائن tci، یعنی wt1 حاصل کرنے کے لئے ci کے n2 مدت EMA حساب
wt2 حاصل کرنے کے لئے wt1 کے 4 پیریڈ SMA کا حساب لگائیں
پلاٹ اوور بکڈ/اوور سیلڈ لیول لائنز obLevel1/2 اور osLevel1/2
جب wt1 obLevel2 سے تجاوز کرتا ہے تو خریدنے کا اشارہ پیدا کریں۔ جب wt1 osLevel2 سے نیچے گزرتا ہے تو فروخت کا اشارہ پیدا کریں۔
غلط سگنلز سے بچنے کے لئے فلٹر کے طور پر چلتی اوسط emaFilter اور حجم فلٹر حجم فلٹر شامل کریں
سیٹ لے منافع / سٹاپ نقصان کے بعد داخل ہونے سے باہر نکلنے کی پوزیشنوں
فوائد:
ویو ٹرینڈ لائن ٹرینڈ / انسداد ٹرینڈ ٹرانزیشن کو اچھی طرح سے سنبھالتی ہے
چلتی اوسط اور حجم کے دوہری فلٹرز کے ذریعے وشوسنییتا میں بہتری
ایک سے زیادہ پیرامیٹرز ایک اشارے کی حدود سے بچنے کے
منافع میں منافع/سٹاپ نقصان کے تالے اور کنٹرولز کا خطرہ
خطرات اور حدود:
پیرامیٹرز کا انتخاب ناقص کارکردگی یا overfitting کی قیادت کر سکتے ہیں
زیادہ سے زیادہ پیرامیٹرز پر کوئی حتمی رہنمائی نہیں
وسیع تر مارکیٹ کے حالات کو نظر انداز کرتا ہے
رینج سے منسلک/چاپپی مارکیٹس میں وِپساگ کا خطرہ
منافع/سٹاپ نقصان کے علاوہ باہر نکلنے کے قوانین کا فقدان
ترقی کے مواقع:
بہترین اقدار تلاش کرنے کے لئے ٹائم فریم / اثاثوں میں ٹیسٹ پیرامیٹرز
کم اتار چڑھاؤ کے نظام سے بچنے کے لئے اتار چڑھاؤ کی پیمائش کو شامل کریں
سگنل کی درستگی کو بہتر بنانے کے لئے RSI جیسے اشارے شامل کریں
بہترین تخصیص کردہ پیرامیٹرز تلاش کرنے کے لئے مشین سیکھنے کا ماڈل بنائیں
ٹرائلنگ اسٹاپس یا اتار چڑھاؤ کی تقریب پر مبنی باہر نکلنے کے ساتھ باہر نکلنے کو بہتر بنائیں
نتیجہ:
یہ ایک رجحان کی پیروی کرنے والی حکمت عملی ہے جس میں اضافی فلٹرز کے ساتھ ویو ٹرینڈ اشارے کو شامل کیا گیا ہے۔ یہ رجحان کی منتقلی کی نشاندہی کرنے کے لئے ویو ٹرینڈ لائن کی صلاحیت پر فائدہ اٹھاتا ہے ، جھوٹے سگنلز سے بچنے کے لئے حرکت پذیر اوسط اور حجم فلٹرز کا استعمال کرتا ہے ، اور زیادہ تر درمیانی / طویل مدتی رجحانات کو پکڑنے کا مقصد ہے۔ منافع / اسٹاپ نقصان لینے کا استعمال خطرہ کو کنٹرول کرنے کے لئے کیا جاتا ہے۔ زیادہ سے زیادہ آلات اور ٹائم فریموں میں کارکردگی کو بہتر بنانے کے لئے اہم موقع موجود ہے پیرامیٹرز کو بہتر بنانے ، مزید اشارے شامل کرنے ، اور مشین لرننگ جیسی تکنیک۔
/*backtest start: 2023-12-31 00:00:00 end: 2024-01-30 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bush Strategy test", shorttitle="Nique Audi", overlay=false) // Paramètres n1 = input(10, title="Channel Length") n2 = input(21, title="Average Length") obLevel1 = input(60, title="Over Bought Level 1") obLevel2 = input(53, title="Over Bought Level 2") osLevel1 = input(-65, title="Over Sold Level 1") osLevel2 = input(-60, title="Over Sold Level 2") takeProfitPercentage = input(1, title="Take Profit (%)") stopLossPercentage = input(0.50, title="Stop Loss (%)") // Calculs ap = hlc3 esa = ta.ema(ap, n1) d = ta.ema(math.abs(ap - esa), n1) ci = (ap - esa) / (0.015 * d) tci = ta.ema(ci, n2) wt1 = tci wt2 = ta.sma(wt1, 4) // Tracé des lignes plot(0, color=color.gray) plot(obLevel1, color=color.red) plot(osLevel1, color=color.green) plot(obLevel2, color=color.red, style=plot.style_line) plot(osLevel2, color=color.green, style=plot.style_line) plot(wt1, color=color.green) plot(wt2, color=color.red, style=plot.style_line) // Tracé de la différence entre wt1 et wt2 en bleu hline(0, "Zero Line", color=color.gray) // Conditions d'entrée long et court longCondition = ta.crossover(wt1, obLevel2) shortCondition = ta.crossunder(wt1, osLevel2) // Tracé des signaux d'achat et de vente plotshape(series=longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal") // Conditions d'entrée et de sortie strategy.entry("Long", strategy.long, when=longCondition) strategy.entry("Short", strategy.short, when=shortCondition) // Niveaux de prise de profit pour les positions longues et courtes longTakeProfitLevel = strategy.position_avg_price * (1 + takeProfitPercentage / 100) shortTakeProfitLevel = strategy.position_avg_price * (1 - takeProfitPercentage / 100) // Vérification si les niveaux de prise de profit sont atteints longTakeProfitReached = strategy.position_size > 0 and high >= longTakeProfitLevel shortTakeProfitReached = strategy.position_size < 0 and low <= shortTakeProfitLevel // Tracé des formes de prise de profit plotshape(series=longTakeProfitReached, style=shape.xcross, location=location.belowbar, color=color.blue, size=size.small, title="Take Profit Long") plotshape(series=shortTakeProfitReached, style=shape.xcross, location=location.abovebar, color=color.blue, size=size.small, title="Take Profit Short") // Niveaux de stop loss pour les positions longues et courtes longStopLossLevel = strategy.position_avg_price * (1 - stopLossPercentage / 100) shortStopLossLevel = strategy.position_avg_price * (1 + stopLossPercentage / 100) // Vérification si les niveaux de stop loss sont atteints longStopLossReached = strategy.position_size > 0 and low <= longStopLossLevel shortStopLossReached = strategy.position_size < 0 and high >= shortStopLossLevel // Tracé des formes de stop loss plotshape(series=longStopLossReached, style=shape.xcross, location=location.belowbar, color=color.red, size=size.small, title="Stop Loss Long") plotshape(series=shortStopLossReached, style=shape.xcross, location=location.abovebar, color=color.red, size=size.small, title="Stop Loss Short") // Fermeture des positions en cas de prise de profit ou de stop loss strategy.close("Long", when=longTakeProfitReached or longStopLossReached) strategy.close("Short", when=shortTakeProfitReached or shortStopLossReached)