STEM اور MATCS مشترکہ مومینٹم ٹریڈنگ حکمت عملی


تخلیق کی تاریخ: 2023-09-15 16:22:48 آخر میں ترمیم کریں: 2023-09-15 16:22:48
کاپی: 0 کلکس کی تعداد: 655
1
پر توجہ دیں
1617
پیروکار

اس حکمت عملی کا نام STEM اور MATCS کا ایک مجموعہ ہے۔ یہ حکمت عملی سپر ٹرینڈ اشارے کو MACD اشارے کے ساتھ جوڑ کر ٹریڈنگ سگنل بنانے کے لئے استعمال کرتی ہے۔

حکمت عملی کیسے کام کرتی ہے:

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

تجارت کے مخصوص قواعد:

  1. جب سپر ٹرینڈ کا رخ موڑنے سے موڑ جاتا ہے ، اور MACD تیز لائن پر درمیانی لائن کو عبور کرتا ہے تو ، زیادہ داخلہ کریں۔
  2. جب سپر ٹرینڈ کا رخ موڑنے کے بعد اور MACD فوری لائن کے نیچے درمیانی لائن سے گزرتا ہے تو ، داخلہ کو خالی کریں۔
  3. فین پوزیشن کی شرائط: سٹاپ نقصان یا سٹاپ سٹاپ ((اختیاری) )

اس حکمت عملی کے فوائد:

  1. سگنل کی درستگی کو بہتر بنانے کے لئے متعدد اشارے کا مجموعہ۔
  2. متحرک سٹاپ نقصان ، جو بڑے نقصانات کو محدود کرتا ہے۔
  3. رجحانات کی نگرانی اور تجارت کو تبدیل کرنے کی صلاحیت کے ساتھ۔

اس حکمت عملی کے خطرات:

  1. سپر ٹرینڈ اور MACD اشارے پیرامیٹرز کو غلط طریقے سے ترتیب دیا گیا ہے ، جس سے غلط سگنل پیدا ہوسکتے ہیں۔
  2. اسٹاپ نقصان کا نقطہ بہت قریب ہے ، اور اس کا امکان ہے کہ اس کو کثرت سے روک دیا جائے گا۔
  3. ٹرانزیکشن فیس اور سلائڈ پوائنٹس منافع کو متاثر کرتی ہیں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-09-07 00:00:00
end: 2023-09-14 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/
// © IncomePipelineGenerator
//@version=4
// strategy("STRAT_STEM_MATCS_BTC", overlay=true, pyramiding = 0, default_qty_value = 20, slippage = 5)


ST_EMA_PERIOD = input(1, minval=1)
ST_EMA = ema(close, ST_EMA_PERIOD)

LENGTH = input(title="ATR_PERIOD", type=input.integer, defval=95)
ATR_TUNE = input(title="ATR_TUNE", type=input.float, step=0.1, defval=2.1)
showLabels = input(title="Show_Buy/Sell_Labels ?", type=input.bool, defval=true)
highlightState = input(title="Highlight_State ?", type=input.bool, defval=true)

ATR = ATR_TUNE * atr(LENGTH)

longStop = ST_EMA - ATR
longStopPrev = nz(longStop[1], longStop)
longStop := (close[1]) > longStopPrev ? max(longStop, longStopPrev) : longStop

shortStop = ST_EMA + ATR
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := (close[1]) < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop

dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and (close) > shortStopPrev ? 1 : dir == 1 and (close) < longStopPrev ? -1 : dir


fastLength = input(3, minval=1), medLength=input(9, minval=1), slowLength=input(12, minval=1), signalLength=input(16,minval=1)
fastMA = ema(close, fastLength), medMA = ema(close, medLength), slowMA = ema(close, slowLength)

macd = fastMA - slowMA
fmacd = fastMA - medMA
smacd = slowMA - medMA

signal = ema(macd, signalLength)
fsignal = ema(fmacd, signalLength)
ssignal = ema(smacd, signalLength)


SetStopLossShort = 0.0
SetStopLossShort := if(strategy.position_size < 0)
    StopLossShort = shortStop
    min(StopLossShort,SetStopLossShort[1])

SetStopLossLong = 0.0
SetStopLossLong := if(strategy.position_size > 0)
    StopLossLong = longStop
    max(StopLossLong,SetStopLossLong[1])


ATR_CrossOver_Period = input(5, type=input.integer, minval=1, maxval=2000)
ATR_SIGNAL_FINE_TUNE = input(0.962, type=input.float)  
ATR_CS = atr(ATR_CrossOver_Period)*ATR_SIGNAL_FINE_TUNE

StopLoss_Initial_Short = input(0.0, type=input.float) 
StopLoss_Initial_Long = input(0.0, type=input.float) 

StopLoss_Long_Adjust = input(0.0, type=input.float) 
StopLoss_Short_Adjust = input(0.0, type=input.float) 

VOLUME_CHECK = input(200)

//Custom Time Interval
fromMinute = input(defval = 0, title = "From Minute", minval = 0, maxval = 60)
fromHour = input(defval = 0, title = "From Hour", minval = 0, maxval = 24)
fromDay = input(defval = 1, title = "From Day", minval = 1)
fromMonth = input(defval = 1, title = "From Month", minval = 1)
fromYear = input(defval = 2019, title = "From Year", minval = 1900)
tillMinute = input(defval = 0, title = "Till Minute", minval = 0, maxval = 60)
tillHour = input(defval = 0, title = "Till Hour", minval = 0, maxval = 24)
tillDay = input(defval = 1, title = "Till Day", minval = 1)
tillMonth = input(defval = 1, title = "Till Month", minval = 1)
tillYear = input(defval = 2020, title = "Till Year", minval = 1900)
timestampStart = timestamp(fromYear,fromMonth,fromDay,fromHour,fromMinute)
timestampEnd = timestamp(tillYear,tillMonth,tillDay,tillHour,tillMinute)


//Custom Buy Signal Code --  This is where you design your own buy and sell signals. You now have millions of possibilites with the use of simple if/and/or statements.
if (  dir==1 and dir[1]==-1  and volume > VOLUME_CHECK and ((fsignal[1] -fsignal) <= 0) and  cross(fmacd, smacd) )
    strategy.exit("SELL")
    strategy.entry("BUY", strategy.long)
    strategy.exit("BUY_STOP","BUY", stop = close - StopLoss_Initial_Long)

//Custom Sell Signal Code
if  ( dir == -1 and dir[1] == 1 and dir[2] == 1 and dir[3] == 1 and dir[4] == 1 and  cross(fmacd, smacd) )
    strategy.exit( "BUY")
    strategy.entry("SELL", strategy.short)
    strategy.exit("SELL_STOP","SELL", stop = close + StopLoss_Initial_Short)

//Slight adjustments to ST for fine tuning
if (strategy.opentrades > 0 )
    strategy.exit("BUY_TRAIL_STOP","BUY", stop = longStop - StopLoss_Long_Adjust)
    strategy.exit("SELL_TRAIL_STOP","SELL", stop = shortStop + StopLoss_Short_Adjust)