فلائنگ ڈریگن ٹرینڈ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-07 14:57:23
ٹیگز:

img

جائزہ

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

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

اس حکمت عملی میں رجحان بینڈ کو پلاٹ کرنے کے لئے دو چلتی اوسط استعمال ہوتے ہیں ، جن کو MA1 اور MA4 کے طور پر بیان کیا جاتا ہے۔ MA1 تیز رفتار چلتی اوسط ہے اور MA4 سست ہے۔ دریں اثنا ، MA1 میں 3 آفسیٹ کی ترتیبات (آفسٹ 1 ، آفسیٹ 2 ، آفسیٹ 3) ہیں جو MA2 اور MA3 تشکیل دیتے ہیں۔ مختلف چلتی اوسط کو عبور کرنے سے مختلف رسک لیول کے ساتھ تجارتی سگنل پیدا ہوں گے۔

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

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

فوائد کا تجزیہ

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

خطرے کا تجزیہ

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

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

اصلاح کی ہدایات

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

خلاصہ

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


/*backtest
start: 2022-10-31 00:00:00
end: 2023-02-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © MarkoP010 2023

//@version=5
//The basic idea of the strategy is to select the best set of MAs, types, lenghts and offsets, which draws red trend bands for downtrend (and green for uptrend).
//Strategy executes by selected risk level either when there is MA crossover with price (MA1 Offset1 on Highest risk level, MA2 on Low risk level) or three bands with the same color on at the same time (on Lowest risk level).
//Strategy plots user selectable Moving Average lines and a colored trend band between the MA lines. The trend bands can be turned off individually if required.
//The Offset option shifts the selected MA with the set number of steps to the right. That is where the Magic happens and the Dragon roars!

//Strategy version 1.0
strategy("Flying Dragon Trend Strategy", shorttitle="FD Trend Strategy", overlay=true, pyramiding=3, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=5, commission_type=strategy.commission.cash_per_order, commission_value=10, calc_on_order_fills=false, process_orders_on_close=true)

strDirection = input.string(defval="Both", title="Strategy Direction", options=["Both", "Long", "Short"], group="Strategy") //Strategy direction selector by DashTrader
strSelection = strDirection == "Long" ? strategy.direction.long : strDirection == "Short" ? strategy.direction.short : strategy.direction.all //Strategy direction selector by DashTrader
strategy.risk.allow_entry_in(strSelection)

riskLevel = input.string(defval="Medium", title="Risk Level", options=["Highest", "High", "Medium", "Low", "Lowest"], tooltip="Strategy execution criteria. When Highest then MA1 Offset1 crossover with price, when Low then MA2 Offset crossover, when Lowest then all the Bands are the same color.", group="Strategy")

useStop = input(defval=false, title="Use Stop Loss", inline="SL", group="Strategy")
stopPrct = input.int(defval=10, title=" %", minval=0, maxval=100, step=1, inline="SL", group="Strategy") / 100

//Moving Averages function
MA(source, length, type) =>
    type == "EMA" ? ta.ema(source, length) :
     type == "HMA" ? ta.hma(source, length) :
     type == "RMA" ? ta.rma(source, length) :
     type == "SMA" ? ta.sma(source, length) :
     type == "SWMA" ? ta.swma(source) :
     type == "VWMA" ? ta.vwma(source, length) :
     type == "WMA" ? ta.wma(source, length) :
     na

//Inputs
ma1Type = input.string(defval="HMA", title="", inline="MA1", options=["EMA", "HMA", "RMA", "SMA","SWMA", "VWMA", "WMA"], group="Leading Moving Average") 
ma1Length = input.int(defval=35, title="",minval=1, inline="MA1", group="Leading Moving Average")
ma1Source = input(defval=close, title="", tooltip="For short timeframes, minutes to hours, instead of Default values try Lowest risk level and HMA75 with Offsets 0,1,4 and SMA12 with Offset 6.", inline="MA1", group="Leading Moving Average")
ma1Color  = input(defval=color.purple, title="", inline="MA-1", group="Leading Moving Average")
//useMa1Offset = input(defval=false, title="Use offset to MA-1", inline="MA1", group="Leading Moving Average")
ma1Offset = input.int(defval=0, title="Offset1 Steps", minval=0, maxval=10, step=1, tooltip="The Magic happens here! The offset to move the line to the right.", inline="MA-1", group="Leading Moving Average")
ma1 = MA(ma1Source, ma1Length, ma1Type)[ma1Offset]

ma2Color  = input(defval=color.lime, title="", inline="MA-2", group="Leading Moving Average")
//useMa2Offset = input(defval=true, title="Use offset to MA2", inline="MA-2", group="Leading Moving Average")
ma2Offset = input.int(defval=4, title="Offset2 Steps", minval=0, maxval=10, step=1, tooltip="The Magic happens here! The offset to move the line to the right.", inline="MA-2", group="Leading Moving Average")
ma2 = ma1[ma2Offset]

ma3Color  = input(defval=color.aqua, title="", inline="MA-3", group="Leading Moving Average")
//useMa3Offset = input(defval=false, title="Use offset to MA3", inline="MA-3", group="Leading Moving Average")
ma3Offset = input.int(defval=6, title="Offset3 Steps", minval=0, maxval=10, step=1, tooltip="The Magic happens here! The offset to move the line to the right.", inline="MA-3", group="Leading Moving Average")
ma3 = ma1[ma3Offset]

ma4Type = input.string(defval="SMA", title="", inline="MA4", options=["EMA", "HMA", "RMA", "SMA","SWMA", "VWMA", "WMA"], group="Lagging Moving Average") 
ma4Length = input.int(defval=22, title="",minval=1, inline="MA4", group="Lagging Moving Average")
ma4Source = input(defval=close, title="", inline="MA4", group="Lagging Moving Average")
ma4Color  = input(defval=color.yellow, title="", inline="MA-4", group="Lagging Moving Average")
//useMa4Offset = input(defval=true, title="Use offset to MA4", inline="MA-4", group="Lagging Moving Average")
ma4Offset = input.int(defval=2, title="Offset Steps", minval=0, maxval=10, step=1, tooltip="The Magic happens here! The offset to move the line to the right.", inline="MA-4", group="Lagging Moving Average")
ma4 = MA(ma4Source, ma4Length, ma4Type)[ma4Offset]

bandTransp = input.int(defval=60, title="Band Transparency", minval=20, maxval=80, step=10, group="Banding")
useBand1 = input(defval=true, title="Band 1", inline="Band", group="Banding")
band1Transp = useBand1 ? bandTransp : 100
band1clr = ma1 > ma2 ? color.new(#00ff00, transp=band1Transp) : color.new(#ff0000, transp=band1Transp)
useBand2 = input(defval=true, title="Band 2", inline="Band", group="Banding")
band2Transp = useBand2 ? bandTransp : 100
band2clr = ma1 > ma3 ? color.new(#00ff00, transp=band2Transp) : color.new(#ff0000, transp=band2Transp)
useBand3 = input(defval=true, title="Band 3", tooltip="Up trend green, down trend red. Colors get reversed if MA1 lenght is greater than MA2 lenght, or they are different type and MA2 quicker. In that case, just reverse your selections for MA1 and MA2, or let it be as is.", inline="Band", group="Banding")
band3Transp = useBand3 ? bandTransp : 100
band3clr = ma1 > ma4 ? color.new(#00ff00, transp=band3Transp) : color.new(#ff0000, transp=band3Transp)

//Graphs
piirto1 = plot(ma1, color = ma1Color, title="MA1")
piirto2 = plot(ma2, color = ma2Color, title="MA2")
piirto3 = plot(ma3, color = ma3Color, title="MA3")
piirto4 = plot(ma4, color = ma4Color, title="MA4")

fill(piirto1, piirto2, color=band1clr)
fill(piirto1, piirto3, color=band2clr)
fill(piirto1, piirto4, color=band3clr)

//Strategy entry and stop conditions

longCondition = riskLevel == "Highest" ? ma1Source > ma1 : riskLevel == "High" ? ma1Source > ma2 : riskLevel == "Medium" ? ma1Source > ma3 : riskLevel == "Low" ? ma1Source > ma4 : riskLevel == "Lowest" ? ma1 > ma2 and ma1 > ma3 and ma1 > ma4 : na
shortCondition = riskLevel == "Highest" ? ma1Source < ma1 : riskLevel == "High" ? ma1Source < ma2 : riskLevel == "Medium" ? ma1Source < ma3 : riskLevel == "Low" ? ma1Source < ma4 : riskLevel == "Lowest" ? ma1 < ma2 and ma1 < ma3 and ma1 < ma4 : na

stopLprice = useStop == true ? strategy.position_avg_price * (1-stopPrct) : na
stopSprice = useStop == true ? strategy.position_avg_price * (1+stopPrct) : na

if (longCondition)
    strategy.entry("Long",strategy.long)
    strategy.exit("Long Stop", "Long", stop=stopLprice)    
if (shortCondition)
    strategy.entry("Short",strategy.short)
    strategy.exit("Short Stop", "Short", stop=stopSprice)

//End


مزید