समापन ब्रेकआउट डे ट्रेडिंग रणनीति


निर्माण तिथि: 2023-10-09 16:56:21 अंत में संशोधित करें: 2023-10-09 16:56:21
कॉपी: 0 क्लिक्स: 641
1
ध्यान केंद्रित करना
1617
समर्थक

अवलोकन

यह रणनीति एक सरल दिन के भीतर चलने वाली ट्रेडिंग रणनीति है, जो चलती औसत रेखा पर आधारित है और GBPUSD 1 घंटे के समय चक्र के लिए लागू होती है। यह केवल लंदन में खुलने पर प्रवेश करती है और लंदन में बंद होने पर बाहर निकलती है, जो लंदन के समय के दौरान ट्रेंड-ब्रेकिंग ट्रेडिंग के लिए बहुत उपयुक्त है।

रणनीति सिद्धांत

यह रणनीति दो चलती औसत रेखाओं का उपयोग करती है, एक बहुत तेज औसत रेखा और एक बहुत धीमी औसत रेखा। विशिष्ट तर्क इस प्रकार हैः

  1. केवल लंदन के खुलने के समय (8 बजे) में प्रवेश किया गया। निर्णय लेने का तरीका यह है कि समापन मूल्य या उच्चतम मूल्य तेजी से औसत रेखा को तोड़ने पर अधिक किया जा सकता है, समापन मूल्य या निम्नतम मूल्य तेजी से औसत रेखा को तोड़ने पर खाली किया जा सकता है।

  2. साथ ही, पूर्ववर्ती K लाइन के समापन मूल्य को धीमी औसत से अधिक करने के लिए और धीमी औसत से कम करने के लिए खाली करने की आवश्यकता होती है ताकि गैर-प्रवृत्ति की स्थिति को फ़िल्टर किया जा सके।

  3. स्टॉप लॉस की सेटिंग बहुत कम है, केवल 50-100।

  4. कोई रोक नहीं है, जब लंदन बंद हो जाता है, तो (15 बजे) बिना शर्त छोड़ दें।

श्रेष्ठता विश्लेषण

यह एक बहुत ही सरल रणनीति है, लेकिन लंदन के समय की प्रवृत्ति विशेषताओं का तर्कसंगत उपयोग करने के कारण निम्नलिखित फायदे हैंः

  1. केवल जब रुझान स्पष्ट हो, तभी प्रवेश करें ताकि बाजार में उतार-चढ़ाव का जोखिम न हो।

  2. केवल लंदन के समय में व्यापार को तोड़ने के लिए, इस समय की अधिक उतार-चढ़ाव वाली विशेषताओं का पूरा लाभ उठाएं।

  3. छोटे स्टॉप लॉस के साथ, यह कुछ हद तक प्रतिबाधा का सामना कर सकता है।

  4. बिना किसी शर्त के बाहर निकलें, रात भर के जोखिम से बचें।

जोखिम विश्लेषण

इस रणनीति के कुछ जोखिम भी हैं:

  1. लंदन के समय में कोई स्पष्ट रुझान नहीं है, और लंबे समय तक कोई लेनदेन नहीं हो सकता है।

  2. एक छोटे से स्टॉप के कारण स्टॉप लॉस का जोखिम। एक ब्रेक के बाद कुछ हद तक रिबाउंड के कारण स्टॉप लॉस हो सकता है।

  3. एक निश्चित प्रस्थान समय के साथ एक समय से पहले प्रस्थान का जोखिम। एक मजबूत प्रवृत्ति के दौरान, स्थिति को लंबे समय तक रखने की आवश्यकता हो सकती है।

प्रतिरोध यह है कि प्रवेश नियमों को उचित रूप से ढीला किया जा सकता है, लाभ को लॉक करने के लिए चलती रोक का उपयोग किया जा सकता है, और बाजार की स्थिति के अनुसार उचित रूप से समय को समायोजित किया जा सकता है।

अनुकूलन दिशा

इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः

  1. RSI, ब्रिन बैंड आदि जैसे अन्य संकेतकों के लिए फ़िल्टर जोड़े गए हैं ताकि बाजार में उतार-चढ़ाव से बचा जा सके।

  2. विभिन्न मापदंडों के लिए समरूपता प्रभाव का परीक्षण करने के लिए चल समरूपता संयोजन का अनुकूलन करें।

  3. विभिन्न स्टॉप पॉइंट आकारों का परीक्षण करें और सबसे अच्छा स्टॉप रेंज ढूंढें।

  4. वास्तविक समय में मैच के समापन के समय को समायोजित करने के बजाय वास्तविक समय में मैच के समापन के समय को समायोजित करें।

  5. अन्य मुद्रा जोड़े और अन्य समय चक्रों के प्रभाव का परीक्षण करना।

  6. जोड़े गए जोखिम नियंत्रण मॉड्यूल, जैसे कि धन प्रबंधन, व्यापार आकार की गणना, आदि।

संक्षेप

इस रणनीति के रूप में एक बहुत ही सरल और व्यावहारिक लंदन समय सीमा तोड़ने की रणनीति है। इसका लाभ यह है कि नियम सरल और स्पष्ट हैं और समय सीमा की विशेषताओं का उचित उपयोग करके कुछ व्यापारिक जोखिमों से बचा जा सकता है। इसके अलावा, कुछ अनुकूलन योग्य स्थान हैं, जो रणनीति की स्थिरता और लाभप्रदता को और बढ़ा सकते हैं यदि परीक्षण को अनुकूलित करना जारी रखा जाए। कुल मिलाकर, यह रणनीति एक संदर्भ फ्रेम और मॉडल प्रदान करती है जो लंदन समय सीमा तोड़ने के व्यापारिक विचारों का कुशलता से उपयोग करती है।

