ZEC ٹرینڈ ٹریکنگ ذہین ایڈ آن اسٹریٹجی

DONCHIAN ATR Pivot STRUCTURE
تخلیق کی تاریخ: 2025-12-12 11:16:51 آخر میں ترمیم کریں: 2025-12-12 11:16:51
کاپی: 12 کلکس کی تعداد: 318
2
پر توجہ دیں
413
پیروکار

ZEC ٹرینڈ ٹریکنگ ذہین ایڈ آن اسٹریٹجی ZEC ٹرینڈ ٹریکنگ ذہین ایڈ آن اسٹریٹجی

اس حکمت عملی کا کیا مطلب ہے؟

کیا آپ جانتے ہیں؟ یہ حکمت عملی ایک سپر محتاط سرمایہ کاری کے پرانے ڈرائیور کی طرح ہے! یہ اندھا دھند تعاقب نہیں کرے گا ، بلکہ پہلے “ٹیسکوپس” (ملٹی ٹائم فریم مارکیٹ ڈھانچے کا تجزیہ) کے ساتھ بڑے رجحانات کو دیکھیں گے ، اس بات کی تصدیق کریں گے کہ سمت میں کوئی مسئلہ نہیں ہے ، اور پھر ڈونگ چیانگ چینل کو توڑنے کے لئے داخلہ سگنل کے طور پر استعمال کریں گے۔

سب سے زیادہ دلچسپ بات یہ ہے کہ یہ “بڑے پیمانے پر ذخیرہ” بھی کرتا ہے ، جس طرح آپ کھانے کی خریداری کرتے وقت پہلے ایک کا مزہ چکھتے ہیں ، پھر آپ کو اچھا لگتا ہے اور پھر کچھ اور خریدتے ہیں۔ جب قیمت فائدہ مند سمت میں چلتی ہے تو ، یہ اے ٹی آر (اوسط حقیقی طول و عرض) کے مطابق ذہین ذخیرہ کرتا ہے ، جس سے منافع زیادہ چلتا ہے!

🔍 مرکزی روشنی کا تجزیہ

توجہ مرکوز!اس حکمت عملی کے تین انتہائی طاقتور پہلو ہیں:

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

اے ٹی آر متحرک بیئرنگ نظام 📊 روایتی حکمت عملی یا تو ایک ہتھوڑا ہے یا ایک مقررہ پوزیشن ہے۔ یہ حکمت عملی زیادہ ذہین ہے! یہ مارکیٹ میں اتار چڑھاؤ (ATR) کی بنیاد پر پوزیشن لینے کے وقت اور نقصان کی پوزیشن کا فیصلہ کرتی ہے۔ جب مارکیٹ میں اتار چڑھاؤ ہوتا ہے تو ، زیادہ جگہ دی جاتی ہے۔ اتار چڑھاؤ کے اوقات میں ، سخت کنٹرول ہوتا ہے۔

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

پیرامیٹرز کی ترتیبات

