ডায়নামিক দ্বি-মুখী যোগ অবস্থান কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৩-১১-২৭ ১১ঃ৩৩ঃ১১
ট্যাগঃ

img

সারসংক্ষেপ

এটি একটি কৌশল যা উভয় দিকের শক্তিশালী অগ্রগতির সংকেত ব্যবহার করে উভয় দিকের অবস্থান নেয়। এটি একই দিকের দুটি ধারাবাহিক শক্তিশালী মোমবাতি প্রদর্শিত হওয়ার পরে অবস্থান খোলার জন্য একটি দিক বেছে নেবে, তারপরে ঝুঁকি পরিচালনার জন্য স্টপ লাভ এবং স্টপ লস সেট করবে।

কৌশল নীতি

এই কৌশলটি পরপর দুটি শক্তিশালী মোমবাতিগুলির সংকেতের উপর ভিত্তি করে বাজারের দিকনির্দেশ বিচার করে। বিশেষত, এটি প্রতিটি মোমবাতির বৃদ্ধি / হ্রাস শতাংশ গণনা করে। যখন পরপর দুটি মোমবাতিগুলির বৃদ্ধি / হ্রাস শতাংশ উভয়ই ব্যবহারকারীর দ্বারা নির্ধারিত থ্রেশহোল্ড (যেমন 6%) অতিক্রম করে, এটি নির্ধারণ করে যে দিকটি শক্তিশালী, এবং তৃতীয় মোমবাতিতে দীর্ঘ / সংক্ষিপ্ত অবস্থান খোলে।

লং শর্তঃ পূর্ববর্তী বন্ধের মূল্যের তুলনায় পরপর দুইটি ক্যান্ডেলস্টিকের বন্ধের মূল্য ৬% এরও বেশি বেড়েছে

সংক্ষিপ্ত শর্তঃ পূর্ববর্তী বন্ধের মূল্যের তুলনায় পরপর দুইটি ক্যান্ডেলস্টিকের বন্ধের মূল্য 6% এরও বেশি কমেছে

পজিশন খোলার পরে, এটি ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লাভ এবং স্টপ লস দূরত্ব সেট করবে। স্টপ লস দূরত্বটি ব্যবহারকারী দ্বারা ইনপুট করা হয় এবং স্টপ লস দূরত্বটি খোলার দামের বহুগুণ (যেমন 8 গুণ) ।

এই কৌশলটি ঝুঁকি নিয়ন্ত্রণের জন্য কিছু সহায়ক ফাংশনও রয়েছে, যেমন শুধুমাত্র নির্দিষ্ট সময়ের মধ্যে পজিশন খোলার অনুমতি দেওয়া, সর্বাধিক ক্ষতির পরিমাণ নির্ধারণ করা ইত্যাদি।

সুবিধা বিশ্লেষণ

এটি একটি তুলনামূলকভাবে স্থিতিশীল এবং নির্ভরযোগ্য দ্বিমুখী ট্রেডিং কৌশল। প্রধান সুবিধা হলঃ

  1. দ্বি-মুখী ট্রেডিং যখন বাজার উপরে ও নীচে যায় তখন লাভ অর্জন করতে পারে, স্থিতিশীলতা উন্নত করে।

  2. দুটি শক্তিশালী সংকেতের উপর ভিত্তি করে প্রবণতা বিচার করা কার্যকরভাবে গোলমাল ফিল্টার করতে পারে এবং খোলা অবস্থানের গুণমান উন্নত করতে পারে।

  3. স্টপ লাভ এবং স্টপ লসের সেটিংস যুক্তিসঙ্গত, যা ঝুঁকি নিয়ন্ত্রণ এবং ক্ষতির সীমাবদ্ধতার জন্য উপকারী।

  4. সহায়ক ফাংশনগুলি ব্যাপক, যেমন সময় নিয়ন্ত্রণ, সর্বাধিক ক্ষতি নিয়ন্ত্রণ ইত্যাদি। তারা ঝুঁকিগুলি খুব ভালভাবে নিয়ন্ত্রণ করতে পারে।

  5. এই কৌশলটি ব্যাকটেস্ট করা এবং অপ্টিমাইজ করা সহজ কারণ এর যুক্তি সহজ এবং পরিষ্কার।

ঝুঁকি বিশ্লেষণ

