
ڈبل اوسط الٹ ٹریکنگ حکمت عملی ایک تجارتی حکمت عملی ہے جس میں ٹریڈنگ سگنل کے طور پر چلتی اوسط کی کراسنگ کا استعمال کیا جاتا ہے۔ یہ حکمت عملی MACD اشارے کی سست اوسط فرق اور اس کی سگنل لائن کے ساتھ مل کر تجارت کی مقدار کے زیادہ سے زیادہ تناسب کا فیصلہ کرتی ہے ، جس سے ٹریڈنگ سگنل بنتا ہے تاکہ مارکیٹ میں الٹ کے مواقع کو پکڑ سکے۔
یہ حکمت عملی بنیادی طور پر تیز لائن اور سست لائن کے تعلقات کا فیصلہ کرتی ہے ، جب تیز لائن پر سست لائن کو عبور کرتے وقت کثیر سگنل پیدا ہوتا ہے ، اور تیز لائن کے نیچے سست لائن کو عبور کرتے وقت خالی سگنل پیدا ہوتا ہے۔ اس کے علاوہ ، یہ MACD کے فرق کی کثیر خلا کی حالت ، فرق اور سگنل لائن کے تعلقات ، تجارت کی مقدار کی کثیر خلا کی صورت حال اور اس طرح کے مجموعی فیصلے کا فیصلہ کرتا ہے۔ مارکیٹ کی کثیر خلا کی حالت
خاص طور پر ، حکمت عملی MACD کے فرق کی مقدار اور سمت ، فرق اور سگنل لائنوں کے کراسنگ ، فرق اور سگنل لائن کی سمت کے موافق یا مخالف ہونے وغیرہ کا فیصلہ کرے گی۔ یہ حالات مارکیٹ کی subidabubb تیزی سے گرنے اور باؤنس کی خصوصیت کی عکاسی کرتے ہیں۔ اس کے علاوہ ، تبادلہ کی مقدار کی زیادہ فضائی تقسیم بھی معاون فیصلے کے اشارے کے طور پر کام کرے گی۔
تجارت کی حکمت عملی اس وقت پیدا کی جاتی ہے جب یہ فیصلہ کیا جاتا ہے کہ مارجن اور سگنل لائن مارکیٹ کی تبدیلی کا اشارہ کرتی ہے ، اور اس بات کی تصدیق کی جاتی ہے کہ مارکیٹ کی تبدیلی کی تصدیق کی گئی ہے۔
ڈبل مساوی کراسنگ کی وجہ سے whipsaw مسئلہ
ٹرانزیکشنز کو مکمل طور پر فلٹر کرنے میں ناکامی
ذیلی سیکشن میں تبدیلی کی گہرائی اور شدت کا اندازہ نہیں لگایا جاسکتا
مشین لرننگ ماڈل کو قواعد کے فیصلے کے بجائے استعمال کرنا
نقصانات کو روکنے کے لئے اضافی تکنیک
جذبات کی پیمائش اور خبروں کا تجزیہ
دوسری نسلوں اور مارکیٹوں میں منتقل
ڈبل مساوی لائن الٹ ٹریکنگ حکمت عملی نے مجموعی طور پر مساوی لائن اشارے ، MACD اشارے اور ٹرانزیکشن حجم اشارے پر غور کیا ، ان کے الٹ سگنل کو پکڑ کر ، مناسب الٹ پوائنٹس کا انتخاب کرکے پوزیشن قائم کی۔ حکمت عملی کو بہتر بنانے کے لئے بہت زیادہ گنجائش موجود ہے ، جس سے مشین لرننگ اور ونڈ کنٹرول کے ذریعہ حکمت عملی کی استحکام اور منافع میں مزید اضافہ کیا جاسکتا ہے۔
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("3 10 Oscillator Profile Flagging", shorttitle="3 10 Oscillator Profile Flagging", overlay=true)
signalBiasValue = input(title="Signal Bias", defval=0.26)
macdBiasValue = input(title="MACD Bias", defval=0.8)
shortLookBack = input( title="Short LookBack", defval=3)
longLookBack = input( title="Long LookBack", defval=10)
fast_ma = ta.sma(close, 3)
slow_ma = ta.sma(close, 10)
macd = fast_ma - slow_ma
signal = ta.sma(macd, 16)
hline(0, "Zero Line", color = color.black)
buyVolume = volume*((close-low)/(high-low))
sellVolume = volume*((high-close)/(high-low))
buyVolSlope = buyVolume - buyVolume[1]
sellVolSlope = sellVolume - sellVolume[1]
signalSlope = ( signal - signal[1] )
macdSlope = ( macd - macd[1] )
//plot(macdSlope, color=color.red, title="Total Volume")
//plot(signalSlope, color=color.green, title="Total Volume")
intrabarRange = high - low
getLookBackSlope(lookBack) => signal - signal[lookBack]
getBuyerVolBias(lookBack) =>
j = 0
for i = 1 to lookBack
if buyVolume[i] > sellVolume[i]
j += 1
j
getSellerVolBias(lookBack) =>
j = 0
for i = 1 to lookBack
if sellVolume[i] > buyVolume[i]
j += 1
j
getVolBias(lookBack) =>
float b = 0
float s = 0
for i = 1 to lookBack
b += buyVolume[i]
s += sellVolume[i]
b > s
getSignalBuyerBias(lookBack) =>
j = 0
for i = 1 to lookBack
if signal[i] > signalBiasValue
j += 1
j
getSignalSellerBias(lookBack) =>
j = 0
for i = 1 to lookBack
if signal[i] < ( 0 - signalBiasValue )
j += 1
j
getSignalNoBias(lookBack) =>
j = 0
for i = 1 to lookBack
if signal[i] < signalBiasValue and signal[i] > ( 0 - signalBiasValue )
j += 1
j
getPriceRising(lookBack) =>
j = 0
for i = 1 to lookBack
if close[i] > close[i + 1]
j += 1
j
getPriceFalling(lookBack) =>
j = 0
for i = 1 to lookBack
if close[i] < close[i + 1]
j += 1
j
getRangeNarrowing(lookBack) =>
j = 0
for i = 1 to lookBack
if intrabarRange[i] < intrabarRange[i + 1]
j+= 1
j
getRangeBroadening(lookBack) =>
j = 0
for i = 1 to lookBack
if intrabarRange[i] > intrabarRange[i + 1]
j+= 1
j
bool isNegativeSignalReversal = signalSlope < 0 and signalSlope[1] > 0
bool isNegativeMacdReversal = macdSlope < 0 and macdSlope[1] > 0
bool isPositiveSignalReversal = signalSlope > 0 and signalSlope[1] < 0
bool isPositiveMacdReversal = macdSlope > 0 and macdSlope[1] < 0
bool hasBearInversion = signalSlope > 0 and macdSlope < 0
bool hasBullInversion = signalSlope < 0 and macdSlope > 0
bool hasSignalBias = math.abs(signal) >= signalBiasValue
bool hasNoSignalBias = signal < signalBiasValue and signal > ( 0 - signalBiasValue )
bool hasSignalBuyerBias = hasSignalBias and signal > 0
bool hasSignalSellerBias = hasSignalBias and signal < 0
bool hasPositiveMACDBias = macd > macdBiasValue
bool hasNegativeMACDBias = macd < ( 0 - macdBiasValue )
bool hasBullAntiPattern = ta.crossunder(macd, signal)
bool hasBearAntiPattern = ta.crossover(macd, signal)
bool hasSignificantBuyerVolBias = buyVolume > ( sellVolume * 1.5 )
bool hasSignificantSellerVolBias = sellVolume > ( buyVolume * 1.5 )
// 7.48 Profit 52.5%
if ( hasSignificantBuyerVolBias and getPriceRising(shortLookBack) == shortLookBack and getBuyerVolBias(shortLookBack) == shortLookBack and hasPositiveMACDBias and hasBullInversion)
strategy.entry("Short1", strategy.short)
strategy.exit("TPS", "Short1", limit=strategy.position_avg_price - 0.75, stop=strategy.position_avg_price + 0.5)
// 32.53 Profit 47.91%
if ( getPriceFalling(shortLookBack) and (getVolBias(shortLookBack) == false) and signalSlope < 0 and hasSignalSellerBias)
strategy.entry("Long1", strategy.long)
strategy.exit("TPS", "Long1", limit=strategy.position_avg_price + 0.75, stop=strategy.position_avg_price - 0.5)