گڑھے کی ہدایت نامہ آ گیا ہے!

  • داخلہ چینل کا دورانیہ (20)ٹوکیو: بہت چھوٹا، آسانی سے نقالی، بہت بڑا، موقع سے محروم
  • باہر نکلنے کے راستے کا دورانیہ (10)اس کے علاوہ ، اس نے کہا کہ اس کی وجہ یہ ہے کہ اس کی قیمت کم ہے۔
  • اے ٹی آر ضرب ((2.0 سٹاپ نقصان ، 0.5 اضافہ)یہ تناسب بہت اہم ہے، سٹاپ نقصان کو کافی جگہ دینا، اور ذخیرہ اندوزی کو اعتدال پسند رکھنا
  • زیادہ سے زیادہ یونٹ کی تعدادٹویٹر پر: خطرے پر قابو رکھو، لالچ نہ کرو!

جنگلی استعمال کے منظرنامے

اس حکمت عملی کو استعمال کرنے کا بہترین وقت کب ہے؟

بہترین استعمال:

  • رجحان سازی کی اقسام (مثال کے طور پر کریپٹو کرنسی ، اجناس کے مستقبل)
  • واضح طور پر سمت کے ساتھ مارکیٹ کا ماحول
  • آپ کو ایک اعلی معیار کے سگنل کے لئے انتظار کرنے کے لئے کافی صبر ہے جب

غیر مناسب حالات:

  • اس کے بعد، میں نے اس کے بارے میں سوچا اور اس کے بارے میں سوچا.
  • خبروں میں اکثر تبدیلیوں کا دور
  • جب آپ ہائی فریکوئینسی ٹریڈنگ کرنا چاہتے ہیں

یاد رکھیں: یہ سستے کام سے سستے کام کی حکمت عملی ہے ، یہ آپ کو راتوں رات امیر بنانے کا آلہ نہیں ہے ، بلکہ یہ آپ کو رجحانات کے دوران پیسہ کمانے میں مدد فراہم کرنے کا ایک اچھا ذریعہ ہے!

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2025-11-11 00:00:00
end: 2025-12-10 08:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ZEC_USDT"}]
*/

//@version=6
strategy("Trend $ZEC", shorttitle="$ZEC 1/15m", overlay=true, 
         initial_capital=10000, 
         default_qty_type=strategy.cash, 
         default_qty_value=5000, 
         commission_type=strategy.commission.percent, 
         commission_value=0.06,
         slippage=0,
         max_lines_count=500,
         max_labels_count=500)

// ========== 參數設定 ==========
// 唐奇安通道參數
entry_period = input.int(20, "進場通道週期", minval=1, group="通道設定")
exit_period = input.int(10, "出場通道週期", minval=1, group="通道設定")

// ATR 參數
atr_period = input.int(20, "ATR 週期", minval=1, group="ATR 設定")
atr_stop_mult = input.float(2.0, "止損 ATR 倍數", minval=0.1, step=0.1, group="ATR 設定")
atr_add_mult = input.float(0.5, "加倉 ATR 倍數", minval=0.1, step=0.1, group="ATR 設定")

// 多空結構參數 - 加入多時間框架
swing_length = input.int(160, "結構擺動長度", minval=1, group="📊 多空結構過濾")
structure_timeframe = input.timeframe("1", "結構時間框架", group="📊 多空結構過濾", tooltip="選擇結構判斷的時間週期,空白=當前圖表,D=日線,W=週線")
show_structure_lines = input.bool(false, "顯示結構線", group="📊 多空結構過濾")
show_structure_labels = input.bool(false, "顯示結構標籤", group="📊 多空結構過濾")

// 加倉設定
max_units = input.int(2, "最大單位數(含首次)", minval=1, maxval=10, group="倉位管理")
position_size = input.int(5000, "每單位資金(USD)", minval=100, group="倉位管理", tooltip="10000U本金分2次進場,每次5000U")

// 顯示設定
show_channels = input.bool(false, "顯示通道", group="顯示設定")
show_atr_lines = input.bool(false, "顯示 ATR 線", group="顯示設定")
show_labels = input.bool(true, "顯示標籤", group="顯示設定")
show_table = input.bool(false, "顯示資訊面板", group="顯示設定")
label_distance = input.float(2.5, "標籤距離 K 棒倍數", minval=0.1, step=0.1, group="顯示設定", tooltip="標籤距離K棒的ATR倍數")
show_label_lines = input.bool(false, "顯示標籤連線", group="顯示設定")

// ========== 計算唐奇安通道 ==========
entry_upper = ta.highest(high, entry_period)
entry_lower = ta.lowest(low, entry_period)
exit_upper = ta.highest(high, exit_period)
exit_lower = ta.lowest(low, exit_period)

// ========== 計算 ATR (N值) ==========
N = ta.atr(atr_period)

// ========== 多時間框架多空結構判斷 ==========
// 計算結構的函數
f_calculate_structure() =>
    var int trend = 0
    var float lastHigh = na
    var float lastLow = na
    
    swingHigh = ta.pivothigh(high, swing_length, swing_length)
    swingLow = ta.pivotlow(low, swing_length, swing_length)
    
    if not na(swingHigh)
        lastHigh := swingHigh
    
    if not na(swingLow)
        lastLow := swingLow
    
    if not na(lastHigh) and close > lastHigh and trend != 1
        trend := 1
    
    if not na(lastLow) and close < lastLow and trend != -1
        trend := -1
    
    [trend, lastHigh, lastLow]

// 獲取指定時間框架的結構
[structure_trend_mtf, last_structure_high_mtf, last_structure_low_mtf] = request.security(syminfo.tickerid, structure_timeframe, f_calculate_structure(), lookahead=barmerge.lookahead_off)

// 使用多時間框架的結構趨勢
structure_trend = structure_trend_mtf
last_structure_high = last_structure_high_mtf
last_structure_low = last_structure_low_mtf

// 檢測結構變化(用於繪製標籤)
var int prev_structure_trend = 0
bool bull_break = structure_trend == 1 and prev_structure_trend != 1
bool bear_break = structure_trend == -1 and prev_structure_trend != -1
prev_structure_trend := structure_trend

// 繪製結構突破標籤
if show_structure_labels
    if bull_break
        label.new(bar_index, low, "多方結構", style=label.style_label_up, color=color.new(color.green, 0), textcolor=color.white, size=size.small)
    
    if bear_break
        label.new(bar_index, high, "空方結構", style=label.style_label_down, color=color.new(color.red, 0), textcolor=color.white, size=size.small)

// ========== 持倉狀態追蹤 ==========
var float entry_price = na
var float[] add_prices = array.new_float(0)
var int position = 0
var int units = 0
var float stop_loss = na

// ========== 進場訊號 (加入結構過濾) ==========
long_entry_signal = close > entry_upper[1] and structure_trend == 1
short_entry_signal = close < entry_lower[1] and structure_trend == -1

long_entry = long_entry_signal and position != 1
short_entry = short_entry_signal and position != -1

// ========== 加倉訊號 ==========
long_add = false
short_add = false

if position == 1 and units < max_units
    if array.size(add_prices) > 0
        last_add_price = array.get(add_prices, array.size(add_prices) - 1)
        long_add := close >= last_add_price + (atr_add_mult * N)
    else
        long_add := close >= entry_price + (atr_add_mult * N)

if position == -1 and units < max_units
    if array.size(add_prices) > 0
        last_add_price = array.get(add_prices, array.size(add_prices) - 1)
        short_add := close <= last_add_price - (atr_add_mult * N)
    else
        short_add := close <= entry_price - (atr_add_mult * N)

// ========== 出場訊號 (改為反向訊號出場) ==========
// 多單出場:當空單進場訊號觸發時
long_exit = (position == 1) and short_entry_signal

// 空單出場:當多單進場訊號觸發時
short_exit = (position == -1) and long_entry_signal

// ========== 更新持倉狀態 ==========
if long_entry
    position := 1
    units := 1
    entry_price := close
    array.clear(add_prices)
    array.push(add_prices, close)
    stop_loss := close - (atr_stop_mult * N)
    alert_msg = timeframe.period + " 做多 EP:" + str.tostring(close, "#.##")
    strategy.entry("多單1", strategy.long, qty=position_size/close, comment=alert_msg, alert_message=alert_msg)
    
else if short_entry
    position := -1
    units := 1
    entry_price := close
    array.clear(add_prices)
    array.push(add_prices, close)
    stop_loss := close + (atr_stop_mult * N)
    alert_msg = timeframe.period + " 做空 EP:" + str.tostring(close, "#.##")
    strategy.entry("空單1", strategy.short, qty=position_size/close, comment=alert_msg, alert_message=alert_msg)
    
else if long_add
    units := units + 1
    array.push(add_prices, close)
    stop_loss := close - (atr_stop_mult * N)
    alert_msg = timeframe.period + " 加倉多 " + str.tostring(units) + "/" + str.tostring(max_units) + " EP:" + str.tostring(close, "#.##")
    strategy.entry("多單" + str.tostring(units), strategy.long, qty=position_size/close, comment=alert_msg, alert_message=alert_msg)
    
else if short_add
    units := units + 1
    array.push(add_prices, close)
    stop_loss := close + (atr_stop_mult * N)
    alert_msg = timeframe.period + " 加倉空 " + str.tostring(units) + "/" + str.tostring(max_units) + " EP:" + str.tostring(close, "#.##")
    strategy.entry("空單" + str.tostring(units), strategy.short, qty=position_size/close, comment=alert_msg, alert_message=alert_msg)
    
else if long_exit or short_exit
    if long_exit
        alert_msg = timeframe.period + " 平多 反向訊號"
        strategy.close_all(comment=alert_msg, alert_message=alert_msg)
    if short_exit
        alert_msg = timeframe.period + " 平空 反向訊號"
        strategy.close_all(comment=alert_msg, alert_message=alert_msg)
    
    position := 0
    units := 0
    entry_price := na
    array.clear(add_prices)
    stop_loss := na

// ========== 繪製通道 ==========
plot(show_channels ? entry_upper : na, "進場上軌", color=color.new(color.red, 0), linewidth=2)
plot(show_channels ? entry_lower : na, "進場下軌", color=color.new(color.green, 0), linewidth=2)
plot(show_channels ? exit_upper : na, "出場上軌", color=color.new(color.orange, 50), linewidth=1, style=plot.style_circles)
plot(show_channels ? exit_lower : na, "出場下軌", color=color.new(color.blue, 50), linewidth=1, style=plot.style_circles)

// 繪製結構高低點
plot(show_structure_lines ? last_structure_high : na, "結構高點", color=color.new(color.red, 70), linewidth=2, style=plot.style_stepline)
plot(show_structure_lines ? last_structure_low : na, "結構低點", color=color.new(color.green, 70), linewidth=2, style=plot.style_stepline)

// ========== 繪製 ATR 線 ==========
plot(show_atr_lines and position != 0 ? stop_loss : na, "止損線", color=color.new(color.red, 0), linewidth=2, style=plot.style_cross)

var float next_add_long = na
if position == 1 and units < max_units
    next_add_long := array.size(add_prices) > 0 ? array.get(add_prices, array.size(add_prices) - 1) + (atr_add_mult * N) : entry_price + (atr_add_mult * N)
else
    next_add_long := na

plot(show_atr_lines and position == 1 and units < max_units ? next_add_long : na, "下次加倉(多)", color=color.new(color.yellow, 30), linewidth=1, style=plot.style_stepline)

var float next_add_short = na
if position == -1 and units < max_units
    next_add_short := array.size(add_prices) > 0 ? array.get(add_prices, array.size(add_prices) - 1) - (atr_add_mult * N) : entry_price - (atr_add_mult * N)
else
    next_add_short := na

plot(show_atr_lines and position == -1 and units < max_units ? next_add_short : na, "下次加倉(空)", color=color.new(color.yellow, 30), linewidth=1, style=plot.style_stepline)