এই কৌশলটির মূল ধারণা হ'ল শেয়ারের দামের গতিতে স্বল্পমেয়াদী স্পষ্ট সংহতকরণ সনাক্ত করা এবং তারপরে
এই কৌশলটি স্টোকাস্টিক দোলকের সূচক ব্যবহার করে নির্ধারণ করে যে শেয়ারের দাম একত্রীকরণে প্রবেশ করেছে কিনা। ওভারকোপড বা ওভারসোল্ড জোনে স্টোকাস্টিক দোলকের দোলন মূল্য একত্রীকরণ নির্দেশ করে।
স্টোকাস্টিক দোলক যখন দোল করে, তখন মোমবাতিগুলির দিকনির্দেশ পরিবর্তনগুলি প্রবণতা বিপরীত পয়েন্টগুলি সনাক্ত করতে ব্যবহৃত হয়। একটি মোমবাতি কালো থেকে সাদা সংকেতগুলির সংহতকরণ শেষ এবং দীর্ঘ যান। একটি সাদা থেকে কালো সংকেতগুলির সংহতকরণ শেষ এবং সংক্ষিপ্ত যান।
এন্ট্রি করার পরে মুনাফা লক্ষ্যমাত্রা এবং স্টপ লসগুলি ট্রেলিং স্টপ ব্যবহার করে এন্ট্রি মূল্যের উপর ভিত্তি করে গতিশীলভাবে সেট করা হয়। পূর্ণ অবস্থানের জন্য স্থায়ী মুনাফা / ক্ষতি ব্যবহৃত হয়, আংশিক অবস্থানের জন্য ব্যবহৃত ট্রেলিং স্টপ।
কৌশলটি পূর্ণ এবং আংশিক অবস্থান উভয়ই সমর্থন করে। পূর্ণ অবস্থানের জন্য নির্দিষ্ট পয়েন্ট ব্যবহার করা হয়, আংশিক অবস্থানের জন্য ট্রেলিং স্টপ ব্যবহার করা হয়।
ট্রেডিংয়ের সময়গুলিও কৌশলটিতে কনফিগার করা হয়। ট্রেডিং কেবলমাত্র সেট ঘন্টাগুলিতে অনুমোদিত।
স্টোকাস্টিক দোলক স্বল্পমেয়াদী মূল্য সংহতকরণকে সঠিকভাবে চিহ্নিত করে।
সংহতকরণের পর বিপরীত সময়ে ট্রেডিং সঠিকতা বৃদ্ধি করে।
দামের অনুকূল গতির সাথে সাথে ট্রেলিং স্টপগুলি লাভকে লক করে দেয়।
ঝুঁকি প্রাধান্যের উপর ভিত্তি করে সম্পূর্ণ এবং আংশিক অবস্থান ট্রেডিং সমর্থন করে।
ট্রেডিংয়ের সময় অস্থিরতার সময় ভুল ট্রেডিং এড়িয়ে চলুন।
স্টোকাস্টিক ওসিলেটর মিথ্যা সংকেত, অনুপস্থিত এন্ট্রি বা অকাল এন্ট্রি দেয়।
ক্যান্ডেলস্টিক বিপরীতমুখী হতে পারে না সঠিক ট্রেন্ড পরিবর্তন সনাক্ত করার জন্য।
দামের হ্রাসে হ্রাসে হ্রাসে হ্রসে হ্রসে হ্রসে হ্রসে।
আংশিক পজিশন ট্রেডিংয়ের ক্ষেত্রে ঝুঁকি বেশি, বিপরীতমুখী ট্রেডিংয়ের ক্ষেত্রে ক্ষতি বাড়তে পারে।
স্টপ লস এবং ট্রেলিং স্টপ পরামিতি বিভিন্ন যন্ত্রের জন্য মিট করা প্রয়োজন।
বড় বড় ঘটনা কৌশল কার্যকারিতা প্রভাবিত করতে পারে।
আরও ভাল সংহতকরণ সনাক্তকরণের জন্য স্টোক্যাস্টিক দোলকের পরামিতিগুলি অনুকূল করুন।
মোমবাতি সংকেত নিশ্চিত করার জন্য ফিল্টার যোগ করুন, নির্ভুলতা উন্নত।
আরও ভাল ট্র্যাকিংয়ের জন্য ট্রেলিং স্টপ অ্যালগরিদম উন্নত করুন।
একক স্টকগুলিতে ক্ষতি সীমাবদ্ধ করার জন্য পজিশনের আকার নির্ধারণের নিয়ম যোগ করুন।
ইভেন্টের সময়সূচী অন্তর্ভুক্ত করে বড় ইভেন্ট চালিত অস্থিরতা এড়ানো।
প্রবণতা আরও ভালভাবে ধরার জন্য আংশিক অবস্থান মডেল উন্নত করা।
সংহতকরণের পরে টার্নআরাউন্ড কৌশলটি স্টোকাস্টিক দোলক ব্যবহার করে স্বল্পমেয়াদী সংহতকরণ সনাক্ত করে এবং সংহতকরণের পর্যায়ে প্রবণতা বিপরীত পয়েন্টগুলিতে বাণিজ্য করে। এটির একটি শালীন বিজয় হার রয়েছে এবং প্রবণতাগুলিতে সেগমেন্ট মুনাফা লক করার অনুমতি দেয়। তবে, স্টোকাস্টিক মিথ্যা সংকেতগুলির প্রতি প্রবণ। পরামিতিগুলি অনুকূল করে, ফিল্টারগুলি যুক্ত করে ইত্যাদির মাধ্যমে নির্ভুলতা উন্নত করা যেতে পারে। এছাড়াও, ট্রেলিং স্টপগুলি অনুকূল করা, অবস্থানের আকার নিয়ন্ত্রণ করা এবং ইভেন্টের ঝুঁকিগুলি এড়ানো এমন ক্ষেত্র যা ফোকাসের প্রয়োজন। সামগ্রিকভাবে, এই কৌশলটি একটি রেফারেন্স মডেল সরবরাহ করে তবে পৃথক ট্রেডিং স্টাইলের উপর ভিত্তি করে লাইভ ট্রেডিংয়ের জন্য টিউনিং এবং ঝুঁকি নিয়ন্ত্রণের প্রয়োজন।
/*backtest start: 2022-10-27 00:00:00 end: 2023-11-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Cross', overlay=true, initial_capital=1000 ) // Creditos : Cleber.martinelli //////////////////////////////////////////////////////// // // // // // CALENDARIO // // // // // //////////////////////////////////////////////////////// //052) // trading view solicita que se ja informado data para gerar backtest a partir de tal data //começa backtest do trading sistem em qual data ? ano = input.int(2022, minval=1, title="Ano") mes = input.int(1, minval=1, maxval=12, title="Mes") dia = input.int(1, minval=1, maxval=31, title="Dia") hora = input.int(1, minval=1, maxval=23, title="hora") minuto = input.int(0, minval=0, maxval=59, title="minuto") horaabertura = input.int(10, minval=1, maxval=23, title="hora Inicio Operacao Robo") minutoabertura = input.int(40, minval=1, maxval=59, title="Minuto Encerra Tudo") horaencerra = input.int(17, minval=1, maxval=23, title="hora Fechamento") minutoencerra = input.int(50, minval=1, maxval=59, title="Minuto Encerra Novas Operacoes") minutofinaliza = input.int(50, minval=1, maxval=59, title="Minuto Encerra Tudo") //valida se o dia de hoje é posterior ao dia informado acima Validadia = year >= ano and month >= mes and dayofmonth >= dia //cria horario de abertura de negociaçao, considerar default 10 hs, pois os indicadores ja estarão corrigidos abreloja = year >= ano and month >= mes and dayofmonth >= dia and hour >= horaabertura //and minute >= minutoabertura) //cria horario de fechamento de todas as negociaçoes, considerar default 17:00 hs //nenhuma ordem pode ser aberta depois dessa data e as abertas devem ser fechadas fechaloja = year >= ano and month >= mes and dayofmonth >= dia and hour >= horaencerra //and minute >= minutoencerra) fechaloja2 = year >= ano and month >= mes and dayofmonth >= dia and hour >= horaencerra //and minute >= minutofinaliza) //valida horario de negociação, pra liberar as operacoes. lojaaberta = abreloja == true and fechaloja == false and fechaloja2 == false //////////////////////////////////////////////////////// // // // // // Codigo Operacional // // // // // //////////////////////////////////////////////////////// // Inputs da Estratégia pmax = input.int(90, minval=0, maxval=100, title="Estocastico Alvo - Para Short") pmin = input.int(10, minval=0, maxval=100, title="Estocastico Alvo - Para Buy ") parcial = input(title="Parcial ? ", defval=true) p_gain = input.int(150, minval=0, maxval=1000, title="Pontos para Gain ") p_loss = input.int(150, minval=0, maxval=1000, title="Pontos para Loss") p_parcial = input.int(50, minval=0, maxval=100, title="Pontos para Parcial ") // puxando os indicadores que usaremos estoc = ta.stoch(close,high,low,5) if (estoc >=pmax and close < open) strategy.entry("Vende", strategy.short ,qty = 2) if (estoc <=pmax and close > open) strategy.entry("Compra", strategy.long ,qty = 2 ) pm_ativo = strategy.opentrades.entry_price(0) if strategy.position_size > 0 and parcial// Posicionado na compra if strategy.position_size == 2 // Mão cheia if close < pm_ativo - 100 strategy.exit("Fecha Compra", "Compra", loss=p_loss , qty = 2 ) if close > pm_ativo + 50 strategy.exit("Fecha Compra", "Compra", profit=p_gain , qty = 1 ) if strategy.position_size == 1// Mão cheia if close < pm_ativo strategy.exit("Fecha Compra", "Compra", loss=0 , qty = 1 ) if close > pm_ativo + 100 strategy.exit("Fecha Compra", "Compra", profit= p_gain * 1.5 , qty = 1 ) if strategy.position_size < 0 and parcial // Posicionado na Venda if strategy.position_size == -2 // Mão cheia if close > pm_ativo - 100 strategy.exit("Fecha Venda", "Vende", loss=p_loss , qty = 2 ) if close < pm_ativo + 50 strategy.exit("Fecha Venda", "Vende", profit=p_gain , qty = 1 ) if strategy.position_size == -1// Mão cheia if close > pm_ativo strategy.exit("Fecha Venda", "Vende", loss=0 , qty = 1 ) if close < pm_ativo + 100 strategy.exit("Fecha Venda", "Vende", profit=p_gain*1.5 , qty = 1 ) if strategy.position_size > 0 and parcial == false // Sem Parcial strategy.exit("Fecha Compra", "Compra", loss=p_loss , profit = p_gain , qty = 2 ) if strategy.position_size < 0 and parcial == false // Sem Parcial strategy.exit("Fecha Venda", "Vende", loss=p_loss , profit = p_gain , qty = 2 )