وسائل لوڈ ہو رہے ہیں... لوڈنگ...

ملٹی ایس ایم اے زون بریک آؤٹ کے ساتھ متحرک منافع لاک مقداری تجارتی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-12-20 16:28:54
ٹیگز:ایس ایم اے

img

جائزہ

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

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

بنیادی منطق میں کئی اہم اجزاء شامل ہیں:

  1. رجحان کے فریم ورک کی تعمیر کے لئے 19 مدت اور 74 مدت کے ایس ایم اے کا استعمال کرتا ہے
  2. مارکیٹ کے حالات کا فیصلہ کرنے کے لئے 60 پیریڈ اسٹوکاسٹک اشارے کا استعمال کرتا ہے ، ایس ایم اے رنگوں کو پیلے رنگ ، سبز ، سرخ اور نارنجی ریاستوں میں درجہ بندی کرتا ہے
  3. قیمتوں کی طاقت کا تعین کرنے کے لئے قیمت زونوں کو 5 اہم سطحوں میں تقسیم کرتا ہے
  4. داخلے کے شرائط کے مطابق:
    • سبز یا پیلے رنگ کی حالت میں ایس ایم اے
    • اورنج زون سے اوپر کی قیمتوں میں خرابی
    • قلیل مدتی ایس ایم اے کے اوپر اختتامی قیمت
  5. منافع حاصل کرنے کے دو طریقہ کار کو نافذ کرتا ہے:
    • سب سے زیادہ قیمت سے فیصد پر مبنی ڈراؤنڈ تحفظ
    • فکسڈ پوائنٹ منافع لاک

حکمت عملی کے فوائد

  1. متعدد تصدیق کے طریقہ کار سے غلط سگنل کم ہوتے ہیں
  2. متحرک زون ڈویژن مختلف مارکیٹ کے ماحول کے مطابق ڈھالتا ہے
  3. دوہری منافع لینے کے طریقہ کار سے خطرے کا بہتر کنٹرول ہوتا ہے
  4. مارکیٹ کی حالت کی واضح درجہ بندی سے مارکیٹ کی رفتار کو پکڑنے میں مدد ملتی ہے
  5. ریئل ٹائم ٹریڈ اسٹیٹس مانیٹرنگ حکمت عملی ڈیبگنگ کو آسان بناتی ہے
  6. تکنیکی اشارے کو قیمت کے عمل کے تجزیے کے ساتھ جوڑتا ہے

حکمت عملی کے خطرات

  1. مختلف بازاروں میں زیادہ تجارت پیدا کر سکتا ہے
  2. فکسڈ پوائنٹ منافع لینے سے بڑے رجحانات نظر انداز ہوسکتے ہیں
  3. پیرامیٹر کی اصلاح overfitting کی قیادت کر سکتے ہیں
  4. مارکیٹ میں تیزی سے تبدیلی کے دوران ممکنہ منافع کا نقصان
  5. متعدد تصدیق کی شرائط سے کچھ تجارتی مواقع ضائع ہوسکتے ہیں حل:
  • اتار چڑھاؤ فلٹرز شامل کریں
  • منافع کمانے کے پیرامیٹرز کو متحرک طور پر ایڈجسٹ کریں
  • مارکیٹ کے ماحول کی پہچان میں اضافہ
  • باہر نکلنے کے وقت کے فیصلوں کو بہتر بنائیں

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

  1. متحرک پیرامیٹرز کی ایڈجسٹمنٹ کے لئے اتار چڑھاؤ کے اشارے متعارف کروانا
  2. مارکیٹ کی حالت کی بنیاد پر منافع حاصل کرنے کے حالات کو ایڈجسٹ کریں
  3. حجم کی تصدیق کا طریقہ کار شامل کریں
  4. رجحان طاقت فلٹرز شامل کریں
  5. مارکیٹ کی خصوصیات کو مدنظر رکھتے ہوئے زون ڈویژن کا طریقہ کار بہتر بنائیں
  6. خطرے کے انتظام کے طریقہ کار کو بہتر بنانا، بشمول:
    • روزانہ سٹاپ نقصان
    • زیادہ سے زیادہ استعمال کا کنٹرول
    • پوزیشن رکھنے کی مدت

