PSAR، MACD اور RSI پر مبنی ملٹی ٹائم فریم مقداری تجارتی حکمت عملی


تخلیق کی تاریخ: 2023-12-27 16:12:57 آخر میں ترمیم کریں: 2023-12-27 16:12:57
کاپی: 0 کلکس کی تعداد: 657
1
پر توجہ دیں
1623
پیروکار

PSAR، MACD اور RSI پر مبنی ملٹی ٹائم فریم مقداری تجارتی حکمت عملی

جائزہ

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

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

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

  2. MACD اشارے قیمت کی نقل و حرکت کا تعین کرتی ہے۔ MACD لائن اور SIGNAL لائن اوپر کی طرف ایک کثیر سر سگنل کے طور پر ٹوٹ جاتی ہے ، نیچے کی طرف ایک خالی سر سگنل کے طور پر ٹوٹ جاتی ہے۔

  3. آر ایس آئی اشارے نے اوورلوڈ اور اوورلوڈ کا فیصلہ کیا۔ آر ایس آئی ایک کثیر سر سگنل ہے جب اس کی قیمت کم ہوتی ہے ، اور ایک خالی سر سگنل جب اس کی قیمت کم ہوتی ہے۔

  4. مندرجہ بالا تینوں اشارے کے اشارے کو ملا کر ، حتمی کثیر جہتی فیصلے کی تشکیل کریں۔

  5. چپ انڈیکس کے ساتھ منسلک مارکیٹوں کو فلٹر کرنے کے لئے خود کو اپنانے اور whipsaws سے بچنے کے لئے.

  6. ریورس اہرام کے اصول کو اپنانے کے لئے ، خطرے اور منافع کے متحرک انتظام کو روکنے اور روکنے کی پوزیشنوں کو ترتیب دے کر۔

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

  1. کثیر اشارے کا مجموعہ ، رجحانات ، محرکات اور اوور بیئر اوور سیل کی خصوصیات کا جامع اندازہ لگانا ، اور فیصلوں کی درستگی کو بہتر بنانا۔

  2. مارکیٹ کی خصوصیات کو اپنانے، چپ انڈیکس اشارے کے ذریعے مارکیٹ کو مضبوط بنانے کے لئے فلٹرنگ سے بچنے سے بچنے کے لئے.

  3. خطرے اور منافع کی متحرک انتظامیہ ، ریورس اہرام کی پوزیشننگ کے اصول کے ذریعہ ، فعال اسٹاپ نقصان کو روکنے کے لئے۔

  4. زیادہ سے زیادہ اپنی مرضی کے مطابق اور مرضی کے مطابق پیرامیٹرز، مختلف اقسام اور مارکیٹ کے حالات کے لئے ایڈجسٹ کرنے کے لئے آسان.

  5. ایک سے زیادہ ٹائم فریموں کی حمایت کرتا ہے اور دن کے اندر مختصر اور درمیانے لمبے لین دین کے لئے لچکدار ہے۔

خطرے کا تجزیہ

  1. کثیر خلائی سر فیصلے پیرامیٹرز کی ترتیب پر منحصر ہے ، اور نامناسب ترتیب غلطیوں کا سبب بن سکتی ہے۔

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

  3. اسٹاپ نقصان کی روک تھام کو غلط طریقے سے ترتیب دیا گیا ہے ، جس سے نقصان میں اضافہ ہوسکتا ہے یا منافع میں کمی واقع ہوسکتی ہے۔

  4. بار بار نگرانی اور پیرامیٹرز کو ایڈجسٹ کرنے کی ضرورت ہے، زیادہ انسانی مداخلت کی لاگت.

اصلاح کی سمت

  1. ماڈل کی توثیق کے ماڈیول کو شامل کریں ، پیرامیٹرز کی ترتیب اور سگنل کی تاثیر کا اندازہ کریں

  2. مشین لرننگ ماڈیول شامل کریں تاکہ پیرامیٹرز اور ماڈل کو خودکار طور پر بہتر بنایا جاسکے۔

  3. مزید اعداد و شمار کے ذرائع تک رسائی، خصوصیت کی جگہ میں اضافہ، اور فیصلہ سازی کو بہتر بنانا.

  4. انسانی مداخلت کے اخراجات کو کم کرنے کے لئے نگرانی اور بحالی کے نظام کو خودکار بنانے کی ترقی۔

  5. ریٹرننگ اور تخروپن کی تشخیص کو بڑھانا اور جانچ کی حکمت عملی کی تاثیر کو بڑھانا۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
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/
// © vikris

//@version=4
strategy("[VJ]Phoenix Force of PSAR +MACD +RSI", overlay=true, calc_on_every_tick = false,pyramiding=0)

// ********** Strategy inputs - Start **********

// Used for intraday handling
// Session value should be from market start to the time you want to square-off 
// your intraday strategy
// Important: The end time should be at least 2 minutes before the intraday
// square-off time set by your broker
var i_marketSession = input(title="Market session", type=input.session, 
     defval="0915-1455", confirm=true)

// Make inputs that set the take profit % (optional)
longProfitPerc = input(title="Long Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=3) * 0.01

shortProfitPerc = input(title="Short Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=3) * 0.01
     
// Set stop loss level with input options (optional)
longLossPerc = input(title="Long Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=3) * 0.01

shortLossPerc = input(title="Short Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=3) * 0.01    


// ********** Strategy inputs - End **********


// ********** Supporting functions - Start **********

// A function to check whether the bar or period is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0



// Figure out take profit price
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

// Determine stop loss price
longStopPrice  = strategy.position_avg_price * (1 - longLossPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)


// ********** Supporting functions - End **********


// ********** Strategy - Start **********
// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)

// Trade only if intraday session is active

//=================Strategy logic goes in here===========================
 
psar = sar(0.02,0.02,0.2)
c1a = close > psar
c1v = close < psar

malen = input(50, title="MA Length")
mm200 = sma(close, malen)
c2a = close > mm200
c2v = close < mm200

fast = input(12, title="MACD Fast EMA Length")
slow = input(26, title="MACD Slow EMA Length")
[macd,signal,hist] = macd(close, fast,slow, 9)
c3a = macd >= 0
c3v = macd <= 0

rsilen = input(7, title="RSI Length")
th = input(50, title="RSI Threshold")
rsi14 = rsi(close, rsilen)
c4a = rsi14 >= th
c4v = rsi14 <= th

chopi = input(7, title="Chop Index lenght")
ci = 100 * log10(sum(atr(1), chopi) / (highest(chopi) - lowest(chopi))) / log10(chopi)

buy = c1a and c2a and c3a and c4a ? 1 : 0
sell = c1v and c2v and c3v and c4v ? -1 : 0


//Final Long/Short Condition
longCondition = buy==1 and ci <50
shortCondition = sell==-1 and ci <50 
 
//Long Strategy - buy condition and exits with Take profit and SL
if (longCondition and intradaySession)
    stop_level = longStopPrice
    profit_level = longExitPrice
    strategy.entry("My Long Entry Id", strategy.long)
    strategy.exit("TP/SL", "My Long Entry Id", stop=stop_level, limit=profit_level)


//Short Strategy - sell condition and exits with Take profit and SL
if (shortCondition and intradaySession)
    stop_level = shortStopPrice
    profit_level = shortExitPrice
    strategy.entry("My Short Entry Id", strategy.short)
    strategy.exit("TP/SL", "My Short Entry Id", stop=stop_level, limit=profit_level)
 
 
// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")

// ********** Strategy - End **********