
یہ ایک ایسی حکمت عملی ہے جو MACD ، RSI اور بے ترتیب اشارے کا استعمال کرتے ہوئے اسٹاک کی قیمت کی تحریک کی سمت کا تعین کرتی ہے ، جس میں زیادہ خریدنے یا کم فروخت کرنے کے لئے ایک متحرک نقطہ نظر ہوتا ہے۔ یہ حکمت عملی ایک سے زیادہ اشارے کا استعمال کرتے ہوئے رجحانات کا تعین کرتی ہے ، جس سے کسی ایک اشارے کی وجہ سے غلط سگنل کی شرح کم ہوجاتی ہے ، جس سے اسٹاک کی قیمت میں درمیانی مختصر لائن رجحانات کو مؤثر طریقے سے پکڑا جاسکتا ہے۔
یہ حکمت عملی MACD، RSI اور بے ترتیب اشارے کا استعمال کرتے ہوئے اسٹاک کی قیمتوں کے رجحان کی سمت کا تعین کرتی ہے۔ جب MACD کی DIFF لائن DEAL لائن کو عبور کرتی ہے ، اور RSI 50 سے زیادہ ہے ، اور اسٹاک کی فوری لائن 50 سے زیادہ ہے ، تو اسے ایک کثیر رجحان سمجھا جاتا ہے ، اور اگلے دن کھلنے پر اس دن کی سب سے زیادہ قیمت پر تمام فنڈز خریدے جاتے ہیں۔ اس کے برعکس ، جب MACD کی DIFF لائن DEAL لائن کو عبور کرتی ہے ، اور RSI 50 سے کم ہے ، اور اسٹاک کی فوری لائن بھی 50 سے کم ہے ، اور اسے ایک خالی رجحان سمجھا جاتا ہے ، تو اسے دوسرے دن کھلنے پر اس دن کی سب سے کم قیمت پر تمام فنڈز فروخت کیے جاتے ہیں۔ اسٹاپ نقصان کا حساب پچھلے 7 دن کی اتار چڑھاؤ کی حد کے حساب سے لگایا جاتا ہے ، اور نقصان کی شرح خود بخود طے کی جاتی ہے۔
پوزیشن میں داخل ہونے کے بعد ، اگر تینوں اشارے میں سے کسی ایک میں الٹا اشارہ ہوتا ہے تو ، اس کا مطلب یہ ہے کہ رجحان بدل گیا ہے ، اور موجودہ پوزیشن سے باہر نکلنا چاہئے۔ اس کے ساتھ ہی ، ایک خاص وقت کی شرائط کا فلٹر بھی ترتیب دیا گیا ہے ، جو مارچ 2020 میں مکمل طور پر چھلانگ لگائے گا ، تاکہ مارکیٹ کے انتہائی اثرات سے بچ سکے۔
آپٹمائزڈ طریقہ:
یہ حکمت عملی مجموعی طور پر ایک عام رجحان کی پیروی کرنے والی حکمت عملی ہے۔ یہ ایک ہی وقت میں رجحان کا تعین کرنے کے لئے متعدد اشارے کا استعمال کرتا ہے ، اور رجحان کے اختتام کا تعین کرنے کے لئے الٹ سگنل کا استعمال کرتا ہے ، جو رجحان کی پیروی اور الٹ سوئچنگ کا ایک مجموعہ ہے۔ لیکن حکمت عملی میں خود بھی کچھ پیرامیٹرز کی غیر معقول ترتیب اور تاخیر کی دشواری موجود ہے ، جس کو بہت زیادہ بیک اپ کے ذریعے بہتر بنانے اور بہتر بنانے کی ضرورت ہے تاکہ حکمت عملی کے پیرامیٹرز کو بہترین حالت میں ایڈجسٹ کیا جاسکے۔
مجموعی طور پر ، اس حکمت عملی کا نظریہ واضح ہے ، اور اس کے استعمال کے لئے استعمال ہونے والے اشارے اور طریقے بھی نسبتا typical ہیں۔ کچھ تفصیلات میں اصلاح اور خطرے کے کنٹرول کے لحاظ سے اچھی طرح سے کام کیا گیا ہے ، یہ ایک قابل اطلاق مقداری حکمت عملی بن سکتی ہے۔ تاہم ، اس میں کمال سے کچھ فرق ہے ، اس حکمت عملی کو منافع کی واپسی کے تناسب کو پیشہ ورانہ سطح تک پہنچانے کے لئے مزید جانچ اور اصلاح کی ضرورت ہے۔ اگر اس کو مستقل طور پر بہتر اور اپ ڈیٹ کیا جاسکتا ہے تو ، یہ ایک طویل مدتی حکمت عملی بن سکتی ہے۔
/*backtest
start: 2023-10-07 00:00:00
end: 2023-11-06 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// @version=4
// Backtest the power x strategy. The power x strategy is develop by Markus Heitkoetter and Rockwell Trading.
// This script shows the return for a given stock for with the defined date range with a fixed captial of $10,000
strategy("PowerX Test", overlay=true, initial_capital=10000)
// ####################### Start of User Inputs #######################
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 7, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2019, title = "From Year", minval = 1970)
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, 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
// Risk/Reward Inputs
riskFactor = input(defval = 1.5, title = "risk", minval = 1)
rewardFactor = input(defval = 3.0, title = "reward", minval = 1)
// Days to ignore due to specail market conditon (ie. covid-19 market crash)
// Calculate start/end skip date and time condition
startSkipDate = timestamp(2020, 3, 1, 00, 00)
finishSkipDate = timestamp(2020, 3, 31, 00, 00)
time_cond_skip = time >= startSkipDate and time <= finishSkipDate
// Long and Short Inputs
hasLong = input(defval = true, title = "test long")
hasShort = input(defval = true, title = "test short")
// ####################### End of User Inputs #######################
// ####################### Start of Indicators #######################
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
rsiLine = rsi(close, 7)
stochLine = sma(sma(stoch(close, high, low, 14),3),3)
signal = macdLine > signalLine and rsiLine > 50 and stochLine > 50 ? "buy" : macdLine <= signalLine and rsiLine <= 50 and stochLine <= 50 ? "sell" : "none"
// Average daily range for 7 days
thishigh = security(syminfo.tickerid, 'D', high)
thislow = security(syminfo.tickerid, 'D', low)
length = 7
adr = (sma(thishigh,length)-sma(thislow,length))
plotchar(adr, "ADR", "")
// ####################### End of Indicators #######################
strategy.initial_capital = 50000
// First day the stock changed momentum.
long = signal == "buy" and signal[1] != "buy" and hasLong
short = signal == "sell" and signal[1] != "sell" and hasShort
sideway = signal == "none" and signal[1] != "none"
if (time_cond and not time_cond_skip)
// ####################### Start of Long Entry #######################
// Calculate how many shares to buy based on captial
qty = round(strategy.initial_capital / high)
// Note: TradingView uses a broker emulator when running strategies. Order are only filled on the next bar.
// Enter long on the day after first green bar
strategy.entry("Long entry", strategy.long, qty = qty, stop = high, when = long)
strategy.cancel("Long entry", when = not long)
// TODO: Improve the crazy if statments...
// Handle the case where first green hgih is reached after 2nd green, up to 11 days after
if (not long and signal == "buy" and strategy.opentrades == 0)
// reach first green high 11 days after first green
if (signal[11] != "buy" and signal[10] == "buy" and signal[9] == "buy" and signal[8] == "buy" and signal[7] == "buy" and signal[6] == "buy" and signal[5] == "buy" and signal[4] == "buy" and signal[3] == "buy" and signal[2] == "buy" and signal[1] == "buy" and high[1] < high[9] and high[2] < high[9] and high [3] < high[9] and high [4] < high[9] and high [5] < high[9] and high[6] < high[9] and high[7] < high[9] and high[8] < high[9])
strategy.entry("Long entry", strategy.long, qty = strategy.initial_capital / high[10], stop = high[10])
// reach first green high 10 days after first green
if (signal[10] != "buy" and signal[9] == "buy" and signal[8] == "buy" and signal[7] == "buy" and signal[6] == "buy" and signal[5] == "buy" and signal[4] == "buy" and signal[3] == "buy" and signal[2] == "buy" and signal[1] == "buy" and high[1] < high[8] and high[2] < high[8] and high [3] < high[8] and high [4] < high[8] and high [5] < high[8] and high[6] < high[8] and high[7] < high[8])
strategy.entry("Long entry", strategy.long, qty = strategy.initial_capital / high[9], stop = high[9])
// reach first green high 9 days after first green
if (signal[9] != "buy" and signal[8] == "buy" and signal[7] == "buy" and signal[6] == "buy" and signal[5] == "buy" and signal[4] == "buy" and signal[3] == "buy" and signal[2] == "buy" and signal[1] == "buy" and high[1] < high[7] and high[2] < high[7] and high [3] < high[7] and high [4] < high[7] and high [5] < high[7] and high[6] < high[7])
strategy.entry("Long entry", strategy.long, qty = strategy.initial_capital / high[8], stop = high[8])
// reach first green high 8 days after first green
if (signal[8] != "buy" and signal[7] == "buy" and signal[6] == "buy" and signal[5] == "buy" and signal[4] == "buy" and signal[3] == "buy" and signal[2] == "buy" and signal[1] == "buy" and high[1] < high[6] and high[2] < high[6] and high [3] < high[6] and high [4] < high[6] and high [5] < high[6])
strategy.entry("Long entry", strategy.long, qty = strategy.initial_capital / high[7], stop = high[7])
// reach first green high 7 days after first green
if (signal[7] != "buy" and signal[6] == "buy" and signal[5] == "buy" and signal[4] == "buy" and signal[3] == "buy" and signal[2] == "buy" and signal[1] == "buy" and high[1] < high[6] and high[2] < high[6] and high [3] < high[6] and high [4] < high[6] and high [5] < high[6])
strategy.entry("Long entry", strategy.long, qty = strategy.initial_capital / high[6], stop = high[6])
// reach first green high 6 days after first green
if (signal[6] != "buy" and signal[5] == "buy" and signal[4] == "buy" and signal[3] == "buy" and signal[2] == "buy" and signal[1] == "buy" and high[1] < high[5] and high[2] < high[5] and high [3] < high[5] and high [4] < high[5])
strategy.entry("Long entry", strategy.long, qty = strategy.initial_capital / high[5], stop = high[5])
// reach first green high 5 days after first green
if (signal[5] != "buy" and signal[4] == "buy" and signal[3] == "buy" and signal[2] == "buy" and signal[1] == "buy" and high[1] < high[4] and high[2] < high[4] and high [3] < high[4])
strategy.entry("Long entry", strategy.long, qty = strategy.initial_capital / high[4], stop = high[4])
// reach first green high 4 days after first green
if (signal[4] != "buy" and signal[3] == "buy" and signal[2] == "buy" and signal[1] == "buy" and high[1] < high[3] and high[2] < high[3])
strategy.entry("Long entry", strategy.long, qty = strategy.initial_capital / high[3], stop = high[3])
// reach first green high 3 days after first green
if (signal[3] != "buy" and signal[2] == "buy" and signal[1] == "buy" and high[1] < high[2])
strategy.entry("Long entry", strategy.long, qty = strategy.initial_capital / high[2], stop = high[2])
// reach first green high 2 days after first green
if (signal[2] != "buy" and signal[1] == "buy")
strategy.entry("Long entry", strategy.long, qty = strategy.initial_capital / high[1], stop = high[1])
// Exit when stopped out or hitted profit target
// Bracket order for entry 1 day after 1st green
if (signal == "buy" and signal[1] == "buy" and signal[2] != "buy")
long_stop_level = strategy.position_avg_price - (adr[1] * riskFactor)
long_profit_level = strategy.position_avg_price + (adr[1] * rewardFactor)
strategy.exit("TP/SL", "Long entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 2 day after 1st green
if (signal == "buy" and signal[1] == "buy" and signal[2] == "buy" and signal[3] != "buy")
long_stop_level = strategy.position_avg_price - (adr[2] * riskFactor)
long_profit_level = strategy.position_avg_price + (adr[2] * rewardFactor)
strategy.exit("TP/SL", "Long entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 3 day after 1st green
if (signal == "buy" and signal[1] == "buy" and signal[2] == "buy" and signal[3] == "buy" and signal[4] != "buy")
long_stop_level = strategy.position_avg_price - (adr[3] * riskFactor)
long_profit_level = strategy.position_avg_price + (adr[3] * rewardFactor)
strategy.exit("TP/SL", "Long entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 4 day after 1st green
if (signal == "buy" and signal[1] == "buy" and signal[2] == "buy" and signal[3] == "buy" and signal[4] == "buy" and signal[5] != "buy")
long_stop_level = strategy.position_avg_price - (adr[4] * riskFactor)
long_profit_level = strategy.position_avg_price + (adr[4] * rewardFactor)
strategy.exit("TP/SL", "Long entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 5 day after 1st green
if (signal == "buy" and signal[1] == "buy" and signal[2] == "buy" and signal[3] == "buy" and signal[4] == "buy" and signal[5] == "buy" and signal[6] != "buy")
long_stop_level = strategy.position_avg_price - (adr[5] * riskFactor)
long_profit_level = strategy.position_avg_price + (adr[5] * rewardFactor)
strategy.exit("TP/SL", "Long entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 6 day after 1st green
if (signal == "buy" and signal[1] == "buy" and signal[2] == "buy" and signal[3] == "buy" and signal[4] == "buy" and signal[5] == "buy" and signal[6] == "buy" and signal[7] != "buy")
long_stop_level = strategy.position_avg_price - (adr[6] * riskFactor)
long_profit_level = strategy.position_avg_price + (adr[6] * rewardFactor)
strategy.exit("TP/SL", "Long entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 7 day after 1st green
if (signal == "buy" and signal[1] == "buy" and signal[2] == "buy" and signal[3] == "buy" and signal[4] == "buy" and signal[5] == "buy" and signal[6] == "buy" and signal[7] == "buy" and signal[8] != "buy")
long_stop_level = strategy.position_avg_price - (adr[7] * riskFactor)
long_profit_level = strategy.position_avg_price + (adr[7] * rewardFactor)
strategy.exit("TP/SL", "Long entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 8 day after 1st green
if (signal == "buy" and signal[1] == "buy" and signal[2] == "buy" and signal[3] == "buy" and signal[4] == "buy" and signal[5] == "buy" and signal[6] == "buy" and signal[7] == "buy" and signal[8] == "buy" and signal[9] != "buy")
long_stop_level = strategy.position_avg_price - (adr[8] * riskFactor)
long_profit_level = strategy.position_avg_price + (adr[8] * rewardFactor)
strategy.exit("TP/SL", "Long entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 9 day after 1st green
if (signal == "buy" and signal[1] == "buy" and signal[2] == "buy" and signal[3] == "buy" and signal[4] == "buy" and signal[5] == "buy" and signal[6] == "buy" and signal[7] == "buy" and signal[8] == "buy" and signal[9] == "buy" and signal[10] != "buy")
long_stop_level = strategy.position_avg_price - (adr[9] * riskFactor)
long_profit_level = strategy.position_avg_price + (adr[9] * rewardFactor)
strategy.exit("TP/SL", "Long entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 10 day after 1st green
if (signal == "buy" and signal[1] == "buy" and signal[2] == "buy" and signal[3] == "buy" and signal[4] == "buy" and signal[5] == "buy" and signal[6] == "buy" and signal[7] == "buy" and signal[8] == "buy" and signal[9] == "buy" and signal[10] == "buy" and signal[11] != "buy")
long_stop_level = strategy.position_avg_price - (adr[10] * riskFactor)
long_profit_level = strategy.position_avg_price + (adr[10] * rewardFactor)
strategy.exit("TP/SL", "Long entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 11 day after 1st green
if (signal == "buy" and signal[1] == "buy" and signal[2] == "buy" and signal[3] == "buy" and signal[4] == "buy" and signal[5] == "buy" and signal[6] == "buy" and signal[7] == "buy" and signal[8] == "buy" and signal[9] == "buy" and signal[10] == "buy" and signal[11] == "buy" and signal[12] != "buy")
long_stop_level = strategy.position_avg_price - (adr[11] * riskFactor)
long_profit_level = strategy.position_avg_price + (adr[11] * rewardFactor)
strategy.exit("TP/SL", "Long entry", stop=long_stop_level, limit=long_profit_level)
// ####################### End of Long Entry #######################
// ####################### Start of Short Entry #######################
// Enter short on the day after first red bar
qty_short = strategy.initial_capital / low
strategy.entry("Short entry", strategy.short, qty = qty_short, stop = low, when = short)
strategy.cancel("Short entry", when = not short)
// TODO: Improve the crazy if statments...
// Handle the case where first red low is reached after 2nd red, up to 11 days after
if (not short and signal == "sell" and strategy.opentrades == 0)
// reach first red low 11 days after
if (signal[11] != "sell" and signal[10] == "sell" and signal[9] == "sell" and signal[8] == "sell" and signal[7] == "sell" and signal[6] == "sell" and signal[5] == "sell" and signal[4] == "sell" and signal[3] == "sell" and signal[2] == "sell" and signal[1] == "sell" and low[1] > low[10] and low[2] > low[10] and low[3] > low[10] and low[4] > low[10] and low[5] > low[10] and low[6] > low[10] and low[7] > low[10] and low[8] > low[10] and low[9] > low[10])
strategy.entry("Short entry", strategy.short, qty = strategy.initial_capital / low[10], stop = low[10])
// reach first red low 10 days after
if (signal[10] != "sell" and signal[9] == "sell" and signal[8] == "sell" and signal[7] == "sell" and signal[6] == "sell" and signal[5] == "sell" and signal[4] == "sell" and signal[3] == "sell" and signal[2] == "sell" and signal[1] == "sell" and low[1] > low[9] and low[2] > low[9] and low[3] > low[9] and low[4] > low[9] and low[5] > low[9] and low[6] > low[9] and low[7] > low[9] and low[8] > low[9])
strategy.entry("Short entry", strategy.short, qty = strategy.initial_capital / low[9], stop = low[9])
// reach first red low 9 days after
if (signal[9] != "sell" and signal[8] == "sell" and signal[7] == "sell" and signal[6] == "sell" and signal[5] == "sell" and signal[4] == "sell" and signal[3] == "sell" and signal[2] == "sell" and signal[1] == "sell" and low[1] > low[8] and low[2] > low[8] and low[3] > low[8] and low[4] > low[8] and low[5] > low[8] and low[6] > low[8] and low[7] > low[8])
strategy.entry("Short entry", strategy.short, qty = strategy.initial_capital / low[8], stop = low[8])
// reach first red low 8 days after
if (signal[8] != "sell" and signal[7] == "sell" and signal[6] == "sell" and signal[5] == "sell" and signal[4] == "sell" and signal[3] == "sell" and signal[2] == "sell" and signal[1] == "sell" and low[1] > low[7] and low[2] > low[7] and low[3] > low[7] and low[4] > low[7] and low[5] > low[7] and low[6] > low[7])
strategy.entry("Short entry", strategy.short, qty = strategy.initial_capital / low[7], stop = low[7])
// reach first red low 7 days after
if (signal[7] != "sell" and signal[6] == "sell" and signal[5] == "sell" and signal[4] == "sell" and signal[3] == "sell" and signal[2] == "sell" and signal[1] == "sell" and low[1] > low[6] and low[2] > low[6] and low[3] > low[6] and low[4] > low[6] and low[5] > low[6])
strategy.entry("Short entry", strategy.short, qty = strategy.initial_capital / low[6], stop = low[6])
// reach first red low 6 days after
if (signal[6] != "sell" and signal[5] == "sell" and signal[4] == "sell" and signal[3] == "sell" and signal[2] == "sell" and signal[1] == "sell" and low[1] > low[5] and low[2] > low[5] and low[3] > low[5] and low[4] > low[5])
strategy.entry("Short entry", strategy.short, qty = strategy.initial_capital / low[5], stop = low[5])
// reach first red low 5 days after
if (signal[5] != "sell" and signal[4] == "sell" and signal[3] == "sell" and signal[2] == "sell" and signal[1] == "sell" and low[1] > low[4] and low[2] > low[4] and low[3] > low[4])
strategy.entry("Short entry", strategy.short, qty = strategy.initial_capital / low[4], stop = low[4])
// reach first red low 4 days after
if (signal[4] != "sell" and signal[3] == "sell" and signal[2] == "sell" and signal[1] == "sell" and low[1] > low[3] and low[2] > low[3])
strategy.entry("Short entry", strategy.short, qty = strategy.initial_capital / low[3], stop = low[3])
// reach first red low 3 days after
if (signal[3] != "sell" and signal[2] == "sell" and signal[1] == "sell" and low[1] > low[2])
strategy.entry("Short entry", strategy.short, qty = strategy.initial_capital / low[2], stop = low[2])
// reach first red low 2 days after
if (signal[2] != "sell" and signal[1] == "sell")
strategy.entry("Short entry", strategy.short, qty = strategy.initial_capital / low[1], stop = low[1])
// Exit when stop out or profit target is hit
// Bracket order for entry 1 day after 1st red
if (signal == "sell" and signal[1] == "sell" and signal[2] != "sell")
long_stop_level = strategy.position_avg_price + (adr[1] * riskFactor)
long_profit_level = strategy.position_avg_price - (adr[1] * rewardFactor)
strategy.exit("TP/SL", "Short entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 2 day after 1st red
if (signal == "sell" and signal[1] == "sell" and signal[2] == "sell" and signal[3] != "sell")
long_stop_level = strategy.position_avg_price + (adr[2] * riskFactor)
long_profit_level = strategy.position_avg_price - (adr[2] * rewardFactor)
strategy.exit("TP/SL", "Short entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 3 day after 1st red
if (signal == "sell" and signal[1] == "sell" and signal[2] == "sell" and signal[3] == "sell" and signal[4] != "sell")
long_stop_level = strategy.position_avg_price + (adr[3] * riskFactor)
long_profit_level = strategy.position_avg_price - (adr[3] * rewardFactor)
strategy.exit("TP/SL", "Short entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 4 day after 1st red
if (signal == "sell" and signal[1] == "sell" and signal[2] == "sell" and signal[3] == "sell" and signal[4] == "sell" and signal[5] != "sell")
long_stop_level = strategy.position_avg_price + (adr[4] * riskFactor)
long_profit_level = strategy.position_avg_price - (adr[4] * rewardFactor)
strategy.exit("TP/SL", "Short entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 5 day after 1st red
if (signal == "sell" and signal[1] == "sell" and signal[2] == "sell" and signal[3] == "sell" and signal[4] == "sell" and signal[5] == "sell" and signal[6] != "sell")
long_stop_level = strategy.position_avg_price + (adr[5] * riskFactor)
long_profit_level = strategy.position_avg_price - (adr[5] * rewardFactor)
strategy.exit("TP/SL", "Short entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 6 day after 1st red
if (signal == "sell" and signal[1] == "sell" and signal[2] == "sell" and signal[3] == "sell" and signal[4] == "sell" and signal[5] == "sell" and signal[6] == "sell" and signal[7] != "sell")
long_stop_level = strategy.position_avg_price + (adr[6] * riskFactor)
long_profit_level = strategy.position_avg_price - (adr[6] * rewardFactor)
strategy.exit("TP/SL", "Short entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 7 day after 1st red
if (signal == "sell" and signal[1] == "sell" and signal[2] == "sell" and signal[3] == "sell" and signal[4] == "sell" and signal[5] == "sell" and signal[6] == "sell" and signal[7] == "sell" and signal[8] != "sell")
long_stop_level = strategy.position_avg_price + (adr[7] * riskFactor)
long_profit_level = strategy.position_avg_price - (adr[7] * rewardFactor)
strategy.exit("TP/SL", "Short entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 8 day after 1st red
if (signal == "sell" and signal[1] == "sell" and signal[2] == "sell" and signal[3] == "sell" and signal[4] == "sell" and signal[5] == "sell" and signal[6] == "sell" and signal[7] == "sell" and signal[8] == "sell" and signal[9] != "sell")
long_stop_level = strategy.position_avg_price + (adr[8] * riskFactor)
long_profit_level = strategy.position_avg_price - (adr[8] * rewardFactor)
strategy.exit("TP/SL", "Short entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 9 day after 1st red
if (signal == "sell" and signal[1] == "sell" and signal[2] == "sell" and signal[3] == "sell" and signal[4] == "sell" and signal[5] == "sell" and signal[6] == "sell" and signal[7] == "sell" and signal[8] == "sell" and signal[9] == "sell" and signal[10] != "sell")
long_stop_level = strategy.position_avg_price + (adr[9] * riskFactor)
long_profit_level = strategy.position_avg_price - (adr[9] * rewardFactor)
strategy.exit("TP/SL", "Short entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 10 day after 1st red
if (signal == "sell" and signal[1] == "sell" and signal[2] == "sell" and signal[3] == "sell" and signal[4] == "sell" and signal[5] == "sell" and signal[6] == "sell" and signal[7] == "sell" and signal[8] == "sell" and signal[9] == "sell" and signal[10] == "sell" and signal[11] != "sell")
long_stop_level = strategy.position_avg_price + (adr[10] * riskFactor)
long_profit_level = strategy.position_avg_price - (adr[10] * rewardFactor)
strategy.exit("TP/SL", "Short entry", stop=long_stop_level, limit=long_profit_level)
// Bracket order for entry 11 day after 1st red
if (signal == "sell" and signal[1] == "sell" and signal[2] == "sell" and signal[3] == "sell" and signal[4] == "sell" and signal[5] == "sell" and signal[6] == "sell" and signal[7] == "sell" and signal[8] == "sell" and signal[9] == "sell" and signal[10] == "sell" and signal[11] == "sell" and signal[12] != "sell")
long_stop_level = strategy.position_avg_price + (adr[11] * riskFactor)
long_profit_level = strategy.position_avg_price - (adr[11] * rewardFactor)
strategy.exit("TP/SL", "Short entry", stop=long_stop_level, limit=long_profit_level)
// ####################### End of Short Entry #######################
// Enxit the day after the trend is lost
if (time_cond and sideway)
strategy.close("Long entry")
strategy.close("Short entry")
// Close any open order out side of date range
if (not time_cond)
strategy.close_all()
if (time_cond_skip)
strategy.close_all()