[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 231

 

Concordo com você sobre a cor, mas eu gostaria de poder mudar o método MA. Talvez você possa me dizer como fazer isso corretamente. Por exemplo, se através do meta-editor copiar parte do código, que é responsável pelo método MA do aligátor (por exemplo) e colá-lo no código MASD? Ou ainda é uma idéia louca?

 
kiroyama:

Talvez você possa me dizer como fazer isso corretamente.

Eu vou e peço a vocês que levem a sério o conselho. Vale a pena aprender a programar. Não é tão difícil quanto possa parecer. Os benefícios serão enormes!
 

Boa tarde! Há uma semana - mais de uma semana - comecei a entender como escrever indicadores e decidi escrever pelo menos alguma coisa. Ok, não há nada no código. Mas nem sequer traça uma linha!!! Não sei onde, mas não consigo ver nenhum sinal de vida do indicador, como se costuma dizer!!!!!!.

Posso não ter escrito algo importante, algum tipo de comando para desenhá-lo... layout russo - bem, para mim é conveniente assim para

//+------------------------------------------------------------------+
//|                                          поиск вульфа Димона.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window

#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red
double ВерхняячертаBuffer1[];
double НижняячертаBuffer2[];

 double вершина; 
 double основание_первого_снижения;
 double начало;
 double вершина_волны_3;
 
 int timeframe, start ;
 int бар_вершина ;
 int бар_основание_первого_снижения;
 int бар_начало;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()

  {SetIndexStyle(0,DRAW_SECTION,STYLE_SOLID,2,CLR_NONE);Alert ("SetIndexStyle ",GetLastError( ) );
  SetIndexBuffer(0,ВерхняячертаBuffer1);Alert ("SetIndexBuffer ",GetLastError( ) );
   SetIndexEmptyValue(0,0.0);
   
   SetIndexStyle(1,DRAW_SECTION,STYLE_SOLID,2,CLR_NONE);Alert ("SetIndexStyle ",GetLastError( ) );
  SetIndexBuffer(1,НижняячертаBuffer2);Alert ("SetIndexBuffer ",GetLastError( ) ); 
   SetIndexEmptyValue(1,0.0);
//---- indicators




//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----

  // for(int i=Bars; i>=0;i--)
  int i=Bars;
       бар_вершина=iHighest( NULL,  timeframe, MODE_HIGH, i, start ) ;
       вершина =High[ бар_вершина ];
       бар_основание_первого_снижения=iLowest( NULL,  timeframe, MODE_LOW, бар_вершина, start ) ;
       основание_первого_снижения=Low[ бар_основание_первого_снижения ];
       бар_начало=iLowest( NULL,  timeframe, MODE_LOW, бар_вершина*2, бар_вершина ) ;
       начало=Low[ бар_начало ];
       
         
  
    НижняячертаBuffer2[бар_начало]=начало;
    НижняячертаBuffer2[бар_основание_первого_снижения]=основание_первого_снижения;
    
     int бар_проверка=iLowest( NULL,  timeframe, MODE_LOW, 5, 150 ) ;
     double проверка=Low[ бар_проверка ];
    ВерхняячертаBuffer1[бар_проверка]=проверка;
    ВерхняячертаBuffer1[бар_основание_первого_снижения]=основание_первого_снижения;
    
//----
   return(0);
  }
//+------------------------------------------------------------------+

eu mesmo.

 
kiroyama:

Concordo com você sobre a cor, mas eu gostaria de poder mudar o método MA. Talvez você possa me dizer como fazer isso corretamente. Por exemplo, se através do meta-editor copiar parte do código, que é responsável pelo método MA do aligátor (por exemplo) e colá-lo no código MASD? Ou ainda é uma idéia louca?

Podemos usar o código deMetaQuotes para substituir o MA apropriado pelo MACD e o preço também. Recentemente publiquei um indicador para Bollinger com a possibilidade de definir MA e preços. Se você estiver interessado em tal modificação para MACD, com base na descrição da fórmula de cálculo da MetaQuotes, escreva-me em sua mensagem pessoal onde e como modificá-la.

 

Muito está escrito em seu primeiro indicador para que ele funcione corretamente.
Na verdade, comece com uma mais simples. Desenhe uma linha horizontal.
Um indicador sem um ciclo é como uma noite de núpcias sem uma noiva.
Coloque em loop e jogue fora 80% dos lados.

 

Obrigado. Mas sim, eu conheço o code-ahinea, e quero, exatamente, E na verdade, começar com algo mais simples. Desenhe uma linha horizontal.

E não está mostrando nenhum sinal de vida!!! Bem, não horizontal, o que quer que seja!!! Defini dois amortecedores, defini o estilo de linha na Inite, liguei os amortecedores às arrays. Eu não quero ver uma fila! Essa é a questão!

Por favor, quem sabe, talvez eu tenha escrito SetIndexStyle errado, ou algo... ou algo... Eu estabeleço dois pontos para a linha

TopBuffer1[bar_check]=check;
TopBuffer1[bar_base_base_primeira_diminuição]=base_primeira_diminuição; O que mais?

 
Uma linha consiste em pontos. Encontre um lugar em seu programa que especifique quantos pontos a serem sorteados.
 
Obrigado!
 
Finalize-o no programa:
ВерхняячертаBuffer1[0]=25;
ВерхняячертаBuffer1[1]=25;
ВерхняячертаBuffer1[2]=25;
ВерхняячертаBuffer1[3]=25;
ВерхняячертаBuffer1[4]=25;
ВерхняячертаBuffer1[5]=25;
ВерхняячертаBuffer1[6]=25;
ВерхняячертаBuffer1[7]=25;
ВерхняячертаBuffer1[8]=25;
ВерхняячертаBuffer1[9]=25;
ВерхняячертаBuffer1[10]=25;
ВерхняячертаBuffer1[11]=25;
...

e depois pensar no que estava faltando
 
Ok, mais uma vez. Eu defini SetIndexStyle - para traçar uma linha entre dois pontos pré-definidos - como este
DESENHAR_SECÇÃO 1 Segmentos de linha entre valores de linha não vazios
Eu acertei, o que diz a ajuda, certo?
Razão: