یہ حکمت عملی مارکیٹ کی مسلسل نقل و حرکت کی خصوصیات پر مبنی ایک مقداری تجارتی نظام ہے ، جو مسلسل قیمتوں میں اضافے یا گرنے کی تعدد کا تجزیہ کرکے مارکیٹ میں الٹ جانے کے مواقع کو حاصل کرتی ہے۔ اس حکمت عملی کا بنیادی مقصد مسلسل نقل و حرکت کے لئے پہلے سے طے شدہ حد تک پہنچنے پر الٹ اقدامات کرنا ہے ، جس میں تجارتی فیصلوں کے لئے ہولڈنگ پیریڈ اور موم بتی کے نمونوں جیسے متعدد جہتوں کا امتزاج ہوتا ہے۔
بنیادی منطق میں کئی اہم عناصر شامل ہیں:
یہ حکمت عملی مارکیٹ کی الٹ پلٹ کی خصوصیات پر مبنی ایک مقداری تجارتی نظام ہے ، جو مسلسل قیمت کی نقل و حرکت کے تجزیے کے ذریعے الٹ پلٹ کے مواقع پر قبضہ کرتی ہے۔ حکمت عملی کا ڈیزائن کنٹرول شدہ خطرات کے ساتھ معقول ہے لیکن مارکیٹ کے حالات کے مطابق پیرامیٹر ایڈجسٹمنٹ کی ضرورت ہے۔ مسلسل اصلاح اور بہتری کے ذریعے ، اس حکمت عملی میں اصل تجارت میں مستحکم واپسی حاصل کرنے کی صلاحیت ہے۔ براہ راست نفاذ سے پہلے مکمل تاریخی ڈیٹا بیک ٹیسٹنگ کرنے اور ڈیمو ٹریڈنگ میں حکمت عملی کی تاثیر کی تصدیق کرنے کی سفارش کی جاتی ہے۔
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 2d basePeriod: 2d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Streak-Based Trading Strategy", overlay=true) // User Inputs trade_direction = input.string(title="Trade Direction", defval="Long", options=["Long", "Short"]) // Option to choose Long or Short streak_threshold = input.int(title="Streak Threshold", defval=8, minval=1) // Input for number of streaks before trade hold_duration = input.int(title="Hold Duration (in periods)", defval=7, minval=1) // Input for holding the position doji_threshold = input.float(0.01, title="Doji Threshold (%)", minval=0.001) / 100 // Doji sensitivity // Calculate win or loss streak is_doji = math.abs(close - open) / (high - low) < doji_threshold win = close > close[1] and not is_doji loss = close < close[1] and not is_doji // Initialize variables for streak counting var int win_streak = 0 var int loss_streak = 0 var bool in_position = false var int hold_counter = 0 // Track streaks (only when not in a position) if not in_position if win win_streak += 1 loss_streak := 0 else if loss loss_streak += 1 win_streak := 0 else win_streak := 0 loss_streak := 0 // Logic for closing the position after the holding duration if in_position hold_counter -= 1 if hold_counter <= 0 strategy.close_all() // Close all positions in_position := false // Reset position flag win_streak := 0 // Reset streaks after position is closed loss_streak := 0 // Trade condition (only when no position is open and streak is reached) if not in_position if trade_direction == "Long" and loss_streak >= streak_threshold strategy.entry("Long", strategy.long) // Open a long position in_position := true hold_counter := hold_duration // Set holding period if trade_direction == "Short" and win_streak >= streak_threshold strategy.entry("Short", strategy.short) // Open a short position in_position := true hold_counter := hold_duration // Set holding period // Plotting streaks for visualization plot(win_streak, color=color.green, title="Winning Streak", style=plot.style_histogram, linewidth=2) plot(loss_streak, color=color.red, title="Losing Streak", style=plot.style_histogram, linewidth=2)