
یہ تجارتی حکمت عملی ٹریڈنگ سگنل کا فیصلہ کرنے کے لئے لگاتار تین منفی لائنوں کی شکل اور مساوی نظام پر مبنی ہے۔ جب قیمت 200 دن کی اوسط سے اوپر ہے اور تین مسلسل منفی لائنوں کی شکل ظاہر ہوتی ہے تو ، ایک سے زیادہ پوزیشن کھولی جاتی ہے۔ حکمت عملی متحرک اسٹاپ اور اسٹاپ نقصان کے ذریعہ تجارتی خطرے کا انتظام کرتی ہے ، اور اسٹاپ اور اسٹاپ نقصان کی پوزیشنیں قلیل مدتی اوسط کی پوزیشن اور قیمت میں تبدیلی کی فیصد کے مطابق طے کی جاتی ہیں۔ حکمت عملی صرف مخصوص وقت کی حد میں تجارت کرتی ہے۔
اس تجارتی حکمت عملی میں مسلسل منفی لکیری شکل اور یکساں نظام کے ذریعہ رجحان سازی کے تجارتی مواقع کا فیصلہ کیا جاتا ہے ، جبکہ متحرک اسٹاپ اسٹاپ نقصان اور قلیل مدتی مساوی لائن کی پوزیشن میں تبدیلی کا استعمال کرتے ہوئے خطرے کو کنٹرول کیا جاتا ہے۔ حکمت عملی کی سوچ واضح ہے ، جو درمیانی اور طویل مدتی رجحانات کو سمجھنے والے تاجروں کے لئے موزوں ہے۔ تاہم ، حکمت عملی میں کچھ حدود بھی ہیں ، جیسے سگنل کی وشوسنییتا ، اسٹاپ نقصان کی پوزیشن کی ترتیب ، پوزیشن مینجمنٹ وغیرہ۔ عملی استعمال میں ، حکمت عملی کو مارکیٹ کی خصوصیات اور ذاتی خطرے کی ترجیحات کے مطابق مناسب ایڈجسٹمنٹ اور بہتری کی ضرورت ہے ، اور خطرے کو سختی سے کنٹرول کرنا ہے۔
/*backtest
start: 2023-05-09 00:00:00
end: 2024-05-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Estrategia de Trading", overlay=true)
// Definir el número de cierres de velas decrecientes consecutivas
var int cierres_decrecientes_consecutivos = 0
num_cierres_decrecientes = input.int(3, title="Número de cierres decrecientes", minval=1)
// Definir el porcentaje de cambio para cerrar la operación
porcentaje_cierre_arriba = input.float(1.5, title="Porcentaje de cierre arriba (%)", step=0.1)
porcentaje_cierre_abajo = input.float(1.0, title="Porcentaje de cierre abajo (%)", step=0.1)
// Definir las medias móviles para el cierre de la operación
periodos_media_movil_cierre = input.int(10, title="Períodos de la media móvil para cierre")
periodos_media_movil_200 = input.int(200, title="Períodos de la media móvil de 200")
// Definir el rango de fechas para la simulación
start_date = timestamp(2024, 1, 1, 0, 0)
end_date = timestamp(2024, 12, 31, 23, 59)
// Calcular la media móvil para el cierre de la operación
sma_cierre = ta.sma(close, periodos_media_movil_cierre)
sma_200 = ta.sma(close, periodos_media_movil_200)
// Calcular si el precio está por encima o por debajo de la media móvil para el cierre de la operación
precio_por_encima_sma_cierre = close > sma_cierre
precio_por_debajo_sma_cierre = close < sma_cierre
// Calcular si se han producido num_cierres_decrecientes consecutivos
if (ta.change(close) < 0)
cierres_decrecientes_consecutivos := cierres_decrecientes_consecutivos + 1
else
cierres_decrecientes_consecutivos := 0
es_cierres_consecutivos = cierres_decrecientes_consecutivos >= num_cierres_decrecientes
// Definir condiciones de entrada y salida de la estrategia dentro del rango de fechas y con el precio por encima de la SMA de 200
condicion_entrada = es_cierres_consecutivos and close > sma_200
condicion_cierre_sma = (precio_por_encima_sma_cierre[1] and not precio_por_encima_sma_cierre) or (not precio_por_encima_sma_cierre[1] and precio_por_encima_sma_cierre)
// Calcular precios de salida basados en porcentajes
precio_salida_arriba = strategy.position_avg_price * (1 + porcentaje_cierre_arriba / 100)
precio_salida_abajo = strategy.position_avg_price * (1 - porcentaje_cierre_abajo / 100)
// Ejecutar operación en largo dentro del rango de fechas y con el precio por encima de la SMA de 200
if (condicion_entrada and strategy.opentrades == 0)
strategy.entry("Long", strategy.long)
// Cerrar operación en largo si se cumple la condición de salida por cambio en el cruce de la media móvil dentro del rango de fechas
if (strategy.position_size > 0 and condicion_cierre_sma)
strategy.close("Long")
// Cerrar operación en largo si el precio alcanza el porcentaje de cierre arriba o abajo dentro del rango de fechas
strategy.exit("Stop Loss", "Long", limit=precio_salida_arriba, stop=precio_salida_abajo)
// Plot para visualizar la media móvil para el cierre de la operación
plot(sma_cierre, color=color.red)
// Plot para visualizar la SMA de 200
plot(sma_200, color=color.blue)