
یہ حکمت عملی ایک کثیر فاریکس ٹریڈنگ حکمت عملی ہے جس میں ٹریڈنگ سگنل تیار کیے جاتے ہیں جس کی بنیاد حرکت پذیر اوسط پر مبنی ہے۔ جب تیزی سے چلنے والی اوسط نیچے سے سست حرکت پذیر اوسط کو عبور کرتی ہے تو خریدنے کا اشارہ پیدا ہوتا ہے۔ جب تیزی سے چلنے والی اوسط اوپر سے نیچے سے سست حرکت پذیر اوسط کو عبور کرتی ہے تو فروخت کا اشارہ پیدا ہوتا ہے۔
یہ حکمت عملی دو حرکت پذیر اوسط استعمال کرتی ہے ، 20 دن کی سادہ حرکت پذیر اوسط اور 30 دن کی سادہ حرکت پذیر اوسط۔ جب 20 دن کی اوسط نیچے سے 30 دن کی اوسط سے گزرتی ہے تو خریدنے کا اشارہ ہوتا ہے۔ جب 20 دن کی اوسط اوپر سے نیچے سے 30 دن کی اوسط سے گزرتی ہے تو فروخت کا اشارہ ہوتا ہے۔
حرکت پذیر اوسط خود ایک رجحاناتی اشارے کے طور پر کام کرتا ہے ، جو مارکیٹ کے رجحان کی سمت کو مؤثر طریقے سے پیش کرتا ہے۔ کراسنگ اصول اس حکمت عملی کو بروقت رجحان کے موڑ کو پکڑنے اور ٹریڈنگ سگنل بنانے کی اجازت دیتا ہے۔ 20 اور 30 دن کی دو دورانیوں کی لمبائی کو مناسب طریقے سے ترتیب دیا گیا ہے ، جو مارکیٹ کے رجحانات کی عکاسی کرتا ہے ، نہ کہ بہت زیادہ حساس ہے اور غلط سگنل پیدا کرتا ہے۔
اس حکمت عملی کے فوائد مندرجہ ذیل پہلوؤں میں ظاہر ہوتے ہیں:
اس حکمت عملی میں مندرجہ ذیل خطرات شامل ہیں:
ردعمل:
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
چلتی اوسط کراسنگ سسٹم ایک سادہ اور موثر رجحان سے باخبر رہنے کی حکمت عملی ہے ، جس کے اصول واضح اور آسانی سے سمجھنے میں آسان ہیں ، جو ابتدائی سیکھنے کے لئے بہت موزوں ہیں۔ یہ حکمت عملی بنیادی طور پر ٹریڈنگ سگنل بنانے کے لئے چلتی اوسط پر انحصار کرتی ہے ، اور اس کی تجارت کے ذریعے منافع حاصل کیا جاتا ہے۔ حکمت عملی کو زیادہ مستحکم اور موثر بنانے کے لئے متعدد طریقوں سے اصلاح کی جاسکتی ہے۔
/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 1h
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/
// © gliese581d
//@version=4
strategy(title="Moving Averages Testing", overlay=true, precision=2, calc_on_every_tick=false, max_bars_back=5000, pyramiding=2,
default_qty_type=strategy.percent_of_equity, default_qty_value=50, commission_type=strategy.commission.percent, initial_capital=10000)
//SETTINGS
longs_on = input(title="Long Trades enabled", defval=true)
shorts_on = input(title="Short Trades enabled", defval=true)
long_cond = input(title="Buy/Long Crossover Condition", defval="price x MA1", options=["price x MA1", "price x MA2", "MA1 x MA2"])
short_cond = input(title="Sell/Short Crossunder Condition", defval="price x MA2", options=["price x MA1", "price x MA2", "MA1 x MA2"])
ma1_type = input(title="Moving Average 1 Type", defval="SMA", options=["SMA", "EMA"])
ma1_len = input(defval=20, title="Moving Average 1 Len", type=input.integer, minval=1, maxval=1000, step=1)
ma2_type = input(title="Moving Average 2 Type", defval="SMA", options=["SMA", "EMA"])
ma2_len = input(defval=30, title="Moving Average 2 Len", type=input.integer, minval=1, maxval=1000, step=1)
//MOVING AVERAGES
ma_1 = ma1_type == "EMA" ? ema(close, ma1_len) : sma(close, ma1_len)
ma_2 = ma2_type == "EMA" ? ema(close, ma2_len) : sma(close, ma2_len)
//STRATEGY
//trade entries
long_entry = long_cond == "price x MA1" ? crossover(close, ma_1) : long_cond == "price x MA2" ? crossover(close, ma_2) : long_cond == "MA1 x MA2" ? crossover(ma_1, ma_2) : false
short_entry = short_cond == "price x MA1" ? crossunder(close, ma_1) : short_cond == "price x MA2" ? crossunder(close, ma_2) : short_cond == "MA1 x MA2" ? crossunder(ma_1, ma_2) : false
start_month = input(defval=4, title="Strategy Start Month", type=input.integer, minval=1, maxval=12, step=1)
start_year = input(defval=2018, title="Strategy Start Year", type=input.integer, minval=2000, maxval=2025, step=1)
end_month = input(defval=12, title="Strategy End Month", type=input.integer, minval=1, maxval=12, step=1)
end_year = input(defval=2020, title="Strategy End Year", type=input.integer, minval=2000, maxval=2025, step=1)
in_time =true
strategy.entry("Long", strategy.long, when=longs_on and in_time and long_entry)
strategy.close("Long", when=longs_on and not shorts_on and short_entry)
strategy.entry("Short", strategy.short, when=shorts_on and in_time and short_entry)
strategy.close("Short", when=shorts_on and not longs_on and long_entry)
//PLOTTING
//color background
last_entry_was_long = nz(barssince(long_entry)[1], 5000) < nz(barssince(short_entry)[1], 5000)
bgcol = (longs_on and last_entry_was_long) ? color.green : (shorts_on and not last_entry_was_long) ? color.red : na
bgcolor(color=bgcol, transp=90)
plot((long_cond == "price x MA1" or long_cond == "MA1 x MA2") or (short_cond == "price x MA1" or short_cond == "MA1 x MA2") ? ma_1 : na, color=color.blue)
plot((long_cond == "price x MA2" or long_cond == "MA1 x MA2") or (short_cond == "price x MA2" or short_cond == "MA1 x MA2") ? ma_2 : na, color=color.black)
plotshape(long_entry, style=shape.triangleup, location=location.belowbar, color=color.green)
plotshape(short_entry, style=shape.triangledown, location=location.abovebar, color=color.red)