Caros,
É possível a criação de um indicador ou expert que plote em uma data futura as cotações calculadas a partir da volatilidade histórica de um ativo, até uma data parametriazada?
Segue uma imagem com o cone plotado como exemplo.
Se quiser post o codigo que a gente pode dar uma olhada. Como que é feito no ichimoku ou no alligator, no OnInit é feito uma chamada pra dizer que a plotagem é deslocada pra direita ou esquerda e qual buffer. Eu recomendaria tu colocar tua media num buffer sem offset e a parte do cone em outro buffer com o offset pra direita. A parte maior do cone vai ser o mais recente do buffer e o restante tu mantem com desenho vazio (EMPTY_VALUE).
Na verdade o que importa é a cotação da última barra. A partir dela, eu calculo as cotações diárias futuras de 1 desvio padrão da volatilidade histórica do ativo. O resultado desse cálculo é o que deve ser plotado, a partir da última barra. O PLOT_SHIFT não funcionou, para o meu caso, porque desloca o resultado de hoje para X dias.
Segue um exemplo do indicador do tradingview.com com a plotagem do cone da volatilidade histórica e implícita do ativo.Na verdade o que importa é a cotação da última barra. A partir dela, eu calculo as cotações diárias futuras de 1 desvio padrão da volatilidade histórica do ativo. O resultado desse cálculo é o que deve ser plotado, a partir da última barra. O PLOT_SHIFT não funcionou, para o meu caso, porque desloca o resultado de hoje para X dias.
Segue um exemplo do indicador do tradingview.com com a plotagem do cone da volatilidade histórica e implícita do ativo.Nossa, que interessante. Você pode compartilhar o código? Minha maior dificuldade é a plotagem no tempo futuro.
sim
#property version "1.00" #property indicator_chart_window #property indicator_buffers 4 #property indicator_plots 4 //--- plot Label1 #property indicator_label1 "Label1" #property indicator_type1 DRAW_LINE #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- plot Label2 #property indicator_label2 "Label2" #property indicator_type2 DRAW_LINE #property indicator_color2 clrRed #property indicator_style2 STYLE_SOLID #property indicator_width2 1 //--- plot Label3 #property indicator_label3 "Label3" #property indicator_type3 DRAW_LINE #property indicator_color3 clrBlue #property indicator_style3 STYLE_SOLID #property indicator_width3 1 //--- plot Label4 #property indicator_label4 "Label4" #property indicator_type4 DRAW_LINE #property indicator_color4 clrBlue #property indicator_style4 STYLE_SOLID #property indicator_width4 1 //--- input parameters input double Input1=0.02; //--- indicator buffers double Label1Buffer[]; double Label2Buffer[]; double Label3Buffer[]; double Label4Buffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,Label1Buffer,INDICATOR_DATA); SetIndexBuffer(1,Label2Buffer,INDICATOR_DATA); SetIndexBuffer(2,Label3Buffer,INDICATOR_DATA); SetIndexBuffer(3,Label4Buffer,INDICATOR_DATA); PlotIndexSetInteger(0,PLOT_SHIFT, 26); PlotIndexSetInteger(1,PLOT_SHIFT, 26); PlotIndexSetInteger(2,PLOT_SHIFT, 26); PlotIndexSetInteger(3,PLOT_SHIFT, 26); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) { //--- coloca tudo com vazio for(int I=0; I<rates_total; I++) { Label1Buffer[I] = Label2Buffer[I] = Label3Buffer[I] = Label4Buffer[I] = EMPTY_VALUE; } //--- passa na parte mais recente do array desenhando //--- o elemento I=0 eh o elemento mais distante e o I=25 o primeiro candle futuro. //--- note que todos os elementos usam como base a vela atual (mais recente) for(int I=0; I<26; I++) { int offset = 26 - I; double value = (Input1 / price[rates_total - 1]) * offset * MathLog(I); Label1Buffer[rates_total-1-I] = price[rates_total-1] + value; Label2Buffer[rates_total-1-I] = price[rates_total-1] - value; Label3Buffer[rates_total-1-I] = price[rates_total-1] + value * 2.0; Label4Buffer[rates_total-1-I] = price[rates_total-1] - value * 2.0; } //--- como deslocamos 26 pra direita, esse elemento eh a vela atual entao //--- colocamos o preco que recebemos que por padrao eh o fechamento. Label1Buffer[rates_total-1-26] = price[rates_total-1]; Label2Buffer[rates_total-1-26] = price[rates_total-1]; Label3Buffer[rates_total-1-26] = price[rates_total-1]; Label4Buffer[rates_total-1-26] = price[rates_total-1]; //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Caros,
É possível a criação de um indicador ou expert que plote em uma data futura as cotações calculadas a partir da volatilidade histórica de um ativo, até uma data parametriazada?
Segue uma imagem com o cone plotado como exemplo.