مختصر مدتی حکمت عملی کے بعد MACD رجحان


تخلیق کی تاریخ: 2023-12-19 11:16:44 آخر میں ترمیم کریں: 2023-12-19 11:16:44
کاپی: 0 کلکس کی تعداد: 605
1
پر توجہ دیں
1621
پیروکار

مختصر مدتی حکمت عملی کے بعد MACD رجحان

جائزہ

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

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

اس حکمت عملی کے بنیادی ٹریڈنگ منطق کی بنیاد مندرجہ ذیل نکات پر ہے۔

  1. جب قیمت ایکسپونینشل موونگ ایوریج (ای ایم اے) کی اوسط لائن کو عبور کرتی ہے تو زیادہ دیکھنا ، جب قیمت نیچے کی طرف جاتی ہے تو کم دیکھنا؛

  2. جب MACD کی تیز لائن سست لائن سے اوپر ہو تو زیادہ دیکھیں اور جب تیز لائن سست لائن سے نیچے ہو تو نیچے دیکھیں؛

  3. اس کے علاوہ ، یہ بھی کہا گیا ہے کہ اس کی وجہ یہ ہے کہ اس کی وجہ سے ، اس کی وجہ سے ، اس کی وجہ سے ، اس کی وجہ سے ، اس کی وجہ سے ، اس کی وجہ سے ، اس کی وجہ سے ، اس کی وجہ سے۔

  4. ان تینوں صورتوں کے مجموعے میں داخلے کی شرائط؛

  5. اس کے برعکس فیصلہ کیا جائے گا۔

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

اسٹریٹجک فوائد

یہ کثیر اشارے کا مجموعہ ایک عام شارٹ لائن ٹرینڈ ٹریکنگ حکمت عملی ہے جس میں مندرجہ ذیل فوائد ہیں:

  1. تین اشارے جو ایک دوسرے کی تصدیق کرتے ہیں، جعلی سگنل کے امکان کو کم کرتے ہیں؛

  2. ای ایم اے نے مرکزی رجحان کی سمت کا فیصلہ کیا ، اور ایم اے سی ڈی نے مختصر لائن کی طاقت کو کمزور قرار دیا۔

  3. اس کے علاوہ ، یہ بھی کہا گیا ہے کہ اس کی قیمتوں میں بہت زیادہ اضافہ ہوا ہے ، اور اس کی قیمتوں میں بہت زیادہ اضافہ ہوا ہے۔

  4. ریورس انڈیکیٹرز کا مجموعہ فیصلہ سے باہر نکلنے کے لئے ، جو خطرے کے کنٹرول کے ساتھ مل کر ہے۔

اسٹریٹجک رسک

اس حکمت عملی کے ساتھ مندرجہ ذیل اہم خطرات بھی ہیں:

  1. کثیر اشارے کے مجموعے کی ساخت پیچیدہ ہے ، پیرامیٹرز کو بہتر بنانے میں زیادہ دشواری ہے۔

  2. ٹرانزیکشن کی قیمتوں میں اضافہ ہو سکتا ہے کیونکہ ٹرانزیکشن لائنوں کو مختصر کیا جا رہا ہے۔

  3. اس کے علاوہ ، یہ بھی کہا گیا ہے کہ اس طرح کے رجحانات کے بارے میں سوچنے سے پہلے ، آپ کو یہ معلوم ہونا چاہئے کہ آپ کو کیا کرنا چاہئے اور کیا نہیں کرنا چاہئے۔

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

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

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

  1. زیادہ سے زیادہ اشارے کے پیرامیٹرز کے مجموعے کو جانچنے کے لئے، بہترین پیرامیٹرز کو تلاش کرنے کے لئے؛

  2. مزید اعداد و شمار کے ذرائع کو شامل کرنا، جیسے ٹرانزیکشن کی مقدار؛

  3. متحرک نقصانات کو روکنے یا نقصانات کو روکنے کے لئے خطرہ کنٹرول کو مضبوط بنانے کے لئے؛

  4. مشین لرننگ ماڈل کے ساتھ مل کر حقیقی رجحانات کی تبدیلی کا اندازہ لگائیں۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
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/
// © platsn

//@version=5
strategy("MACD Willy Strategy", overlay=true, pyramiding=1, initial_capital=10000) 

// ******************** Trade Period **************************************
startY = input(title='Start Year', defval=2011, group = "Trading window")
startM = input.int(title='Start Month', defval=1, minval=1, maxval=12, group = "Trading window")
startD = input.int(title='Start Day', defval=1, minval=1, maxval=31, group = "Trading window")
finishY = input(title='Finish Year', defval=2050, group = "Trading window")
finishM = input.int(title='Finish Month', defval=12, minval=1, maxval=12, group = "Trading window")
finishD = input.int(title='Finish Day', defval=31, minval=1, maxval=31, group = "Trading window")
timestart = timestamp(startY, startM, startD, 00, 00)
timefinish = timestamp(finishY, finishM, finishD, 23, 59)
// t1 = time(timeframe.period, "0945-1545:23456") 
// window = time >= timestart and time <= timefinish and t1 ? true : false 
// t2 = time(timeframe.period, "0930-1555:23456")
// window2 = time >= timestart and time <= timefinish and t2 ? true : false 

