[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 615

 
ALex2008:
Então, ao invés de PERIOD_M1, etc., você pode simplesmente colocar um número inteiro correspondente ao período? Especificamente, ao invés de iOpen(NULL,PERÍODO_M1,1, pode iOpen(NULL,1,1 ?

Sim, você acertou.
 
FAQ:
Quase lá. Obrigado!
 
Fox_RM:
Quase lá. Obrigado!


O que você quer dizer com "quase"? Não precisamos disso, queremos sucesso absoluto :)

 
Você pode sugerir um bom conselheiro?
 
kuk:
O que é um bom conselheiro?

Quem imprime sua própria massa e traz café para a cama...

E sempre aconselha ...

Sob o Presidente de Toda a Rússia... DDD


A EA auto-escrita é a melhor (se você puder fazer dessa maneira)

 

Rapazes, por favor, me digam como extrair valores dia_max, dia_min de um indicador. É claro que o iCustom, mas como? Isto é, a coruja tem um indicador deste tipo inserido nele.

aqui está o cabeçalho...

#property copyright "DOC"
#property link "none"


#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Green
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double day_max;
double day_min;

 
DOCTORS:

Rapazes, por favor, me digam como extrair valores dia_max, dia_min de um indicador. É claro que o iCustom, mas como? Isto é, a coruja tem um indicador deste tipo inserido nele.

Aqui está o cabeçalho...

#property copyright "DOC"
#property link "none"


#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Green
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double day_max;
double day_min;


Por que se preocupar em retirá-los, quando seria muito mais fácil calcular no EA.

Ainda mais porque você só pode tomar buffers indicadores do indicador

 
Vinin:


E por que retirá-las quando é mais fácil calculá-las na EA.

Especialmente porque você só pode pegar os amortecedores de indicador do indicador


Bem, pelo menos mostre os amortecedores indicadores... :( Eu só estou confuso neste momento, se no quadro procurar o máximo/minuto do dia anterior. Isto é, no meu indicador é fácil - por isso, loop, mas minha coruja fica presa...+ problema com a contagem da barra atual (porque posso usar a coruja a qualquer momento) até a última barra do dia anterior (para calcular os máximos). Talvez você possa me dizer como chegar da barra atual à última barra do dia anterior? pelo menos a fórmula durante 30 min, ou seja, quero ver o algoritmo...
 
DOCTORS:

Bem, pelo menos mostre os amortecedores indicadores ...:( Acabei de ficar perplexo no momento, se o conselho de prescrever uma busca por max/min do dia anterior. Isto é, no meu indicador é fácil - por isso, loop, mas minha coruja fica presa...+ problema com a contagem desde a barra atual (porque a coruja pode ser acionada a qualquer momento) até a última barra do dia anterior (para calcular os máximos). Talvez você possa me dizer como chegar da barra atual à última barra do dia anterior? pelo menos a fórmula durante 30 min, ou seja, quero ver o algoritmo...


iHigh(NULL, PERÍODO_D1,1) - a alta de ontem

iLow(NULL, PERÍODO_D1,1) - o mínimo de ontem

iOpen(NULL, PERÍODO_D1,1) - a abertura de ontem

iClose(NULL, PERÍODO_D1,1) - o fechamento de ontem

 

Vinina:



iHigh(NULL, PERÍODO_D1,1) - a alta de ontem

iLow(NULL, PERÍODO_D1,1) - o baixo de ontem

iOpen(NULL, PERÍODO_D1,1) - a abertura de ontem

iClose(NULL, PERÍODO_D1,1) - fechamento de ontem


Peço desculpas pela minha falta de exatidão em relação aos meus pedidos... O resultado final é que o cálculo sobre os altos de diferentes prazos é diferente, isto é compreensível, por isso fiz o seguinte (necessário para uma estratégia de negociação em diferentes prazos):

double ExtMapBuffer1[];

double day_max;

......

int start()

{

int counted_bars = IndicatorCounted();

int limit;
//---- последний посчитанный бар будет пересчитан

if((counted_bars > 0))

counted_bars--;
limit = Bars - counted_bars;
//---- основной цикл

for(int i = 1; i < limit; i++)
{int k,z,t,b,l,n;

k=TimeHour(Time[i]);
z=TimeMinute(Time[i]);
t=Period();

if (t==60){b=24; //значение b определяет количество баров для дня на таймфрейме.
l=24*Period()*60; //l используется для доп. значений, тут не актуально
}


if (t==30){b=48;
l=48*Period()*60;
}

....

....

if (Close[iHighest(NULL,0,MODE_CLOSE,b,i)]> Open[iHighest(NULL,0,MODE_OPEN,b,i)])
{

ExtMapBuffer1[i] = Close[iHighest(NULL,0,MODE_CLOSE,b,i)];
day_max=Close[iHighest(NULL,0,MODE_CLOSE,b,i)];//сделал для того, что значение ExtMapBuffer1[i] при выводе на экран почему-то 0, тогда как day_max показыает правильно...
..... //тут графика

}

else if (Close[iHighest(NULL,0,MODE_CLOSE,b,i)]<= Open[iHighest(NULL,0,MODE_OPEN,b,i)])
{ExtMapBuffer1[i] = Open[iHighest(NULL,0,MODE_OPEN,b,i)];
day_max= Open[iHighest(NULL,0,MODE_OPEN,b,i)];

//опять графика

}

....}

Razão: