تیز اور سست EMA کراس اوور پر مبنی حکمت عملی کے بعد 5 منٹ کا رجحان


تخلیق کی تاریخ: 2023-11-16 15:36:36 آخر میں ترمیم کریں: 2023-11-16 15:36:36
کاپی: 0 کلکس کی تعداد: 828
1
پر توجہ دیں
1617
پیروکار

تیز اور سست EMA کراس اوور پر مبنی حکمت عملی کے بعد 5 منٹ کا رجحان

جائزہ

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

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

  1. فاسٹ ای ایم اے اور سست ای ایم اے کا استعمال کرتے ہوئے ، تیز ای ایم اے پر سست ای ایم اے پہننے پر زیادہ کریں ، نیچے پہننے پر خالی کریں
  2. ای ایم اے میکرو فلٹر کا استعمال کرتے ہوئے ، صرف اس وقت زیادہ کام کیا جاسکتا ہے جب قیمت ای ایم اے سے اوپر ہو ، اور ای ایم اے کے نیچے خالی جگہ پر ، جعلی توڑ سے بچنے کے لئے
  3. داخلہ پر قیمتوں کا تعین کرنے کے لئے محدود قیمتوں کا تعین کا استعمال کریں، اس بات کو یقینی بنائیں کہ قیمتوں کو مطلوبہ مقام تک پہنچنے کے بعد داخلہ دیا جائے
  4. داخلہ کے بعد متحرک ٹریکنگ اسٹاپ نقصانات ، منافع کو لاک کریں ، اسٹاپ نقصانات سے باہر نکلیں

خاص طور پر:

  1. تیز رفتار EMA اور سست رفتار EMA کی لمبائی کے مطابق ، تیز رفتار EMA کا حساب لگائیں
  2. اگر ای ایم اے فلٹرز کو فعال کیا جائے تو ، قیمت صرف اس وقت زیادہ ہوسکتی ہے جب قیمت ای ایم اے سے زیادہ ہو ، اور ای ایم اے سے کم قیمت خالی ہو
  3. جب تیز EMA اوپر سے گزرتا ہے تو سست EMA سے زیادہ کام کرنا؛ جب تیز EMA نیچے سے گزرتا ہے تو خالی کرنا
  4. ایک سے زیادہ داخلے پر کم سے کم داخلے ، خالی داخلے پر زیادہ سے زیادہ داخلے
  5. داخلے کے بعد ٹریکنگ اسٹاپ شروع کریں ، ٹریکنگ ، اسٹاپ نقصان اور اسٹاپ کو چلانے کے لئے اعلی قیمت کے مطابق کریں

یہ حکمت عملی کے لئے بنیادی ٹریڈنگ منطق ہے.

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

  1. ای ایم اے کا استعمال مجموعی رجحان کی سمت کا تعین کرنے کے لئے کریں تاکہ مخالف تجارت سے بچا جاسکے
  2. ای ایم اے اور قیمتوں کی فہرستوں کے درمیان فرق کو روکنے کے لئے ای ایم اے کی طرف سے استعمال کیا جاتا ہے.
  3. متحرک ٹریکنگ سٹاپ نقصان ، منافع کو اچھی طرح سے لاک کرنے کے لئے
  4. خطرے پر قابو پانے کے لئے ، ہر اسٹاپ نقصان تقریبا 2٪ پر طے کیا گیا ہے
  5. کم واپسی ، بہتر رجحانات پر قبضہ کرنا
  6. حکمت عملی سادہ، واضح، آسانی سے سمجھنے اور بہتر بنانے کے لئے

اسٹریٹجک رسک

  1. ٹرینڈ کے جھوٹے بریک کا خطرہ ہے ، اور اس کا مقابلہ کیا جاسکتا ہے
  2. EMAs کی غلط ترتیب سے رجحانات کی کمی ہوسکتی ہے
  3. سٹاپ نقصان کی حد حد سے زیادہ ہے، جو معمول کی اتار چڑھاو کی حد سے باہر ہوسکتا ہے
  4. ٹریک اسٹاپ نقصانات بہت زیادہ شدت پسند ہیں اور جلد ہی ختم ہوسکتے ہیں
  5. اسٹاپ نقصان اور اسٹاپ اسٹاپ تناسب غیر معقول طور پر ترتیب دیا گیا ہے ، اور اس سے کہیں زیادہ بڑی صورتحال سے محروم ہوسکتا ہے

