اس مضمون میں ایک مقداری تجارتی حکمت عملی کا تعارف کیا گیا ہے جو متحرک اوسط کے کراس اصول پر مبنی ہے۔ یہ حکمت عملی قیمتوں اور متحرک اوسط کے مابین تعلقات کا آپس میں موازنہ کرکے کثیر جہتی سمت کا فیصلہ کرتی ہے ، اور اس کے ساتھ ہی اسٹاپ اور اسٹاپ نقصان کی پوزیشنوں کو بھی طے کرتی ہے۔ حکمت عملی کا کوڈ پائین اسکرپٹ کا استعمال کرتے ہوئے لکھا گیا ہے ، جس میں ڈان ٹریڈنگ پلیٹ فارم کے API کو مربوط کیا گیا ہے ، جو حکمت عملی کے اشارے کی خودکار تجارت کو ممکن بناتا ہے۔
اس حکمت عملی کا مرکز ایک حرکت پذیر اوسط ہے جو کسی خاص دورانیے میں بند ہونے والی قیمتوں کی سادہ حرکت پذیر اوسطوں کا حساب لگاتا ہے۔ جب قیمت اوپر کی طرف سے یکساں طور پر گزرتی ہے تو زیادہ سگنل پیدا ہوتے ہیں ، اور نیچے کی طرف سے خالی سگنل پیدا ہوتے ہیں۔ اس کے ساتھ ہی ، ایک مسلسل تکرار سگنل کو بہتر بنانے کے لئے سگنل کی کوالٹی کو بہتر بنانے کے لئے ایک extrem فنکشن کا استعمال کیا جاتا ہے۔ حکمت عملی موجودہ پوزیشن کی سمت اور قیمت کے ساتھ یکساں طور پر پوزیشن کے تعلقات پر مبنی ہے ، اس کے مطابق اسٹاپ اسٹاپ نقصان کی قیمت مقرر کرتی ہے ، ہر تجارت کے خطرے اور منافع کو کنٹرول کرتی ہے۔
موبائل اوسط کراس ایک سادہ اور استعمال میں آسان ٹرینڈ ٹریکنگ کا طریقہ ہے جو مارکیٹ کے درمیانے اور طویل مدتی رجحانات کو مؤثر طریقے سے پکڑ سکتا ہے۔ پیرامیٹرز کو مناسب طریقے سے ترتیب دینے سے ، یہ حکمت عملی رجحان کی مارکیٹ میں مستحکم منافع حاصل کرسکتی ہے۔ اسٹاپ اسٹاپ نقصان کی ترتیب میں واپسی پر قابو پانے اور رسک ریٹرن کو بڑھانے میں مدد ملتی ہے۔ حکمت عملی کا کوڈ منطقی طور پر واضح ہے ، اس میں فنکشنل ماڈیولیشن ، پڑھنے کی اہلیت اور توسیع کا استعمال کیا گیا ہے۔ اس کے علاوہ ، حکمت عملی نے ڈان پلیٹ فارم API کو مربوط کیا ہے ، جس میں سگنل کی خودکار ٹرانزیکشن کا احساس ہوا ہے ، جس سے عمل درآمد کی کارکردگی میں اضافہ ہوا ہے۔
حرکت پذیر اوسط بنیادی طور پر ایک پسماندہ اشارے ہیں ، جب مارکیٹ موڑتی ہے تو سگنل میں تاخیر ہوسکتی ہے ، جس کی وجہ سے بہترین تجارتی اوقات کو یاد کرنا یا غلط سگنل پیدا کرنا پڑتا ہے۔ پیرامیٹرز کی غلط ترتیب حکمت عملی کی کارکردگی کو متاثر کرتی ہے اور مختلف مارکیٹ کی خصوصیات اور دوروں کے مطابق اصلاح کی ضرورت ہوتی ہے۔ مقررہ فیصد اسٹاپ نقصانات مارکیٹ کی اتار چڑھاؤ میں ہونے والی تبدیلیوں کو ایڈجسٹ نہیں کرسکتے ہیں ، اور پیرامیٹرز کی غلط ترتیب سے نقصان کا خطرہ ہے۔
موبائل اوسط لائن کراسنگ حکمت عملی ایک سادہ عملی مقداری تجارتی حکمت عملی ہے جو رجحانات کی پیروی اور اسٹاپ اور سٹاپ نقصان کنٹرول کے ذریعہ رجحانات کی مارکیٹ میں منافع بخش ہوسکتی ہے۔ تاہم ، حکمت عملی خود میں کچھ حدود رکھتی ہے ، جس میں مارکیٹ کی خصوصیات اور رسک کی ترجیحات کے مطابق اصلاح اور بہتری کی ضرورت ہوتی ہے۔ عملی اطلاق میں ، سخت نظم و ضبط اور اچھے رسک کنٹرول پر بھی توجہ دینے کی ضرورت ہے۔ حکمت عملی پروگرامنگ کو ماہر زبانوں جیسے پائن اسکرپٹ کے ذریعہ استعمال کیا جاسکتا ہے ، تجارتی پلیٹ فارم API کو مربوط کیا جاسکتا ہے ، اور حکمت عملی کے نفاذ کو خود کار طریقے سے حاصل کیا جاسکتا ہے۔
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © syam-mohan-vs @ T7 - wwww.t7wealth.com www.t7trade.com //This is an educational code done to describe the fundemantals of pine scritpting language and integration with Indian discount broker Dhan. This strategy is not tested or recommended for live trading. //@version=5 strategy("Pine & Dhan - Moving Average Crossover Strategy", overlay=true) //Remove excess signals exrem(condition1, condition2) => temp = false temp := na(temp[1]) ? false : not temp[1] and condition1 ? true : temp[1] and condition2 ? false : temp[1] ta.change(temp) == true ? true : false // Define MA period ma_period = input(20, title = "MA Length") // Define target and stop loss levels target_percentage = input.float(title="Target Profit (%)", defval=2.0) stop_loss_percentage = input.float(title="Stop Loss (%)", defval=1.0) // Calculate the MA ma = ta.sma(close, ma_period) // Entry conditions long_entry = close >= ma short_entry = close < ma // Calculate target and stop loss prices target_price = long_entry ? strategy.position_avg_price + (close * (target_percentage / 100)) : strategy.position_avg_price - (close * (target_percentage / 100)) stop_loss_price = short_entry ? strategy.position_avg_price + (close * (stop_loss_percentage/ 100)) : strategy.position_avg_price - (close * (stop_loss_percentage / 100)) long_entry := exrem(long_entry,short_entry) short_entry := exrem(short_entry,long_entry) // Plot the MA plot(ma, color=color.blue, linewidth=2, title="MA") // Plot the entry and exit signals plotshape(long_entry, style=shape.arrowup, color=color.green, size=size.small,location = location.belowbar) plotshape(short_entry, style=shape.arrowdown, color=color.red, size=size.small,location = location.abovebar) //Find absolute value of positon size to exit position properly size = math.abs(strategy.position_size) //Replace these four JSON strings with those generated from user Dhan account long_msg = '{"secret":"C0B2u","alertType":"multi_leg_order","order_legs":[{"transactionType":"B","orderType":"MKT","quantity":"1","exchange":"NSE","symbol":"NIFTY1!","instrument":"FUT","productType":"I","sort_order":"1","price":"0"}]}' long_exit_msg = '{"secret":"C0B2u","alertType":"multi_leg_order","order_legs":[{"transactionType":"S","orderType":"MKT","quantity":"1","exchange":"NSE","symbol":"NIFTY1!","instrument":"FUT","productType":"M","sort_order":"1","price":"0"}]}' short_msg = '{"secret":"C0B2u","alertType":"multi_leg_order","order_legs":[{"transactionType":"S","orderType":"MKT","quantity":"1","exchange":"NSE","symbol":"NIFTY1!","instrument":"FUT","productType":"M","sort_order":"1","price":"0"}]}' short_exit_msg = '{"secret":"C0B2u","alertType":"multi_leg_order","order_legs":[{"transactionType":"B","orderType":"MKT","quantity":"1","exchange":"NSE","symbol":"NIFTY1!","instrument":"FUT","productType":"M","sort_order":"1","price":"0"}]}' // Submit orders based on signals if(strategy.position_size == 0) if long_entry strategy.order("Long", strategy.long,alert_message=long_msg) if short_entry strategy.order("Short", strategy.short,alert_message=short_msg) if(strategy.position_size > 0) if(short_entry) strategy.order("Short", strategy.short, qty = size, alert_message=short_msg) else strategy.exit("Long Exit", from_entry="Long", qty = size, stop=stop_loss_price, limit= target_price, alert_message=long_exit_msg) if(strategy.position_size < 0) if(long_entry) strategy.order("Long", strategy.long, qty = size, alert_message=long_msg) else strategy.exit("Short Exit", from_entry="Short", qty = size, stop=stop_loss_price, limit= target_price, alert_message=short_exit_msg)