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


تخلیق کی تاریخ: 2023-10-26 15:38:14 آخر میں ترمیم کریں: 2023-10-26 15:38:14
کاپی: 0 کلکس کی تعداد: 628
1
پر توجہ دیں
1617
پیروکار

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

جائزہ

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

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

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

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

اسی طرح ، جب قیمت ایک خاص تناسب سے بڑھتی ہوئی اوسط سے زیادہ ہوتی ہے تو ، ایک خالی فہرست قائم کی جاتی ہے۔ جب قیمت کم ہوتی ہے تو ، اس کے تناسب سے برابر ہوجاتا ہے۔

طاقت کا تجزیہ

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

  2. بیچوں میں پوزیشن قائم کرکے ، ذخیرہ کرنے کی لاگت کو کم کریں ، بہتر قیمت حاصل کریں۔

  3. مرحلہ وار اسٹاپ اپ کا استعمال ، مختلف درجے کی واپسی کی اوسط لائن میں اسٹاپ اپ کے مختلف مواقع ہیں ، جس سے خطرے میں کمی واقع ہوتی ہے۔

  4. پوزیشن کنٹرول میں فکسڈ حصص کا استعمال کیا جاتا ہے تاکہ کسی بھی نقصان سے بچا جاسکے۔

  5. پیرامیٹرز کی ترتیب لچکدار ہے ، جو مختلف اقسام کے مطابق موزوں اوسط اوسط مدت یا پوزیشن تناسب کو ایڈجسٹ کرسکتی ہے۔

خطرے کا تجزیہ

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

  2. مضبوط اسٹاک براہ راست اوسط لائن کو توڑ کر اوپر یا نیچے جاسکتے ہیں اور اوسط لائن اسٹاپ پر واپس نہیں آسکتے ہیں۔ مضبوط رجحان کا اندازہ لگانے کے لئے رجحان کے اشارے کے ساتھ مل کر پوزیشن کو کم کیا جاسکتا ہے۔

  3. پیرامیٹرز کی غلط ترتیب سے زیادہ شدت پسند پوزیشن یا اسٹاپ نقصان ہوسکتا ہے۔ پیرامیٹرز کو احتیاط سے جانچنا چاہئے اور مارکیٹ کے مطابق ایڈجسٹ کرنا چاہئے۔

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

اصلاح کی سمت

  1. مختلف نسلوں کی خصوصیات کو اپنانے کے لئے متحرک اوسط سائیکل کو بہتر بنائیں۔

  2. پوزیشن کا تناسب بہتر بنائیں ، خطرہ منافع کو متوازن کریں۔

  3. غیر ضروری تجارت سے بچنے کے لئے دیگر تکنیکی اشارے کو فلٹر کریں

  4. اتار چڑھاؤ کے اشارے کے ساتھ ، مارکیٹ میں اتار چڑھاؤ کی سطح کے مطابق پوزیشن کا تناسب ایڈجسٹ کریں۔

  5. اس کے علاوہ ، اس میں شامل ہونے سے خطرے کو کم کرنے اور منافع میں اضافہ کرنے میں مدد ملے گی۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("YJ Mean Reversion", overlay=true)
//Was designed firstly to work on an index like the S&P 500 , which over time tends to go up in value. 
//Avoid trading too frequently (e.g. Daily, Weekly), to avoid getting eaten by fees. 
//If you change the underlying asset, or time frame, tweaking the moving average may be necessary. 
//Can work with a starting capital of just $1000, optimise the settings as necessary. 
//Accepts floating point values for the amount of units to purchase (e.g. Bitcoin ). 
//If price of units exceeds available capital, script will cancel the buy. 
//Adjusted the input parameters to be more intuitive.

//input variables
movingAverage = input(title="Moving Average (bars)", type=input.integer, defval=28, minval=1, maxval=1000)
//riskPercentage = input(title="Amount to Risk (%)", type=input.integer, defval=1, minval=1, maxval=50)
deviation = input(title="Deviation Increment (%)", type=input.float, defval=5, minval=0.01, maxval=100) / 100
unitsLevel1 = input(title="Level 1 (units)", type=input.float, defval=1, minval=0.0001, maxval=10000)
unitsLevel2 = input(title="Level 2 (units)", type=input.float, defval=2, minval=0.0001, maxval=10000)
unitsLevel3 = input(title="Level 3 (units)", type=input.float, defval=4, minval=0.0001, maxval=10000)
unitsLevel4 = input(title="Level 4 (units)", type=input.float, defval=8, minval=0.0001, maxval=10000)
unitsLevel5 = input(title="Level 5 (units)", type=input.float, defval=16, minval=0.0001, maxval=10000)