ردعمل:

  1. EMA پیرامیٹرز کو بہتر بنائیں اور بہترین سائیکل کی لمبائی تلاش کریں
  2. اسٹاپ نقصان کی حد کو مناسب طریقے سے کم کریں تاکہ زیادہ سے زیادہ اسٹاپ نقصان کو روکا جاسکے
  3. ٹریکنگ سٹاپ نقصانات کے آغاز اور ٹریکنگ کی شدت کو احتیاط سے ترتیب دیں
  4. مختلف سٹاپ نقصان سٹاپ تناسب کی جانچ پڑتال اور بہترین پیرامیٹرز تلاش کریں

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

  1. EMA سائیکل پیرامیٹرز کو بہتر بنائیں اور بہترین پیرامیٹرز کا مجموعہ تلاش کریں
  2. EMA کی مختلف اقسام کو آزمائیں ، جیسے وزن والی حرکت پذیری اوسط
  3. MACD جیسے دیگر اشارے کی جانچ کریں اور دیکھیں کہ کیا یہ بہتر ہو سکتا ہے
  4. اعلی درجے کی ٹائم فریم میں ای ایم اے فلٹرنگ کی کوشش کریں
  5. داخلہ کی حد کو بہتر بنانا
  6. سٹاپ نقصان سٹاپ کے نقطہ اور تناسب کو بہتر بنائیں
  7. زیادہ پیچیدہ ٹریکنگ اور نقصان کو روکنے کے طریقوں کی کوشش کریں
  8. ٹرینڈ انڈیکیٹرز کو شامل کریں اور ٹرینڈ کی طاقت کا اندازہ لگائیں
  9. مزید فلٹرز شامل کرنے پر غور کریں تاکہ جعلی دراندازیوں سے بچا جا سکے

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 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/
// © jordanfray

//@version=5
strategy(title="5 Minute EMA Strategy", overlay=true, max_bars_back=500, default_qty_type=strategy.percent_of_equity, default_qty_value=100,initial_capital=100000, commission_type=strategy.commission.percent, commission_value=0.05, backtest_fill_limits_assumption=2)

// Indenting Classs
indent_1 = " "
indent_2 = "  "
indent_3 = "   "
indent_4 = "    "

// Group Titles
group_one_title = "EMA Settings"
group_two_title = "Entry Settings"
group_three_title = "Trade Filters"

// Input Tips

