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

 
Craft:

Boa tarde.

Você pode me dizer como encontrar o mais alto de uma série:

duplo hc = iClose(NULL, 0, iHighest(Symbol(), 0, MODE_HIGH, PERIOD_M1, kk)));

É feito desta maneira ou estou enganado?

Não consegui encontrar nenhuma resposta procurando por "maior proximidade".

Talvez seja assim:

string sym;int PER=1;//таймфрейм
//+------------------------------------------------------------------+
//| script program                                                   |
//+------------------------------------------------------------------+
int init(){sym=Symbol();return(0);}
int start(){int bar=iHighest(sym,PER,MODE_CLOSE,iBars(sym,PER)-1,0);
  double hc=iClose(NULL,PER,bar);Print(sym," PERIOD_M",PER,"  max_close =",hc,"  Time =",
  TimeToStr(iTime(NULL,PER,bar),TIME_DATE|TIME_MINUTES));return(0);}
//+------------------------------------------------------------------+
 
MikeM:
Tempo[i] - o tempo correspondente à i-ésima barra no gráfico.
Eu não entendo os dados do "amanhã" no gráfico. Onde eles mostram isso? Eu quero oooh-ooh-ooh!!!

Esta é uma versão muito antiga do meu indicador...
Eu estava apenas contando as barras na hora certa para eu colocar a seta lá - mas esta não é a versão certa, porque em alguns casos é feriado, e apenas a hora da sessão de negociação e do instrumento (neste caso é o sberbank)

Agora reescrevi completamente o código e quero que fique OK...

Quero obter =) valores de tempo no eixo X sob a última flecha azul, para verificar o local.

Na verdade, a nova versão do indicador tem em suas matrizes as informações sobre a localização da próxima seta ao longo do eixo X (tempo) e preço, tudo o que resta é colocá-lo no gráfico..... em geral, me ajude, me diga como fazer isso bem

Captura de tela de uma versão antiga...

с

 
qualquer um aqui está respondendo a qualquer pergunta)
 

Boa tarde. Você pode me informar, sob estas condições, que as ordens não se abrem através do nível. O que está errado aqui?

double Mash_Price_1=iCustom(NULL,0,"mashka",0,0);
double Mash_Price_2=iCustom(NULL,0,"mashka",0,1);
double Mash_Price_3=iCustom(NULL,0,"mashka",0,2);

double Max_1,Max_2; //уровень цены 

if(Mash_Price_1>Max_1 && Mash_Price_2==Max_1 && Mash_Price_3<Max_1 || 

Mash_Price_1>Max_1 && Mash_Price_2 < Max_1 && Mash_Price_3<Max_1 ||

Mash_Price_1>Max_1 && Mash_Price_2==Max_1 && Mash_Price_3==Max_1)
{
Opn_B=true;
Opn_S=false;
}
if(Mash_Price_1<Min_1 && Mash_Price_2==Min_1 && Mash_Price_3>Min_1 ||
Mash_Price_1<Min_1 && Mash_Price_2 > Min_1 && Mash_Price_3>Min_1 ||
Mash_Price_1<Min_1 && Mash_Price_2==Min_1 && Mash_Price_3==Min_1)
{
Opn_B=false;
Opn_S=true;
}
}



while(true)
{
if(Total==0 && Opn_B==true)
{
RefreshRates();
SL=Bid-New_Stop(StopLoss)*Point;
TP=Bid+New_Stop(TakeProfit)*Point;
Print("Попытка открыть Buy. Ожидаем ответа...");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP);
if(Ticket>0)
{
Print("Открыт ордер Buy ",Ticket);
return;
}
if(Fun_Error(GetLastError())==1)
continue;
return; 
}

if(Total==0 && Opn_S==true)
{
RefreshRates();
SL=Ask+New_Stop(StopLoss)*Point;
TP=Ask-New_Stop(TakeProfit)*Point;
Print("Попытка открыть Sell. Ждем ответа...");
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP);
if(Ticket>0)
{
Print("Открыт ордер Sell ",Ticket);
return;
}
if(Fun_Error(GetLastError())==1)
continue;
return;
}
 
deyron:

Boa tarde. Você pode me informar, sob estas condições, que as ordens não se abrem através do nível. O que está errado aqui?


Há um botão SRC para inserção de código

O que você tem que seja igual a essas variáveis?

double Max_1,Max_2; //уровень цены 
 
int Bar_Beg = iBarShift(Symbol(),0,Cur_Beg,false);//начальный бар
int Bar_End = iBarShift(Symbol(),0,Cur_End,false);//конечный бар
int Dif_Bar = Bar_Beg - Bar_End;//Разница баров для расчетов Мах и Мин

int High_1 = iHighest(Symbol(),0,MODE_HIGH,Dif_Bar,Bar_End); //Максимальное значение бара
int Low_1 = iLowest (Symbol(),0,MODE_HIGH,Dif_Bar,Bar_End); //Минимальное значение бара

Max_1=High[High_1];
Min_1=Low[Low_1];

E Mashka=(Alto[i]+Baixo[i])/2;

 
deyron:

Aqui está Mashka com nível Min_1.

Aqui está uma opção se:


Verde Max_1,

da história

Max_1 = 1,5485 Min_1 = 1,5461 Mash_Price_1 = 1,5496 Mash_Price_2 = 1,5495 Mash_Price_3 = 1,549

Em que direção você procura o problema?

Você já tentou o tratamento de erros?
 
Se houvesse tentativas de abrir uma ordem, haveria um erro nas mensagens. Se não há nenhuma tentativa de abrir uma ordem, por que haveria um erro. A questão é se as condições de Macha passando pelos níveis estão definidas corretamente. Por que as ordens abrem muito mais tarde do que o esperado, quando os parâmetros são codificados de forma rígida?
 

Pergunta.

Por que a condição não vai

if(Close_1>Open_1 && ( Close_1-Open_1)>=30*Point) buffer[i]=High_1;

Exemplo condicional. \

Procura tudo...mas não o tamanho em pontos... Checou através de Comentário(desperdício,5);

Ie... if(Close_1>Open_1) condition looks fine, but the condition ( Close_1>Open_1 && Close_1-Open_1)>=30*Point) why NOT...!!

O que eu estou fazendo de errado?

Agradecemos antecipadamente!!!)):

 
deyron:
Se houvesse tentativas de abrir uma ordem, ela seria mostrada nas mensagens. Se não há nenhuma tentativa de abrir uma ordem, por que haveria um erro. A questão é se as condições de Macha passando pelos níveis estão definidas corretamente. Por que as ordens abrem muito mais tarde do que o esperado, quando os parâmetros são codificados de forma rígida?

Print() e GetLastError( ) nos lugares certos responderiam a todas as suas perguntas