قیمت بریک آؤٹ پر مبنی انکولی سوئنگ ٹریڈنگ حکمت عملی


تخلیق کی تاریخ: 2023-12-04 14:34:13 آخر میں ترمیم کریں: 2023-12-04 14:34:13
کاپی: 0 کلکس کی تعداد: 672
1
پر توجہ دیں
1619
پیروکار

قیمت بریک آؤٹ پر مبنی انکولی سوئنگ ٹریڈنگ حکمت عملی

جائزہ

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

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

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

طاقت کا تجزیہ

  1. قیمت چینل خود کو اپنانے کی صلاحیت رکھتا ہے ، جس سے رجحان کی تبدیلی کا درست اندازہ لگایا جاسکتا ہے۔
  2. اس کے علاوہ ، یہ بھی کہا گیا ہے کہ یہ ایک بہت ہی اہم رجحان ہے ، اور اس کے نتیجے میں ، اس کی وجہ سے ، اس کی وجہ سے ، اس کی وجہ سے ، اس کی وجہ سے ، اس کی وجہ سے ، اس کی وجہ سے۔
  3. قیمتوں میں قلیل مدتی ردوبدل کو پکڑنے کے لئے موڑ کی حکمت عملی

خطرے کا تجزیہ

  1. بڑے پیمانے پر اور مستقل طور پر گرنے والے رجحانات میں ، متعدد رکاوٹوں کو متحرک کرنا آسان ہے ، جس سے بڑے نقصانات کا سبب بنتا ہے۔
  2. ٹرانزیکشن فیس میں اضافے کی وجہ سے، اکثر خرید و فروخت کی جاتی ہیں.
  3. دستی طور پر داخلے کا وقت طے کرنے کی ضرورت ہے ، اور مکمل طور پر خودکار تجارت میں فٹ ہونے کا خطرہ ہے۔

اصلاح کی سمت

  1. ایم اے کے پیرامیٹرز کو بہتر بنانے کے لئے تاکہ یہ مجموعی طور پر رجحانات کا بہتر فیصلہ کرسکے۔
  2. توانائی کے اشارے میں اضافہ ، توانائی کی کمی سے بچنے کے لئے الٹا سگنل۔
  3. مشین لرننگ ماڈل شامل کریں اور پیرامیٹرز کو متحرک طور پر بہتر بنائیں۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version = 4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TradingGroundhog



//  ||---   Cash & Date:
cash_amout = 10000
pyramid_val = 1
cash_given_per_lot = cash_amout/pyramid_val
startDate = input(title="Start Date",defval=13)
startMonth = input(title="Start Month",defval=9)
startYear = input(title="Start Year",defval=2021)
afterStartDate = (time >= timestamp(syminfo.timezone,startYear, startMonth, startDate, 0, 0))
//  ||------------------------------------------------------------------------------------------------------



//  ||---   Strategy:
strategy(title="TradingGroundhog - Strategy & Fractal V1 - Short term", overlay=true, max_bars_back = 4000, max_labels_count=500, commission_type=strategy.commission.percent, commission_value=0.00,default_qty_type=strategy.cash, default_qty_value= cash_given_per_lot, pyramiding=pyramid_val)
//  ||------------------------------------------------------------------------------------------------------



//  ||---   Fractal Recognition:
filterBW = input(true, title="filter Bill Williams Fractals:")
filterFractals = input(true, title="Filter fractals using extreme method:")
length = input(2, title="Extreme Window:")
regulartopfractal = high[4] < high[3] and high[3] < high[2] and high[2] > high[1] and high[1] > high[0]
regularbotfractal = low[4] > low[3] and low[3] > low[2] and low[2] < low[1] and low[1] < low[0]
billwtopfractal = filterBW ? false : (high[4] < high[2] and high[3] < high[2] and high[2] > high[1] and high[2] > high[0] ? true : false)
billwbotfractal = filterBW ? false : (low[4] > low[2] and low[3] > low[2] and low[2] < low[1] and low[2] < low[0] ? true : false)
ftop = filterBW ? regulartopfractal : regulartopfractal or billwtopfractal
fbot = filterBW ? regularbotfractal : regularbotfractal or billwbotfractal
topf = ftop ? high[2] >= highest(high, length) ? true : false : false
botf = fbot ? low[2] <= lowest(low, length) ? true : false : false
filteredtopf = filterFractals ? topf : ftop
filteredbotf = filterFractals ? botf : fbot
//  ||------------------------------------------------------------------------------------------------------



//  ||---   V1 : Added Swing High/Low Option
ShowSwingsHL = input(true)
highswings = filteredtopf == false ? na : valuewhen(filteredtopf == true, high[2], 2) < valuewhen(filteredtopf == true, high[2], 1) and valuewhen(filteredtopf == true, high[2], 1) > valuewhen(filteredtopf == true, high[2], 0)
lowswings = filteredbotf == false ? na : valuewhen(filteredbotf == true, low[2], 2) > valuewhen(filteredbotf == true, low[2], 1) and valuewhen(filteredbotf == true, low[2], 1) < valuewhen(filteredbotf == true, low[2], 0)
//---------------------------------------------------------------------------------------------------------



