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

مصنف:چاؤ ژانگ، تاریخ: 2023-10-11 16:33:18
ٹیگز:

جائزہ

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

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

حکمت عملی سب سے پہلے بیک ٹسٹنگ ٹائم فریم کی وضاحت کرتی ہے، پھر دو چلتی اوسط کے لئے حساب کے پیرامیٹرز، بشمول ایم اے کی قسم اور مدت کی لمبائی.

getMAType (() فنکشن دو ایم اے کی اقدار کا حساب لگاتا ہے۔ تیز رفتار ایم اے مختصر مدت ایم اے ہے ، اور سست ایم اے طویل مدت ایم اے ہے۔

بنیادی منطق:

  • جب فاسٹ ایم اے سست ایم اے کے اوپر سے گزرتا ہے، تو ایک طویل سگنل شروع ہوتا ہے.

  • جب فاسٹ ایم اے سست ایم اے سے نیچے جاتا ہے تو ، ایک مختصر سگنل ٹرگر ہوتا ہے۔

آخر میں، بیک ٹیسٹنگ کے دوران، طویل سگنل دیکھنے پر طویل پوزیشن لیں، اور مختصر سگنل دیکھنے پر مختصر پوزیشن لیں.

فوائد کا تجزیہ

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

خطرے کا تجزیہ

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

خطرات کے خلاف ممکنہ اصلاحات:

  1. رجحان کی نشاندہی کے لیے دیگر تکنیکی اشارے شامل کریں۔

  2. اسٹاپ نقصان کو تجارت کے نقصان کی رقم پر کنٹرول میں شامل کریں۔

  3. وِپسا مارکیٹس سے بچنے کے لیے حجم کے اشارے شامل کریں۔

  4. پیرامیٹر کی اصلاح کے طریقہ کار کو خود بخود بہترین پیرامیٹر سیٹ تلاش کرنے کے لئے بنائیں.

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

اسٹریٹیجی کو مندرجہ ذیل پہلوؤں میں مزید بہتر بنایا جاسکتا ہے:

  1. نقصانات کو کنٹرول کرنے کے لئے سٹاپ نقصان کی حکمت عملی شامل کریں جیسے فکسڈ سٹاپ نقصان پوائنٹس یا ٹریلنگ سٹاپ نقصان.

  2. تجارتی خطرات کو کنٹرول کرنے کے لئے پوزیشن سائزنگ کی حکمت عملی جیسے فکسڈ یا متحرک پوزیشن سائزنگ شامل کریں.

  3. رجحانات کی نشاندہی کرنے اور جیت کی شرح کو بہتر بنانے کے لئے دیگر تکنیکی اشارے کے ساتھ مل کر فلٹرز شامل کریں۔

  4. زیادہ سے زیادہ اقدار تلاش کرنے کے لئے گرڈ تلاش اور لکیری رجسٹریشن جیسے طریقوں سے پیرامیٹرز کو بہتر بنائیں.

  5. داخلہ کی حکمت عملی کو بڑھانا جیسے بریک آؤٹ واپس لینا، تجارتی حکمت عملی کو افزودہ کرنے کے لئے احکامات میں پیمانہ.

  6. وِپسا مارکیٹس سے بچنے کے لیے حجم کے اشارے شامل کریں۔

  7. اسٹاک انڈیکس، فاریکس، کرپٹو کرنسی وغیرہ میں مصنوعات کو بڑھانا

خلاصہ

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


/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//strategy("Golden X BF Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Time Frame ///////////////
testStartYear = input(2010, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() =>  true

///////////// MA Params /////////////
source1 = input(title="MA Source 1", defval=close)
maType1 = input(title="MA Type 1", defval="sma", options=["sma", "ema", "swma", "wma"])
length1 = input(title="MA Length 1", defval=50)

source2 = input(title="MA Source 2", defval=close)
maType2 = input(title="MA Type 2", defval="sma", options=["sma", "ema", "swma", "wma"])
length2 = input(title="MA Length 2", defval=200)

///////////// Get MA Function /////////////
getMAType(maType, sourceType, maLen) => 
    res = sma(close, 1)
    
    if maType == "ema"
        res := ema(sourceType, maLen)
    if maType == "sma"
        res := sma(sourceType, maLen)
    if maType == "swma"
        res := swma(sourceType)
    if maType == "wma"
        res := wma(sourceType, maLen)
    res
    
///////////// MA /////////////
fastMA = getMAType(maType1, source1, length1)
slowMA = getMAType(maType2, source2, length2)

long = crossover(fastMA, slowMA)
short = crossunder(fastMA, slowMA)

/////////////// Plotting /////////////// 
checkColor() => fastMA > slowMA
colCheck = checkColor() ? color.lime : color.red
p1 = plot(fastMA, color = colCheck, linewidth=1)
p2 = plot(slowMA, color = colCheck, linewidth=1)
fill(p1, p2, color = checkColor() ? color.lime : color.red)
bgcolor(long ? color.lime : short ? color.red : na, transp=20)

/////////////// Execution /////////////// 
if testPeriod()
    strategy.entry("Long", strategy.long, when=long)
    strategy.entry("Short", strategy.short, when=short)

مزید