
شیکنگ باکس کوانٹم ٹریڈنگ اسٹریٹجی ایک شارٹ لائن ٹریڈنگ حکمت عملی ہے جو مارکیٹ کے رجحانات کو پکڑنے کے لئے ڈارواس باکس چینل کا استعمال کرتی ہے۔ یہ حکمت عملی بنیادی طور پر مارکیٹ کے رجحانات کا تعین کرنے اور تجارت کے مواقع تلاش کرنے کے لئے شیکنگ باکس اشارے پر انحصار کرتی ہے۔ جب قیمت باکس کے اوپری حصے کو توڑتی ہے تو ، زیادہ کام کریں اور جب قیمت باکس کے نیچے کی طرف گرتی ہے تو ، خالی ہوجائیں۔
مذکورہ بالا متعدد اشارے کے مجموعی فیصلے کے بعد داخلہ لیا گیا ہے۔ اسٹاپ نقصان کی قیمت زیورات کے خانے کے مخالف ہے۔ اسٹاپ آؤٹ آرڈر کو بند کرنے کے لئے آر وی آئی کی سمت کا استعمال کرتا ہے۔
اس خطرے کو روکنے کے لئے مناسب طریقے سے سختی سے روکنے کے لۓ خطرے کو کم کیا جاسکتا ہے. اس کے علاوہ، معاون اشارے کے پیرامیٹرز کو بھی جانچ کی ضرورت ہوتی ہے تاکہ وہ بہترین فلٹرنگ کا کام کرسکیں.
ہلکا پھلکا خزانہ باکس مقدار کی تجارت کی حکمت عملی مجموعی طور پر ایک زیادہ متحرک شارٹ لائن ٹریڈنگ حکمت عملی ہے۔ یہ بروقت مارکیٹ میں رجحان کی تبدیلیوں کو پکڑ سکتا ہے ، خزانہ باکس چینل کا استعمال کرکے پوزیشن کھول سکتا ہے۔ اور معاون اشارے کے ساتھ مل کر فیصلے کی درستگی کو بہتر بنا سکتا ہے۔ اس حکمت عملی میں خطرہ منافع کی خصوصیت مثبت ہے ، اسے اپنانے اور مستقل طور پر بہتر بنانے کے قابل ہے۔
/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
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/
// © xxy_theone
// https://www.youtube.com/watch?v=YYxlnFOX9sQ
// This strategy script has been made to backtest the strategy explained in the video above
//@version=5
strategy(shorttitle = "Darvas Box Test", title="TradeIQ Darvas Box Test", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=100, currency=currency.USD)
// === INPUT BACKTEST RANGE ===
var GRP1 = "Backtest Range"
fromDate = input(timestamp("7 Mar 2022 00:00 +0000"), "From", group=GRP1)
toDate = input(timestamp("19 Mar 2022 23:59 +0000"), "To", group=GRP1)
window() => true
var GRP3 = "Darvas Box"
boxp=input(5, "Box Length", group=GRP3)
LL = ta.lowest(low,boxp)
k1=ta.highest(high,boxp)
k2=ta.highest(high,boxp-1)
k3=ta.highest(high,boxp-2)
NH = ta.valuewhen(high>k1[1],high,0)
box1 =k3<k2
TopBox = ta.valuewhen(ta.barssince(high>k1[1])==boxp-2 and box1, NH, 0)
BottomBox = ta.valuewhen(ta.barssince(high>k1[1])==boxp-2 and box1, LL, 0)
plot(TopBox, linewidth=3, color=color.green, title="TBbox")
plot(BottomBox, linewidth=3, color=color.red, title="BBbox")
var GRP4 = "MavilimW"
fmal=input(3,"First Moving Average length", group=GRP4)
smal=input(5,"Second Moving Average length", group=GRP4)
tmal=fmal+smal
Fmal=smal+tmal
Ftmal=tmal+Fmal
Smal=Fmal+Ftmal
M1= ta.wma(close, fmal)
M2= ta.wma(M1, smal)
M3= ta.wma(M2, tmal)
M4= ta.wma(M3, Fmal)
M5= ta.wma(M4, Ftmal)
MAVW= ta.wma(M5, Smal)
col1= MAVW>MAVW[1]
col3= MAVW<MAVW[1]
colorM = col1 ? color.blue : col3 ? color.red : color.yellow
plot(MAVW, color=colorM, linewidth=2, title="MAVW")
var GRP5 = "Relative Vigor Index"
len = input.int(10, title="Length", minval=1, group=GRP5)
rvi = math.sum(ta.swma(close-open), len)/math.sum(ta.swma(high-low),len)
sig = ta.swma(rvi)
offset = input.int(0, "Offset", minval = -500, maxval = 500, group=GRP5)
//plot(rvi, color=#008000, title="RVGI", offset = offset)
//plot(sig, color=#FF0000, title="Signal", offset = offset)
var longStopSet = false
long = ta.crossover(close,TopBox) and close > MAVW ? true : false
longClose = strategy.opentrades.profit(strategy.opentrades-1)>0 and ta.crossunder(rvi,sig) ? true : false
strategy.entry("Long Position", strategy.long, when = long and window() and strategy.position_size==0 and strategy.closedtrades<100)
if(longStopSet==false and strategy.position_size > 0)
strategy.exit("exit", "Long Position", stop=BottomBox)
longStopSet := true
if(strategy.position_size==0)
longStopSet := false
strategy.close("Long Position", when = longClose)
var shortStopSet = false
short = ta.crossunder(close,BottomBox) and close < MAVW ? true : false
shortClose = strategy.opentrades.profit(strategy.opentrades-1)>0 and ta.crossover(rvi,sig) ? true : false
strategy.entry("Short Position", strategy.short, when = short and window() and strategy.position_size==0 and strategy.closedtrades<100)
if(shortStopSet==false and strategy.position_size < 0)
strategy.exit("exit", "Short Position", stop=TopBox)
shortStopSet := true
if(strategy.position_size==0)
shortStopSet := false
strategy.close("Short Position", when = shortClose)