خلاصہ

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


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="SMA Color Strategy", 
     overlay=true, 
     initial_capital=10000,
     max_bars_back=5000,
     max_labels_count=500,
     max_boxes_count=500,
     default_qty_type=strategy.fixed,
     default_qty_value=1,
     currency=currency.NONE,
     process_orders_on_close=true)

// === INPUTS ===
zoneLength = input.int(20, "Price Zone Length", minval=5)
profitLockPct = input.float(50, "Profit Lock Percentage", minval=1, maxval=100, step=5) / 100
ticksToLock = input.int(12, "Ticks to Activate Lock", minval=1, tooltip="Number of ticks price must move up to activate tick-based lock")
ticksToSecure = input.int(10, "Ticks to Secure", minval=1, tooltip="Number of ticks to lock in once activated")

// Calculate tick values
tickSize = syminfo.mintick
ticksToLockPoints = ticksToLock * tickSize
ticksToSecurePoints = ticksToSecure * tickSize

// Calculate price zones
h = ta.highest(high, zoneLength)
l = ta.lowest(low, zoneLength)
priceRange = h - l
lvl5 = h
lvl4 = l + (priceRange * 0.75)  // Orange line
lvl3 = l + (priceRange * 0.50)  // Yellow line
lvl2 = l + (priceRange * 0.25)  // Green line
lvl1 = l

// Calculate SMAs
sma19 = ta.sma(close, 19)
sma74 = ta.sma(close, 74)

// Stochastic calculation for color logic
k = ta.stoch(close, high, low, 60)
d = ta.sma(k, 10)

// SMA Color Logic with state tracking
var color currentSMAColor = color.orange
var color previousSMAColor = color.orange
var string currentColorName = "ORANGE"
var string previousColorName = "ORANGE"

smaColor = if d >= 80 or d <= 20
    color.rgb(255, 215, 0)
else if d > d[1]
    color.green
else if d < d[1]
    color.red
else
    color.orange

// Update color state and names
if smaColor != currentSMAColor
    previousSMAColor := currentSMAColor
    currentSMAColor := smaColor
    previousColorName := currentColorName
    currentColorName := if smaColor == color.rgb(255, 215, 0)
        "YELLOW"
    else if smaColor == color.green
        "GREEN"
    else if smaColor == color.red
        "RED"
    else
        "ORANGE"

// Color logic for SMA74
sma74Color = if smaColor == color.rgb(255, 215, 0)
    color.rgb(255, 215, 0)                          
else if sma74 < sma19                               
    color.green
else                                                
    color.red

// === ENTRY CONDITIONS ===
smaIsGreen = smaColor == color.green
greenCandle = close > open
candleAboveOrange = close > lvl4
candleAboveSMA = close > sma19
crossedAboveOrange = ta.crossover(close, lvl4)
smaIsYellow = smaColor == color.rgb(255, 215, 0)

longCondition1 = smaIsGreen and greenCandle and candleAboveOrange and candleAboveSMA and crossedAboveOrange
longCondition2 = smaIsYellow and crossedAboveOrange and candleAboveSMA

// === PROFIT LOCK SYSTEM ===
var float entryPrice = na
var float maxPrice = na
var float profitLockLevel = na
var bool tickLockActivated = false
var float tickBasedLockLevel = na

// Reset variables on new trade entry
if (longCondition1 or longCondition2)
    entryPrice := close
    maxPrice := close
    profitLockLevel := close * (1 - profitLockPct)
    tickLockActivated := false
    tickBasedLockLevel := na

// Update maximum price and profit locks when in a trade
if strategy.position_size > 0
    maxPrice := math.max(maxPrice, high)
    profitLockLevel := math.max(profitLockLevel, maxPrice * (1 - profitLockPct))
    
    // Check if price has moved up enough to activate tick-based lock
    if not tickLockActivated and (maxPrice - entryPrice) >= ticksToLockPoints
        tickLockActivated := true
        tickBasedLockLevel := entryPrice + ticksToSecurePoints

// === EXIT CONDITIONS ===
exitOnYellowLine = close < lvl3
exitOnProfitLock = low < profitLockLevel and strategy.position_size > 0
exitOnTickLock = tickLockActivated and low < tickBasedLockLevel

// === TRADE MANAGEMENT ===
if (longCondition1 or longCondition2)
    strategy.entry("Long", strategy.long)

if strategy.position_size > 0
    if exitOnYellowLine
        strategy.close("Long", comment="Close below yellow")
    if exitOnProfitLock
        strategy.close("Long", comment="Profit lock triggered")
    if exitOnTickLock
        strategy.close("Long", comment="Tick-based lock triggered")

