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