ملٹی ٹائم فریم موونگ ایوریج اور MACD پر مبنی لمبی مختصر افتتاحی حکمت عملی


تخلیق کی تاریخ: 2024-01-03 12:15:46 آخر میں ترمیم کریں: 2024-01-03 12:15:46
کاپی: 0 کلکس کی تعداد: 817
1
پر توجہ دیں
1621
پیروکار

ملٹی ٹائم فریم موونگ ایوریج اور MACD پر مبنی لمبی مختصر افتتاحی حکمت عملی

خلاصہ

اس حکمت عملی میں ملٹی ٹائم فریم انڈیکس (ایم ٹی ایف ای ایم اے) کے رجحان کی سمت کا تعین کرنے اور ایم اے سی ڈی اشارے کے ذریعہ خرید و فروخت کے سگنل پیدا کرنے کی صلاحیت کا بھرپور استعمال کیا گیا ہے ، جبکہ اے ٹی آر اشارے کے ساتھ مل کر اسٹاپ نقصان کی قیمت طے کی گئی ہے۔ حکمت عملی مضبوط رجحانات والے ڈیجیٹل کرنسی اور قانونی کرنسی کے جوڑے کے لئے موزوں ہے ، جو رجحانات کی مضبوط منڈیوں میں بہتر کارکردگی کا مظاہرہ کرتی ہے۔

حکمت عملی کا اصول

ایم ٹی ایف ای ایم اے کے فیصلے کے رجحانات

