
یہ حکمت عملی ایک تجارتی نظام ہے جس کی بنیاد لیکویڈیٹی ویٹڈ موونگ ایوریج ہے یہ قیمتوں کے اتار چڑھاؤ اور تجارتی حجم کے درمیان تعلق کی نگرانی کرکے مارکیٹ کی لیکویڈیٹی کی پیمائش کرتی ہے اور اس بنیاد پر تیز رفتار اور سست حرکت اوسط بناتی ہے۔ ایک خرید سگنل پیدا ہوتا ہے جب تیز لائن سست لائن کے اوپر سے گزرتی ہے، اور جب یہ نیچے سے گزرتی ہے تو فروخت کا سگنل پیدا ہوتا ہے۔ حکمت عملی غیر معمولی لیکویڈیٹی کے واقعات پر خصوصی توجہ دیتی ہے اور اہم قیمت پوائنٹس کو صفوں کے ذریعے ریکارڈ کرتی ہے، اس طرح زیادہ درست تجارتی مواقع فراہم کرتے ہیں۔
حکمت عملی کا بنیادی مقصد تجارتی حجم اور قیمت میں تبدیلی کے تناسب کے ذریعے مارکیٹ کی لیکویڈیٹی کی پیمائش کرنا ہے۔ عمل درآمد کے مخصوص اقدامات درج ذیل ہیں:
یہ ایک اختراعی حکمت عملی ہے جو تکنیکی اشارے کے ساتھ لیکویڈیٹی تجزیہ کو یکجا کرتی ہے، مارکیٹ کی لیکویڈیٹی بے ضابطگیوں کی نگرانی کرکے روایتی حرکت پذیر اوسط کراس اوور سسٹم کو بہتر بناتی ہے۔ اگرچہ یہ مخصوص مارکیٹ کے ماحول میں اچھی کارکردگی کا مظاہرہ کرتا ہے، پھر بھی اسے استحکام اور قابل اطلاق کو بہتر بنانے کے لیے مزید اصلاح کی ضرورت ہے۔ یہ سفارش کی جاتی ہے کہ تاجر حقیقی وقت کے استعمال سے پہلے کافی جانچ کریں اور اسے دوسرے اشارے کے ساتھ جوڑ کر ایک مکمل تجارتی نظام تیار کریں۔
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-16 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//Liquidity ignoring price location
//@version=6
strategy("Liquidity Weighted Moving Averages [AlgoAlpha]", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3)
// Inputs
outlierThreshold = input.int(10, "Outlier Threshold Length")
fastMovingAverageLength = input.int(50, "Fast MA Length")
slowMovingAverageLength = input.int(100, "Slow MA Length")
start_date = input(timestamp("2018-01-01 00:00"), title="Start Date")
end_date = input(timestamp("2069-12-31 23:59"), title="End Date")
// Define liquidity based on volume and price movement
priceMovementLiquidity = volume / math.abs(close - open)
// Calculate the boundary for liquidity to identify outliers
liquidityBoundary = ta.ema(priceMovementLiquidity, outlierThreshold) + ta.stdev(priceMovementLiquidity, outlierThreshold)
// Initialize an array to store liquidity values when they cross the boundary
var liquidityValues = array.new_float(5)
// Check if the liquidity crosses above the boundary and update the array
if ta.crossover(priceMovementLiquidity, liquidityBoundary)
array.insert(liquidityValues, 0, close)
if array.size(liquidityValues) > 5
array.pop(liquidityValues)
// Calculate the Exponential Moving Averages for the close price at the last liquidity crossover
fastEMA = ta.ema(array.size(liquidityValues) > 0 ? array.get(liquidityValues, 0) : na, fastMovingAverageLength)
slowEMA = ta.ema(array.size(liquidityValues) > 0 ? array.get(liquidityValues, 0) : na, slowMovingAverageLength)
// Trading Logic
in_date_range = true
buy_signal = ta.crossover(fastEMA, slowEMA) and in_date_range
sell_signal = ta.crossunder(fastEMA, slowEMA) and in_date_range
// Strategy Entry and Exit
if (buy_signal)
strategy.entry("Buy", strategy.long)
if (sell_signal)
strategy.close("Buy")
// Plotting
fastPlot = plot(fastEMA, color=fastEMA > slowEMA ? color.new(#00ffbb, 50) : color.new(#ff1100, 50), title="Fast EMA")
slowPlot = plot(slowEMA, color=fastEMA > slowEMA ? color.new(#00ffbb, 50) : color.new(#ff1100, 50), title="Slow EMA")
// Create a fill between the fast and slow EMA plots with appropriate color based on crossover
fill(fastPlot, slowPlot, fastEMA > slowEMA ? color.new(#00ffbb, 50) : color.new(#ff1100, 50))