اس مضمون میں رفتار کے رجحان کے تجزیے پر مبنی ایک مقداری تجارتی حکمت عملی کی تفصیل سے وضاحت کی گئی ہے۔ اس میں قیمت کی رفتار کی نشاندہی کرنے اور درمیانی اور طویل مدتی رجحان کے مواقع کو حاصل کرنے کے لئے حرکت پذیر اوسط ، ایم اے سی ڈی ، اور آر ایس آئی جیسے اشارے مرتب کیے گئے ہیں۔
I. حکمت عملی منطق
اہم فیصلے کے اشارے میں شامل ہیں:
EMAs مختلف ادوار میں رجحانات کا اندازہ کرنے کے لئے.
MACD قلیل مدتی رفتار کی تبدیلیوں کا پتہ لگانے کے لئے.
RSI overbought/oversold سطحوں کی جانچ پڑتال کرنے کے لئے.
اسٹاپ نقصان اور منافع لینے کے حساب کے لئے اے ٹی آر۔
یہ ان اشارے کو یکجا کرتا ہے تاکہ مستقل ، مضبوط بریک آؤٹس کی نشاندہی کی جاسکے جو تجارت میں داخل ہونے کے رجحان کے آغاز کی نشاندہی کرتے ہیں۔
جب قلیل مدتی ای ایم اے میں کثرت سے اتار چڑھاؤ ہوتا ہے تو ، یہ مارکیٹ کو مختلف سمجھتا ہے۔ تجارت صرف اس وقت کی جاتی ہے جب طویل مدتی ای ایم اے ٹوٹ جاتا ہے۔
ایم اے سی ڈی رفتار کی طاقت کا اندازہ کرتا ہے ، آر ایس آئی اونچائیوں اور نچلی سطحوں کا پیچھا کرنے سے گریز کرتا ہے۔ اے ٹی آر اسٹاپ نقصان اور منافع لے کر ہر تجارت کے خطرے کو کنٹرول کرتا ہے۔
II۔ اسٹریٹیجی کے فوائد
اس کا سب سے بڑا فائدہ اشارے کی تکمیل ہے ، جو درمیانی اور طویل مدتی رجحانات کے آغاز کی مؤثر طریقے سے نشاندہی کرسکتے ہیں۔
ایک اور فائدہ سٹاپ نقصان اور منافع حاصل کرنا ہے، جو رجحان منافع میں مقفل ہوتا ہے اور خطرے کا انتظام کرتا ہے۔
آخر میں، مرحلہ وار EMA ادوار مختلف رفتار کی سطحوں پر ہموار رجحان اندراج کی اجازت دیتے ہیں.
III. ممکنہ خطرات
تاہم، اس حکمت عملی میں مندرجہ ذیل خطرات بھی ہیں:
پہلی بات، رجحان کا پتہ لگانے میں تاخیر ہو سکتی ہے، جس کی وجہ سے مواقع ضائع ہو جاتے ہیں۔
دوسری بات یہ کہ بہت سخت طریقے سے رکنے کا خطرہ ہے کہ اس سے قبل ہی رک جائے گا۔
آخر میں، کم کرنے کے دباؤ کو نفسیاتی تیاری کی ضرورت ہے۔
IV. خلاصہ
خلاصہ میں ، اس مضمون میں رفتار کے رجحان کے تجزیے پر مبنی ایک مقداری حکمت عملی کی وضاحت کی گئی ہے۔ یہ رجحان کی سمت کا تعین کرنے کے لئے حرکت پذیر اوسط ، ایم اے سی ڈی اور آر ایس آئی جیسے اشارے کو مرتب کرتا ہے۔ پیرامیٹرز کی مناسب ترتیب کے ساتھ ، یہ خطرات کو کنٹرول کرسکتا ہے اور مستحکم منافع حاصل کرسکتا ہے۔ لیکن اشارے کی تاخیر جیسے خطرات پر دھیان دینے کی ضرورت ہے۔
/*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!')