ملٹی ٹائم فریم انڈیکس منتقل اوسط ((MTF EMA) ایک ہی چارٹ پر ایک سے زیادہ وقت کی مدت کے لئے منتقل اوسط ظاہر کر سکتے ہیں، اس طرح اثاثہ کی مجموعی طور پر خالی حالت کا فیصلہ. حکمت عملی یہاں 1 گھنٹے کی مدت اور 15 منٹ کی مدت کے لئے MTF EMA کا استعمال کرتا ہے.

جب قیمت 1 گھنٹہ MTF EMA سے زیادہ ہو اور 1 گھنٹہ MTF EMA 15 منٹ MTF EMA سے کم ہو تو ، اس کو اوپر کی طرف بڑھنے کے رجحان کے طور پر بیان کیا گیا ہے۔ جب قیمت 1 گھنٹہ MTF EMA سے کم ہو اور 1 گھنٹہ MTF EMA 15 منٹ MTF EMA سے زیادہ ہو تو ، اس کو نیچے کی طرف بڑھنے کے رجحان کے طور پر بیان کیا گیا ہے۔

2. MACD خرید و فروخت سگنل پیدا کرتا ہے

جب MACD لائن نیچے کی طرف سے سگنل لائن کو توڑتی ہے تو ، خریدنے کا اشارہ پیدا ہوتا ہے۔ جب اوپر کی طرف سے نیچے کی طرف سے گرتی ہے تو ، فروخت کا اشارہ پیدا ہوتا ہے۔ غلط سگنل سے بچنے کے لئے ، MACD لائن اور سگنل لائن کی کراس حد مقرر کریں۔

اے ٹی آر کو روکنے کے نقصان کو روکنے کے لئے 3.

اے ٹی آر اشارے کا استعمال کرتے ہوئے اسٹاپ اسٹاپ کی قیمت طے کریں۔ اے ٹی آر مارکیٹ میں اتار چڑھاؤ کی سطح کی متحرکات کے مطابق معقول اسٹاپ اسٹاپ فاصلہ طے کرنے کے قابل ہے۔ اس کے ساتھ ہی اعلی کم پوائنٹس کی بازیافت کے مطابق اسٹاپ اسٹاپ کی ضرب کو بھی ترتیب دیں ، تاکہ اسٹاپ اسٹاپ زیادہ لچکدار ہو۔

تجارتی حکمت عملی

پوزیشن کھولنے کا اشارہ

کثیر سر سگنل: اوپر کی طرف رجحان اور MACD اوپر سگنل لائن کو پار کرتا ہے اور حد سے کم کراسنگ خالی سر سگنل: نیچے کی طرف رجحان اور MACD نیچے سگنل لائن اور کراس کی حد سے زیادہ ہے

بلین پوزیشن سگنل

ملٹی ہیڈ اسٹاپ: قیمتیں اے ٹی آر اسٹاپ سے تجاوز کر گئیں متعدد اسٹاپ نقصان: قیمت نے اے ٹی آر اسٹاپ نقصان کی قیمت کو توڑ دیا خالی سر اسٹاپ: قیمت نے اے ٹی آر اسٹاپ کی قیمت کو توڑ دیا خالی سر اسٹاپ: قیمت نے اے ٹی آر اسٹاپ کو توڑ دیا

طاقت کا تجزیہ

اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ ایم ٹی ایف ای ایم اے نے رجحان کا فیصلہ کیا اور ایم اے سی ڈی نے خرید و فروخت کے اشارے پیدا کیے۔ ایم ٹی ایف ای ایم اے مجموعی رجحان کی سمت کا واضح طور پر فیصلہ کرسکتا ہے ، اور اتار چڑھاؤ کے حالات میں کثرت سے تجارت سے گریز کرتا ہے۔ ایم اے سی ڈی اشارے قلیل مدتی قیمت کی صورتحال میں تبدیلی کو بہتر طور پر پکڑ سکتے ہیں ، خرید و فروخت کے اشارے پیدا کرتے ہیں۔ دونوں کو مل کر استعمال کیا جاسکتا ہے ، جس سے رجحان کو پکڑنے کے ساتھ ساتھ زیادہ خرید و فروخت کے مواقع حاصل کیے جاسکتے ہیں۔ اس کے علاوہ ، اے ٹی آر اشارے کا استعمال متحرک طور پر اسٹاپ نقصان کی روک تھام کو ٹریک کرنے کے لئے کیا جاتا ہے ، جس سے ایک ہی تجارت کے خطرے کو مؤثر طریقے سے کنٹرول کیا جاسکتا ہے۔

خطرات اور حل

اس حکمت عملی میں دو اہم خطرات ہیں: پہلا یہ کہ جب کوئی واضح رجحان نہیں ہوتا ہے تو ، MTF EMA غلط سگنل دے سکتا ہے ، جس سے نقصان ہوتا ہے۔ دوسرا یہ کہ MACD اشارے اکثر قیمت میں بڑے تبدیلی کے وقت گمراہ کن سگنل دیتے ہیں ، جس سے زیادہ تجارت ہوسکتی ہے۔ پہلے خطرے کے ل M ، MTF EMA پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کیا جاسکتا ہے تاکہ وہ قیمت کے رجحانات میں تبدیلی سے زیادہ مطابقت پذیر ہوسکیں۔ دوسرا خطرہ MACD اشارے کی کراس حد مقرر کرکے کم کیا جاسکتا ہے۔

اصلاح کی سمت

اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:

  1. ایم ٹی ایف ای ایم اے کے دورانیہ کے پیرامیٹرز کو ایڈجسٹ کریں تاکہ یہ مختلف قسم کے تجارت کی قیمتوں کی خصوصیات سے بہتر طور پر مل سکے۔

  2. بہتر سگنل کے لئے MACD اشارے کی سست رفتار اوسط اور سگنل اوسط پیرامیٹرز کو بہتر بنائیں

  3. مختلف اے ٹی آر سائیکل پیرامیٹرز اور اسٹاپ اسٹاپ نقصان کے ضارب کو جانچنے کے لئے بہترین منافع حاصل کریں

  4. دیگر معاون اشارے فلٹر سگنل شامل کریں

خلاصہ کریں۔

یہ طویل کھلی پوزیشن حکمت عملی ایم ٹی ایف ای ایم اے کے رجحان کا فیصلہ کرنے ، ایم اے سی ڈی کے تجارتی سگنل پیدا کرنے اور اے ٹی آر متحرک اسٹاپ نقصان روکنے کے طریقہ کار کو مربوط کرتی ہے ، جس سے واضح رجحان والے بازاروں میں بہتر منافع حاصل کیا جاسکتا ہے۔ اس حکمت عملی میں اصلاح کی گنجائش زیادہ ہے ، جس میں پیرامیٹرز کو ایڈجسٹ کرنے اور بہتر بنانے کے ذریعے بہتر کارکردگی حاصل کی جاسکتی ہے۔ تاہم ، خطرات پر قابو پانے پر توجہ دیں ، اور ہلکے چلنے والے حالات میں اندھے تجارت سے بچیں۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Steven A. Zmuda Burke / stevenz17
//@version=4
// From Date Inputs
fromDay = input(defval = 01, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 04, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2022, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 01, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 05, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2022, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

// Input
strategy("LONG", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, slippage=1, commission_type=strategy.commission.percent, 
     commission_value=0.015)
SOURCE = input(title = "═════════════════════ SOURCE ═════════════════════", defval = false, type = input.bool)
sourcehl2 = input(title="Source hl2 or (open+close)/2 ?",type=input.bool,defval=true)
source = sourcehl2 ? hl2 : ((open+close)/2)

//MTF EMA
MTFEMA = input(title = "════════════════════ MTF EMA ════════════════════", defval = false, type = input.bool)

res1=input(title="MTF EMA 1", type=input.resolution, defval="60")
len1 = input(title = "EMA Period 1", type=input.integer, defval=70, minval=1)
ema1 = ema(source, len1)
emaStep1 = security (syminfo.tickerid, res1, ema1, barmerge.gaps_off, barmerge.lookahead_off)
mtf1 = emaStep1

res2=input(title="MTF EMA 2", type=input.resolution, defval="15")
len2 = input(title = "EMA Period 2", type=input.integer, defval=68, minval=1)
ema2 = ema(source, len2)
emaStep2 = security (syminfo.tickerid, res2, ema2, barmerge.gaps_off, barmerge.lookahead_off)
mtf2 = emaStep2

t1 = plot(mtf1, linewidth=4, color= color.aqua, title="EMA")
t2 = plot(mtf2, linewidth=4, color= color.navy, title="EMA")
fill(t1, t2, transp = 70, color = mtf1 > mtf2 ? color.red : color.green)

///MACD
MACD= input(title = "═════════════════════ MACD ══════════════════════", defval = false, type = input.bool)
MACDsource=close
fastLength = input(13, minval=1, title="MACD fast moving average")
slowLength=input(18,minval=1, title="MACD slow moving average")
signalLength=input(24,minval=1, title="MACD signal line moving average")
MacdEmaLength =input(9, title="MACD EMA period", minval=1)
useEma = input(true, title="Use EMA (otherwise SMA)")
useOldAlgo = input(false, title="Use normal MACD")
Lmacsig=input(title="LONG MACD and signal crossover limit",type=input.integer,defval=180)

// Fast line
ma1= useEma ? ema(MACDsource, fastLength) : sma(MACDsource, fastLength) 
ma2 = useEma ?  ema(ma1,fastLength) :  sma(ma1,fastLength) 
fastMA = ((2 * ma1) - ma2)

// Slow line
mas1=  useEma ? ema(MACDsource , slowLength) :  sma(MACDsource , slowLength)
mas2 =  useEma ? ema(mas1 , slowLength): sma(mas1 , slowLength)
slowMA = ((2 * mas1) - mas2)

// MACD line
macd = fastMA - slowMA

// Signal line
emasig1 = ema(macd, signalLength)
emasig2 = ema(emasig1, signalLength)
signal = useOldAlgo ? sma(macd, signalLength) : (2 * emasig1) - emasig2

hist = macd - signal

histline = hist > 0 ? color.green : color.red

//MACD ribbon
macdribbon=input(title="Show MACD ribbon?",type=input.bool,defval=false)
macdx=input(title="MACD ribbon multiplier", type=input.integer, defval=3, minval=1)

leadLine1 = macdribbon ? macd*macdx + source : na
leadLine2 = macdribbon ? signal*macdx + source : na
leadLine3 = hist + source

//MACD plot
p3 = plot(leadLine1, color= color.green, title="MACD", transp = 100, linewidth = 8)
p4 = plot(leadLine2, color= color.red, title="Signal", transp = 100, linewidth = 8)
fill(p3, p4, transp = 20, color = leadLine1 > leadLine2 ? #53b987 : #eb4d5c)

plot((leadLine3), color = histline, title="Histogram", linewidth = 3) 


l="TEst"

upHist = (hist > 0) ? hist : 0
downHist = (hist <= 0) ? hist : 0

p1 = plot(upHist, color=color.green, transp=40, style=plot.style_columns, title='Positive delta')
p2 = plot(downHist, color=color.green, transp=40, style=plot.style_columns, title='Negative delta') 

zeroLine = plot(macd, color=color.black, transp=0, linewidth=2, title='MACD line')
signalLine = plot(signal, color=color.gray, transp=0, linewidth=2, title='Signal')

ribbonDiff = color.green
fill(zeroLine, signalLine, color=ribbonDiff)

circleYPosition = signal
plot(ema(macd,MacdEmaLength) , color=color.red, transp=0, linewidth=2, title='EMA on MACD line')

ribbonDiff2 = hist > 0 ? color.green : color.red
plot(crossunder(signal,macd) ? circleYPosition : na,style=plot.style_circles, linewidth=4, color=ribbonDiff, title='Dots')


//STOCHASTIC
stochchch= input(title = "═══════════════════ STOCHASTIC ════════════════════", defval = false, type = input.bool)
StochOn = input(title="Stochastic On?",type=input.bool,defval=true)
periodK = input(10, title="K", minval=1)
periodD = input(1, title="D", minval=1)
smoothK = input(3, title="Smooth", minval=1)
stochlimit = input(30, title="Stoch value crossover", minval=1)
k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)

stochSignal = StochOn ? (d < stochlimit ? true : false) : true

pp= input(1, title="avg price length", minval=1)
p = ema (source, pp)
K = k + p

plot(k, title="%K", color=#0094FF)
plot(d, title="%D", color=#FF6A00)
h0 = hline(72, "Upper Band", color=#606060)
h1 = hline(20, "Lower Band", color=#606060)
fill(h0, h1, color=#9915FF, transp=80, title="Background")



//Long 
LS= "════════════════════════════════ LONG CONDITIONS ═══════════════════════════"

uptrend = close > mtf1 and mtf1 < mtf2
downtrend = close < mtf1 and mtf1 > mtf2 

crossMACD = crossunder(macd,signal) 

LongBuy = uptrend and stochSignal? crossMACD and signal < Lmacsig and macd < Lmacsig : na

LONG = strategy.position_size > 0
SHORT = strategy.position_size < 0
FLAT = strategy.position_size == 0 

plotshape(LongBuy, style=shape.xcross, text="LONG", color=color.green)

//ATR & TP/SL

ATRTPSLX= input(title = "═════════════════ LONG SL ═════════════════", defval = false, type = input.bool)

maxIdLossPcnt = input(5, "Max Intraday Loss(%)", type=input.float, minval=0.0, step=0.1)
// strategy.risk.max_intraday_loss(maxIdLossPcnt, strategy.percent_of_equity)

SSL2=input(title="Long Stop Loss when MTF EMA cross?",type=input.bool,defval=false)

SSLOP = LONG  and crossunder(source, mtf1) 

SlossPercOn = input(title="Long Stop Loss (%) on?",type=input.bool,defval=false)
SlossPerc = input(title="Long Stop Loss (%)", type=input.float, minval=0.0, step=0.1, defval=4.7) * 0.01
SSpricePerc = LONG and SlossPercOn? strategy.position_avg_price * (-1 - SlossPerc) : na
plot(series = SSpricePerc, linewidth=2, color= color.maroon,style=plot.style_linebr, title="Long Stop Loss %") 
SSLX = LONG and crossunder(source, SSpricePerc)

SSLatr= input(title="Long Stop Loss ATR?",type=input.bool,defval=true)
useStructure=input(title="Look back for High/Lows?",type=input.bool,defval=true)
Slookback=input(title="How far to look back for High/Lows:",type=input.integer,defval=18,minval=1)
SatrLenghth=input(title="Long ATR Lenghth",type=input.integer,defval=9,minval=1)
SatrStopMultiplier=input(title="Long ATR Stop x ?", type=input.float,defval=4.3, minval=0.1,step=0.1)

Satr = atr(SatrLenghth)
LongStop = SSLatr ? ((useStructure ? lowest(low, Slookback) : source) - Satr * SatrStopMultiplier) : na

SStop = crossunder(source,LongStop)

plot(Satr, color=color.blue, title="ATR", transp=100)
plot(series = uptrend ? LongStop : na, color=color.red, style=plot.style_linebr, title="Long Trailing Stop", transp=0)


ATRTPSLXX= input(title = "═════════════════ LONG TP ═════════════════", defval = false, type = input.bool)

TpPercOn = input(title="Long Take Profit (%) on?",type=input.bool,defval=true)
TpPerc = input(title="Long Take Profit (%)", type=input.float, minval=0.0, step=0.1, defval=5.3) * 0.01
TppricePerc = LONG and TpPercOn? strategy.position_avg_price * (-1 + TpPerc) : na
plot(series = TppricePerc, linewidth=2, color= color.lime,style=plot.style_linebr, title="Long Take Profit %") 
TPLX = LONG and crossunder(source, TppricePerc)

TP1=input(title="1 Long Take Profit On?",type=input.bool,defval=true)

useStructure1=input(title="Look back for High/Lows?",type=input.bool,defval=true)
STplookback=input(title="How far to look back for High/Lows for 1 TP",type=input.integer,defval=12,minval=1)
STpatrLenghth=input(title="Long ATR Lenghth 1 TP",type=input.integer,defval=24,minval=1)
SatrProfitMultiplier = input(title="First Long ATR Take Profit x ?", type=input.float,defval=5.5, minval=0.1,step=0.1)
STpatr = atr(STpatrLenghth)
LongTakeProfit = (useStructure1 ? highest(high, STplookback) : source) + STpatr * SatrProfitMultiplier
LongTP = TP1 ? crossover(source, LongTakeProfit): false
plot(series = uptrend ? LongTakeProfit: na , color=color.green, style=plot.style_linebr, title="Long Trailing Take Profit", transp=0)


// Bar color
barcolor(cross(macd, signal) ? (macd - signal > 0 ? (uptrend and macd < 0 and signal < 0 ? color.yellow : na) : (downtrend and macd > 0 and signal > 0 ? color.blue : na)) : na)

// Strategy ATR

GOLONG = LongBuy and SSLatr and FLAT

if GOLONG and TP1
    strategy.entry(id="Entry LONG 1TP", long=true,comment="Entry Long")
    strategy.exit("Long Profit or Loss 1TP","Entry LONG 1TP", limit=LongTakeProfit, stop=LongStop)
if SSLX
    strategy.close(id="Entry LONG 1TP", comment="% Long SL EXIT")
if TPLX
    strategy.close(id="Entry LONG 1TP", comment="% Long TP EXIT")
    
if SSLOP and SSL2
    strategy.close(id="Entry LONG 1TP", comment="MTF EMA cross EXIT")    
    
if (not time_cond)
    strategy.close_all()
    strategy.cancel_all()    


//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

//@version=4