رجحان کی رفتار پر مبنی مقداری تجارتی حکمت عملی


تخلیق کی تاریخ: 2023-09-14 20:38:49 آخر میں ترمیم کریں: 2023-09-14 20:38:49
کاپی: 1 کلکس کی تعداد: 711
1
پر توجہ دیں
1617
پیروکار

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

حکمت عملی

اس حکمت عملی کے اہم فیصلہ کن اشارے میں شامل ہیں:

  1. ای ایم اے اوسط ، جو مختلف ادوار میں قیمتوں کے رجحانات کا فیصلہ کرتی ہے۔

  2. ایم اے سی ڈی ، یہ دیکھنے کے لئے کہ آیا قلیل مدتی حرکیات میں کوئی تبدیلی آئی ہے یا نہیں۔

  3. RSI، یہ فیصلہ کرنے کے لئے کہ آیا یہ اوورلوڈ یا اوورلوڈ ہے؛

  4. اے ٹی آر ، اسٹاپ نقصان اور اسٹاپ پوزیشن کا حساب لگائیں۔

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

جب قلیل مدتی ای ایم اے کی اوسط لائن میں متعدد الٹیاں ہوتی ہیں تو ، اس کا فیصلہ اس وقت کیا جاتا ہے جب اس نے طویل مدتی ای ایم اے کو توڑ دیا ہو۔

MACDIimplement momentum change judgement,RSI avoid top touch bottom。ATR نے اسٹاپ نقصان کا تعین کیا اور اسٹاپ بند کو کنٹرول کیا۔

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

اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ اشارے ایک دوسرے کی تکمیل کرتے ہیں ، جس سے وسط اور لمبی لائن کے رجحانات کو مؤثر طریقے سے طے کیا جاسکتا ہے۔

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

آخر میں ، ای ایم اے کے دورانیہ کو درجہ بندی کیا جاتا ہے ، جس سے مختلف شدت کے رجحانات میں اضافہ ہوتا ہے۔

تیسرا، ممکنہ خطرات

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

سب سے پہلے ، رجحانات کا تعین کرنے میں تاخیر ہوسکتی ہے ، اور اس میں ممکنہ طور پر دستاویزات کی کمی ہوسکتی ہے۔

دوسری بات یہ ہے کہ اس میں بہت زیادہ شدت پسندی کا خطرہ ہے۔

آخر میں، دباؤ کو دور کرنے کے لئے ذہنی طور پر تیار ہونا ضروری ہے۔

چار مضامین، خلاصہ

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

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

//@version=3
strategy("QuantCat Mom Finder Strateg (1H)", overlay=true)

//Series to sum the amount of crosses in EMA for sideways trend/noise filtering
//can change EMA lengths, can change to SMA's/WMA's e.t.c

lookback_value = 60
minMA = 20
midMA = 40
maxMA = 60

ema25_crossover = (crossover(close, ema(close, minMA))) == true ? 1 : 0
ema25_crossover_sum = sum(ema25_crossover, lookback_value) ///potentially change lookback value to alter results

ema50_crossover = (crossover(close, ema(close, midMA))) == true ? 1 : 0
ema50_crossover_sum = sum(ema50_crossover, lookback_value) ///potentially change lookback value to alter results

ema75_crossover = (crossover(close, ema(close, maxMA))) == true ? 1 : 0
ema75_crossover_sum = sum(ema75_crossover, lookback_value) ///potentially change lookback value to alter results

ema25_crossunder = (crossunder(close, ema(close, minMA))) == true ? 1 : 0
ema25_crossunder_sum = sum(ema25_crossunder, lookback_value) ///potentially change lookback value to alter results

ema50_crossunder = (crossunder(close, ema(close, midMA))) == true ? 1 : 0
ema50_crossunder_sum = sum(ema50_crossunder, lookback_value) ///potentially change lookback value to alter results

ema75_crossunder = (crossunder(close, ema(close, maxMA))) == true ? 1 : 0
ema75_crossunder_sum = sum(ema75_crossunder, lookback_value) ///potentially change lookback value to alter results4


//Boolean series declaration
//can change amount of times crossed over the EMA verification to stop sideways trend filtering (3)

maxNoCross=2

macdmidlinebull=-0.5
macdmidlinebear=0.5
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)

//---------------
//Series Creation

bullishMacd = (macdLine > signalLine) and (macdLine > macdmidlinebull) ? true : false

bearishMacd = (macdLine < signalLine) and (macdLine < macdmidlinebear) ? true : false

bullRsiMin = 50 //53 initial values
bullRsiMax = 60 //61
bearRsiMin = 40 //39
bearRsiMax = 50 //47

basicBullCross25bool = ((ema25_crossover_sum < ema50_crossover_sum) 
     and (ema25_crossover_sum < ema75_crossover_sum) 
     and (ema25_crossover_sum < maxNoCross) 
     and crossover(close, ema(close, minMA)) and (rsi(close, 14) > bullRsiMin)
     and (rsi(close, 14) < bullRsiMax) and (bullishMacd == true)) ? true : false
  
