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

کثیر اشارے متحرک چلتی اوسط کراس اوور مقداری حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2025-01-06 13:46:47
ٹیگز:ایس ایم اےای ایم اےڈبلیو ایم اےوی ڈبلیو ایم اےایچ ایم اےآر ایم اےALMAایم اے

img

جائزہ

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

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

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

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

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

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

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

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

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

خلاصہ

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


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

//@version=5
strategy("Cruce de Medias Total", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100,max_bars_back=1000)

// Parámetros de entrada
periodo_rapida = input.int(50, title="Periodos para media rápida", minval=1)
periodo_lenta = input.int(200, title="Periodos para media lenta", minval=1)

// Selección del tipo de media móvil
tipo_de_media = input.string(title="Elige el tipo de media móvil", defval="Simple sma", options=["Simple sma", "Exponencial ema", "Ponderada wma", "Volumen ponderada vwma", "Hull hma", "Media suavizada rma", "Media de Arnaud Legoux alma"])

// Posibilidad de estrategia con cruce de tres medias móviles
tres_medias = input.bool(false, title="Estrategia con cruce de 3 medias móviles")
periodo_media = input.int(100, title="Periodos para media media", minval=1)

// Opción de operar en corto
permitir_corto = input.bool(false, title="Permitir operaciones en corto")

// Opción de cuando comprar
cuando_comprar = input.string(title="Cuando comprar", defval="Cruce de medias", options=["Vela anterior cierra por encima de las medias", "Cruce de medias"])
// Opción de cuando vender
cuando_vender = input.string(title="Cuando vender", defval="Cruce de medias", options=["Vela anterior cierra por debajo de las medias", "Cruce de medias"])

float media_mov_rapida = na
float media_mov_media = na
float media_mov_lenta = na

// Definición de las medias móviles
if tipo_de_media == "Simple sma"
    media_mov_rapida := ta.sma(close, periodo_rapida)
    media_mov_media := ta.sma(close, periodo_media)
    media_mov_lenta := ta.sma(close, periodo_lenta)
else if tipo_de_media == "Exponencial ema"
    media_mov_rapida := ta.ema(close, periodo_rapida)
    media_mov_media := ta.ema(close, periodo_media)
    media_mov_lenta := ta.ema(close, periodo_lenta)
else if tipo_de_media == "Ponderada wma"
    media_mov_rapida := ta.wma(close, periodo_rapida)
    media_mov_media := ta.wma(close, periodo_media)
    media_mov_lenta := ta.wma(close, periodo_lenta)
else if tipo_de_media == "Volumen ponderada vwma"
    media_mov_rapida := ta.vwma(close, periodo_rapida)
    media_mov_media := ta.vwma(close, periodo_media)
    media_mov_lenta := ta.vwma(close, periodo_lenta)
else if tipo_de_media == "Hull hma"
    media_mov_rapida := ta.hma(close, periodo_rapida)
    media_mov_media := ta.hma(close, periodo_media)
    media_mov_lenta := ta.hma(close, periodo_lenta)
else if tipo_de_media == "Media suavizada rma"
    media_mov_rapida := ta.rma(close, periodo_rapida)
    media_mov_media := ta.rma(close, periodo_media)
    media_mov_lenta := ta.rma(close, periodo_lenta)
else if tipo_de_media == "Media de Arnaud Legoux alma"
    offset = input.int(0, title="Desfase para ALMA", minval=-100, maxval=100)
    sigma = input.float(6, title="Sigma para ALMA", minval=0.1, maxval=10)
    media_mov_rapida := ta.alma(close, periodo_rapida, offset, sigma)
    media_mov_media := ta.alma(close, periodo_media, offset, sigma)
    media_mov_lenta := ta.alma(close, periodo_lenta, offset, sigma)

// Graficar las medias móviles en el gráfico
plot_rapida = plot(media_mov_rapida, color=color.green, linewidth=2, title="Media Móvil Rápida")
plot_media = plot(tres_medias ? media_mov_media : na, color=color.blue, linewidth=2, title="Media Móvil Media")
plot_lenta = plot(media_mov_lenta, color=color.red, linewidth=2, title="Media Móvil Lenta")

// Rellenar el área entre las medias móviles con color condicionado
fill(plot_rapida, plot_lenta, media_mov_rapida > media_mov_lenta ? color.new(color.green, 90) : color.new(color.red, 90), title="Relleno entre Medias")

// Lógica de la estrategia para cruce de medias
comprado = strategy.position_size > 0  // Verifica si ya hay una posición abierta
vendido = strategy.position_size < 0 

if not comprado  // Solo compra si no hay una posición abierta
    if tres_medias and cuando_comprar == "Cruce de medias"
        if media_mov_rapida > media_mov_media and media_mov_media > media_mov_lenta
            strategy.entry("Largo", strategy.long)
            label.new(bar_index, low, "Largo", style=label.style_label_up, color=color.green, textcolor=color.white)
    else if not tres_medias and cuando_comprar == "Cruce de medias"
        if ta.crossover(media_mov_rapida, media_mov_lenta)
            strategy.entry("Largo", strategy.long)
            label.new(bar_index, low, "Largo", style=label.style_label_up, color=color.green, textcolor=color.white)
    else if tres_medias and cuando_comprar == "Vela anterior cierra por encima de las medias"
        if close[1] > media_mov_rapida and close[1] > media_mov_media and close[1] > media_mov_lenta
            strategy.entry("Largo", strategy.long)
            label.new(bar_index, low, "Largo", style=label.style_label_up, color=color.green, textcolor=color.white)
    else if not tres_medias and cuando_comprar == "Vela anterior cierra por encima de las medias"
        if close[1] > media_mov_rapida and close[1] > media_mov_lenta
            strategy.entry("Largo", strategy.long)
            label.new(bar_index, low, "Largo", style=label.style_label_up, color=color.green, textcolor=color.white)

// Condición de cierre de la posición
if comprado
    if tres_medias and cuando_vender == "Cruce de medias"
        if media_mov_rapida < media_mov_media and media_mov_media < media_mov_lenta
            strategy.close("Largo")
            label.new(bar_index, high, "Cierre Largo", style=label.style_label_down, color=color.red, textcolor=color.white)
    else if not tres_medias and cuando_vender == "Cruce de medias"
        if ta.crossunder(media_mov_rapida, media_mov_lenta)
            strategy.close("Largo")
            label.new(bar_index, high, "Cierre Largo", style=label.style_label_down, color=color.red, textcolor=color.white)
    else if tres_medias and cuando_vender == "Vela anterior cierra por debajo de las medias"
        if close[1] < media_mov_rapida and close[1] < media_mov_media and close[1] < media_mov_lenta
            strategy.close("Largo")
            label.new(bar_index, high, "Cierre Largo", style=label.style_label_down, color=color.red, textcolor=color.white)
    else if not tres_medias and cuando_vender == "Vela anterior cierra por debajo de las medias"
        if close[1] < media_mov_rapida and close[1] < media_mov_lenta
            strategy.close("Largo")
            label.new(bar_index, high, "Cierre Largo", style=label.style_label_down, color=color.red, textcolor=color.white)

// Condición de entrar en corto
if not vendido and permitir_corto
    if tres_medias
        if media_mov_rapida < media_mov_media and media_mov_media < media_mov_lenta
            strategy.entry("Short", strategy.short)
            label.new(bar_index, low, "Short", style=label.style_label_up, color=color.blue, textcolor=color.white)
    else
        if ta.crossunder(media_mov_rapida, media_mov_lenta)
            strategy.entry("Short", strategy.short)
            label.new(bar_index, low, "Short", style=label.style_label_up, color=color.blue, textcolor=color.white)

// Condición de cierre de posición corta
if vendido
    if tres_medias
        if media_mov_rapida > media_mov_media and media_mov_media > media_mov_lenta
            strategy.close("Short")
            label.new(bar_index, high, "Cierre Short", style=label.style_label_down, color=color.purple, textcolor=color.white)
    else
        if ta.crossover(media_mov_rapida, media_mov_lenta)
            strategy.close("Short")
            label.new(bar_index, high, "Cierre Short", style=label.style_label_down, color=color.purple, textcolor=color.white)


متعلقہ

مزید