کثیر حرکت پذیر اوسط کراس اوور ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-06 17:10:00
ٹیگز:

img

حکمت عملی کا جائزہ

یہ حکمت عملی متعدد حرکت پذیر اوسط اشارے کی بنیاد پر تجارتی سگنل تیار کرتی ہے۔ یہ بیک وقت قلیل مدتی ، درمیانی مدتی اور طویل مدتی حرکت پذیر اوسط کی نگرانی کرتی ہے ، اور رجحان کی سمت کا تعین کرنے کے لئے ان کے کراس اوور حالات کے مطابق تجارتی سگنل تیار کرتی ہے۔

حکمت عملی کا نام

کثیر حرکت پذیر اوسط کراس اوور حکمت عملی

حکمت عملی منطق

یہ حکمت عملی مختلف ادوار کے ساتھ 3 چلتی اوسط استعمال کرتی ہے ، جس میں 7 دن ، 13 دن اور 21 دن کی لائنیں شامل ہیں۔ تجارتی منطق مندرجہ ذیل نکات پر مبنی ہے۔

  1. جب مختصر مدت کے 7 دن کے ایم اے درمیانی مدت کے 13 دن کے ایم اے کو اوپر کی طرف عبور کرتے ہیں ، جبکہ طویل مدتی 21 دن کے ایم اے میں اضافہ ہوتا ہے تو ، ایک طویل سگنل تیار ہوتا ہے۔
  2. جب مختصر مدت کے 7 دن کے ایم اے درمیانی مدت کے 13 دن کے ایم اے سے نیچے کی طرف عبور کرتے ہیں ، جبکہ طویل مدتی 21 دن کے ایم اے میں نیچے کا رجحان ہوتا ہے تو ، ایک مختصر سگنل پیدا ہوتا ہے۔

مختلف ٹائم فریموں میں چلنے والے اوسط کو یکجا کرکے، حکمت عملی مارکیٹ کے رجحانات کو زیادہ درست طریقے سے اندازہ کر سکتی ہے اور غلط تجارت سے بچ سکتی ہے.

فوائد

  1. متعدد ایم اے لائنز کا استعمال مارکیٹ کی نقل و حرکت کو بہتر طور پر طے کرسکتا ہے اور مارکیٹ میں جھوٹے بریک آؤٹ یا قلیل مدتی اتار چڑھاؤ سے گمراہ ہونے سے بچ سکتا ہے۔
  2. سگنل صرف اس وقت پیدا ہوتے ہیں جب رجحان واضح ہوتا ہے ، اس طرح غیر ضروری تجارت کو کم کیا جاتا ہے اور لین دین کی لاگت کو کم کیا جاتا ہے۔
  3. لچکدار پیرامیٹرز کی ترتیبات - مختلف مصنوعات اور مارکیٹ کے ماحول کے مطابق ذاتی ترجیحات کی بنیاد پر ایم اے کی مدت کو ایڈجسٹ کیا جاسکتا ہے۔

خطرات

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

اصلاح کی ہدایات

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

نتیجہ

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


