ফোর্স ব্রেকথ্রু স্ট্র্যাটেজি হল চলমান গড় এবং আপেক্ষিক শক্তি সূচক (আরএসআই) এর উপর ভিত্তি করে একটি পরিমাণগত ট্রেডিং কৌশল। এটি মূল চলমান গড়ের দামের অগ্রগতি পর্যবেক্ষণ করে বাজার প্রবণতা দিক সনাক্ত করে এবং প্রবেশ সংকেত নির্ধারণের জন্য আরএসআই সূচক ব্যবহার করে। মূল ধারণাটি হ'ল দামগুলি চলমান গড়ের মধ্যে প্রবেশ করার সময় ট্রেডিং সংকেত ইস্যু করা, আরএসআই সূচকের
ফোর্স ব্রেকথ্রু স্ট্র্যাটেজি দুটি চলমান গড় ব্যবহার করে। প্রথমটি দ্রুত চলমান গড় হিসাবে 10 পিরিয়ড ইএমএ। দ্বিতীয়টি ধীর চলমান গড় হিসাবে 200 পিরিয়ড ইএমএ। দ্রুত লাইন বর্তমান মূল্য প্রবণতা প্রতিনিধিত্ব করে এবং ধীর লাইন দীর্ঘমেয়াদী মূল্য প্রবণতা প্রতিনিধিত্ব করে। যখন দামগুলি 10 দিনের লাইনের উপরে উঠে যায় এবং প্রবেশ করে, এটি একটি উত্থান সংকেত। যখন দামগুলি পড়ে এবং 10 দিনের লাইনের নীচে প্রবেশ করে, এটি একটি হ্রাস সংকেত।
কৌশলটি নির্দিষ্ট এন্ট্রি মুহুর্তগুলি নির্ধারণের জন্য আরএসআই সূচককেও অন্তর্ভুক্ত করে। যদি দামগুলি একটি ঊর্ধ্বমুখী প্রবণতায় থাকে এবং একটি আরএসআই নিম্ন পয়েন্ট দ্রুত চলমান গড়ের নীচে প্রদর্শিত হয় (আরএসআই 5 এর নীচে পড়ে), একটি দীর্ঘ সংকেত ট্রিগার করা হয়। যদি দামগুলি হ্রাসপ্রবণতায় থাকে এবং একটি আরএসআই উচ্চ পয়েন্ট দ্রুত চলমান গড়ের উপরে প্রদর্শিত হয় (আরএসআই 95 ছাড়িয়ে যায়), একটি সংক্ষিপ্ত সংকেত ট্রিগার করা হয়।
লং/শর্ট পজিশন নেওয়ার পর স্টপ লস নীতিটি হল যদি দাম ১০ দিনের চলমান গড়কে আবার ভেঙে দেয় তবে পজিশন থেকে বেরিয়ে আসা।
এই কৌশলটির সবচেয়ে বড় সুবিধা হ'ল এর শক্তিশালী প্রবণতা অনুসরণ করার ক্ষমতা। মুভিং গড়গুলির নিজস্ব প্রবণতা বিচার করার দুর্দান্ত কার্যকারিতা রয়েছে। কৌশলটি দ্রুত এবং ধীর রেখাগুলির শক্তির সম্পূর্ণ ব্যবহার করে যেখানে দ্রুত রেখা স্বল্পমেয়াদী প্রবণতা বিচার করে এবং ধীর রেখা দীর্ঘমেয়াদী প্রবণতা বিচার করে। যখন দ্রুত রেখার ধীর রেখার একটি আপগ্রেড অনুপ্রবেশ থাকে, তখন এটি স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী উভয়ই আপগ্রেড নির্দেশ করে, যা একটি শক্তিশালী ক্রয় সংকেত।
আরএসআই সূচক যোগ করাও কৌশলটির সুবিধা বাড়িয়ে তোলে। আরএসআই উচ্চ-নিম্ন পয়েন্টগুলি একত্রিত করে যখন অতিরিক্ত ক্রয় বা অতিরিক্ত বিক্রয় শর্ত দেখা দেয় তখন কার্যকরভাবে ট্রেডিং সংকেত ইস্যু করতে পারে, যা সম্ভাব্য বিপরীত পয়েন্টগুলিতে অংশগ্রহণকে প্রকৃত পারফরম্যান্স উন্নত করতে দেয়।
যদিও কৌশলটি তুলনামূলকভাবে শক্তিশালী প্রবণতা ট্র্যাকিং ক্ষমতা আছে, কোন প্রযুক্তিগত সূচক কৌশল সম্পূর্ণরূপে ক্ষতি এড়াতে পারেন। এখনও কিছু ঝুঁকি আছেঃ
যখন দামের তীব্র ওঠানামা হয়, তখন চলমান গড় দ্বারা উত্পন্ন ট্রেডিং সংকেতগুলি বিলম্বিত হতে পারে।
আরএসআই সূচকগুলি বিপরীতমুখী হতে পারে যা ভুল ট্রেডিং সিগন্যালের মূল্যায়ন করতে পারে।
দীর্ঘমেয়াদী অপারেশনের ক্ষেত্রে অনুপযুক্ত পরামিতিগুলি অত্যধিক ট্রেডিংয়ের দিকে পরিচালিত করতে পারে।
ঝুঁকি হ্রাস করার জন্য, চলমান গড় এবং আরএসআইয়ের মতো পরামিতিগুলি সামঞ্জস্য এবং অনুকূলিত করা যেতে পারে, স্টপ-লস পরিসীমাগুলি যুক্তিসঙ্গতভাবে শিথিল করা যেতে পারে, অবস্থানের আকারগুলি যথাযথভাবে নিয়ন্ত্রণ করা যেতে পারে। অনুকূলিত পরামিতি সংমিশ্রণটি যাচাইয়ের জন্য পুঙ্খানুপুঙ্খভাবে ব্যাকটেস্ট করা উচিত।
কৌশলটির আরও অপ্টিমাইজেশনের সুযোগ রয়েছে, মূলত নিম্নলিখিত বিষয়গুলির উপর দৃষ্টি নিবদ্ধ করা হয়েছেঃ
নমনীয়তা বাড়ানোর জন্য বাজারের অস্থিরতার উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে পরামিতিগুলি সামঞ্জস্য করার জন্য অভিযোজনশীল চলমান গড় যোগ করুন।
বাজারের দামের হিংস্র ওঠানামা মোকাবেলায় বোলিংজার ব্যান্ডের মতো অস্থিরতার সূচক অন্তর্ভুক্ত করা।
মেশিন লার্নিং অ্যালগরিদমকে আরও ভাল প্যারামিটার সংমিশ্রণের জন্য এআই প্রশিক্ষণের মাধ্যমে এবং অটোমেশন উন্নত করার জন্য ট্রেডিং বিধিগুলি বৃদ্ধি করুন।
বিভিন্ন বাজারের কার্যকারিতা যাচাই করার জন্য মাল্টি মার্কেট পোর্টফোলিওর মাধ্যমে পরীক্ষার নমুনা সম্প্রসারণ করা।
ম্যাক্রো নীতি, প্রধান ঘটনা ইত্যাদির উপর ভিত্তি করে মৌলিক বিশ্লেষণ মডিউল চালু করা হবে।
ফোর্স ব্রেকথ্রু স্ট্র্যাটেজি হল একটি প্রাকটিক্যাল চলমান গড় ভিত্তিক কৌশল। এটি দ্রুত এবং ধীর চলমান গড়ের দামের অনুপ্রবেশের মাধ্যমে প্রবণতা বিচার করে এবং আরএসআই সূচকগুলির সাহায্যে সঠিকভাবে বাজারে প্রবেশ করে। এই সংমিশ্রণটি চলমান গড় এবং ওভারকপ্ট / ওভারসোল্ড সূচকগুলির শক্তিগুলি সম্পূর্ণরূপে ব্যবহার করে। কৌশলটি স্থিতিশীল রিটার্ন এবং নিয়ন্ত্রণযোগ্য ঝুঁকি সহ বিভিন্ন বাজারে বৈধ করা হয়। এটি একটি প্রস্তাবিত পরিমাণগত ট্রেডিং কৌশল। আরও অপ্টিমাইজেশন সম্ভাব্য কৌশল কর্মক্ষমতা উন্নত করতে পারে।
/*backtest start: 2024-01-16 00:00:00 end: 2024-01-23 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © JoseMetal //@version=5 //== Constantes c_blanco = color.rgb(255, 255, 255, 0) c_negro = color.rgb(0, 0, 0, 0) c_amarillo_radiactivo = color.rgb(255, 255, 0, 0) c_cian_radiactivo = color.rgb(0, 255, 255, 0) c_verde_radiactivo = color.rgb(0, 255, 0, 0) c_verde = color.rgb(0, 128, 0, 0) c_verde_oscuro = color.rgb(0, 80, 0, 0) c_rojo_radiactivo = color.rgb(255, 0, 0, 0) c_rojo = color.rgb(128, 0, 0, 0) c_rojo_oscuro = color.rgb(80, 0, 0, 0) c_naranja_oscuro = color.rgb(200, 120, 0, 0) noneColor = color.new(color.white, 100) max_float = 10000000000.0 //== Funciones //== Declarar estrategia y período de testeo strategy("Estrategia Larry Connors", shorttitle="Estrategia Larry Connors", overlay=true) fecha_inicio = input(timestamp("1 Jan 2000"), title="• Fecha de inicio", group="Período de pruebas", inline="periodo_de_pruebas") vela_en_fecha = true posicion_abierta = strategy.position_size != 0 LONG_abierto = strategy.position_size > 0 SHORT_abierto = strategy.position_size < 0 GRUPO_P = "Posiciones" P_permitir_LONGS = input.bool(title="LONGS", group=GRUPO_P, defval=true, inline="posiciones") P_permitir_SHORTS = input.bool(title="SHORTS", group=GRUPO_P, defval=true, inline="posiciones") GRUPO_general = "General" mostrar_color_velas = input.bool(title="Colorear velas", defval=true, group=GRUPO_general) //== Inputs de indicadores // Medias móviles simples GRUPO_SMAs = "SMAs" SMA_1_fuente = input.source(title="• (Media de salida) Fuente / Long.", group=GRUPO_SMAs, defval=close, inline="sma_1") SMA_1_length = input.int(title="", group=GRUPO_SMAs, defval=10, minval=1, inline="sma_1") SMA_2_fuente = input.source(title="• (Media tendencial) Fuente / Long.", group=GRUPO_SMAs, defval=close, inline="sma_2") SMA_2_length = input.int(title="", group=GRUPO_SMAs, defval=200, minval=1, inline="sma_2") SMA_1 = ta.ema(SMA_1_fuente, SMA_1_length) SMA_2 = ta.ema(SMA_2_fuente, SMA_2_length) // RSI GRUPO_RSI = "RSI" RSI_src = input.source(title="• Fuente / Longitud", group=GRUPO_RSI, defval=close, inline="rsi_calc") RSI_length = input.int(title="", group=GRUPO_RSI, defval=2, minval=1, inline="rsi_calc") RSI = ta.rsi(RSI_src, RSI_length) RSI_nivel_os = input.int(title="• Sobreventa / Sobrecompra", group=GRUPO_RSI, defval=5, minval=0, maxval=99, inline="rsi_niveles") RSI_nivel_ob = input.int(title="", group=GRUPO_RSI, defval=95, minval=1, maxval=100, inline="rsi_niveles") //== Cálculo de condiciones cierre_sobre_SMA_1 = close > SMA_1 tendencia_alcista = close > SMA_2 RSI_en_sobreventa = RSI < RSI_nivel_os RSI_en_sobrecompra = RSI > RSI_nivel_ob //== Entrada (deben cumplirse todas para entrar) LONG_condition_1 = tendencia_alcista LONG_condition_2 = not cierre_sobre_SMA_1 // Vela con cierre bajo la media rápida LONG_condition_3 = RSI_en_sobreventa[1] and not RSI_en_sobreventa // Sobreventa en la vela anterior y ya no en la actual all_LONG_conditions = LONG_condition_1 and LONG_condition_2 and LONG_condition_3 entrar_en_LONG = P_permitir_LONGS and all_LONG_conditions and vela_en_fecha and not LONG_abierto SHORT_condition_1 = not tendencia_alcista SHORT_condition_2 = cierre_sobre_SMA_1 // Vela con cierre sobre la media rápida SHORT_condition_3 = RSI_en_sobrecompra[1] and not RSI_en_sobrecompra // Sobrecompra en la vela anterior y ya no en la actual all_SHORT_conditions = SHORT_condition_1 and SHORT_condition_2 and SHORT_condition_3 entrar_en_SHORT = P_permitir_SHORTS and all_SHORT_conditions and vela_en_fecha and not SHORT_abierto if (entrar_en_LONG) strategy.entry("Abrir Long", strategy.long) if (entrar_en_SHORT) strategy.entry("Abrir Short", strategy.short) //== Salida exit_LONG_conditions = cierre_sobre_SMA_1 exit_SHORT_conditions = not cierre_sobre_SMA_1 if (LONG_abierto and exit_LONG_conditions) strategy.close("Abrir Long") if (SHORT_abierto and exit_SHORT_conditions) strategy.close("Abrir Short") //== Ploteo en pantalla // SMAs plot(SMA_1, "Media de salida", color=color.aqua, linewidth=2) plot(SMA_2, "Media tendencial", color=tendencia_alcista ? color.green : color.red, linewidth=4) // Color de fondo bgcolor = entrar_en_LONG ? color.new(color.green, 85) : entrar_en_SHORT ? color.new(color.red, 85) : color.new(color.black, 100) bgcolor(bgcolor) // Color de las velas según sobrecompra/sobreventa del RSI color_velas = mostrar_color_velas ? (RSI_en_sobreventa ? #00a800 : RSI_en_sobrecompra ? #ca0000 : na) : na barcolor(color_velas)