ایک سے زیادہ SMA وقفہ پیش رفت اور متحرک منافع کو لاک کرنے والی مقداری تجارتی حکمت عملی

SMA
تخلیق کی تاریخ: 2024-12-20 16:28:54 آخر میں ترمیم کریں: 2024-12-20 16:28:54
کاپی: 0 کلکس کی تعداد: 441
1
پر توجہ دیں
1617
پیروکار

ایک سے زیادہ SMA وقفہ پیش رفت اور متحرک منافع کو لاک کرنے والی مقداری تجارتی حکمت عملی

جائزہ

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

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

حکمت عملی کی بنیادی منطق میں درج ذیل اہم حصے شامل ہیں:

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

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

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

اسٹریٹجک رسک

  1. ہلچل مچانے والی مارکیٹوں میں زیادہ تجارت کا امکان
  2. فکسڈ پوائنٹس کی گنتی بند ہو گئی ہے
  3. پیرامیٹر کی اصلاح اوور فٹنگ کا باعث بن سکتی ہے۔
  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)