/*backtest
start: 2022-11-29 00:00:00
end: 2023-12-05 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/
// © Crypto-Oli

//@version=4
strategy("CryptOli 3 MAs long/short Backtest", initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=true)

// this is an educational Script - basicly its very simple - you can see how minimal changes impact results, thats why i posted it
// Credits to Quantnomad to publish tons of free educational script
// this Script is based on https://www.tradingview.com/script/0NgUadGr-Ultimate-MA-Cross-Indicator/ Quantnomads Ultimate MA Indicator 
// HA - Option for calcucaltion based on HA-Candles (very famous recently)
// Source Input - Option (Candletype for calculation, close, ohlc4 ect.) --- there are huge differences --- try it by your own

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE

// From Date Inputs
fromDay = input(defval=1, title="From Day", minval=1, maxval=31)
fromMonth = input(defval=1, title="From Month", minval=1, maxval=12)
fromYear = input(defval=2015, title="From Year", minval=1970)

// To Date Inputs
toDay = input(defval=1, title="To Day", minval=1, maxval=31)
toMonth = input(defval=1, title="To Month", minval=1, maxval=12)
toYear = input(defval=2030, title="To Year", minval=1970)

// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = time >= startDate and time <= finishDate

////////////////////////////////////////////////////////////////////////////////

h = input(false, title = "Signals from Heikin Ashi Candles")

ma_type      = input(title = "MA Type",         type = input.string,  defval = "SMMA", options = ['SMA', 'EMA', 'WMA', 'VWMA', 'HMA', 'SMMA', 'DEMA'])
src = input(ohlc4)

short_ma_len = input(title = "Short MA Length", type = input.integer, defval = 7,     minval = 1)
short_ma_src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, src, lookahead = false) : close
middle_ma_len  = input(title = "Middle MA Length",  type = input.integer, defval = 13,    minval = 2)
middle_ma_src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, src, lookahead = false) : close
long_ma_len  = input(title = "Long MA Length",  type = input.integer, defval = 21,    minval = 2)
long_ma_src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, src, lookahead = false) : close


tick_round(x) => 
    round(x / syminfo.mintick) * syminfo.mintick

// Set initial values to 0
short_ma = 0.0
middle_ma = 0.0
long_ma  = 0.0

// Simple Moving Average (SMA)
if ma_type == 'SMA' 
    short_ma := sma(short_ma_src, short_ma_len)
    middle_ma := sma(middle_ma_src, middle_ma_len)
    long_ma  := sma(long_ma_src,  long_ma_len)

// Exponential Moving Average (EMA)
if ma_type == 'EMA'
    short_ma := ema(short_ma_src, short_ma_len)
    middle_ma := ema(middle_ma_src, middle_ma_len)
    long_ma  := ema(long_ma_src,  long_ma_len)

// Weighted Moving Average (WMA)
if ma_type == 'WMA'
    short_ma := wma(short_ma_src, short_ma_len)
    middle_ma := wma(middle_ma_src, middle_ma_len)
    long_ma  := wma(long_ma_src,  long_ma_len)

// Hull Moving Average (HMA)
if ma_type == 'HMA'
    short_ma := wma(2*wma(short_ma_src, short_ma_len/2)-wma(short_ma_src, short_ma_len), round(sqrt(short_ma_len)))
    middle_ma := wma(2*wma(middle_ma_src, middle_ma_len/2)-wma(middle_ma_src, middle_ma_len), round(sqrt(middle_ma_len)))
    long_ma  := wma(2*wma(long_ma_src,  long_ma_len /2)-wma(long_ma_src,  long_ma_len),  round(sqrt(long_ma_len)))

// Volume-weighted Moving Average (VWMA)
if ma_type == 'VWMA'
    short_ma := vwma(short_ma_src, short_ma_len)
    middle_ma := vwma(middle_ma_src, middle_ma_len)
    long_ma  := vwma(long_ma_src,  long_ma_len)


// Smoothed Moving Average (SMMA)    
if ma_type == 'SMMA'
    short_ma := na(short_ma[1]) ? sma(short_ma_src, short_ma_len) : (short_ma[1] * (short_ma_len - 1) + short_ma_src) / short_ma_len
    middle_ma := na(middle_ma[1]) ? sma(middle_ma_src, middle_ma_len) : (middle_ma[1] * (middle_ma_len - 1) + middle_ma_src) / middle_ma_len
    long_ma  := na(long_ma[1])  ? sma(long_ma_src,  long_ma_len)  : (long_ma[1]  * (long_ma_len  - 1) + long_ma_src)  / long_ma_len

// Double Exponential Moving Average (DEMA)
if ma_type == 'DEMA'
    e1_short = ema(short_ma_src, short_ma_len)
    e1_middle = ema(middle_ma_src, middle_ma_len)
    e1_long  = ema(long_ma_src,  long_ma_len)
    
    short_ma := 2 * e1_short - ema(e1_short, short_ma_len)
    middle_ma := 2 * e1_middle - ema(e1_middle, middle_ma_len)
    long_ma  := 2 * e1_long  - ema(e1_long,  long_ma_len)

// Plot MAs
plot(short_ma, color = color.green,   linewidth = 1)
plot(middle_ma, color = color.yellow,   linewidth = 1)
plot(long_ma,  color = color.red, linewidth = 1)

if close>long_ma and short_ma>middle_ma and time_cond
    strategy.entry("Long", strategy.long)


if close<long_ma and short_ma<middle_ma and time_cond
    strategy.entry("Short", strategy.short)


مزید