// Plot indicators
plot(sma19, "SMA 19", color=smaColor, linewidth=2)
plot(sma74, "SMA 74", color=sma74Color, linewidth=2)
plot(lvl5, "Upper Zone Top", color=color.red, linewidth=2)
plot(lvl4, "Upper Zone Bottom", color=color.orange, linewidth=2)
plot(lvl3, "Middle Line", color=color.yellow, linewidth=2)
plot(lvl2, "Lower Zone Top", color=color.green, linewidth=2)
plot(lvl1, "Lower Zone Bottom", color=color.blue, linewidth=2)

// Plot profit lock levels
plot(strategy.position_size > 0 ? profitLockLevel : na, "Profit Lock Level", color=color.purple, style=plot.style_linebr, linewidth=2)
plot(strategy.position_size > 0 and tickLockActivated ? tickBasedLockLevel : na, "Tick Lock Level", color=color.fuchsia, style=plot.style_linebr, linewidth=2)

// Fill zones
var p1 = plot(lvl5, display=display.none)
var p2 = plot(lvl4, display=display.none)
var p3 = plot(lvl2, display=display.none)
var p4 = plot(lvl1, display=display.none)
fill(p1, p2, color=color.new(color.red, 90))
fill(p3, p4, color=color.new(color.green, 90))

// Debug Table
if barstate.islast
    var table debugTable = table.new(position.top_right, 2, 13, bgcolor=color.new(color.black, 70), frame_width=1)
    
    table.cell(debugTable, 0, 0, "Current Color", text_color=color.white)
    table.cell(debugTable, 1, 0, currentColorName, text_color=currentSMAColor)
    
    table.cell(debugTable, 0, 1, "Previous Color", text_color=color.white)
    table.cell(debugTable, 1, 1, previousColorName, text_color=previousSMAColor)
    
    table.cell(debugTable, 0, 2, "Entry 1 (Green)", text_color=color.white)
    table.cell(debugTable, 1, 2, str.tostring(longCondition1), text_color=color.white)
    
    table.cell(debugTable, 0, 3, "Entry 2 (Yellow)", text_color=color.white)
    table.cell(debugTable, 1, 3, str.tostring(longCondition2), text_color=color.white)
    
    table.cell(debugTable, 0, 4, "Current Position", text_color=color.white)
    table.cell(debugTable, 1, 4, str.tostring(strategy.position_size), text_color=color.white)
    
    table.cell(debugTable, 0, 5, "Entry Price", text_color=color.white)
    table.cell(debugTable, 1, 5, str.tostring(entryPrice), text_color=color.white)
    
    table.cell(debugTable, 0, 6, "Max Price", text_color=color.white)
    table.cell(debugTable, 1, 6, str.tostring(maxPrice), text_color=color.white)
    
    table.cell(debugTable, 0, 7, "Profit Lock Level", text_color=color.white)
    table.cell(debugTable, 1, 7, str.tostring(profitLockLevel), text_color=color.white)
    
    table.cell(debugTable, 0, 8, "Tick Lock Active", text_color=color.white)
    table.cell(debugTable, 1, 8, str.tostring(tickLockActivated), text_color=color.white)
    
    table.cell(debugTable, 0, 9, "Tick Lock Level", text_color=color.white)
    table.cell(debugTable, 1, 9, str.tostring(tickBasedLockLevel), text_color=color.white)
    
    table.cell(debugTable, 0, 10, "Price Move (Ticks)", text_color=color.white)
    table.cell(debugTable, 1, 10, str.tostring(strategy.position_size > 0 ? (maxPrice - entryPrice) / tickSize : 0), text_color=color.white)
    
    table.cell(debugTable, 0, 11, "Locked Profit %", text_color=color.white)
    table.cell(debugTable, 1, 11, str.tostring(strategy.position_size > 0 ? ((maxPrice - entryPrice) / entryPrice * 100) : 0.0) + "%", text_color=color.white)
    
    table.cell(debugTable, 0, 12, "Exit Signals", text_color=color.white)
    table.cell(debugTable, 1, 12, "Y:" + str.tostring(exitOnYellowLine) + " P:" + str.tostring(exitOnProfitLock) + " T:" + str.tostring(exitOnTickLock), text_color=color.white)

متعلقہ

مزید