Volatility Breakthrough Strategy اتار چڑھاؤ سے بچاؤ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-13 14:36:04
ٹیگز:

img

جائزہ

Volatility Breakthrough Strategy ایک ایسی حکمت عملی ہے جو خرید و فروخت کے عمل کو اس وقت کرتی ہے جب قیمتیں اتار چڑھاؤ کے نمونوں میں کلیدی معاونت یا مزاحمت کی سطح کو توڑ دیتی ہیں۔ یہ حکمت عملی کلیدی تجارتی مواقع کی نشاندہی کرنے کے لئے متعدد تکنیکی اشارے کو جوڑتی ہے۔

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

یہ حکمت عملی بنیادی طور پر بولنگر مڈل بینڈ ، 48 دن کی سادہ چلتی اوسط (ایس ایم اے) ، ایم اے سی ڈی اور اے ڈی ایکس چار تکنیکی اشارے پر مبنی ہے۔ مخصوص منطق یہ ہے:

  1. جب بندش کی قیمت 48 دن کے ایس ایم اے سے اوپر یا نیچے ہو تو تجارتی مواقع پر غور کریں۔

  2. جب اختتامی قیمت بولنگر مڈل بینڈ سے گزرتی ہے تو ، یہ انٹری سگنل کی حیثیت سے کام کرتی ہے۔

  3. 0 سے زیادہ یا اس سے کم MACD، رجحان کی سمت کا تعین کرنے کے لئے ایک معاون اشارے کے طور پر کام کرتا ہے؛

  4. ADX 25 سے زیادہ غیر رجحان مارکیٹوں کو فلٹر کرنے کے لئے.

جب مذکورہ بالا چار شرائط پوری ہو جائیں تو ، طویل یا مختصر جائیں۔

حکمت عملی کے فوائد

یہ ایک حکمت عملی ہے جو رجحان اور اتار چڑھاؤ کے اشارے کو جوڑتی ہے۔ اس کے اہم فوائد یہ ہیں:

  1. 48 روزہ ایس ایم اے زیادہ کثرت سے تجارت کو فلٹر کرتا ہے اور درمیانی اور طویل مدتی رجحانات میں تالے لگاتا ہے۔

  2. بولنگر مڈل بینڈ بریک آؤٹ مضبوط سٹاپ نقصان کے فنکشن کے ساتھ اہم سپورٹ / مزاحمت بریک آؤٹ پوائنٹس پر قبضہ کرتا ہے۔

  3. ایم اے سی ڈی اہم رجحانات کی سمت کا اندازہ کرتا ہے، رجحان کے خلاف تجارت سے بچنے سے بچتا ہے؛

  4. ADX غیر رجحان سازی مارکیٹوں کو فلٹر کرتا ہے اور حکمت عملی کی جیت کی شرح کو بہتر بناتا ہے.

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

اسٹریٹجی کے خطرات

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

  1. غیر مستحکم بازاروں میں بولنگر مڈل بینڈ بہت زیادہ تجارتی مواقع کو متحرک کرسکتا ہے، جس سے زیادہ تجارت ہوتی ہے۔

  2. ADX اشارے میں رجحانات اور غلط حرکتوں کا تعین کرنے میں بھی کچھ غلطیاں ہیں۔

  3. نسبتاً بڑا خطرہ، جو ان سرمایہ کاروں کے لیے موزوں ہے جو ایک خاص سطح کا خطرہ برداشت کر سکتے ہیں۔

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

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

  1. ATR اشارے کو سٹاپ نقصان کے پوائنٹس کو مقرر کرنے اور سٹاپ نقصان کے مطابق کم کرنے کے لئے شامل کریں؛

  2. وسط لائن ٹرگرنگ فریکوئنسی کو کم کرنے کے لئے بولنگر پیرامیٹرز کو بہتر بنائیں؛

  3. تجارتی حجم یا رجحان کی طاقت کے اشارے شامل کریں تاکہ رجحانات کی طاقت کا تعین کیا جاسکے ، کمزور الٹ تجارت سے بچیں۔

خلاصہ

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


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © 03.freeman
//Volatility Traders Minds Strategy (VTM Strategy)
//I found this startegy on internet, with a video explaingin how it works.
//Conditions for entry:
//1 - Candles must to be above or bellow the 48 MA (Yellow line)
//2 - Candles must to break the middle of bollinger bands
//3 - Macd must to be above or bellow zero level;
//4 - ADX must to be above 25 level
//@version=4
strategy("Volatility Traders Minds Strategy (VTM Strategy)", shorttitle="VTM",overlay=true)
source = input(close)
//MA
ma48 = sma(source,48)
//MACD
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)

MACD = ema(source, fastLength) - ema(source, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

//BB

length = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50)

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

//ADX
adxThreshold = input(title="ADX Threshold", type=input.integer, defval=25, minval=1)
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]

adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)

sig = adx(dilen, adxlen)

//  Strategy: (Thanks to JayRogers)
// === STRATEGY RELATED INPUTS ===
//tradeInvert     = input(defval = false, title = "Invert Trade Direction?")
// the risk management inputs
inpTakeProfit   = input(defval = 0, title = "Take Profit Points", minval = 0)
inpStopLoss     = input(defval = 0, title = "Stop Loss Points", minval = 0)
inpTrailStop    = input(defval = 0, title = "Trailing Stop Loss Points", minval = 0)
inpTrailOffset  = input(defval = 0, title = "Trailing Stop Loss Offset Points", minval = 0)

// === RISK MANAGEMENT VALUE PREP ===
// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() => close>ma48 and close>basis and delta>0 and sig>adxThreshold  // functions can be used to wrap up and work out complex conditions
//exitLong() => jaw>teeth or jaw>lips or teeth>lips
strategy.entry(id = "Buy", long = true, when = enterLong() )    // use function or simple condition to decide when to get in
//strategy.close(id = "Buy", when = exitLong() )                  // ...and when to get out

// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort() => close<ma48 and close<basis and delta<0 and sig>adxThreshold
//exitShort() => jaw<teeth or jaw<lips or teeth<lips
strategy.entry(id = "Sell", long = false, when = enterShort())
//strategy.close(id = "Sell", when = exitShort() )

// === STRATEGY RISK MANAGEMENT EXECUTION ===
// finally, make use of all the earlier values we got prepped
strategy.exit("Exit Buy", from_entry = "Buy", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Sell", from_entry = "Sell", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)

// === Backtesting Dates === thanks to Trost

testPeriodSwitch = input(false, "Custom Backtesting Dates")
testStartYear = input(2020, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testStopHour = input(23, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,testStopHour,0)
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
isPeriod = testPeriodSwitch == true ? testPeriod() : true
// === /END

if not isPeriod
    strategy.cancel_all()
    strategy.close_all()

مزید