
ڈبل نیچے ریورس اوسط لائن ڈی سی اے گرڈ حکمت عملی بنیادی طور پر اوسط لائن قیمت ریورس اور ڈی سی اے حکمت عملی پر لاگو ہوتی ہے تاکہ گرڈ کو تدریجی طور پر پوزیشن بنایا جاسکے۔ یہ ڈبل نیچے ریورس شکل کی بنیاد پر ریورس مواقع کا فیصلہ کرتا ہے۔ ایک بار جب ریورس شکل کو متحرک کیا جاتا ہے تو ، متعدد مختلف قیمتوں کے احکامات کا استعمال کرتے ہوئے ، ڈی سی اے کے ساتھ مل کر گرڈ کی پوزیشنوں کو تدریجی طور پر قائم کریں۔
حکمت عملی سب سے پہلے یہ فیصلہ کرتی ہے کہ کیا K لائن میں دو بار لگاتار بند ہونے والی قیمتوں کے برابر نچلے حصے پائے جاتے ہیں ، جس کو جھاڑو ڈبل نیچے کہا جاتا ہے۔ اگر ڈبل نیچے کا پتہ لگایا جاتا ہے تو ، یہ سمجھا جاتا ہے کہ قیمتوں میں الٹ ہونے کا موقع ہوسکتا ہے۔ اس وقت ، حکمت عملی نچلے حصے کے قریب ایک سے زیادہ محدود قیمت کے احکامات رکھتی ہے ، جس کی قیمتیں اے ٹی آر اور اتار چڑھاؤ کی شرح کے حساب سے ایک گرڈ زون بناتی ہیں۔ اس سے ڈی سی اے کا اثر ہوتا ہے ، جس سے تاجر مختلف قیمتوں پر الٹ جانے والے مقامات پر تدریجی طور پر پوزیشن بنا سکتا ہے۔
خاص طور پر ، پہلے ta.atr کے ذریعہ تازہ ترین 14 K لائنوں کے لئے اے ٹی آر اشارے کا حساب لگائیں ، اور پھر تازہ ترین 5 K لائنوں کے ساتھ قیمت کی اتار چڑھاؤ کی شرح کا حساب لگائیں ، جو کہ گرڈ بینڈ کی شناخت کے لئے اہم پیرامیٹرز ہیں۔ گرڈ بینڈ کو 4 قیمت پوائنٹس میں تقسیم کیا گیا ہے ، بالترتیب نیچے کی قیمت + اتار چڑھاؤ کی شرح ، نیچے کی قیمت + 0.75 گنا اتار چڑھاؤ کی شرح ، اور اسی طرح۔ جب ڈبل نیچے کی شرائط کو متحرک کیا جاتا ہے تو ، اس حساب کتاب کے فارمولے کے مطابق ، اس قیمت پر 4 حد کے احکامات مرتب کیے جاتے ہیں ، ہر ایک کے برابر مقدار میں۔ غیر منقولہ منسلک واحد خود بخود آرڈر کو واپس لے جائے گا جب مقرر کردہ انگوٹھے کی تعداد طے ہوجائے گی۔
اس کے علاوہ ، حکمت عملی میں ایک اسٹاپ نقصان اور ایک اسٹاپ آؤٹ پوزیشن بھی رکھی جاتی ہے۔ اسٹاپ نقصان کی قیمت ڈبل نیچے کی کم از کم قیمت ہے - کم سے کم بیئرنگ کی قیمت ، اور اسٹاپ قیمت انٹری کی قیمت + اے ٹی آر اشارے سے 5 گنا ہے۔ جب پوزیشن کی پوزیشن 0 نہیں ہوتی ہے تو ، دونوں قیمتیں اصل وقت میں اپ ڈیٹ ہوجاتی ہیں۔
یہ حکمت عملی مندرجہ ذیل فوائد رکھتی ہے:
اہم خطرات:
اس حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:
ڈبل نیچے ریورس اوسط لائن ڈی سی اے گرڈ حکمت عملی میں متعدد تکنیکی ذرائع جیسے قیمت کی شکل ، اوسط لائن اشارے ، اور گرڈ ٹریڈنگ کا استعمال کیا گیا ہے۔ اس میں فیصلے کے وقت کی درستگی ، لاگت پر قابو پانے ، اور واپسی کے تحفظ جیسے فوائد ہیں۔ اس حکمت عملی کو بہتر بنانے کی گنجائش بہت بڑی ہے ، جو گہری تحقیق اور اطلاق کے قابل ہے۔ اگر پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کیا جائے تو ، زلزلے کی صورت حال میں اچھے نتائج حاصل کیے جاسکتے ہیں۔
/*backtest
start: 2024-02-12 00:00:00
end: 2024-02-19 00:00:00
period: 3m
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/
// © cherepanovvsb
//@version=5
strategy("Reversal (only long)", overlay=true, margin_long=1, margin_short=1,initial_capital=1000,commission_type = strategy.commission.percent,commission_value =0.1,currency='USD', process_orders_on_close=true)
plotshape(low == low[1], style=shape.triangleup, location=location.belowbar, color=color.blue, title="1 Setup")
plotshape(low == low[1] and low[1]==low[2], style=shape.triangleup, location=location.belowbar, color=color.red, title="Triple Setup")
ATRlenght = input.int(title="ATR length for taking profit", defval=14, group="Strategy Settings")
rewardMultiplier= input.int(title="ATR multiplier", defval=5, group="Strategy Settings")
Volatility_length=input.int(title='Volatility length',defval=5,group="Strategy Settings")
Volatility_multiplier=input.float(title='Volatility multiplier',defval=0.5,step=0.1, group="Strategy Settings")
Candles_to_wait=input.int(title='How many candles to wait after placing orders grid?',defval=4,group="Strategy Settings")
// Get ATR
atr1 = ta.atr(ATRlenght)
//Get volatility values (not ATR)
float result = 0
for i = 0 to Volatility_length
result+=high[i]-low[i]
volatility=result*Volatility_multiplier/Volatility_length
//Validate entrance points
validlow = low [2]== low[1] and not na(atr1)
validlong = validlow and strategy.position_size == 0 and low[1]<low
// Calculate SL/TP
longStopPrice = low[1]-syminfo.mintick
longStopDistance = close - longStopPrice
longTargetPrice = close + (longStopDistance * rewardMultiplier)
strategy.initial_capital = 50000
//Assign all variables
var tradeStopPrice = 0.0
var tradeTargetPrice = 0.0
var point1=0.0
var point2=0.0
var point3=0.0
var point4=0.0
var contracts = int(strategy.initial_capital/close)/4
if validlong
tradeStopPrice := longStopPrice
tradeTargetPrice := longTargetPrice
point1:=low[1]+volatility
point2:=low[1]+volatility*0.75
point3:=low[1]+volatility*0.5
point4:=low[1]+volatility*0.25
strategy.entry ("Long1", strategy.long,limit=point1,qty=contracts, when=validlong)
strategy.entry ("Long2", strategy.long,limit=point2,qty=contracts, when=validlong)
strategy.entry ("Long3", strategy.long,limit=point3,qty=contracts, when=validlong)
strategy.entry ("Long4", strategy.long,limit=point4,qty=contracts, when=validlong)
stopcondition = ta.barssince(validlong) == Candles_to_wait
strategy.cancel("Long1",when=stopcondition)
strategy.cancel("Long2",when=stopcondition)
strategy.cancel("Long3",when=stopcondition)
strategy.cancel("Long4",when=stopcondition)
strategy.exit(id="Long Exit", limit=tradeTargetPrice, stop=tradeStopPrice, when=strategy.position_size > 0)
plot(strategy.position_size != 0 or validlong ? tradeStopPrice : na, title="Trade Stop Price", color=color.red, style=plot.style_linebr, linewidth=3)
plot(strategy.position_size != 0 or validlong ? tradeTargetPrice : na, title="Trade Target Price", color=color.green, style=plot.style_linebr, linewidth=3)
plot(strategy.position_size != 0? point1 : na, title="Long1", color=color.green, style=plot.style_linebr, transp=0)
plot(strategy.position_size != 0? point2 : na, title="Long2", color=color.green, style=plot.style_linebr, transp=0)
plot(strategy.position_size != 0? point3 : na, title="Long3", color=color.green, style=plot.style_linebr, transp=0)
plot(strategy.position_size != 0? point4 : na, title="Long4", color=color.green, style=plot.style_linebr, transp=0)