ocean_blue = color.new(#0C6090,0)
sky_blue = color.new(#00A5FF,0)
green = color.new(#2DBD85,0)
red = color.new(#E02A4A,0)
light_blue = color.new(#00A5FF,85)
light_green = color.new(#2DBD85,85)
light_red = color.new(#E02A4A,85)
light_yellow = color.new(#FFF900,85)
white = color.new(#ffffff,0)
light_gray = color.new(#000000,70)
transparent = color.new(#000000,100)

// Strategy Settings - EMA
fast_EMA_length = input.int(defval=20, minval=1, title="Fast Length", group=group_one_title)
fast_EMA_type = input.string(defval="EMA", options = ["EMA", "SMA", "RMA", "WMA"], title=indent_4+"Type", group=group_one_title)
fast_EMA_source = input.source(defval=close, title=indent_4+"Source", group=group_one_title)
fast_EMA = switch fast_EMA_type
    "EMA" => ta.ema(fast_EMA_source, fast_EMA_length)
    "SMA" => ta.sma(fast_EMA_source, fast_EMA_length)
    "RMA" => ta.rma(fast_EMA_source, fast_EMA_length)
    "WMA" => ta.wma(fast_EMA_source, fast_EMA_length)
    => na
plot(fast_EMA, title="Fast EMA", linewidth=1, color=green, editable=true)

slow_EMA_length = input.int(defval=100, minval=1, title="Slow Length", group=group_one_title)
slow_EMA_type = input.string(defval="EMA", options = ["EMA", "SMA", "RMA", "WMA"], title=indent_4+"Type", group=group_one_title)
slow_EMA_source = input.source(defval=close, title=indent_4+"Source", group=group_one_title)
slow_EMA = switch slow_EMA_type
    "EMA" => ta.ema(slow_EMA_source, slow_EMA_length)
    "SMA" => ta.sma(slow_EMA_source, slow_EMA_length)
    "RMA" => ta.rma(slow_EMA_source, slow_EMA_length)
    "WMA" => ta.wma(slow_EMA_source, slow_EMA_length)
    => na
plot(slow_EMA, title="Slow EMA", linewidth=1, color=sky_blue, editable=true)


// EMA Macro Filter
enable_EMA_filter = input.bool(defval=false, title="Use EMA Filter", group=group_three_title)
EMA_filter_timeframe = input.timeframe(defval="", title=indent_4+"Timeframe", group=group_three_title)
EMA_filter_length = input.int(defval=300, minval=1, step=10, title=indent_4+"Length", group=group_three_title)
EMA_filter_source = input.source(defval=hl2, title=indent_4+"Source", group=group_three_title)
ema_filter = ta.ema(EMA_filter_source, EMA_filter_length)
ema_filter_smoothed = request.security(syminfo.tickerid, EMA_filter_timeframe, ema_filter[barstate.isrealtime ? 1 : 0], gaps=barmerge.gaps_on)
plot(enable_EMA_filter ? ema_filter_smoothed: na, title="EMA Macro Filter", linewidth=2, color=white, editable=true)


// Entry Settings
stop_loss_val = input.float(defval=2.0, title="Stop Loss (%)", step=0.1, group=group_two_title)/100
take_profit_val = input.float(defval=2.0, title="Take Profit (%)", step=0.1, group=group_two_title)/100
long_entry_limit_lookback = input.int(defval=3, title="Long Entry Limit Lookback", minval=1, step=1, group=group_two_title)
short_entry_limit_lookback = input.int(defval=3, title="Short Entry Limit Lookback", minval=1, step=1, group=group_two_title)
limit_order_long_price = ta.lowest(low, long_entry_limit_lookback)
limit_order_short_price = ta.highest(high, short_entry_limit_lookback)
start_trailing_after = input.float(defval=1, title="Start Trailing After (%)", step=0.1, group=group_two_title)/100
trail_behind = input.float(defval=1, title="Trail Behind (%)", step=0.1, group=group_two_title)/100
long_start_trailing_val = strategy.position_avg_price + (strategy.position_avg_price * start_trailing_after)
short_start_trailing_val = strategy.position_avg_price - (strategy.position_avg_price * start_trailing_after)
long_trail_behind_val = close - (strategy.position_avg_price * (trail_behind/100))
short_trail_behind_val = close + (strategy.position_avg_price * (trail_behind/100))
currently_in_a_long_postion = strategy.position_size > 0
currently_in_a_short_postion = strategy.position_size < 0
long_profit_target = strategy.position_avg_price * (1 + take_profit_val)
long_stop_loss = strategy.position_avg_price * (1.0 - stop_loss_val)
short_profit_target = strategy.position_avg_price * (1 - take_profit_val)
short_stop_loss = strategy.position_avg_price * (1 + stop_loss_val)

bars_since_entry = bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1)
plot(bars_since_entry, editable=false, title="Bars Since Entry", color=green)

long_run_up = currently_in_a_long_postion and bars_since_entry > 0 ? ta.highest(high, bars_since_entry) : high
long_trailing_stop = currently_in_a_long_postion and bars_since_entry > 0 and long_run_up > long_start_trailing_val ? long_run_up - (long_run_up * trail_behind) : long_stop_loss
long_run_up_line = plot(long_run_up, style=plot.style_stepline, editable=false, color=currently_in_a_long_postion ? green : transparent)
long_trailing_stop_line = plot(long_trailing_stop, style=plot.style_stepline, editable=false, color=currently_in_a_long_postion ? long_trailing_stop > strategy.position_avg_price ? green : red : transparent)

short_run_up = currently_in_a_short_postion and bars_since_entry > 0 ? ta.lowest(low, bars_since_entry) : low
short_trailing_stop = currently_in_a_short_postion and bars_since_entry > 0 and short_run_up < short_start_trailing_val ? short_run_up + (short_run_up * trail_behind) : short_stop_loss
// short_run_up_line = plot(short_run_up, style=plot.style_stepline, editable=false, color=currently_in_a_short_postion ? green : transparent)
short_trailing_stop_line = plot(short_trailing_stop, style=plot.style_stepline, editable=false, color=currently_in_a_short_postion ? short_trailing_stop < strategy.position_avg_price ? green : red : transparent)


// Trade Conditions
fast_EMA_cross_down_slow_EMA = ta.crossunder(fast_EMA,slow_EMA)
fast_EMA_cross_up_slow_EMA = ta.crossover(fast_EMA,slow_EMA)
plotshape(fast_EMA_cross_down_slow_EMA ? close : na, title="Short Entry Symbol", color=red, style=shape.triangledown, location=location.belowbar)
plotshape(fast_EMA_cross_up_slow_EMA ? close : na, title="Long Entry Symbol", color=green, style=shape.triangleup, location=location.abovebar)
fast_EMA_is_above_slow_EMA = fast_EMA > slow_EMA
fast_EMA_is_below_slow_EMA = fast_EMA < slow_EMA
ema_macro_filter_longs_only = fast_EMA > ema_filter_smoothed and slow_EMA > ema_filter_smoothed
ema_macro_filter_shorts_only = fast_EMA < ema_filter_smoothed and slow_EMA < ema_filter_smoothed

long_position_take_profit = ta.cross(close, long_trailing_stop) or close > long_profit_target
short_position_take_profit = ta.cross(close, short_trailing_stop) or close > short_profit_target

long_conditions_met = enable_EMA_filter ? ema_macro_filter_longs_only and fast_EMA_cross_up_slow_EMA and fast_EMA_is_above_slow_EMA and not currently_in_a_short_postion : fast_EMA_cross_up_slow_EMA and not currently_in_a_short_postion
short_conditions_met = enable_EMA_filter ? ema_macro_filter_shorts_only and fast_EMA_cross_down_slow_EMA and fast_EMA_is_below_slow_EMA and not currently_in_a_long_postion : fast_EMA_cross_down_slow_EMA and fast_EMA_is_below_slow_EMA and not currently_in_a_long_postion

// Long Entry
strategy.entry(id="Long", direction=strategy.long, limit=limit_order_long_price, when=long_conditions_met)
strategy.cancel(id="Cancel Long", when=ta.crossover(fast_EMA,slow_EMA))
strategy.exit(id="Close Long", from_entry="Long", stop=long_trailing_stop, limit=long_profit_target, when=long_position_take_profit)

// Short Entry 
strategy.entry(id="Short", direction=strategy.short, limit=limit_order_short_price, when=short_conditions_met)
strategy.cancel(id="Cancel Short", when=ta.crossunder(fast_EMA,slow_EMA))
strategy.exit(id="Close Short", from_entry="Short", stop=short_trailing_stop, limit=short_profit_target, when=short_position_take_profit)

entry = plot(strategy.position_avg_price, editable=false, title="Entry", style=plot.style_stepline, color=currently_in_a_long_postion or currently_in_a_short_postion ? color.blue : transparent, linewidth=1)
fill(entry,long_trailing_stop_line, editable=false, color=currently_in_a_long_postion ? long_trailing_stop > strategy.position_avg_price ? light_green : light_red : transparent)
fill(entry,short_trailing_stop_line, editable=false, color=currently_in_a_short_postion ? short_trailing_stop < strategy.position_avg_price ? light_green : light_red : transparent)
//ltp = plot(currently_in_a_long_postion ? long_profit_target : na, style=plot.style_stepline, title="Take Profit", color=currently_in_a_long_postion ? green : transparent, linewidth=1)
//lsl = plot(currently_in_a_long_postion ? long_stop_loss : na, style=plot.style_stepline, title="Take Profit", color=currently_in_a_long_postion ? red : transparent, linewidth=1)
//fill(entry,ltp, color= currently_in_a_long_postion ? light_green : light_red)
//fill(entry,lsl, color= currently_in_a_long_postion ? light_red : light_green)

//stp = plot(currently_in_a_short_postion ? short_profit_target : na, style=plot.style_stepline, title="Take Profit", color=currently_in_a_short_postion ? green : transparent, linewidth=1)
//ssl = plot(currently_in_a_short_postion ? short_stop_loss : na, style=plot.style_stepline, title="Take Profit", color=currently_in_a_short_postion ? red : transparent, linewidth=1)
//fill(entry,stp, color= currently_in_a_short_postion ? light_green : light_red)
//fill(entry,ssl, color= currently_in_a_short_postion ? light_red : light_green)