ٹرینڈ فلٹرنگ پر مبنی تیز QQE کراس اوور حکمت عملی


تخلیق کی تاریخ: 2024-01-25 11:34:58 آخر میں ترمیم کریں: 2024-01-25 11:34:58
کاپی: 1 کلکس کی تعداد: 1235
1
پر توجہ دیں
1617
پیروکار

ٹرینڈ فلٹرنگ پر مبنی تیز QQE کراس اوور حکمت عملی

جائزہ

رجحان فلٹرنگ پر مبنی فاسٹ QQE کراسنگ حکمت عملی ایک رجحان سے باخبر رہنے والی تجارتی حکمت عملی ہے جو رجحان کی سمت فلٹرنگ کے لئے فاسٹ QQE کراسنگ کے ساتھ ساتھ ایک منتقل اوسط کا استعمال کرتی ہے۔ QQE یا کوالٹی کوانٹیٹیوٹی تخمینہ رشتہ دار طاقت انڈیکس پر مبنی ہے ، لیکن ہموار کرنے والی تکنیک کو اضافی تبادلوں کے طور پر استعمال کیا جاتا ہے۔ تین کراسنگوں کا انتخاب کیا جاسکتا ہے (بطور ڈیفالٹ تمام منتخب کریں):

  • RSI سگنل کراس صفر لائن ((XZERO)
  • RSI سگنل کراس فاسٹ RSIatr لائن ((XQQE)
  • RSI سگنل RSI کمی چینل سے باہر نکلتا ہے ((خریداری / فروخت)

خرید و فروخت کے سگنل کو اختیاری طور پر چلتی اوسط کے ذریعے فلٹر کیا جاسکتا ہے:

  • خریدنے کے اشارے کے ل the ، بند ہونے والی قیمت تیز رفتار اوسط سے زیادہ ہونی چاہئے ، اور تیز رفتار اوسط ((EMA8))> میڈیم اوسط ((EMA20)> سست رفتار اوسط ((SMA50)
  • فروخت کے اشارے کے لئے ، بند ہونے والی قیمت تیز رفتار اوسط سے نیچے ہونی چاہئے ، اور تیز رفتار اوسط ((EMA8) < میڈیم اوسط ((EMA20) < سست رفتار اوسط ((SMA50)

اور / یا رجحانات کی سمت فلٹر:

  • خریدنے کے اشارے کے لئے ، اختتامی قیمت سست حرکت پذیر اوسط ((SMA50) سے زیادہ ہونی چاہئے ، اور سمتی حرکت پذیر اوسط ((EMA20) سبز ہونا چاہئے
  • فروخت کے اشارے کے لئے ، اختتامی قیمت آہستہ چلتی اوسط ((SMA50) سے کم ہونی چاہئے ، اور سمتل چلتی اوسط ((EMA20) سرخ ہونی چاہئے

XZERO اور XQQE فلٹر میں شامل نہیں ہیں ، وہ زیر التواء خرید / فروخت سگنل کی نشاندہی کرنے کے لئے استعمال ہوتے ہیں ، خاص طور پر XZERO

یہ حکمت عملی کسی بھی کرنسی کے جوڑے اور زیادہ تر ٹائم فریم کے چارٹ پر کام کرنا چاہئے۔

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

اس حکمت عملی کا بنیادی خیال تیزی سے QQE اشارے کی دشاتمک کراسنگ کو بطور تجارتی سگنل استعمال کرنا ہے ، اور اس طرح رجحان کی سمت کو پکڑنے کے ل moving چلنے والی اوسط کے امتزاج کے ذریعہ شور تجارتی سگنل کو فلٹر کرنا ہے۔

اس حکمت عملی میں مندرجہ ذیل اشارے اور اشارے استعمال کیے گئے ہیں۔

فوری QQE اشارے: یہ ایک RSI پر مبنی اشارے ہے جس میں اضافی ہموار پروسیسنگ کی گئی ہے جس سے یہ زیادہ حساس اور تیز ہے۔ اشارے میں تین لائنیں ہیں: درمیانی ریل RSI کے لئے ایک اشاریہ حرکت پذیر اوسط ہے ، اوپری ریل میڈین ریل + فاسٹ اے ٹی آر * کا ایک عنصر ہے ، اور نیچے کی ریل میڈین ریل - فاسٹ اے ٹی آر * کا ایک عنصر ہے۔ جب RSI اوپر سے گزرتا ہے تو فروخت کا اشارہ ہوتا ہے ، اور جب RSI نیچے سے گزرتا ہے تو خریدنے کا اشارہ ہوتا ہے۔

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

راہداری کی توڑ پھوڑ: جب RSI کی درمیانی مدار ایک مقررہ کمی چینل میں داخل ہوتا ہے تو سگنل پیدا ہوتا ہے ، اوپر والے چینل کو توڑنے کے لئے فروخت کا اشارہ ہوتا ہے ، نیچے والے چینل کو توڑنے کے لئے خریدنے کا اشارہ ہوتا ہے۔ یہ ایک مضبوط رجحان کا اشارہ ہے۔

منتقل اوسط مجموعہ: تیز اور سست تین گروپوں کی حرکت پذیری اوسط کا استعمال کریں ، تیز لائن 8 دوروں ، درمیانی لائن 20 دوروں ، اور سست لائن 50 دوروں کے لئے ہے۔ جب تین لائنیں ترتیب دی گئیں: تیز> درمیانی> سست جب اوپر کی طرف رجحان ہے ، جب تیز <درمیانی <سست جب نیچے کی طرف رجحان ہے۔ مجموعہ مجموعی رجحان کی سمت کا تعین کرنے کے لئے استعمال کیا جاتا ہے۔

رجحانات کی سمت فلٹر کریں: بندش کی قیمت سستے چلنے والی اوسط سے اوپر اور درمیانی رفتار سے چلنے والی اوسط سے اوپر ((اس دور کے دوران سب سے زیادہ قیمت> کم قیمت) صرف خریدنے کا اشارہ پیدا کرتی ہے۔ بندش کی قیمت سستے چلنے والی اوسط سے نیچے اور درمیانی رفتار سے چلنے والی اوسط نیچے کی طرف ہوتی ہے جب فروخت کا اشارہ پیدا ہوتا ہے۔ اس سے کچھ الٹ جھوٹے سگنلوں کو فلٹر کیا جاسکتا ہے۔

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

مجموعی طور پر ، یہ ایک ایسی حکمت عملی ہے جو درمیانی اور طویل مدتی رجحانات کی پیروی کرتی ہے ، جس میں فوری اشارے کے ذریعہ قلیل مدتی الٹ خرید / فروخت کے اوقات کو پکڑنے کے لئے استعمال کیا جاتا ہے ، اور منافع کو زیادہ سے زیادہ کرنے کے لئے الٹ کے خطرے کو کم کرنے کے لئے منتقل اوسط فلٹرنگ کا استعمال کیا جاتا ہے۔

اسٹریٹجک فوائد

  • فوری حساس اشارے کیو کیو ای کا استعمال کرتے ہوئے ، ریورس سگنل کو تیزی سے پکڑ سکتا ہے
  • بڑے دورانیہ کی سمت کا تعین کرنے کے لئے کثیر گروپوں کی حرکت پذیری اوسط کا استعمال کریں ، اور الٹ ٹریڈنگ سے بچیں
  • متعدد کراس سگنلز پر مشتمل ، جو منافع کے مواقع کو بڑھانے کے لئے مل کر استعمال ہوسکتے ہیں
  • پیرامیٹرز ایڈجسٹ کیا جا سکتا ہے اور مختلف اقسام اور ادوار کے لئے بہتر کیا جا سکتا ہے
  • پیمائش خود کو چینل توڑنے کا اشارہ استعمال کرتے ہوئے ، الگ الگ چینلز کو پینٹ نہیں کیا گیا ، پیرامیٹر انحصار سے بچنا
  • مختصر مدت کے رجحانات کو پکڑنے کے لئے یہ بہت اچھا ہے.
  • تصورات سادہ، واضح، سمجھنے اور لاگو کرنے میں آسان

اسٹریٹجک رسک

اس حکمت عملی کے کچھ ممکنہ خطرات بھی ہیں:

  • فاسٹ اشارے جھوٹے سگنل پیدا کرنے کے لئے آسان ہیں، منتقل اوسط کو مکمل طور پر فلٹر نہیں کیا جاسکتا ہے، غلط سمت کی پیروی کرنے کا خطرہ ہے
  • بڑے سائیکل کی باری کے دوران ، ٹریڈنگ سگنلز کا الٹ خطرہ ہوتا ہے
  • فنڈ مینجمنٹ کے عوامل کو مدنظر نہ رکھتے ہوئے ، ممکنہ طور پر نقصانات کا سبب بننے والی زیادہ تجارت موجود ہے
  • کوئی اسٹاپ نقصان کی ترتیب نہیں ، نقصانات میں اضافے کا زیادہ خطرہ
  • ڈیٹا فٹ ہونے کا خطرہ، ریئل سکرین پر نتائج کی تصدیق متوقع

اس کا جواب اور اس کا حل یہ ہے:

  • حرکت پذیری اوسط پیرامیٹرز کو ایڈجسٹ کریں اور رجحانات کا اندازہ لگانے کے لئے زیادہ سائیکل استعمال کریں
  • دوسرے اشارے کے مجموعے کو فلٹر کریں ، جیسے MACD ، تعصب ، وغیرہ
  • اسٹاپ نقصان کی حکمت عملی میں شامل ہوں اور انفرادی نقصان کو کنٹرول کریں
  • ریئل ٹائم توثیق، اصلاح کے پیرامیٹرز

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

اس حکمت عملی میں مزید اصلاحات کی گنجائش موجود ہے:

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

پیرامیٹرز کو بہتر بنانے، زیادہ اشارے کو یکجا کرنے، اور عملی طور پر قابل عمل فنڈز اور خطرے کے انتظام کے طریقوں کے ساتھ، اس حکمت عملی کی عملی کارکردگی کو بہتر بنانے کی امید ہے.

خلاصہ کریں۔

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

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-01-17 00:00:00
end: 2024-01-24 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//
// Title:   [STRATEGY][UL]QQE Cross v1.1
// Author:  JustUncleL
// Date:    22-Oct-2016
// Version: v1.1
//
// Description:
//  A trend following trading Strategy that uses fast QQE crosses with Moving Averages
//  for trend direction filtering. QQE or Qualitative Quantitative Estimation is based 
//  on the relative strength index, but uses a smoothing technique as an additional 
//  transformation. Three crosses can be selected (all selected by default): 
//    - RSI signal crossing ZERO (XZERO)
//    - RSI signal crossing Fast RSIatr line (XQQE)
//    - RSI signal exiting the RSI Threshhold Channel (BUY/SELL)
//  The (BUY/SELL) alerts can be optionally filtered by the Moving averages:
//    - For BUY alert the Close must be above the fast MA and 
//        fast MA (EMA8) > medium MA (EMA20) > slow MA (SMA50).
//    - For SELL alert the Close must be below the fast MA and
//        fast MA (EMA8) < medium MA (EMA20) < slow MA (SMA50).
//  and/or directional filter:
//    - For BUY alert the Close must be above the slow MA (SMA50) and the
//      directional MA (EMA20) must be green.
//    - For SELL alert the Close must be below the slow MA (SMA50) and the
//      directional MA (EMA20) must be red.
//. The XZERO and XQQE are not included in the filtering, they are used to indicate
//  pending BUY/SELL alerts, particularly the XZERO. 
//
//  This Strategy should work on any currency pair and most chart timeframes.
//  *** USE AT YOUR OWN RISK ***
//  
// 
//
// Mofidifications:
//  1.1 - Added Target Profit option, cleaned up the risk management code.
//        Changed Trade Close to EMA20 direction change instead of opposite BUY/SELL
//        signal, which will be earlier, this means stop loss setting should not be
//        required when an AutoTrader is available.
//        Modified code to prevent potential repaint issues.
//  1.0 - original
//
// References:
//  Some Code borrowed from:
//  - "Scalp Jockey - MTF MA Cross Visual Strategizer by JayRogers"
//  - "QQE MT4 by glaz"
//  - "Strategy Code Example by JayRogers"  
//  Inspiration from:
//  - http://www.forexstrategiesresources.com/binary-options-strategies-ii/189-aurora-binary-trading/
//  - http://www.forexstrategiesresources.com/metatrader-4-trading-systems-v/652-qqe-smoothed-trading/
//  - http://dewinforex.com/forex-indicators/qqe-indicator-not-quite-grail-but-accurately-defines-trend-and-flat.html
//

strategy(title='[STRATEGY][UL]QQE Cross v1.1', pyramiding=0, overlay=true )


// - INPUTS START
// Fast MA - type, source, length
type1   = input(defval="EMA", title="Fast MA Type: SMA, EMA, WMA, VWMA, SMMA, DEMA, TEMA, HullMA, ZEMA ( case sensitive )")
len1    = input(defval=8, title="Fast - Length", minval=1)
// Medium Fast MA - type, source, length
type2   = input(defval="EMA", title="Medium Fast MA Type: SMA, EMA, WMA, VWMA, SMMA, DEMA, TEMA, HullMA, ZEMA ( case sensitive )")
len2    = input(defval=20, title="Medium Fast - Length", minval=1)
// Slow MA - type, source, length
type3   = input(defval="SMA", title="Slow MA Type: SMA, EMA, WMA, VWMA, SMMA, DEMA, TEMA, HullMA, LSMA, ZEMA ( case sensitive )")
len3    = input(defval=50, title="Slow Length", minval=1)
//
// QQE rsi Length, Smoothing, fast ATR factor, source
RSILen  = input(6,title='RSI Length')
SF      = input(3,title='RSI Smoothing Factor')
QQE     = input(2.618,title='Fast QQE Factor')
threshhold = input(10, title="RSI Threshhold")
//
sQQEx   = input(false,title="Show QQE Signal crosses")
sQQEz   = input(false,title="Show QQE Zero crosses")
//
filter  = input(false,title="Use Moving Average Filter")
dfilter = input(true, title="Use Trend Directional Filter" )
RSIsrc  = input(close,title="Source")
srcclose= RSIsrc

// - INPUTS END

// - FUNCTIONS

// Returns MA input selection variant, default to SMA if blank or typo.
variant(type, src, len) =>
    v1 = sma(src, len)                                                  // Simple
    v2 = ema(src, len)                                                  // Exponential
    v3 = wma(src, len)                                                  // Weighted
    v4 = vwma(src, len)                                                 // Volume Weighted
    v5 = na(v5[1]) ? sma(src, len) : (v5[1] * (len - 1) + src) / len    // Smoothed
    v6 = 2 * v2 - ema(v2, len)                                          // Double Exponential
    v7 = 3 * (v2 - ema(v2, len)) + ema(ema(v2, len), len)               // Triple Exponential
    v8 = wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len)))   // Hull
    ema1 = ema(src, len)
    ema2 = ema(ema1, len)
    v10 = ema1+(ema1-ema2)                                              // Zero Lag Exponential
    // return variant, defaults to SMA if input invalid.
    type=="EMA"?v2 : type=="WMA"?v3 : type=="VWMA"?v4 : type=="SMMA"?v5 : type=="DEMA"?v6 : type=="TEMA"?v7 : type=="HullMA"?v8 : type=="ZEMA"?v10 : v1

// - FUNCTIONS END

// - Fast ATR QQE
//
Wilders_Period = RSILen * 2 - 1
//
Rsi = rsi(RSIsrc,RSILen)
RSIndex = ema(Rsi, SF)
AtrRsi = abs(RSIndex[1] - RSIndex)
MaAtrRsi = ema(AtrRsi, Wilders_Period)
DeltaFastAtrRsi = ema(MaAtrRsi,Wilders_Period) * QQE
//
newshortband=  RSIndex + DeltaFastAtrRsi
newlongband= RSIndex - DeltaFastAtrRsi
longband=RSIndex[1] > longband[1] and RSIndex > longband[1] ? max(longband[1],newlongband) : newlongband
shortband=RSIndex[1] < shortband[1] and  RSIndex < shortband[1] ? min(shortband[1],newshortband) : newshortband
trend=cross(RSIndex, shortband[1])? 1 : cross(longband[1], RSIndex) ? -1 : nz(trend[1],1)
FastAtrRsiTL = trend==1 ? longband : shortband


// - SERIES VARIABLES
// MA's
ma_fast    = variant(type1, srcclose, len1)
ma_medium  = variant(type2, srcclose, len2)
ma_slow    = variant(type3, srcclose, len3)
// Get Direction From Medium Moving Average
direction = rising(ma_medium,3) ? 1 : falling(ma_medium,3) ? -1 : 0
//
// Find all the QQE Crosses
QQExshort = sQQEx and crossover(FastAtrRsiTL, RSIndex)
QQExlong  = sQQEx and crossunder(FastAtrRsiTL, RSIndex)
// Zero cross
QQEzlong = sQQEz and crossover(RSIndex,50)
QQEzshort  = sQQEz and crossunder(RSIndex,50)
//  
// Thresh Hold channel Crosses give the BUY/SELL alerts.
QQEclong = RSIndex>(50+threshhold) ? na(QQEclong[1]) ? 1 : QQEclong[1]+1 : 0
QQEcshort = RSIndex<(50-threshhold) ? na(QQEcshort[1]) ? 1 : QQEcshort[1]+1 : 0

//
// Check Filtering.
QQEflong = (not filter or (srcclose>ma_fast and ma_medium>ma_slow and ma_fast>ma_medium)) and 
  (not dfilter or (direction>0 and srcclose>ma_slow))
QQEfshort = (not filter or (srcclose<ma_fast and ma_medium<ma_slow and ma_fast<ma_medium)) and
  (not dfilter or (direction<0 and srcclose<ma_slow))
//
// Get final BUY / SELL alert determination
buy = QQEclong>0 and QQEflong ? na(buy[1]) ? 1 : buy[1]+1 : 0
sell= QQEcshort>0 and QQEfshort ? na(sell[1]) ? 1 : sell[1]+1 : 0

// - SERIES VARIABLES END

// - PLOTTING
// Ma's
plot(ma_fast, title="MA Fast", color=olive, linewidth=2, transp=20)
plot(ma_medium, title="MA Medium Fast", color=direction<0?red:green, linewidth=3, transp=0)
plot(ma_slow, title="MA Slow", color=blue, linewidth=2, transp=20)
// QQE crosses
plotshape(QQExlong and buy!=1, title="QQE Cross Over", style=shape.triangleup, location=location.belowbar, text="XQQE", color=blue, transp=20, size=size.tiny)
plotshape(QQExshort and sell!=1, title="QQE Cross Under", style=shape.triangledown, location=location.abovebar, text="XQQE", color=black, transp=20, size=size.tiny)
// Signal crosses zero line
plotshape(QQEzlong and buy!=1 and not QQExlong, title="QQE Zero Cross Over", style=shape.triangleup, location=location.belowbar, text="XZERO", color=aqua, transp=20, size=size.tiny)
plotshape(QQEzshort and sell!=1 and not QQExshort, title="QQE Zero Cross Under", style=shape.triangledown, location=location.abovebar, text="XZERO", color=fuchsia, transp=20, size=size.tiny)

// - PLOTTING END

// Create alert for cross, shunt back 1 if source is not 'open', this should prevent repaint issue.
//shunt = RSIsrc == open ? 0 : 1
shunt = 0
c_alert = (buy[shunt]==1 or sell[shunt]==1)
//alertcondition(c_alert, title="QQECROSS Alert", message="QQECROSS Alert")
// show only when alert condition is met and bar closed.
plotshape(c_alert,title= "Alert Indicator Closed", location=location.bottom, color=sell[shunt]==1?red:green, transp=0, style=shape.circle)


//  Strategy: (Thanks to JayRogers)
// === STRATEGY RELATED INPUTS ===
//tradeInvert     = input(defval = false, title = "Invert Trade Direction?")
// the risk management inputs
inpTakeProfit   = input(defval = 0, title = "Take Profit Points", minval = 0)
inpStopLoss     = input(defval = 0, title = "Stop Loss Points", minval = 0)
inpTrailStop    = input(defval = 100, title = "Trailing Stop Loss Points", minval = 0)
inpTrailOffset  = input(defval = 0, title = "Trailing Stop Loss Offset Points", minval = 0)

// === RISK MANAGEMENT VALUE PREP ===
// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na

// === STRATEGY - LONG POSITION EXECUTION ===
strategy.entry(id = "Buy", long = true, when = buy[shunt]==1 )// use function or simple condition to decide when to get in
strategy.close(id = "Buy", when = direction[shunt]!=direction[shunt+1])// ...and when to get out

// === STRATEGY - SHORT POSITION EXECUTION ===
strategy.entry(id = "Sell", long = false, when = sell[shunt]==1)
strategy.close(id = "Sell", when = direction[shunt]!=direction[shunt+1])

// === STRATEGY RISK MANAGEMENT EXECUTION ===
// finally, make use of all the earlier values we got prepped
strategy.exit("Exit Buy", from_entry = "Buy", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Sell", from_entry = "Sell", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)

//eof