leverage = input.float(1, title="Leverage (if applicable)", step=0.1, group = "Trading Options")
reinvest = input.bool(defval=false,title="Reinvest profit", group = "Trading Options")
reinvest_percent = input.float(defval=20, title = "Reinvest percentage", group="Trading Options")
// entry_lookback = input.int(defval=10, title="Lookback period for entry condition", group = "Trading Options")

// -------------------------------------------- Data Source --------------------------------------------

src = input(title="Source", defval=close)

// ***************************************************************************************************** Daily ATR *****************************************************
atrlen = input.int(14, minval=1, title="ATR period", group = "Daily ATR")
iPercent = input.float(5, minval=1, maxval=100, step=0.1, title="% ATR to use for SL / PT", group = "Daily ATR")
 
percentage = iPercent * 0.01
datr = request.security(syminfo.tickerid, "1D", ta.rma(ta.tr, atrlen))
datrp = datr * percentage

// plot(datr,"Daily ATR")
// plot(datrp, "Daily % ATR")

//*********************************************************** VIX volatility index ****************************************

VIX = request.security("BTC_USDT:swap", timeframe.period, close)
vix_thres = input.float(20.0, "VIX Threshold for entry", step=0.5, group="VIX Volatility Index")

// ************************************************ Volume ******************************************************

vol_len = input(50, 'Volume MA Period')
avg_vol = ta.sma(volume, vol_len)

//-------------------------------------------------------- Moving Average ------------------------------------

emalen1 = input.int(200, minval=1, title='EMA', group= "Moving Averages")
ema1 = ta.ema(src, emalen1)

// ------------------------------------------ MACD ------------------------------------------
// Getting inputs
fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
signal_length = input.int(title="Signal Smoothing",  minval = 1, maxval = 50, defval = 9)
sma_source = input.string(title="Oscillator MA Type",  defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])
// Plot colors
col_macd = input(#2962FF, "MACD Line  ", group="Color Settings", inline="MACD")
col_signal = input(#FF6D00, "Signal Line  ", group="Color Settings", inline="Signal")
col_grow_above = input(#26A69A, "Above   Grow", group="Histogram", inline="Above")
col_fall_above = input(#B2DFDB, "Fall", group="Histogram", inline="Above")
col_grow_below = input(#FFCDD2, "Below Grow", group="Histogram", inline="Below")
col_fall_below = input(#FF5252, "Fall", group="Histogram", inline="Below")
// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal

// ---------------------------------------- William %R --------------------------------------
w_length = input.int(defval=34, minval=1)
w_upper = ta.highest(w_length)
w_lower = ta.lowest(w_length)

w_output = 100 * (close - w_upper) / (w_upper - w_lower)

fast_period = input(defval=5, title='Smoothed %R Length')
slow_period = input(defval=13, title='Slow EMA Length')

w_fast_ma = ta.wma(w_output,fast_period)
w_slow_ma = ta.ema(w_output,slow_period)



// ------------------------------------------------ Entry Conditions ----------------------------------------

L_entry1 = close > ema1 and hist > 0 and w_fast_ma > w_slow_ma 
S_entry1 = close < ema1 and hist < 0 and w_fast_ma < w_slow_ma 

// -------------------------------------------------- Entry -----------------------------------------------
strategy.initial_capital = 50000
profit = strategy.netprofit
trade_amount = math.floor(strategy.initial_capital*leverage / close) 

if strategy.netprofit > 0 and reinvest
    trade_amount := math.floor((strategy.initial_capital+(profit*reinvest_percent*0.01))*leverage / close) 
else
    trade_amount := math.floor(strategy.initial_capital*leverage/ close) 


if L_entry1 //and window
    strategy.entry("Long", strategy.long, trade_amount)

if S_entry1 //and window
    strategy.entry("Short", strategy.short, trade_amount)

// --------------------------------------------------- Exit Conditions -------------------------------------

L_exit1 = hist < 0 and w_fast_ma < w_slow_ma and w_fast_ma < -20
S_exit1 = hist > 0 and w_fast_ma > w_slow_ma and w_fast_ma > -80

// ----------------------------------------------------- Exit ---------------------------------------------

if L_exit1 //and window2
    strategy.close("Long")
    
if S_exit1 //and window2
    strategy.close("Short")

// if time(timeframe.period, "1530-1600:23456")
//     strategy.close_all()