[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 155
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Desde que você tomou a iniciativa, vamos tentar elaborar um código que nos sinalizaria a cada minuto com informações sobre o preço de abertura de uma vela de um minuto em um gráfico de cinco minutos (com a possibilidade de trabalhar em um testador). Eu proponho minha própria variante:
Esta opção é melhor.
Obrigado.
Ajude-me a entender. Eu construo o MACD na barra anterior (i+1). Eu encontro valores máximos e mínimos visíveis na janela do gráfico MACD. Eu coloco em Comentário valores máximos, mínimos e atuais das linhas principal e de sinal. Alguém pode me ajudar a descobrir isso.
#property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Lime #property indicator_color2 Red #property indicator_width1 2 //--- buffers double Macd1Buffer[]; double Signal1Buffer[]; //--- for one bar datetime last; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,Macd1Buffer); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,Signal1Buffer); IndicatorDigits(Digits+1); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- Comment(""); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { if(last>=Time[0]) return; double max_M1=-0.01,min_M1=0.01, max_S1=-0.01,min_S1=0.01, max1=-0.01,min1=0.01; int bars_counted=WindowBarsPerChart()-1, limit; limit=bars_counted; //---- macd counted in the 1-st buffer for( int i=0; i<limit; i++) { Macd1Buffer[i]=iMA(NULL,0,6,0,MODE_EMA,PRICE_CLOSE,i+1)-iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i+1); max_M1=MathMax(Macd1Buffer[i],max_M1); min_M1=MathMin(Macd1Buffer[i],min_M1); } //---- macd counted in the 2-nd buffer for( i=0; i<limit; i++) { Signal1Buffer[i]=iMAOnArray(Macd1Buffer,Bars,5,0,MODE_SMA,i); max_S1=MathMax(Signal1Buffer[i],max_S1); min_S1=MathMin(Signal1Buffer[i],min_S1); } max1=MathMax(max_M1,max_S1); min1=MathMin(min_M1,min_S1); Comment( "\n"," Баров = ",WindowBarsPerChart()-1, "\n"," max1 = ",max1, "\n"," min1 = ",min1, "\n"," Macd1Buffer = ",Macd1Buffer[i], "\n"," Signal1Buffer = ",Signal1Buffer[i]); last=Time[0]; //---- return(0); } //+------------------------------------------------------------------+Ajude-me a entender. Eu construo o MACD na barra anterior (i+1). Eu encontro valores máximos e mínimos visíveis na janela do gráfico MACD. Eu coloco em Comentário valores máximos, mínimos e atuais das linhas principal e de sinal. Alguém pode me ajudar a descobrir isso.
O tipo de dado duplo é impresso com 4 dígitos decimais após o ponto. Para emitir números com maior precisão, você deve usar a função DoubleToStr().
Exemplo:
Os dados do tipo duplo são emitidos com 4 dígitos decimais após o ponto. Para emitir números com maior precisão, use a função DoubleToStr().
Os dados do tipo duplo são emitidos com 4 dígitos decimais após o ponto. Para emitir números com maior precisão, use a função DoubleToStr().
exemplo:
Obrigado pela dica. Por que os valores atuais da linha MACD são mostrados incorretamente no Comentário?
Leia novamente, cuidadosamente: para Comentário(), Alerta() e Impressão()
Os dados do tipo duplo são impressos com 4 dígitos decimais após o ponto. Para emitir números com maior precisão, use a função DoubleToStr().