حکمت عملی کے بعد ٹرپل حرکت پذیر اوسط رجحان

مصنف:چاؤ ژانگ، تاریخ: 2024-02-01 11:02:17
ٹیگز:

img

جائزہ

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

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

  1. مختلف سائیکلوں کے تین حرکت پذیر اوسط کا حساب لگائیں: تیز رفتار حرکت پذیر اوسط مدت 8 دن ہے ، درمیانی حرکت پذیر اوسط مدت 21 دن ہے ، اور سست حرکت پذیر اوسط مدت 55 دن ہے۔

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

  3. باہر نکلنے کے حالات کا تعین کریں: جب تیز رفتار حرکت پذیر اوسط مخالف سمت میں درمیانے درجے کے حرکت پذیر اوسط کو عبور کرتا ہے تو پوزیشنوں کو بند کریں۔

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

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

  1. تین حرکت پذیر اوسطوں کا استعمال رجحان کی سمت کا تعین کرنے اور جھوٹے بریک آؤٹ سے بچنے میں مدد کرتا ہے۔

  2. منافع کی صلاحیت کے لئے رجحان کی پیروی.

  3. چلتے ہوئے اوسط کا استعمال مستحکم منافع اور نسبتا small کم کھپت کا نتیجہ ہے۔

  4. کنٹرول شدہ سٹاپ نقصان کی حکمت عملی بڑے نقصانات کے امکان کو کم کرتی ہے۔

خطرے کا تجزیہ

  1. متعدد چھوٹے نقصانات کا شکار، منافع کی کارکردگی کو کم کرنا.

  2. چلتی اوسط پیچھے رہ جاتی ہے اور رجحان کی تبدیلی کے مقامات کو یاد کر سکتی ہے۔

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

  4. پیرامیٹرز کی غلط اصلاح سے زیادہ تجارت ہوتی ہے، تجارتی اخراجات میں اضافہ ہوتا ہے اور سلائڈج ہوتا ہے۔

اصلاح

  1. تجارتی آلہ کی خصوصیات کے مطابق چلتی اوسط مدت کو بہتر بنائیں۔

  2. متحرک طور پر پوزیشن سائزنگ کو ایڈجسٹ کرنے کے لئے اے ٹی آر کا استعمال کریں.

  3. سٹاپ نقصان کی حکمت عملی شامل کریں.

  4. رجحانات کی وشوسنییتا کا تعین کرنے کے لئے تجارتی حجم کے اشارے شامل کریں۔

خلاصہ

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


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// LOVE JOY PEACE PATIENCE KINDNESS GOODNESS FAITHFULNESS GENTLENESS SELF-CONTROL 
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © JoshuaMcGowan

//@version=4

// 1. Define strategy settings
strategy(title="Triple Moving Average", overlay=true,
     pyramiding=0, initial_capital=1000,
     commission_type=strategy.commission.cash_per_order,
     commission_value=4, slippage=2)
     
fastMALen = input(title="Fast MA Length", type=input.integer, defval=8)
medMALen  = input(title="Medium MA Length", type=input.integer, defval=21)
slowMALen = input(title="Slow MA Length", type=input.integer, defval=55)

//endMonth = input(title="End Month Backtest", type=input.integer, defval=11)
//endYear  = input(title="End Year Backtest", type=input.integer, defval=2019)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 12, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2016, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true

usePosSize = input(title="Use Position Sizing?", type=input.bool, defval=true)
riskPerc   = input(title="Risk %", type=input.float, defval=0.5, step=0.25)

// 2. Calculate strategy values
fastMA = sma(close, fastMALen)
medMA  = sma(close, medMALen)
slowMA = sma(close, slowMALen)

//Position Sizing
riskEquity  = (riskPerc / 100) * strategy.equity
atrCurrency = (atr(20) * syminfo.pointvalue)
posSize     = usePosSize ? floor(riskEquity / atrCurrency) : 1

//Backtest Window
//tradeWindow = (time <= timestamp(endYear, endMonth, 1, 0, 0))

// 3. Determine long trading conditions
enterLong = crossover(fastMA, medMA) and
     (fastMA > slowMA) and (medMA > slowMA) and
     window() 

exitLong = crossunder(fastMA, medMA)

// 4. Code short trading conditions
enterShort = crossunder(fastMA, medMA) and
     (fastMA < slowMA) and (medMA < slowMA) and
     window() 

exitShort = crossover(fastMA, medMA)

// 5. Output strategy data
plot(series=fastMA, color=color.green, title="Fast MA")
plot(series=medMA, color=color.purple, title="Medium MA")
plot(series=slowMA, color=color.red, title="Slow MA",
     linewidth=2)
     
bgColour =
     enterLong and (strategy.position_size < 1) ? color.green :
     enterShort and (strategy.position_size > -1) ? color.red :
     exitLong and (strategy.position_size > 0) ? color.lime :
     exitShort and (strategy.position_size < 0) ? color.orange :
     na

bgcolor(color=bgColour, transp=85)

// 6. Submit entry orders
if (enterLong)
    strategy.entry(id="EL", long=true, qty=1)

if (enterShort)
    strategy.entry(id="ES", long=false, qty=1)

// 7. Submit exit orders
strategy.close_all(when=exitLong and
     (strategy.position_size > 0))
strategy.close_all(when=exitShort and
     (strategy.position_size < 0))

strategy.close_all(when=not window())

//END

مزید