یہ حکمت عملی ای ایم اے اشارے کے متعدد سیٹوں کا استعمال کرتے ہوئے انکولی طویل / مختصر تجارت کو نافذ کرتی ہے۔ یہ مارکیٹ کے طویل مدتی اور قلیل مدتی رجحانات کی بنیاد پر انٹری اور آؤٹ پٹ کے لئے مختلف پیرامیٹرز کے ساتھ ای ایم اے کو اپناتی ہے۔ یہ حکمت عملی خود بخود بیل / ریچھ مارکیٹ کو پہچانتی ہے اور خطرہ کو کنٹرول کرنے کے لئے آزاد اسٹاپ نقصان کا استعمال کرتی ہے۔
یہ حکمت عملی بنیادی طور پر ای ایم اے اشارے کے کراس اوور اصول کا استعمال کرتی ہے۔ طویل جب تیز ای ایم اے سست ای ایم اے سے اوپر عبور کرتی ہے ، اور مختصر جب اس سے نیچے عبور کرتی ہے۔ یہ متعدد ای ایم اے قائم کرتی ہے اور مارکیٹ کے رجحانات کی بنیاد پر مختلف پیرامیٹرز کا انتخاب کرتی ہے۔ خاص طور پر ، جب طویل مدتی رجحان کو بہتر سمجھا جاتا ہے تو ، طویل سگنل کے لئے طویل مدت کے ای ایم اے کا ایک سیٹ استعمال کیا جاتا ہے؛ جب bearish ہوتا ہے تو ، مختصر مدت کے ای ایم اے کا ایک اور سیٹ استعمال کیا جاتا ہے۔ باہر نکلنے والے بھی مختلف مدت کے ای ایم اے کو اپناتے ہیں۔ اسٹاپ نقصان پوزیشن کی سمت کی بنیاد پر مقررہ فیصد ٹریلنگ اسٹاپ کا استعمال کرتا ہے۔
یہ حکمت عملی متعدد ای ایم اے کراس اوورز کو فائدہ اٹھانے کے ساتھ موافقت پذیر اثر حاصل کرتی ہے ، ای ایم اے کے فوائد کو برقرار رکھتی ہے اور حکمت عملی کو زیادہ لچکدار بناتی ہے۔ مناسب فلٹرز اور متحرک اسٹاپس کے ساتھ ، یہ ایک انتہائی عملی خودکار تجارتی نظام بن سکتا ہے۔
/*backtest start: 2023-08-26 00:00:00 end: 2023-09-07 00:00:00 period: 12h basePeriod: 15m 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/ // © str1nger //@version=4 // strategy(title="BTC - 4hr - Long/Short", shorttitle="BTC - 4hr - Long/Short", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=75,commission_type=strategy.commission.percent, commission_value=0.075)//////<---Uses a percentage of starting equity //DATE RANGE////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// startDate = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31) startMonth = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12) startYear = input(title="Start Year", type=input.integer, defval=2020, minval=2000, maxval=2100) endDate = input(title="End Date", type=input.integer, defval=1, minval=1, maxval=31) endMonth = input(title="End Month", type=input.integer, defval=12, minval=1, maxval=12) endYear = input(title="End Year", type=input.integer, defval=2021, minval=2000, maxval=2100) inDateRange = true //EMAs////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //LONG //11,33,3,40 lof= input(11, title="Long Open - Fast", step=1) los= input(33, title="Long Open - Slow", step=1) lcf= input(3, title="Long Close - Fast", step=1) lcs= input(40, title="Long Close - Slow", step=1) ema_long_open_fast = ema(close, lof) ema_long_open_slow = ema(close, los) ema_long_close_fast= ema(close, lcf) ema_long_close_slow = ema(close, lcs) //SHORT //5,11,4,7 sof= input(5, title="Short Open - Fast", step=1) sos= input(11, title="Short Open - Slow", step=1) scf= input(4, title="Short Close - Fast", step=1) scs= input(7, title="Short Close - Slow", step=1) ema_short_open_fast = ema(close, sof) ema_short_open_slow = ema(close, sos) ema_short_close_fast = ema(close, scf) ema_short_close_slow = ema(close, scs) //CONDITIONS/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //LONG openlong = crossover(ema_long_open_fast, ema_long_open_slow) closelong = crossover(ema_long_close_slow, ema_long_close_fast) //1.7% long_loss_percent = input(title="Long Stop Loss (%)", type=input.float, minval=0.0, step=0.1, defval=1.7) * 0.01 long_stop_price = strategy.position_avg_price * (1 - long_loss_percent) //SHORT openshort = crossover(ema_short_open_slow, ema_short_open_fast) closeshort = crossover(ema_short_close_fast, ema_short_close_slow) //0.4% short_loss_percent = input(title="Short Stop Loss (%)", type=input.float, minval=0.0, step=0.1, defval=0.4) * 0.01 short_stop_price = strategy.position_avg_price * (1 + short_loss_percent) //PLOT EMAs//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //LONG plot(ema_long_open_fast, "Long EMA open lower", linewidth=1, color=color.green) plot(ema_long_open_slow, "Long EMA close upper", linewidth=1, color=color.green) plot(ema_long_close_fast, "Long close lower", linewidth=1, color=color.red) plot(ema_long_close_slow, "Long close upper", linewidth=1, color=color.red) //SHORT plot(ema_short_open_fast, "Short open fast", linewidth=1, color=color.green) plot(ema_short_open_slow, "Short open slow", linewidth=1, color=color.green) plot(ema_short_close_fast, "Short close fast", linewidth=1, color=color.red) plot(ema_short_close_slow, "Short close slow", linewidth=1, color=color.red) //LONG-TERM TRENDS //LONG 144 long_term_trend_longs= input(144, title="Long-term trend - Longs", step=1) lttl= ema(close, long_term_trend_longs) plot(lttl, "Long-term trend - Longs", linewidth=2, color=color.blue) //SHORT 89 long_term_trend_shorts= input(89, title="Long-term trend - Shorts", step=1) ltts = ema(close, long_term_trend_shorts) plot(ltts, "Long-term trend - Shorts", linewidth=2, color=color.blue) //STRATEGY////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //LONG if (inDateRange and openlong and (close > lttl)) strategy.entry("OL", long=true, comment="##insert open long comment here##") if (inDateRange and closelong) strategy.close("OL", comment="##insert close long comment here##") if strategy.position_size > 0 strategy.exit("L-SL", stop=long_stop_price, comment="##insert long stop-loss comment here##") //SHORT if (inDateRange and openshort and (close < ltts)) strategy.entry("OS", long=false, comment="##insert open short comment here##") if (inDateRange and closeshort) strategy.close("OS", comment="##insert close short comment here##") if strategy.position_size < 0 strategy.exit("S-SL", stop=short_stop_price, comment="##inster short stop-loss comment here##")