اختتام ہفتہ کی تجارت کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-09-13 11:53:09
ٹیگز:

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

حکمت عملی منطق:

  1. پچھلے جمعہ کے اختتام پر مبنی فیصد بینڈ مقرر کریں، مثال کے طور پر 4.5٪ اوپر / نیچے.

  2. اگر قیمت اپسائیڈ بینڈ سے زیادہ ہے تو مختصر درج کریں، اگر نیچے کی بینڈ سے نیچے ہے تو طویل درج کریں.

  3. موجودہ سمت میں نئے بینڈ تک پہنچنے پر پوزیشن شامل کریں.

  4. منافع حاصل کریں جب جمع ہونے والے منافع حد تک پہنچ جائیں، جیسے 10٪.

  5. زیادہ سے زیادہ دو بیک وقت پوزیشنوں کی اجازت دیں، ہر سمت میں ایک. پیر سے پہلے تمام کھولنے بند.

فوائد:

  1. مقررہ فیصد بینڈ مکینیکل ٹریڈنگ کی اجازت دیتے ہیں۔

  2. کثیر سطح کے اندراجات بہتر لاگت کی بنیاد حاصل کرتے ہیں۔

  3. دورانیہ مستحکم ہے، بنیادی عوامل سے متاثر نہیں ہوتا.

خطرات:

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

  2. مقررہ پیرامیٹرز مختلف ادوار میں بدلتی ہوئی اتار چڑھاؤ کو ایڈجسٹ کرنے میں ناکام رہتے ہیں۔

  3. دورانیہ وقت کے ساتھ تبدیل ہوسکتا ہے، ماڈل کو غیر قانونی بنا دیتا ہے.

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


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-12 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Copyright Boris Kozak 
// strategy("XBT Weekend Trade Strategy", overlay=true, default_qty_type=strategy.percent_of_equity,)
strategy.initial_capital=50000
leverage = input(10,"Leverage")
profitTakingPercentThreshold = input(0.10,"Profit Taking Percent Threshold")

//****Code used for setting up backtesting.****///
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(12, "Backtest Start Month")
testStartDay = input(10, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2025, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FFFF : na
bgcolor(testPeriodBackgroundColor, transp=50)

testPeriod() => true
    
//****END Code used for setting up backtesting.****///


//*** Main entry point is here***//
// Figure out how many days since the Friday close 
days_since_friday = if dayofweek == 6
    0
else 
    if dayofweek == 7
        1
    else
        if dayofweek == 1
            2
        else
            if dayofweek == 2
                3
            else
                if dayofweek == 3
                    4
                else
                    if dayofweek == 4
                        5
                    else
                        6
    
// Grab the Friday close price
fridaycloseprice = security(syminfo.ticker,'D',close[days_since_friday])
plot(fridaycloseprice)

// Only perform backtesting during the window specified 
if testPeriod()
    // If we've reached out profit threshold, exit all positions 
    if ((strategy.openprofit/strategy.initial_capital) > profitTakingPercentThreshold)
        strategy.close_all()
    // Only execute this trade on saturday and sunday (UTC)
    if (dayofweek == 7.0 or dayofweek == 1.0)
        // Begin - Empty position (no active trades)
        if (strategy.position_size == 0)
            // If current close price > threshold, go short 
            if ((close>fridaycloseprice*1.045))
                strategy.entry("Short Entry", strategy.short, leverage)
            else
                // If current close price < threshold, go long
                if (close<(fridaycloseprice*0.955))
                    strategy.entry("Long Entry",strategy.long, leverage)
        // Begin - we already have a position
        if (abs(strategy.position_size) > 0)
            // We are short 
            if (strategy.position_size < 0)
                if ((close>strategy.position_avg_price*1.045))
                    // Add to the position
                    strategy.entry("Adding to Short Entry", strategy.short, leverage)
            else
                if ((close<strategy.position_avg_price*0.955))
                    strategy.entry("Adding to Long Entry",strategy.long,leverage)
    // On Monday, if we have any open positions, close them 
    if (dayofweek==2.0)
        strategy.close_all()
 






مزید