//  ||---   V2 : Plot Lines based on the fractals.
showchannel = input(true)
//---------------------------------------------------------------------------------------------------------



//  ||---   ZigZag:
showZigZag = input(true)
//----------------------------------------------------------------------------------------------------------



//  ||---   Fractal computation:
istop = filteredtopf ? true : false
isbot = filteredbotf ? true : false
topcount = barssince(istop)
botcount = barssince(isbot)
vamp = input(title="VolumeMA",  defval=2)
vam = sma(volume, vamp)
fractalup = 0.0
fractaldown = 0.0
up = high[3]>high[4] and high[4]>high[5] and high[2]<high[3] and high[1]<high[2] and volume[3]>vam[3]
down = low[3]<low[4] and low[4]<low[5] and low[2]>low[3] and low[1]>low[2] and volume[3]>vam[3]
fractalup :=  up ? high[3] : fractalup[1] 
fractaldown := down ? low[3] : fractaldown[1]
//----------------------------------------------------------------------------------------------------------



//  ||---   Fractal save:
fractaldown_save = array.new_float(0)
for i = 0 to 4000
    if array.size(fractaldown_save) < 3
        if array.size(fractaldown_save) == 0
            array.push(fractaldown_save, fractaldown[i])
        else 
            if fractaldown[i] != array.get(fractaldown_save, array.size(fractaldown_save)-1)
                array.push(fractaldown_save, fractaldown[i])
if array.size(fractaldown_save) < 3
    array.push(fractaldown_save, fractaldown)
    array.push(fractaldown_save, fractaldown)
fractalup_save = array.new_float(0)
for i = 0 to 4000
    if array.size(fractalup_save) < 3
        if array.size(fractalup_save) == 0
            array.push(fractalup_save, fractalup[i])
        else 
            if fractalup[i] != array.get(fractalup_save, array.size(fractalup_save)-1)
                array.push(fractalup_save, fractalup[i])
if array.size(fractalup_save) < 3
    array.push(fractalup_save, fractalup)
    array.push(fractalup_save, fractalup)
Bottom_1 = array.get(fractaldown_save,  0)
Bottom_2 = array.get(fractaldown_save,  1)
Bottom_3 = array.get(fractaldown_save,  2)
Top_1 = array.get(fractalup_save, 0)
Top_2 = array.get(fractalup_save, 1)
Top_3 = array.get(fractalup_save, 2)
//----------------------------------------------------------------------------------------------------------



//  ||---   Fractal Buy Sell Signal:
bool Signal_Test = false
bool Signal_Test_OUT_TEMP = false
var Signal_Test_TEMP = false
longLossPerc = input(title="Long Stop Loss (%)", minval=0.0, step=0.1, defval=0.01) * 0.01
if filteredbotf and open < Bottom_1 and (Bottom_1 - open) / Bottom_1 >= longLossPerc
    Signal_Test := true
if filteredtopf and open > Top_1
    Signal_Test_TEMP := true
if filteredtopf and Signal_Test_TEMP
    Signal_Test_TEMP := false
    Signal_Test_OUT_TEMP := true
//----------------------------------------------------------------------------------------------------------



//  ||---   Plotting:
//plotshape(filteredtopf, style=shape.triangledown, location=location.abovebar, color=color.red, text="•", offset=0)
//plotshape(filteredbotf, style=shape.triangleup, location=location.belowbar, color=color.lime, text="•", offset=0)
//plotshape(ShowSwingsHL ? highswings : na, style=shape.triangledown, location=location.abovebar, color=color.maroon, text="H", offset=0)
//plotshape(ShowSwingsHL ? lowswings : na, style=shape.triangleup, location=location.belowbar, color=color.green, text="L", offset=0)
plot(showchannel ? (filteredtopf ? high[2] : na) : na, color=color.black, offset=0)
plot(showchannel ? (filteredbotf ? low[2] : na) : na, color=color.black, offset=0)
plot(showchannel ? (highswings ? high[2] : na) : na, color=color.black, offset=-2)
plot(showchannel ? (lowswings ? low[2] : na) : na, color=color.black, offset=-2)
plotshape(Signal_Test, style=shape.flag, location=location.belowbar, color=color.yellow, offset=0)
plotshape(Signal_Test_OUT_TEMP, style=shape.flag, location=location.abovebar, color=color.white, offset=0)
//----------------------------------------------------------------------------------------------------------



//  ||---   Buy And Sell:
strategy.entry(id="Long", long=true, when = Signal_Test and afterStartDate)
strategy.close_all(when = Signal_Test_OUT_TEMP and afterStartDate)
//----------------------------------------------------------------------------------------------------------