ورود/ثبت‌نام
cpalme12

cpalme12

@t_cpalme12

تعداد دنبال کننده:0
تاریخ عضویت :۱۴۰۴/۷/۱۳
شبکه اجتماعی تریدر :refrence
ارزدیجیتال
رتبه بین 50150 تریدر
0%
بازدهی 6 ماه اخیر تریدر
(میانگین بازدهی 6 ماه اخیر 100 تریدر برتر :26.6%)
(بازدهی 6 ماه اخیر BTC :18.4%)
قدرت تحلیل
0
1تعداد پیام

تریدر چه نمادی را توصیه به خرید کرده؟

سابقه خرید

فیلتر:
معامله سودآور
معامله ضررده

تخمین بازدهی ماه به ماه تریدر

سال:

پیام های تریدر

فیلتر

نوع پیام

استراتژی معامله گری DCA نوسانی Aptos: تنظیمات دقیق خرید، فروش و حدضرر

نوع پیام:خنثی
قیمت لحظه انتشار:
‎$۴٫۵۹
ICP،تکنیکال،cpalme12

// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org/MPL/2.0/ // © cpalme12 // version =6 indicator("My script")// version =5 indicator("Swing DCA Grid (APT) v1 — 200x-ready", overlay=true, timeframe="", timeframe_gaps=true) // === USER INPUTS === // Strategy / account capital = input.float(title="Account Capital (USD)", defval=1000, minval=1, step=1) leverage = input.int(title="Leverage", defval=200, minval=1) risk_pct = input.float(title="Max Risk per Trade (%) (used for sizing guidance)", defval=1.0, minval=0.01, step=0.01) // Trend + confirmation ema_fast_len = input.int(20, "EMA Fast (Trend)", minval=1) ema_slow_len = input.int(50, "EMA Slow (Macro Filter)", minval=1) vol_len = input.int(20, "Volume SMA Length", minval=1) vol_mult = input.float(1.5, "Volume Spike Multiplier", step=0.1) // Swing anchoring pivot_len = input.int(5, "Pivot length (bars for swing detection)", minval=1) use_pivot = input.bool(true, "Use pivot swing low/high to anchor DCA") // DCA grid settings (percent offsets from base price for longs; mirrored for shorts) level1_off = input.float(1.0, "Level 1 Offset (%)", step=0.1) / 100 level2_off = input.float(2.0, "Level 2 Offset (%)", step=0.1) / 100 level3_off = input.float(4.0, "Level 3 Offset (%)", step=0.1) / 100 // Allocations per level (percent of total notional) alloc1 = input.float(40, "Alloc Level 1 (%)", minval=0) / 100 alloc2 = input.float(35, "Alloc Level 2 (%)", minval=0) / 100 alloc3 = input.float(25, "Alloc Level 3 (%)", minval=0) / 100 // Stop settings stop_method_atr = input.bool(true, "Stop = ATR multiple (otherwise percent)") stop_atr_mult = input.float(1.5, "Stop ATR multiple", step=0.1) stop_pct_manual = input.float(0.8, "Stop % below last DCA entry (if percent)", step=0.01) / 100 // Take profit settings (percent above base for longs) tp1_pct = input.float(4.0, "TP1 (%)", step=0.1) / 100 tp2_pct = input.float(8.0, "TP2 (%)", step=0.1) / 100 tp3_pct = input.float(15.0, "TP3 (%)", step=0.1) / 100 // Alerts & visuals show_labels = input.bool(true, "Show labels") extend_bars = input.int(200, "Extend lines to future bars", minval=20) alert_on = input.bool(true, "Enable alertconditions") // === INDICATORS / FILTERS === ema_fast = ta.ema(close, ema_fast_len) ema_slow = ta.ema(close, ema_slow_len) vol_sma = ta.sma(volume, vol_len) vol_spike = volume > vol_sma * vol_mult bull_trend = ema_fast > ema_slow bear_trend = ema_fast < ema_slow // swing pivots ph = ta.pivothigh(high, pivot_len, pivot_len) pl = ta.pivotlow(low, pivot_len, pivot_len) var float last_pivot_high = na var int last_pivot_high_bar = na var float last_pivot_low = na var int last_pivot_low_bar = na if not na(ph) last_pivot_high := ph last_pivot_high_bar := bar_index - pivot_len if not na(pl) last_pivot_low := pl last_pivot_low_bar := bar_index - pivot_len // choose base price for long/short anchors base_long = use_pivot and not na(last_pivot_low) ? last_pivot_low : close base_short = use_pivot and not na(last_pivot_high) ? last_pivot_high : close // DCA price calculations (long) dca1_long = base_long * (1 - level1_off) dca2_long = base_long * (1 - level2_off) dca3_long = base_long * (1 - level3_off) // DCA price calculations (short) - mirror above dca1_short = base_short * (1 + level1_off) dca2_short = base_short * (1 + level2_off) dca3_short = base_short * (1 + level3_off) // Stop calculation (use ATR or percent) atr = ta.atr(14) var float stop_price_long = na var float stop_price_short = na // For longs: stop under the lowest DCA entry by ATR or percent lowest_long_entry = math.min(math.min(dca1_long, dca2_long), dca3_long) highest_short_entry = math.max(math.max(dca1_short, dca2_short), dca3_short) if stop_method_atr stop_price_long := lowest_long_entry - atr * stop_atr_mult stop_price_short := highest_short_entry + atr * stop_atr_mult else stop_price_long := lowest_long_entry * (1 - stop_pct_manual) stop_price_short := highest_short_entry * (1 + stop_pct_manual) // TP calculations (long) tp1_long = base_long * (1 + tp1_pct) tp2_long = base_long * (1 + tp2_pct) tp3_long = base_long * (1 + tp3_pct) // TP calculations (short) tp1_short = base_short * (1 - tp1_pct) tp2_short = base_short * (1 - tp2_pct) tp3_short = base_short * (1 - tp3_pct) // Notional / margin guidance per level total_notional = capital // interpret this as USD notional reference for suggestions notional1 = total_notional * alloc1 notional2 = total_notional * alloc2 notional3 = total_notional * alloc3 required_margin1 = notional1 / leverage required_margin2 = notional2 / leverage required_margin3 = notional3 / leverage // === DRAW LINES & LABELS === var line l_d1 = na, l_d2 = na, l_d3 = na var line l_stop = na var line l_tp1 = na, l_tp2 = na, l_tp3 = na var label lab_d1 = na, lab_d2 = na, lab_d3 = na, lab_stop = na, lab_tp1 = na, lab_tp2 = na, lab_tp3 = na // delete previous and draw fresh each bar to update anchor shifts if barstate.islast // remove old lines (optional safe-guard) // create / update lines (long scenario style) // DCA lines l_d1 := line.new(bar_index, dca1_long, bar_index + extend_bars, dca1_long, color=color.new(color.green, 0), style=line.style_solid, width=1) l_d2 := line.new(bar_index, dca2_long, bar_index + extend_bars, dca2_long, color=color.new(color.green, 30), style=line.style_solid, width=1) l_d3 := line.new(bar_index, dca3_long, bar_index + extend_bars, dca3_long, color=color.new(color.green, 50), style=line.style_solid, width=1) // Stop l_stop := line.new(bar_index, stop_price_long, bar_index + extend_bars, stop_price_long, color=color.new(color.red, 0), style=line.style_dash, width=2) // TPs l_tp1 := line.new(bar_index, tp1_long, bar_index + extend_bars, tp1_long, color=color.new(color.lime, 0), style=line.style_dotted, width=1) l_tp2 := line.new(bar_index, tp2_long, bar_index + extend_bars, tp2_long, color=color.new(color.lime, 20), style=line.style_dotted, width=1) l_tp3 := line.new(bar_index, tp3_long, bar_index + extend_bars, tp3_long, color=color.new(color.lime, 40), style=line.style_dotted, width=1) if show_labels // remove old labels if exist label.delete(lab_d1); label.delete(lab_d2); label.delete(lab_d3) label.delete(lab_stop); label.delete(lab_tp1); label.delete(lab_tp2); label.delete(lab_tp3) lab_d1 := label.new(bar_index, dca1_long, text="DCA1\n" + str.tostring(dca1_long, format.mintick) + "\nAlloc:" + str.tostring(alloc1*100, "#.##") + "%\nMargin:$" + str.tostring(required_margin1, format.mintick), style=label.style_label_left, color=color.new(color.green, 0), textcolor=color.white, size=size.small) lab_d2 := label.new(bar_index, dca2_long, text="DCA2\n" + str.tostring(dca2_long, format.mintick) + "\nAlloc:" + str.tostring(alloc2*100, "#.##") + "%\nMargin:$" + str.tostring(required_margin2, format.mintick), style=label.style_label_left, color=color.new(color.green, 30), textcolor=color.white, size=size.small) lab_d3 := label.new(bar_index, dca3_long, text="DCA3\n" + str.tostring(dca3_long, format.mintick) + "\nAlloc:" + str.tostring(alloc3*100, "#.##") + "%\nMargin:$" + str.tostring(required_margin3, format.mintick), style=label.style_label_left, color=color.new(color.green, 50), textcolor=color.white, size=size.small) lab_stop := label.new(bar_index, stop_price_long, text="STOP\n" + str.tostring(stop_price_long, format.mintick), style=label.style_label_left, color=color.new(color.red, 0), textcolor=color.white, size=size.small) lab_tp1 := label.new(bar_index, tp1_long, text="TP1\n" + str.tostring(tp1_long, format.mintick), style=label.style_label_left, color=color.new(color.lime, 0), textcolor=color.white, size=size.small) lab_tp2 := label.new(bar_index, tp2_long, text="TP2\n" + str.tostring(tp2_long, format.mintick), style=label.style_label_left, color=color.new(color.lime, 20), textcolor=color.white, size=size.small) lab_tp3 := label.new(bar_index, tp3_long, text="TP3\n" + str.tostring(tp3_long, format.mintick), style=label.style_label_left, color=color.new(color.lime, 40), textcolor=color.white, size=size.small) // === SIMPLE FILTER HINTS (visual) === plot(ema_fast, color=color.new(color.teal, 0), title="EMA Fast") plot(ema_slow, color=color.new(color.orange, 0), title="EMA Slow") plotshape(vol_spike and bull_trend, title="Bull Volume Spike", location=location.belowbar, style=shape.triangleup, color=color.new(color.green,0), size=size.tiny, text="Vol+") plotshape(vol_spike and bear_trend, title="Bear Volume Spike", location=location.abovebar, style=shape.triangledown, color=color.new(color.red,0), size=size.tiny, text="Vol-") // === ALERT CONDITIONS === // Trigger when price touches a DCA level, TP, or stop. (Long-oriented; short mirrored too) dca1_hit_long = ta.crossunder(close, dca1_long) or close <= dca1_long dca2_hit_long = ta.crossunder(close, dca2_long) or close <= dca2_long dca3_hit_long = ta.crossunder(close, dca3_long) or close <= dca3_long tp1_hit_long = ta.crossover(close, tp1_long) or close >= tp1_long tp2_hit_long = ta.crossover(close, tp2_long) or close >= tp2_long tp3_hit_long = ta.crossover(close, tp3_long) or close >= tp3_long stop_hit_long = close <= stop_price_long // short hits dca1_hit_short = ta.crossover(close, dca1_short) or close >= dca1_short dca2_hit_short = ta.crossover(close, dca2_short) or close >= dca2_short dca3_hit_short = ta.crossover(close, dca3_short) or close >= dca3_short tp1_hit_short = ta.crossunder(close, tp1_short) or close <= tp1_short tp2_hit_short = ta.crossunder(close, tp2_short) or close <= tp2_short tp3_hit_short = ta.crossunder(close, tp3_short) or close <= tp3_short stop_hit_short = close >= stop_price_short // Alertcondition wiring if alert_on alertcondition(dca1_hit_long, title="DCA1 Hit (Long)", message="DCA1 Level hit (Long) - consider adding per plan") alertcondition(dca2_hit_long, title="DCA2 Hit (Long)", message="DCA2 Level hit (Long) - consider adding per plan") alertcondition(dca3_hit_long, title="DCA3 Hit (Long)", message="DCA3 Level hit (Long) - consider adding per plan") alertcondition(tp1_hit_long, title="TP1 Hit (Long)", message="TP1 reached (Long)") alertcondition(tp2_hit_long, title="TP2 Hit (Long)", message="TP2 reached (Long)") alertcondition(tp3_hit_long, title="TP3 Hit (Long)", message="TP3 reached (Long)") alertcondition(stop_hit_long, title="STOP Hit (Long)", message="STOP reached (Long) - exit") alertcondition(dca1_hit_short, title="DCA1 Hit (Short)", message="DCA1 Level hit (Short) - consider adding per plan") alertcondition(dca2_hit_short, title="DCA2 Hit (Short)", message="DCA2 Level hit (Short) - consider adding per plan") alertcondition(dca3_hit_short, title="DCA3 Hit (Short)", message="DCA3 Level hit (Short) - consider adding per plan") alertcondition(tp1_hit_short, title="TP1 Hit (Short)", message="TP1 reached (Short)") alertcondition(tp2_hit_short, title="TP2 Hit (Short)", message="TP2 reached (Short)") alertcondition(tp3_hit_short, title="TP3 Hit (Short)", message="TP3 reached (Short)") alertcondition(stop_hit_short, title="STOP Hit (Short)", message="STOP reached (Short) - exit") // === INFO PANEL (table) === var table info = table.new(position.top_right, 1, 8, border_width=1) if barstate.islast table.cell(info, 0, 0, "Swing DCA Grid (APT) — Summary", text_color=color.white, bgcolor=color.blue) table.cell(info, 0, 1, "Base Long: " + str.tostring(base_long, format.mintick)) table.cell(info, 0, 2, "DCA1: " + str.tostring(dca1_long, format.mintick) + " | Margin:$" + str.tostring(required_margin1, format.mintick)) table.cell(info, 0, 3, "DCA2: " + str.tostring(dca2_long, format.mintick) + " | Margin:$" + str.tostring(required_margin2, format.mintick)) table.cell(info, 0, 4, "DCA3: " + str.tostring(dca3_long, format.mintick) + " | Margin:$" + str.tostring(required_margin3, format.mintick)) table.cell(info, 0, 5, "Stop: " + str.tostring(stop_price_long, format.mintick)) table.cell(info, 0, 6, "TPs: " + str.tostring(tp1_long, format.mintick) + ", " + str.tostring(tp2_long, format.mintick) + ", " + str.tostring(tp3_long, format.mintick)) table.cell(info, 0, 7, "Leverage: " + str.tostring(leverage) + " | Capital used ref: $" + str.tostring(total_notional)) // End of script plot(close)

منبع پیام: تریدینگ ویو
سلب مسئولیت

هر محتوا و مطالب مندرج در سایت و کانال‌های رسمی ارتباطی سهمتو، جمع‌بندی نظرات و تحلیل‌های شخصی و غیر تعهد آور بوده و هیچگونه توصیه‌ای مبنی بر خرید، فروش، ورود و یا خروج از بازار‌های مالی نمی باشد. همچنین کلیه اخبار و تحلیل‌های مندرج در سایت و کانال‌ها، صرفا بازنشر اطلاعات از منابع رسمی و غیر رسمی داخلی و خارجی است و بدیهی است استفاده کنندگان محتوای مذکور، مسئول پیگیری و حصول اطمینان از اصالت و درستی مطالب هستند. از این رو ضمن سلب مسئولیت اعلام می‌دارد مسئولیت هرنوع تصمیم گیری و اقدام و سود و زیان احتمالی در بازار سرمایه و ارز دیجیتال، با شخص معامله گر است.

نماد برگزیده
برترین تریدر‌
دنبال شده
هشدار