یہ حکمت عملی متعدد ٹائم فریموں میں خودکار لانگ اور شارٹ ٹریڈنگ کو نافذ کرنے کے لئے پیرابولک SAR ، MACD اور RSI اشارے کو جوڑتی ہے۔ یہ بنیادی طور پر اسٹاک اور خام مال کی مصنوعات کی انٹر ڈے ٹریڈنگ کے لئے موزوں ہے۔
پی ایس اے آر اشارے کا استعمال قیمت کی سمت اور رجحان کی تبدیلی کے نکات کا تعین کرنے کے لئے کیا جاتا ہے۔ گرنے والے نقطے تیزی کے اشارے ہیں جبکہ بڑھتے ہوئے نقطے bearish سگنل ہیں۔
ایم اے سی ڈی اشارے قیمت کی رفتار کا اندازہ کرتا ہے۔ سیگنل لائن سے اوپر کی طرف ایم اے سی ڈی لائن عبور کرنا تیزی کا اشارہ ہے جبکہ نیچے کی طرف عبور کرنا bearish ہے۔
آر ایس آئی اشارے سے زیادہ خریدنے اور زیادہ فروخت کی حالت کا اندازہ ہوتا ہے۔ حد سے اوپر آر ایس آئی تیزی سے بڑھ رہا ہے جبکہ اس سے نیچے bearish ہے۔
مذکورہ بالا تین اشارے کے اشاروں کو یکجا کرکے حتمی طویل / مختصر فیصلہ کریں۔
موافقت پذیر طور پر چپس انڈیکس اشارے کا استعمال کریں تاکہ وِپساؤ سے بچنے کے لئے مستحکم مارکیٹوں کو فلٹر کریں۔
خطرہ اور منافع کے اہداف کو متحرک طور پر منظم کرنے کے لئے الٹ pyramiding پوزیشن سائزنگ کا استعمال کریں.
رجحان، رفتار اور آسکیلیٹرز کا اندازہ کرنے والے متعدد اشارے کا امتزاج درستگی کو بہتر بناتا ہے۔
مارکیٹ کے حالات کو اپنانے کے لئے مارکیٹوں کو مضبوط بنانے کے لئے فلٹرنگ کی طرف سے پھنسنے سے بچنے کے لئے.
متحرک خطرہ اور منافع کا انتظام ریورس پرامڈائزنگ پوزیشن سائزنگ کے ذریعے موافقت پذیر رکاوٹوں اور حدود کے ساتھ۔
مختلف مصنوعات اور مارکیٹ کے ماحول کے لئے سایڈست پیرامیٹرز کے ساتھ انتہائی حسب ضرورت.
متعدد ٹائم فریموں کی حمایت کریں، مختصر مدت کے دن کے اندر یا درمیانی / طویل مدتی پوزیشن ٹریڈنگ کے لئے لچکدار.
لمبی / مختصر فیصلے پیرامیٹر کی ترتیبات پر منحصر ہیں جو اگر نامناسب ہو تو غلطیاں پیدا کرسکتے ہیں۔
غلط سگنل کا امکان جس کی وجہ سے رجحان کے خلاف فیصلے کیے جائیں۔
غیر مناسب سٹاپ نقصان اور منافع لینے کی ترتیبات نقصانات میں اضافہ یا منافع کو کم کر سکتی ہیں۔
بار بار مانیٹرنگ اور پیرامیٹرز کو بہتر بنانے کی ضرورت ہوتی ہے جس کے نتیجے میں انسانی مداخلت کے اعلی اخراجات ہوتے ہیں۔
پیرامیٹر کی ترتیبات اور سگنل کی افادیت کا اندازہ کرنے کے لئے ماڈل کی توثیق ماڈیول شامل کریں.
خودکار پیرامیٹر اور ماڈل کی اصلاح کے لیے مشین لرننگ ماڈیول میں اضافہ کریں۔
فیچر اسپیس کو افزودہ کرنے اور فیصلوں کو بہتر بنانے کے لیے مزید ڈیٹا ذرائع کو استعمال کریں۔
انسانی مداخلت کو کم کرنے کے لئے خودکار نگرانی اور بحالی کے نظام تیار کریں۔
حکمت عملی کی کارکردگی کو درست کرنے کے لئے بیک ٹسٹنگ اور تخروپن کی تشخیص شامل کریں.
یہ حکمت عملی متعدد تکنیکی اشارے اصول پر مبنی نظام کو جوڑ کر خودکار مقداری تجارت کا احساس کرتی ہے۔ بڑی اصلاح کی جگہ اور لچک کے ساتھ ، یہ براہ راست تجارت کی بہتر خدمت کے لئے پیرامیٹر ٹیوننگ ، خصوصیت کی توسیع اور مشین لرننگ میں بہتری کے لئے موزوں ہے۔
/*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 **********