//moving average and ma slope (use on weekly chart)
ma = sma(close, movingAverage)
//sl = ma > ma[4]

//units to buy
//amount = riskPercentage / 100 * (strategy.initial_capital + strategy.netprofit)
//units = floor(amount / close)

//mode 1
//strategy.order("buy", true, 1, when = (close < 0.95 * ma) and (strategy.position_size < 10))
//strategy.order("sell", false, strategy.position_size, when = (close > 1.05 * ma) and (strategy.position_size > 0))

//mode 2
//strategy.order("buy", true, 1, when = close < 0.8 * ma)
//strategy.order("sell", false, strategy.position_size, when = (close > 310) and (strategy.position_size > 0))

//mode 3
//strategy.order("buy", true, 1, when = (close < 0.95 * ma) and (close > 0.9 * ma))
//strategy.order("buy", true, 2, when = (close < 0.9 * ma) and (close > 0.85 * ma))
//strategy.order("buy", true, 4, when = (close < 0.85 * ma) and (close > 0.8 * ma))
//strategy.order("buy", true, 8, when = (close < 0.8 * ma) and (close > 0.75 * ma))
//strategy.order("buy", true, 16, when = (close < 0.75 * ma))
//strategy.order("sell", false, strategy.position_size, when = (close > 310) and (strategy.position_size > 0))

//mode 4
//strategy.order("buy", true, 1, when = (close < 0.98 * ma) and (close > 0.96 * ma) and (sl))
//strategy.order("buy", true, 2, when = (close < 0.96 * ma) and (close > 0.94 * ma) and (sl))
//strategy.order("buy", true, 4, when = (close < 0.94 * ma) and (close > 0.92 * ma) and (sl))
//strategy.order("buy", true, 8, when = (close < 0.92 * ma) and (close > 0.90 * ma) and (sl))
//strategy.order("buy", true, 16, when = (close < 0.90 * ma) and (sl))
//strategy.order("sell", false, strategy.position_size, when = (close > 310) and (strategy.position_size > 0))

//mode 5
//strategy.order("buy", true, 1, when = (close < 0.95 * ma) and (close > 0.9 * ma))
//strategy.order("buy", true, 2, when = (close < 0.9 * ma) and (close > 0.85 * ma))
//strategy.order("buy", true, 4, when = (close < 0.85 * ma) and (close > 0.8 * ma))
//strategy.order("buy", true, 8, when = (close < 0.8 * ma) and (close > 0.75 * ma))
//strategy.order("buy", true, 16, when = (close < 0.75 * ma))

//strategy.order("sell", false, 1, when = (close > 1.05 * ma) and (close < 1.1 * ma) and (strategy.position_size > 0))
//strategy.order("sell", false, 2, when = (close > 1.1 * ma) and (close < 1.15 * ma) and (strategy.position_size > 0))
//strategy.order("sell", false, 4, when = (close > 1.15 * ma) and (close < 1.2 * ma) and (strategy.position_size > 0))
//strategy.order("sell", false, 8, when = (close > 1.2 * ma) and (close < 1.25 * ma) and (strategy.position_size > 0))
//strategy.order("sell", false, 16, when = (close > 1.25 * ma) and (close < 1.3 * ma) and (strategy.position_size > 0))

//mode 6
//strategy.order("B1", true, unitsLevel1 * units, when = (close < 0.95 * ma) and (close > 0.9 * ma))
//strategy.order("B2", true, unitsLevel2 * units, when = (close < 0.9 * ma) and (close > 0.85 * ma))
//strategy.order("B3", true, unitsLevel3 * units, when = (close < 0.85 * ma) and (close > 0.8 * ma))
//strategy.order("B4", true, unitsLevel4 * units, when = (close < 0.8 * ma) and (close > 0.75 * ma))
//strategy.order("B5", true, unitsLevel5 * units, when = (close < 0.75 * ma))

