ڈبل MA وقت کی حد تجارتی حکمت عملی


تخلیق کی تاریخ: 2023-11-14 16:45:03 آخر میں ترمیم کریں: 2023-11-14 16:45:03
کاپی: 0 کلکس کی تعداد: 654
1
پر توجہ دیں
1617
پیروکار

ڈبل MA وقت کی حد تجارتی حکمت عملی

جائزہ

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

اصول

حکمت عملی کا استعمال کرتے ہوئے تیز MA اور سست MA ٹریڈنگ سگنل کی تعمیر. تیز MA پیرامیٹر 14 دن ہے، اور سست MA پیرامیٹر 21 دن ہے. جب تیز MA پر سست MA سے گزرتا ہے تو خرید سگنل پیدا ہوتا ہے. جب تیز MA کے نیچے سست MA سے گزرتا ہے تو فروخت سگنل پیدا ہوتا ہے۔

اس حکمت عملی میں ٹریڈنگ ریورس آپشن بھی شامل کیا گیا ہے جو اصل ٹریڈنگ سگنل کی سمت کو تبدیل کرسکتا ہے۔

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

فوائد

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

خطرات اور حل

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

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

اصلاح کی سمت

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-11-06 00:00:00
end: 2023-11-13 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy(title = "Strategy Code Example", shorttitle = "Strategy Code Example", overlay = true)

// Revision:        1
// Author:          @JayRogers
//
// *** THIS IS JUST AN EXAMPLE OF STRATEGY TIME LIMITING ***
//
//  This is a follow up to my previous strategy example for risk management, extended to include a time limiting factor.

// === GENERAL INPUTS ===
// short ma
maFastSource   = input(defval = open, title = "Fast MA Source")
maFastLength   = input(defval = 14, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource   = input(defval = open, title = "Slow MA Source")
maSlowLength   = input(defval = 21, title = "Slow MA Period", minval = 1)

// === STRATEGY RELATED INPUTS ===
tradeInvert     = input(defval = false, title = "Invert Trade Direction?")
// Risk management
inpTakeProfit   = input(defval = 1000, title = "Take Profit", minval = 0)
inpStopLoss     = input(defval = 200, title = "Stop Loss", minval = 0)
inpTrailStop    = input(defval = 200, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset  = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
// *** FOCUS OF EXAMPLE ***
// Time limiting
// a toggle for enabling/disabling
useTimeLimit    = input(defval = true, title = "Use Start Time Limiter?")
// set up where we want to run from
startYear       = input(defval = 2016, title = "Start From Year",  minval = 0, step = 1)
startMonth      = input(defval = 05, title = "Start From Month",  minval = 0,step = 1)
startDay        = input(defval = 01, title = "Start From Day",  minval = 0,step = 1)
startHour       = input(defval = 00, title = "Start From Hour",  minval = 0,step = 1)
startMinute     = input(defval = 00, title = "Start From Minute",  minval = 0,step = 1)

// === 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

// *** FOCUS OF EXAMPLE ***
// === TIME LIMITER CHECKING FUNCTION ===
// using a multi line function to return true or false depending on our input selection
// multi line function logic must be indented.
startTimeOk() =>
    // get our input time together
    inputTime   = timestamp(syminfo.timezone, startYear, startMonth, startDay, startHour, startMinute)
    // check the current time is greater than the input time and assign true or false
    timeOk      = time > inputTime ? true : false
    // last line is the return value, we want the strategy to execute if..
    // ..we are using the limiter, and the time is ok -OR- we are not using the limiter
    r = (useTimeLimit and timeOk) or not useTimeLimit

// === SERIES SETUP ===
/// a couple of ma's..
maFast = ema(maFastSource, maFastLength)
maSlow = ema(maSlowSource, maSlowLength)

// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50)
slow = plot(maSlow, title = "Slow MA", color = red, linewidth = 2, style = line, transp = 50)

// === LOGIC ===
// is fast ma above slow ma?
aboveBelow = maFast >= maSlow ? true : false
// are we inverting our trade direction?
tradeDirection = tradeInvert ? aboveBelow ? false : true : aboveBelow ? true : false

// *** FOCUS OF EXAMPLE ***
// wrap our strategy execution in an if statement which calls the time checking function to validate entry
// like the function logic, content to be included in the if statement must be indented.
if( startTimeOk() )
    // === STRATEGY - LONG POSITION EXECUTION ===
    enterLong = not tradeDirection[1] and tradeDirection
    exitLong = tradeDirection[1] and not tradeDirection
    strategy.entry( id = "Long", long = true, when = enterLong )
    strategy.close( id = "Long", when = exitLong )
    
    // === STRATEGY - SHORT POSITION EXECUTION ===
    enterShort = tradeDirection[1] and not tradeDirection
    exitShort = not tradeDirection[1] and tradeDirection
    strategy.entry( id = "Short", long = false, when = enterShort )
    strategy.close( id = "Short", when = exitShort )
    
    // === STRATEGY RISK MANAGEMENT EXECUTION ===
    strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
    strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)