تین موونگ ایوریج گولڈن کراس ٹریڈنگ کی حکمت عملی


تخلیق کی تاریخ: 2024-01-16 18:18:02 آخر میں ترمیم کریں: 2024-01-16 18:18:02
کاپی: 0 کلکس کی تعداد: 724
1
پر توجہ دیں
1617
پیروکار

تین موونگ ایوریج گولڈن کراس ٹریڈنگ کی حکمت عملی

جائزہ

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

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

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

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

اس کے برعکس ، جب قلیل مدتی حرکت پذیر اوسط کے نیچے درمیانی مدت کی حرکت پذیری اوسط سے گزرتا ہے تو ، اس کا مطلب یہ ہے کہ قیمت نیچے کی طرف بڑھنے لگی ہے۔ اگر درمیانی مدت کی حرکت پذیری اوسط طویل مدتی حرکت پذیری اوسط سے کم ہے تو ، اس کا مطلب یہ ہے کہ یہ فی الحال نیچے کی طرف ہے ، لہذا اس وقت فروخت کا اشارہ پیدا ہوتا ہے۔

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

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

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

اسٹریٹجک خطرات اور حل

  • مثلث ایک دوسرے کے ساتھ سیدھ میں آنے پر غلط سگنل پیدا کر سکتا ہے

حل: غلط سگنل سے بچنے کے لئے منتقل اوسط پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کریں

  • زیادہ سے زیادہ سٹاپ نقصان کی روک تھام کا تناسب مقرر کریں

حل: سٹاپ نقصان کے تناسب کو مناسب طریقے سے ایڈجسٹ کریں ، نہ تو بہت بڑا اور نہ ہی بہت چھوٹا

  • پیرامیٹرز کی غلط ترتیب ، جس کی وجہ سے ٹرانزیکشن کی فریکوئنسی بہت زیادہ یا بہت کم ہے

حل: مختلف پیرامیٹرز کی جانچ اور ان کا بہترین مجموعہ تلاش کریں

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

ٹرپل لائن گولڈ کراسنگ حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:

  • مختلف اقسام اور لمبائی کے پیرامیٹرز کو آزمائیں اور بہترین تلاش کریں

بہترین ٹریڈنگ کے لئے مختلف لمبائی یا مختلف اقسام کے متحرک اوسط کے مجموعے کی جانچ کی جاسکتی ہے

  • اضافی تکنیکی اشارے فلٹر سگنل

دیگر اشارے جیسے کے ڈی جے ، ایم اے سی ڈی ، وغیرہ کو حکمت عملی میں شامل کیا جاسکتا ہے ، ملٹی فیکٹر توثیق ، فلٹر غلط سگنل

  • مختلف اقسام کی خصوصیات کے مطابق انتخاب پیرامیٹرز

اعلی تعدد پرجاتیوں کے لئے منتقل اوسط سائیکل کو مختصر کیا جا سکتا ہے؛ کم تعدد پرجاتیوں کے لئے بڑھتی ہوئی منتقل اوسط سائیکل

  • مشین سیکھنے کے طریقوں کا استعمال کرتے ہوئے بہترین پیرامیٹرز کا مجموعہ تلاش کریں

الگورتھم کے ذریعہ خود کار طریقے سے پیرامیٹر اسپیس میں گھومتے ہوئے ، بہترین پیرامیٹرز کو تیزی سے تلاش کریں

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-01-08 00:00:00
end: 2024-01-15 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Kozlod - 3 MA strategy with SL/PT", shorttitle="kozlod_3ma", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 5)

// 
// author: Kozlod
// date: 2018-03-25
// 

////////////
// INPUTS //
////////////

ma_type        = input(title = "MA Type",            defval = "SMA", options = ['SMA', 'EMA', 'WMA', 'VWMA', 'HMA', 'SMMA', 'DEMA'])
short_ma_len   = input(title = "Short MA Length",    defval = 5,     minval = 1)
short_ma_src   = input(title = "Short MA Source",    defval = close)
medium_ma_len  = input(title = "Medium MA Length",   defval = 20,    minval = 2)
medium_ma_src  = input(title = "Medium MA Source",   defval = close)
long_ma_len    = input(title = "Long MA Length",     defval = 100,   minval = 3)
long_ma_src    = input(title = "Long MA Source",     defval = close)