এই কৌশলটির প্রধান ঝুঁকিগুলি হলঃ

  1. বাজারের সংহতকরণের সময় স্টপ লস হতে পারে। আমরা প্রথম সংকেতের পরামিতি সঠিকভাবে সামঞ্জস্য করতে পারি যাতে সংকেতের গুণমান নিশ্চিত হয়।

  2. ধারাবাহিকভাবে তিনটি সুপার শক্তিশালী মোমবাতি হওয়ার সম্ভাবনা তুলনামূলকভাবে কম, যা পজিশন খোলার সুযোগ কম হতে পারে। আমরা প্যারামিটারটি যথাযথভাবে হ্রাস করতে পারি তবে সংকেত মানের ভারসাম্য বজায় রাখতে হবে।

  3. হঠাৎ ঘটনার কারণে অযৌক্তিক আচরণ স্টপ লস দূরত্ব অতিক্রম বিশাল ক্ষতি হতে পারে। আমরা এই সমস্যা সমাধানের জন্য সর্বোচ্চ ক্ষতি পরিমাণ সেট করতে হবে।

  4. দ্বিমুখী ট্রেডিং বাস্তবায়নের জন্য, আমাদের তহবিল বরাদ্দের সমস্যাগুলিতে মনোযোগ দিতে হবে, অন্যথায় এটি স্টপ লস ছাড়াই মুনাফা অর্জন করতে পারে।

অপ্টিমাইজেশান নির্দেশাবলী

এই কৌশল নিম্নলিখিত দিকগুলির মধ্যে আরও অপ্টিমাইজ করা যেতে পারেঃ

  1. সিগন্যালের গুণমান উন্নত করার জন্য প্রথম সংকেত বিচারের যুক্তিকে অনুকূল করুন। লেনদেনের পরিমাণের পরিবর্তন, অস্থিরতার হার ইত্যাদির মতো আরও কারণ বিবেচনা করা যেতে পারে।

  2. স্টপ লাভ এবং স্টপ লসের মানগুলি অনুকূল করুন। ঝুঁকি-পুরষ্কার অনুপাতকে আরও যুক্তিসঙ্গত করার জন্য বিভিন্ন বাজারের উপর ভিত্তি করে পরামিতিগুলি সামঞ্জস্য করুন। স্টপ লসের দূরত্বটি গতিশীল স্টপ লস হিসাবেও সেট করা যেতে পারে।

  3. আরও ঝুঁকি নিয়ন্ত্রণ মডিউল যোগ করুন। উদাহরণস্বরূপ, সর্বোচ্চ দৈনিক ক্ষতি, সর্বোচ্চ ধারাবাহিক ক্ষতি ইত্যাদি তহবিলের দক্ষ এবং নিরাপদ ব্যবহার নিশ্চিত করতে।

  4. তহবিলের বরাদ্দের অনুপাতকে অনুকূল করে তুলতে হবে, যাতে দ্বি-নির্দেশ ট্রেডিংয়ের মূলধন বরাদ্দকে আরও যুক্তিসঙ্গত করে তোলা যায়, স্টপ লস ছাড়াই লাভ করা যায়।

  5. বিভিন্ন ট্রেডিং জাতের প্রতি ব্যাকটেস্টিং অপ্টিমাইজেশনের জন্য বিভিন্ন প্যারামিটার সংমিশ্রণ সেট করুন, অভিযোজনযোগ্যতা উন্নত করতে।

সংক্ষিপ্তসার

এই কৌশলটি একটি তুলনামূলকভাবে শক্তিশালী দ্বৈত-দিকের যোগ অবস্থান কৌশল। এটিতে উচ্চ সংকেত গুণমান এবং নির্দিষ্ট ঝুঁকি নিয়ন্ত্রণ ক্ষমতা রয়েছে। লাভের স্থিতিশীলতা আরও উন্নত করার জন্য এটির অপ্টিমাইজেশনের জন্য বড় জায়গা রয়েছে। কৌশলটি মাঝারি-দীর্ঘমেয়াদী ট্রেন্ডিং বাজারের জন্য উপযুক্ত এবং এটি বাজারের একীকরণের সময় সুযোগগুলিও দখল করতে পারে।


/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title="GAVAD", shorttitle="GAVAD", overlay=false, initial_capital=36000)

////////////////////////////////////////////////////////
//                                                    //
//                                                    //
//                     GAVAD %                        //
//                                                    //
//                                                    //
////////////////////////////////////////////////////////
Sinal = input(6, title="Sinal", type=input.integer, minval=1, maxval=150)
//Objetivo = input(6, title="Objetivo", type=input.integer, minval=1, maxval=100)
Multip = input(10000, title="Sinal", type=input.integer, minval=1, maxval=100000)



//GavadEntrada1 = (close - low [1])/close[1]
//plot(GavadEntrada1, style=plot.style_line, linewidth=3, color=color.yellow)

//sombra
//DownOL = (low - open ) / open * -10000
//plot(DownOL, style=plot.style_area, linewidth=3, color=color.silver)


// imprime o GAVAD
GavadEntrada = (close - close [1])/close[1] * Multip
plot(GavadEntrada, style=plot.style_histogram, linewidth=3, color=color.purple)