basicBullCross50bool = ((ema50_crossover_sum < ema25_crossover_sum) 
     and (ema50_crossover_sum < ema75_crossover_sum) 
     and (ema50_crossover_sum < maxNoCross) 
     and crossover(close, ema(close, midMA)) and (rsi(close, 14) > bullRsiMin)
     and (basicBullCross25bool == false) 
     and (rsi(close, 14) < bullRsiMax) and (bullishMacd == true)) ? true : false
  
basicBullCross75bool = ((ema75_crossover_sum < ema25_crossover_sum) 
     and (ema75_crossover_sum < ema50_crossover_sum) 
     and (ema75_crossover_sum < maxNoCross) 
     and crossover(close, ema(close, maxMA)) and (rsi(close, 14) > bullRsiMin)
     and (basicBullCross25bool == false) and (basicBullCross50bool == false)
     and (rsi(close, 14) < bullRsiMax) and (bullishMacd == true)) ? true : false
     
basicBearCross25bool = ((ema25_crossunder_sum < ema50_crossunder_sum) 
     and (ema25_crossunder_sum < ema75_crossunder_sum) 
     and (ema25_crossunder_sum < maxNoCross) 
     and crossunder(close, ema(close, minMA)) and (rsi(close, 14) <bearRsiMax)
     and (rsi(close, 14) > bearRsiMin) and (bearishMacd == true)) ? true : false
  
basicBearCross50bool = ((ema50_crossunder_sum < ema25_crossunder_sum) 
     and (ema50_crossunder_sum < ema75_crossover_sum) 
     and (ema50_crossunder_sum < maxNoCross) 
     and crossunder(close, ema(close, midMA)) and (rsi(close, 14) < bearRsiMax)
     and (basicBearCross25bool == false) 
     and (rsi(close, 14) > bearRsiMin) and (bearishMacd == true)) ? true : false
  
basicBearCross75bool = ((ema75_crossunder_sum < ema25_crossunder_sum) 
     and (ema75_crossunder_sum < ema50_crossunder_sum) 
     and (ema75_crossunder_sum < maxNoCross) 
     and crossunder(close, ema(close, maxMA)) and (rsi(close, 14) < bearRsiMax)
     and (basicBearCross25bool == false) and (basicBearCross50bool == false)
     and (rsi(close, 14) > bearRsiMin) and (bearishMacd == true)) ? true : false

//STRATEGY
//can change lookback input on ATR

atrLkb = input(14, minval=1, title='ATR Stop Period')
atrRes = input("D",  title='ATR Resolution')
atr = security(syminfo.tickerid, atrRes, atr(atrLkb))


longCondition = (basicBullCross25bool or basicBullCross50bool or basicBullCross75bool) == true
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = (basicBearCross25bool or basicBearCross50bool or basicBearCross75bool) == true
if (shortCondition)
    strategy.entry("Short", strategy.short)
    
   
// Calc ATR Stops
// can change atr multiplier to affect stop distance/tp distance, and change "close" to ema values- could try ema 50

stopMult = 0.6 //0.6 is optimal

longStop = na
longStop :=  shortCondition ? na : longCondition and strategy.position_size <=0 ? close - (atr * stopMult) : longStop[1] 
shortStop = na
shortStop := longCondition ? na : shortCondition and strategy.position_size >=0 ? close + (atr * stopMult) : shortStop[1]

//Calc ATR Target

targetMult = 2.2 //2.2 is optimal for crypto x/btc pairs

longTarget = na
longTarget :=  shortCondition ? na : longCondition and strategy.position_size <=0 ? close + (atr*targetMult) : longTarget[1]
shortTarget = na
shortTarget := longCondition ? na : shortCondition and strategy.position_size >=0 ? close - (atr*targetMult) : shortTarget[1]

// Place the exits

strategy.exit("Long ATR Stop", "Long", stop=longStop, limit=longTarget)
strategy.exit("Short ATR Stop", "Short", stop=shortStop, limit=shortTarget)

//Bar color series

longColour = longCondition ? lime : na
shortColour = shortCondition ? red : na
    
// Plot the stoplosses and targets

plot(longStop, style=linebr, color=red, linewidth=2,     title='Long ATR Stop')
plot(shortStop, style=linebr, color=red, linewidth=2,  title='Short ATR Stop')
plot(longTarget, style=linebr, linewidth=2, color=lime,  title='Long ATR Target')
plot(shortTarget, linewidth=2, style=linebr, color=lime,  title='Long ATR Target')

barcolor(color=longColour)
barcolor(color=shortColour)

alertcondition(((basicBullCross25bool or basicBullCross50bool or basicBullCross75bool)==true), title='Long Entry', message='Bullish Momentum Change!')
alertcondition(((basicBearCross25bool or basicBearCross50bool or basicBearCross75bool)==true), title='Short Entry', message='Bearish Momentum Change!')