روبوٹ وائٹ باکس آئس برگ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-09-26 21:02:21
ٹیگز:

جائزہ

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

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

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

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

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

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

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

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

  1. رجحان کی سمت کا تعین کرنے کے لئے چلتی اوسط کا استعمال کرنا واضح اور قابل عمل ہے۔ چلتی اوسط مؤثر طریقے سے مارکیٹ کے شور کو فلٹر کرسکتے ہیں اور اہم رجحان کی سمت کا تعین کرسکتے ہیں۔

  2. متعدد انٹری لائنز ٹرینڈ رنوں کے استعمال کو زیادہ سے زیادہ کرتی ہیں۔ متعدد انٹری لائنوں کے ساتھ ، یہ ٹرینڈ کی پوری رن رینج کو زیادہ سے زیادہ حاصل کرسکتا ہے اور منافع کی جگہ کو بڑھا سکتا ہے۔

  3. بیچوں میں پوزیشنیں کھولنے سے ایک ہی آرڈر کا خطرہ کم ہوتا ہے۔ مارکیٹ میں متعدد بار داخل ہونے سے آرڈرز کے خطرات میں تنوع آتا ہے اور اوسط انعقاد کی لاگت کم ہوتی ہے۔

  4. ہیجنگ اسٹاپ نقصان کا طریقہ کار خطرات کو مؤثر طریقے سے کنٹرول کرتا ہے۔ ہیجنگ اسٹاپ نقصان کا آرڈر جب قیمت دوبارہ اوسط سے تجاوز کرتی ہے تو تیزی سے اسٹاپ نقصان کا احساس ہوتا ہے ، جس سے بڑے نقصانات سے بچا جاتا ہے۔

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

خطرے کا تجزیہ

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

  1. چلتی اوسط سے غلط سگنل کا امکان۔ چلتی اوسط میں تاخیر ہوتی ہے اور غلط سگنل دے سکتی ہے۔

  2. رجحان کی تبدیلی کا خطرہ نقصانات کا باعث بنتا ہے۔ حکمت عملی میں ایک رجحان کا تصور کیا جاتا ہے ، لہذا رجحان کی تبدیلی سے بڑے نقصانات ہوسکتے ہیں۔

  3. بہت کثرت سے انٹری لائنز تجارت کی کثرت اور سلائڈ لاگت میں اضافہ کرتی ہیں۔

  4. بیچ کھولنے کی پوزیشنوں میں جب پوزیشن کا سائز بہت بڑا ہوتا ہے تو حراستی کا خطرہ بڑھ جاتا ہے۔

  5. غلط سٹاپ نقصان نقطہ کی ترتیبات کو قبل از وقت سٹاپ نقصان کی قیادت کر سکتے ہیں یا سٹاپ نقصان نقطہ بہت چھوٹا ہے.

متعلقہ رسک مینجمنٹ اقدامات:

  1. چلتی اوسط پیرامیٹرز کو بہتر بنائیں اور مناسب ادوار کا انتخاب کریں۔

  2. اہم تکنیکی اشارے پر دھیان دیں تاکہ رجحان کی تبدیلی کے اشاروں کو دیکھا جا سکے اور وقت پر نقصان کو روک سکیں۔

  3. تجارتی تعدد کو کم کرنے کے لئے انٹری لائنوں کے درمیان فاصلے کو ایڈجسٹ کریں۔

  4. پوزیشن سائزنگ اور کنٹرول حراستی خطرے کے تناسب کو بہتر بنائیں.

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

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

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

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

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

  3. دوسرے اشارے کو فلٹر کے حالات کے طور پر شامل کریں تاکہ حرکت پذیر اوسط سے غلط سگنل سے بچنے کے لئے، جیسے MACD، RSI وغیرہ.

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

  5. تمام پوزیشنوں کو بند کرنے کے لئے رجحان کی تبدیلی کا فیصلہ شامل کریں.

  6. مختلف مارکیٹ کے ادوار کے لئے پیرامیٹرز کو بہتر بنائیں.

  7. اکاؤنٹ کے استعمال کے فیصد کی بنیاد پر پوزیشن کے سائز کی متحرک ایڈجسٹمنٹ شامل کریں۔

خلاصہ

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


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

//Noro
//2019

//@version=4
strategy(title = "Robot WhiteBox Iceberg", shorttitle = "Robot WhiteBox Iceberg", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(3, minval = 1, title = "MA Length")
s = input(defval = "7. OHLC4", options = ["1. Open", "2. High", "3. Low", "4. Close", "5. HL2", "6. HLC3", "7. OHLC4", "8. OC2", "9. PCMA"], title = "Data")
short3 = input(true, title = "short 3")
short2 = input(true, title = "short 2")
short1 = input(true, title = "short 1")
long1 = input(true, title = "long 1")
long2 = input(true, title = "long 2")
long3 = input(true, title = "long 3")
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
lots = 0.0
size = strategy.position_size
mult = 1 / syminfo.mintick
needtime = true

//MA
oc2 = (open + close) / 2
pcma = (highest(high, len) + lowest(low, len)) / 2
src = s == "1. Open" ? open : s == "2. High" ? high : s == "3. Low" ? low : s == "4. Close" ? close : s == "5. HL2" ? hl2 : s == "6. HLC3" ? hlc3 : s == "7. OHLC4" ? ohlc4 : s == "8. OC2" ? oc2: close
sma = sma(src, len)
ma = s == "9. PCMA" ? round(pcma * mult) / mult : round(sma * mult) / mult

//Levels
longline1 = 0.0
longline2 = 0.0
longline3 = 0.0
shortline1 = 0.0
shortline2 = 0.0
shortline3 = 0.0
longline1 := long1 ? round(ma * ((100 + longlevel1) / 100) * mult) / mult : close
longline2 := lots[1] == 0 ? long2 ? round(ma * ((100 + longlevel2) / 100) * mult) / mult : close : longline2[1]
longline3 := lots[1] == 0 ? long3 ? round(ma * ((100 + longlevel3) / 100) * mult) / mult : close : longline3[1]
shortline1 := short1 ? round(ma * ((100 + shortlevel1) / 100) * mult) / mult : close
shortline2 := lots[1] == 0 ? short2 ? round(ma * ((100 + shortlevel2) / 100) * mult) / mult : close : shortline2[1]
shortline3 := lots[1] == 0 ? short3 ? round(ma * ((100 + shortlevel3) / 100) * mult) / mult : close : shortline3[1]

//Lines
colorlong1 = long1 ? color.lime : na
colorlong2 = long2 ? color.lime : na
colorlong3 = long3 ? color.lime : na
colorshort1 = short1 ? color.red : na
colorshort2 = short2 ? color.red : na
colorshort3 = short3 ? color.red : na
offset = needoffset ? 1 : 0
plot(shortline3, offset = offset, color = colorshort3, title = "Short line 3")
plot(shortline2, offset = offset, color = colorshort2, title = "Short line 2")
plot(shortline1, offset = offset, color = colorshort1, title = "Short line 1")
plot(ma, offset = offset, color = color.blue, title = "MA line")
plot(longline1, offset = offset, color = colorlong1, title = "Long line 1")
plot(longline2, offset = offset, color = colorlong2, title = "Long line 2")
plot(longline3, offset = offset, color = colorlong3, title = "Long line 3")

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

مزید