//linha do Sinal
plot(Sinal, style=plot.style_line, linewidth=1, color=color.yellow)
//linha do Objetivo
//plot(Objetivo, style=plot.style_line, linewidth=1, color=color.white)

Fura1 = GavadEntrada [0] >= Sinal
Fura2 = GavadEntrada [1] >= Sinal

Alert = Fura1
plotshape(Alert, style=shape.circle,  location = location.top, color= color.yellow)

SinalON = Fura1 and Fura2
plotshape(SinalON, style=shape.circle,  location = location.bottom, color= color.green)



////////////////////////////////////////////////////////
//                                                    //
//                                                    //
//              CONDIÇÕES DE OPERACAO                 //
//                                                    //
//                                                    //
////////////////////////////////////////////////////////



Sell_Forte2 = SinalON
//plotshape(Sell_Forte2, style=shape.xcross, color=color.yellow, location=location.bottom)

//Call_Forte2 = SinalON
//plotshape(Call_Forte2, style=shape.xcross, color=color.yellow, location=location.top)


////////////////////////////////////////////////////////
//                                                    //
//                                                    //
//                    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(2021, minval=1, title="Ano")
mes = input(1, minval=1, maxval=12, title="Mes")
dia = input(1, minval=1, maxval=30, title="Dia")
hora = input(0, minval=1, maxval=23, title="hora")
minuto = input(0, minval=1, maxval=59, title="minuto")
horaabertura = input(10, minval=1, maxval=23, title="hora Inicio Operacao Robo")
minutoabertura = input(40, minval=1, maxval=59, title="Minuto Encerra Tudo")
horaencerra = input(17, minval=1, maxval=23, title="hora Fechamento")
minutoencerra = input(50, minval=1, maxval=59, title="Minuto Encerra Novas Operacoes")
minutofinaliza = input(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


////////////////////////////////////////////////////////
//                                                    //
//                                                    //
//             GERENCIAMENTO DE RISCO                 //
//                                                    //
//                                                    //
////////////////////////////////////////////////////////

//seta meta mensal
meta = input(150000, "Meta de Lucro")
Contratos= input(5, "Contratos")

//seta tamanho do lote (ordem inicial-unica)
tamanhodolote = Contratos

//seta stop gain final em pontos (metade da barra anterior)
//gaintotal = input(30, "Gain")
gaintotal = input(3, "Gain")

//seta stop loss final em pontos
lossmaximo = input(8, "Loss")
//lossmaximo = (open- close)*100

////////////////////////////////////////////////////////
//                                                    //
//                     Checkbox                       //
//                                                    //
////////////////////////////////////////////////////////

//ativacomprasretorno = input(title="Ativar Compras Retorno", type=input.bool , defval=true)
//ativavendasretorno = input(title="Ativar Vendas Retorno", type=input.bool , defval=true)


////////////////////////////////////////////////////////
//                                                    //
//                                                    //
//                  COMPRA E VENDA                    //
//                                                    //
//                                                    //
////////////////////////////////////////////////////////

Tradenumber = strategy.closedtrades + 1
Batemeta = strategy.netprofit < meta

//COMPRA RETORNO
//longcondition2 = Validadia and Call_Forte2 and Batemeta


//strategy.entry("Comprar", strategy.long, tamanhodolote, when=longcondition2, comment="[Oper=" + tostring(Tradenumber) + "]win=" + tostring(strategy.wintrades) + " | Loss=" + tostring(strategy.losstrades))
//strategy.exit("Saida Compra", "Comprar", profit=gaintotal, loss=lossmaximo)
//if (CruzamentoFechaCallGG)
    //strategy.close(id="Comprar")
//if (EscapeFechaCall)
  // strategy.close(id="Comprar")   
   
    
//plotchar(longcondition2, char="C", location=location.bottom, color=color.lime, transp=0)
//alertcondition(longcondition2, "Comprar", "Compra Rápida!")

//VENDA RETORNO
Shortcondition2 = Validadia and Sell_Forte2 and Batemeta

strategy.entry("Vender", strategy.short, tamanhodolote, when=Shortcondition2)
strategy.exit("Fecha Venda", "Vender", profit=gaintotal, loss=lossmaximo)
//if (CruzamentoFechaSellGG)
   // strategy.close(id="Vender")
//if (EscapeFechaSell)
   // strategy.close(id="Comprar")  
//plotchar(CruzamentoFechaSellGG, char="Y", location=location.top, color=color.lime, transp=0) 

//plotchar(longcondition2, char="S", location=location.bottom, color=color.lime, transp=0)
//alertcondition(longcondition2, "Vender", "Venda Rápida!")

//fim do codigo

আরো