sl_lev_perc    = input(title = "SL Level % (0 - Off)", type = float,   defval = 0,  minval = 0, step = 0.01)
pt_lev_perc    = input(title = "PT Level % (0 - Off)", type = float,   defval = 0,  minval = 0, step = 0.01)

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

// Simple Moving Average (SMA)
if ma_type == 'SMA' 
    short_ma  := sma(short_ma_src,  short_ma_len)
    medium_ma := sma(medium_ma_src, medium_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)
    medium_ma := ema(medium_ma_src, medium_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)
    medium_ma := wma(medium_ma_src, medium_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)))
    medium_ma := wma(2*wma(medium_ma_src, medium_ma_len / 2) - wma(medium_ma_src, medium_ma_len), round(sqrt(medium_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)
    medium_ma := vwma(medium_ma_src, medium_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
    medium_ma := na(medium_ma[1]) ? sma(medium_ma_src, medium_ma_len) : (medium_ma[1] * (medium_ma_len - 1) + medium_ma_src) / medium_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_medium = ema(medium_ma_src, medium_ma_len)
    e1_long   = ema(long_ma_src,   long_ma_len)
    
    short_ma  := 2 * e1_short  - ema(e1_short,  short_ma_len)
    medium_ma := 2 * e1_medium - ema(e1_medium, medium_ma_len)
    long_ma   := 2 * e1_long   - ema(e1_long,   long_ma_len)

/////////////
// SIGNALS //
/////////////

long_signal  = crossover( short_ma, medium_ma) and medium_ma > long_ma
short_signal = crossunder(short_ma, medium_ma) and medium_ma < long_ma

// Calculate PT/SL levels 
// Initial values 
last_signal    = 0
prev_tr_price  = 0.0
pt_level       = 0.0
sl_level       = 0.0

// Calculate previous trade price
prev_tr_price := (long_signal[1] and nz(last_signal[2]) != 1) or (short_signal[1] and nz(last_signal[2]) != -1) ? open : nz(last_signal[1]) != 0 ? prev_tr_price[1] : na

// Calculate SL/PT levels 
pt_level := nz(last_signal[1]) == 1 ? prev_tr_price * (1 + pt_lev_perc / 100) : nz(last_signal[1]) == -1 ? prev_tr_price * (1 - pt_lev_perc / 100)  : na
sl_level := nz(last_signal[1]) == 1 ? prev_tr_price * (1 - sl_lev_perc / 100) : nz(last_signal[1]) == -1 ? prev_tr_price * (1 + sl_lev_perc / 100)  : na

// Calculate if price hit sl/pt 
long_hit_pt = pt_lev_perc > 0 and nz(last_signal[1]) ==  1 and close >= pt_level
long_hit_sl = sl_lev_perc > 0 and nz(last_signal[1]) ==  1 and close <= sl_level

short_hit_pt = pt_lev_perc > 0 and nz(last_signal[1]) ==  -1 and close <= pt_level
short_hit_sl = sl_lev_perc > 0 and nz(last_signal[1]) ==  -1 and close >= sl_level

// What is last active trade? 
last_signal := long_signal ? 1 : short_signal ? -1 : long_hit_pt or long_hit_sl or short_hit_pt or short_hit_sl ? 0 : nz(last_signal[1])

//////////////
// PLOTTING //
//////////////

// Plot MAs
plot(short_ma,  color = red,    linewidth = 2)
plot(medium_ma, color = green,  linewidth = 2)
plot(long_ma,   color = yellow, linewidth = 2)


// Plot Levels 
plotshape(prev_tr_price, style = shape.cross, color = gray, location  = location.absolute, size = size.small)


plotshape(sl_lev_perc > 0 ? sl_level : na, style = shape.cross, color = red,   location  = location.absolute, size = size.small)
plotshape(pt_lev_perc > 0 ? pt_level : na, style = shape.cross, color = green, location  = location.absolute, size = size.small)

//////////////
// STRATEGY //
//////////////

strategy.entry("long",  true,  when = long_signal)
strategy.entry("short", false, when = short_signal)

strategy.close("long",  when = long_hit_pt  or long_hit_sl)
strategy.close("short", when = short_hit_pt or short_hit_sl)