//strategy.order("S1", false, unitsLevel1 * units, when = (close > 1.05 * ma) and (close < 1.1 * ma) and (strategy.position_size > 0))
//strategy.order("S2", false, unitsLevel2 * units, when = (close > 1.1 * ma) and (close < 1.15 * ma) and (strategy.position_size > 0))
//strategy.order("S3", false, unitsLevel3 * units, when = (close > 1.15 * ma) and (close < 1.2 * ma) and (strategy.position_size > 0))
//strategy.order("S4", false, unitsLevel4 * units, when = (close > 1.2 * ma) and (close < 1.25 * ma) and (strategy.position_size > 0))
//strategy.order("S5", false, unitsLevel5 * units, when = (close > 1.25 * ma) and (close < 1.3 * ma) and (strategy.position_size > 0))

//mode 7
//strategy.order("B1", true, units, when = (close < 0.95 * ma) and (close > 0.9 * ma))
//strategy.order("B2", true, units, when = (close < 0.9 * ma) and (close > 0.85 * ma))
//strategy.order("B3", true, units, when = (close < 0.85 * ma) and (close > 0.8 * ma))
//strategy.order("B4", true, units, when = (close < 0.8 * ma) and (close > 0.75 * ma))
//strategy.order("B5", true, units, when = (close < 0.75 * ma))

//strategy.order("S1", false, units, when = (close > 1.05 * ma) and (close < 1.1 * ma) and (strategy.position_size > 0))
//strategy.order("S2", false, units, when = (close > 1.1 * ma) and (close < 1.15 * ma) and (strategy.position_size > 0))
//strategy.order("S3", false, units, when = (close > 1.15 * ma) and (close < 1.2 * ma) and (strategy.position_size > 0))
//strategy.order("S4", false, units, when = (close > 1.2 * ma) and (close < 1.25 * ma) and (strategy.position_size > 0))
//strategy.order("S5", false, units, when = (close > 1.25 * ma) and (close < 1.3 * ma) and (strategy.position_size > 0))

//banding calculations
aH = 1.0 - deviation
aL = aH - deviation
bH = aL
bL = bH - deviation
cH = bL
cL = cH - deviation
dH = cL
dL = dH - deviation
eH = dL
strategy.initial_capital = 50000
//mode 8
strategy.order("B1", true, unitsLevel1, when = (close < aH * ma) and (close > aL * ma) and (unitsLevel1 * close < (strategy.initial_capital + strategy.netprofit)))
strategy.order("B2", true, unitsLevel2, when = (close < bH * ma) and (close > bL * ma) and (unitsLevel2 * close < (strategy.initial_capital + strategy.netprofit)))
strategy.order("B3", true, unitsLevel3, when = (close < cH * ma) and (close > cL * ma) and (unitsLevel3 * close < (strategy.initial_capital + strategy.netprofit)))
strategy.order("B4", true, unitsLevel4, when = (close < dH * ma) and (close > dL * ma) and (unitsLevel4 * close < (strategy.initial_capital + strategy.netprofit)))
strategy.order("B5", true, unitsLevel5, when = (close < eH * ma) and (unitsLevel5 * close < (strategy.initial_capital + strategy.netprofit)))

//banding calculations
fL = 1.0 + deviation
fH = fL + deviation
gL = fH
gH = gL + deviation
hL = gH
hH = hL + deviation
iL = hH
iH = iL + deviation
jL = iH

strategy.order("S1", false, unitsLevel1, when = (close > fL * ma) and (close < fH * ma) and (strategy.position_size > 0))
strategy.order("S2", false, unitsLevel2, when = (close > gL * ma) and (close < gH * ma) and (strategy.position_size > 0))
strategy.order("S3", false, unitsLevel3, when = (close > hL * ma) and (close < hH * ma) and (strategy.position_size > 0))
strategy.order("S4", false, unitsLevel4, when = (close > iL * ma) and (close < iH * ma) and (strategy.position_size > 0))
strategy.order("S5", false, unitsLevel5, when = (close > jL * ma) and (strategy.position_size > 0))

plot(ma, color=#666666, linewidth=5)