وسائل لوڈ ہو رہے ہیں... لوڈنگ...

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

مصنف:چاؤ ژانگ، تاریخ: 2023-09-23 15:55:20
ٹیگز:

جائزہ

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

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

  1. بیس لائن کے طور پر ایس آر سی قیمت کے لین مدت سادہ چلتی اوسط کا حساب لگائیں.

  2. لمبی اور مختصر لائنوں کی تعداد طویل اور مختصر پیرامیٹرز کی بنیاد پر مقرر کریں.

  3. لانگ لائن1 وغیرہ کو لانگ لیول1 وغیرہ کے تناسب کے مطابق بیس لائن کو منتقل کرکے مقرر کیا جاتا ہے۔ مختصر لائنیں اسی طرح مقرر کی جاتی ہیں۔

  4. جب قیمت قابل تجارت اوقات کے اندر لائنوں کو عبور کرتی ہے تو متعدد سطحوں پر تجارت کریں۔

  5. سٹاپ نقصان جب قیمت بیس لائن کو چھوتی ہے.

  6. اختتام وقت کے بعد تمام پوزیشنوں کو بند کرنے کی طاقت.

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

اس حکمت عملی کے مندرجہ ذیل فوائد ہیں:

  1. ملٹی لیول انٹری رجحان کے مختلف مراحل میں منافع حاصل کرنے کی اجازت دیتی ہے۔

  2. مختلف مصنوعات اور تجارتی طرز کے لئے پیرامیٹرز کے ساتھ انتہائی حسب ضرورت.

  3. قابل اعتماد بریکآؤٹ سسٹم جو چلتی اوسط پر مبنی ہے۔

  4. تجارتی وقت کی حد مقرر کرکے بڑے واقعات سے بچیں۔

  5. اسٹاپ نقصان کے ذریعے نقصانات کو روکنا۔

خطرے کا تجزیہ

اس حکمت عملی کے کچھ خطرات:

  1. ہائی خطرہ pyramiding پوزیشنوں سے، کافی سرمایہ کی ضرورت ہے.

  2. ناقص پیرامیٹرز سے زیادہ تجارت ہوسکتی ہے۔

  3. فکسڈ باہر نکلنے کا وقت دیر سے رجحان منافع کو یاد کر سکتا ہے.

  4. راتوں رات کی پوزیشنوں اور لے جانے کی لاگت کے لئے کوئی معاوضہ نہیں.

  5. پوزیشن سائزنگ پر کوئی کنٹرول نہیں.

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

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

  1. فکسڈ آؤٹ ٹائم کے بجائے ٹریلنگ اسٹاپ نقصان شامل کریں۔

  2. راتوں رات پوزیشنوں کے لئے لے جانے کی قیمت پر غور کریں.

  3. تاخیر سے منافع حاصل کرنے کے لئے پیچھے سٹاپ نقصان شامل کریں.

  4. موجودہ نمائش کی بنیاد پر متحرک طور پر سائز پوزیشن.

  5. مختلف مصنوعات پر پیرامیٹرز کی جانچ اور تعمیراتی اصلاح کے طریقوں.

  6. غیر ضروری رکاوٹوں سے بچنے کے لئے سٹاپ نقصان کی سطح کو بہتر بنائیں.

خلاصہ

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


/*backtest
start: 2022-09-16 00:00:00
end: 2023-09-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Noro's ShiftMA-multi Strategy v1.1", shorttitle = "ShiftMA-multi", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
long = input(3, defval = 3, minval = 0, maxval = 3, title = "Lines for long")
short = input(3, defval = 3, minval = 0, maxval = 3, title = "Lines for short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(3, minval = 1, title = "MA Length")
src = input(ohlc4, title = "MA Source")
shortlevel3 = input(15.0, title = "Short line 3")
shortlevel2 = input(10.0, title = "Short line 2")
shortlevel1 = input(5.0, title = "Short line 1")
longlevel1 = input(-5.0, title = "Long line 1")
longlevel2 = input(-10.0, title = "Long line 2")
longlevel3 = input(-15.0, title = "Long line 3")
needoffset = input(true, title = "Offset")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick

//MA
ma = sma(src, len)
longline1 = long >= 1 ? round(ma * ((100 + longlevel1) / 100) * mult) / mult : close
longline2 = long >= 2 ? round(ma * ((100 + longlevel2) / 100) * mult) / mult : close
longline3 = long >= 3 ? round(ma * ((100 + longlevel3) / 100) * mult) / mult : close
shortline1 = short >= 1 ? round(ma * ((100 + shortlevel1) / 100) * mult) / mult : close
shortline2 = short >= 2 ? round(ma * ((100 + shortlevel2) / 100) * mult) / mult : close
shortline3 = short >= 3 ? round(ma * ((100 + shortlevel3) / 100) * mult) / mult : close

//Lines
colorlong1 = long >= 1 ? color.lime : na
colorlong2 = long >= 2 ? color.lime : na
colorlong3 = long >= 3 ? color.lime : na
colorshort1 = short >= 1 ? color.red : na
colorshort2 = short >= 2 ? color.red : na
colorshort3 = short >= 3 ? color.red : na
offset = needoffset ? 1 : 0
plot(shortline3, offset = offset, color = colorshort1)
plot(shortline2, offset = offset, color = colorshort2)
plot(shortline1, offset = offset, color = colorshort3)
plot(ma, offset = offset, color = color.blue)
plot(longline1, offset = offset, color = colorlong1)
plot(longline2, offset = offset, color = colorlong2)
plot(longline3, offset = offset, color = colorlong3)

//Trading
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
lots = 0.0
needtime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
if ma > 0
    lots := round(size / lot)
    strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0 and long >= 1 and needtime))
    lots := round(size / lot)
    strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1 and long >= 2 and needtime))
    lots := round(size / lot)
    strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2 and long >= 3 and needtime))
    
    lots := round(size / lot)
    strategy.entry("S1", strategy.short, lot, limit = shortline1, when = (lots == 0 and short >= 1 and needtime))
    lots := round(size / lot)
    strategy.entry("S2", strategy.short, lot, limit = shortline2, when = (lots >= -1 and short >= 2 and needtime))
    lots := round(size / lot)
    strategy.entry("S3", strategy.short, lot, limit = shortline3, when = (lots >= -2 and short >= 3 and needtime))
if size > 0
    strategy.entry("TPL", strategy.short, 0, limit = ma)
if size < 0
    strategy.entry("TPS", strategy.long, 0, limit = ma)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()

مزید