गतिशील दो-तरफ़ा स्थिति रणनीति जोड़ें

लेखक:चाओझांग, दिनांकः 2023-11-27 11:33:11
टैगः

img

अवलोकन

यह एक रणनीति है जो दोनों दिशाओं में मजबूत सफलता के संकेतों का उपयोग करके दोनों दिशाओं में स्थिति लेती है। यह एक ही दिशा में दो लगातार मजबूत मोमबत्तियों के दिखाई देने के बाद स्थिति खोलने के लिए एक दिशा का चयन करेगी, फिर जोखिम प्रबंधन के लिए लाभ और हानि को रोकें।

रणनीतिक सिद्धांत

यह रणनीति दो लगातार मजबूत मोमबत्तियों के संकेतों के आधार पर बाजार की दिशा का न्याय करती है। विशेष रूप से, यह प्रत्येक मोमबत्ती के वृद्धि / कमी प्रतिशत की गणना करती है। जब दो लगातार मोमबत्तियों का वृद्धि / कमी प्रतिशत दोनों उपयोगकर्ता द्वारा निर्धारित सीमा (जैसे 6%) से अधिक हो जाता है, तो यह निर्धारित करता है कि दिशा मजबूत है, और तीसरी मोमबत्ती में लंबी / छोटी स्थिति खोलती है।

लंबी स्थितिः पिछले बंद मूल्य की तुलना में लगातार दो कैंडलस्टिक्स के बंद मूल्य 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

अधिक