रणनीति स्रोत कोड
/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

// strategy(title="2 ma breakout",shorttitle="2 ma breakout", initial_capital=10000,overlay=true, commission_type = strategy.commission.cash_per_contract, commission_value = 0.00008 )
timeinrange(res, sess) => time(res, sess) != 0

//Change false to false = You have to turn on, won't show up by default
//****Always use lowercase letters

doNYOpen = input(defval=false, type = input.bool, title="NY Open On")
doNYSession = input(defval=false, type = input.bool, title="NY Session On")
doNYClose = input(defval=false, type = input.bool, title="NY Close On")

doAussieOpen = input(defval=false, type = input.bool, title="Aussie Open On")
doAussieSession = input(defval=false, type = input.bool, title="Aussie Session On")
doAussieClose = input(defval=false, type = input.bool, title="Aussie Close On")

doAsiaOpen = input(defval=false, type = input.bool, title="Asia Open On")
doAsiaSession = input(defval=false, type = input.bool, title="Asia Session On")
doAsiaClose = input(defval=false, type = input.bool, title="Asia Close On")

doEurOpen = input(defval=true, type = input.bool, title="Euro Open On")
doEurSession = input(defval=true, type = input.bool, title="Euro Session On")
doEurClose = input(defval=true, type = input.bool, title="Euro Close On")

//You can copy and paste these colors. white - silver - gray - maroon - red - purple - fuchsia - green - lime
//   olive - yellow - navy - blue - teal - aqua - orange 

nySessionStart = color.olive
nySession = color.olive
nySessionEnd = color.olive
asiaSessionStart = color.blue
asiaSession = color.blue
asiaSessionEnd = color.blue
europeSessionStart = color.red
europeSession = color.red
europeSessionEnd = color.red
colorwhite = color.white

//****Note ---- Use Military Times --- So 3:00PM = 1500


bgcolor(doAsiaSession and timeinrange(timeframe.period, "1800-0400") ? asiaSession : na, transp=75)
//bgcolor(timeinrange(timeframe.period, "0000-0300") ? color.white  : na, transp=75)
bgcolor(doEurSession and timeinrange(timeframe.period, "0300-1100") ? europeSession : na, transp=75)
bgcolor(doNYSession and timeinrange(timeframe.period, "0800-1600") ? nySession : na, transp=75)

active = input(true, title="Show On Chart")
pricehigh = security(syminfo.tickerid, '60', high[0])
pricelow = security(syminfo.tickerid, '60', low[0])
//Daily Plots
offs_daily = 0 
hiHighs = 0
loLows = 0
//plot(timeinrange(timeframe.period, "0000-0300") and pricehigh ? pricehigh  : na, title="Previous Daily High", style=plot.style_line, linewidth=2, color=color.gray)
//plot(timeinrange(timeframe.period, "0000-0300") and pricelow ? pricelow : na, title="Previous Daily Low", style=plot.style_linebr, linewidth=2, color=color.gray)

if(timeinrange(timeframe.period, "0000-0300"))
    hiHighs = highest(high, 3)
    loLows = lowest(low, 3)
    

// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true


len = input(2)
src = input(close, title="Source")
out = sma(src, len)

lena = input(200, minval=1, title="Length slow")
srca = input(close, title="Source")
outa = ema(srca, lena)

//tp = input(100, title="tp")
sl = input(66, title="sl")
// if(smabool)
//     out := sma(src, len)
// else if(emabool)
//     out := ema(src, len)
// else if(hmabool)
//     out := hma(src, len)
// else if(vmabool)
//     out := wma(src, len)  
// else if(vwmabool)
//     out := vwma(src, len)   
// else if(smmabool)
//     out := sma(src, len)  
 
plot(out, color=color.white, title="MA")
plot(outa, color=color.white, title="MA")

longC = timeinrange(timeframe.period, "0300-0400") and (crossover(close,out) or crossover(high,out)) and close[1] > outa and time_cond
shortC = timeinrange(timeframe.period, "0300-0400") and (crossunder(close,out) or crossunder(low,out)) and close[1] < outa and time_cond



//inputlondon = input(false, title="london session")
//inputny = input(false, title="new york session")

//if(inputlondon==true)

strategy.initial_capital = 50000

//MONEY MANAGEMENT--------------------------------------------------------------
balance = strategy.netprofit + strategy.initial_capital //current balance
floating = strategy.openprofit          //floating profit/loss
risk = input(1,type=input.float,title="Risk % of equity ")/100           //risk % per trade

temp01 = balance * risk     //Risk in USD
temp02 = temp01/sl        //Risk in lots
temp03 = temp02*100      //Convert to contracts
size = temp03 - temp03%1 //Normalize to 1000s (Trade size)
if(size < 1)
    size := 1         //Set min. lot size


strategy.entry("long",1,when=longC)
//strategy.close("long", when = crossunder(close,out) or not (timeinrange(timeframe.period, "0300-1000")))
strategy.close("long", when =  not (timeinrange(timeframe.period, "0300-0945")))
strategy.exit("x_long","long", loss = sl)
     
    
strategy.entry("short",0,when=shortC)
//strategy.close("short",when = crossover(close,out) or not (timeinrange(timeframe.period, "0300-1000")))
strategy.close("short",when = not (timeinrange(timeframe.period, "0300-0945")))

strategy.exit("x_short","short", loss = sl)

//strategy.exit("closelong", "RSI_BB_LONG" , profit = close * 0.01 / syminfo.mintick, loss = close * 0.01 / syminfo.mintick, alert_message = "closelong")
//strategy.exit("closeshort", "RSI_BB_SHORT" , profit = close * 0.01 / syminfo.mintick, loss = close * 0.01 / syminfo.mintick, alert_message = "closeshort")