Ajuda na codificação - página 167

 

Quero usar o "PREÇO FECHADO" em vez do preço mediano na codificação abaixo .... Ajuda Plz :

Muito obrigado

int start()

{

duplo ClosePrice=Close[0];

int limit, i, flag, flagh, trend[5000];

duplo acima[5000], dn[5000], preço médio, atr;

int counted_bars = IndicatorCounted();

//---- verificação de possíveis erros

if(counted_bars < 0) return(-1);

//---- última barra contada será contada novamente

if(counted_bars > 0) counted_bars--;

limite=barras_contadas_barras_1;

//impressão(limite);

//----

para (i = Barras; i >= 1; i--) {

TrendUp = EMPTY_VALUE;

TrendDown = EMPTY_VALUE;

atr = iATR(NULL, 0, Nbr_Periods, i);

//Print("atr: "+atr);

median Price = (High+Low)/2;

//Print("medianPrice: "+medianPrice");

up=medianPrice+(Multiplier*atr);

//Print("up: "+up");

dn=preço médio-(Multiplicador*atr);

//Print("dn: "+dn");

tendência=1;

if (Fechar>up) {

tendência=1;

se (tendência == -1) mudançaOfTrend = 1;

//Print("tendência: "+tendência");

}

caso contrário, se (Fechar<dn) {

tendência=-1;

se (tendência == 1) mudançaOfTrend = 1;

//Print("tendência: "+tendência");

}

senão se (tendência===1) {

tendência=1;

changeOfTrend = 0;

}

senão se (tendência==-1) {

tendência=-1;

changeOfTrend = 0;

}

se (tendência0) {

bandeira=1;

//Print("bandeira: "+ bandeira");

}

senão {

bandeira=0;

//Print("flagh: "+ flag");

}

se (tendência>0 && tendência<0) {

flagh=1;

//Print("flagh: "+flagh");

}

senão {

flagh=0;

//Print("flagh: "+ flagh");

}

se (tendência>0 && dn<dn)

dn=dn;

if (trendup)

up=up;

se (bandeira===1)

up=medianPrice+(Multiplier*atr);

if (flagh===1)

dn=median Price(Multiplier*atr);

//-- Desenhe o indicador

se (tendência===1) {

TrendUp=dn;

se (changeOfTrend == 1) {

TrendUp = TrendDown;

changeOfTrend = 0;

}

}

senão se (tendência==-1) {

TrendDown=up;

se (changeOfTrend == 1) {

TrendDown = TrendUp;

changeOfTrend = 0;

}

}

if (trend===1 && trend====-1) {

UpBuffer = iLow(Símbolo(),0,i)-(3*Ponto);

DnBuffer = EMPTY_VALUE;

}

if (trend===-1 && trend====1) {

UpBuffer = EMPTY_VALUE;

DnBuffer = iHigh(Symbol(),0,i)+(3*Point);

}

}

WindowRedraw();

//----

retorno(0);

}

 
rpasupathy:
Quero usar o "PREÇO FECHADO" em vez do preço mediano na codificação abaixo .... Ajuda Plz :

Muito obrigado

int start()

{

duplo ClosePrice=Close[0];

int limit, i, flag, flagh, trend[5000];

duplo acima[5000], dn[5000], preço médio, atr;

int counted_bars = IndicatorCounted();

//---- verificação de possíveis erros

if(counted_bars < 0) return(-1);

//---- última barra contada será contada novamente

if(counted_bars > 0) counted_bars--;

limite=barras_contadas_barras_1;

//impressão(limite);

//----

para (i = Barras; i >= 1; i--) {

TrendUp = EMPTY_VALUE;

TrendDown = EMPTY_VALUE;

atr = iATR(NULL, 0, Nbr_Periods, i);

//Print("atr: "+atr);

median Price = (High+Low)/2;

//Print("medianPrice: "+medianPrice");

up=medianPrice+(Multiplier*atr);

//Print("up: "+up");

dn=preço médio-(Multiplicador*atr);

//Print("dn: "+dn");

tendência=1;

if (Fechar>up) {

tendência=1;

se (tendência == -1) mudançaOfTrend = 1;

//Print("tendência: "+tendência");

}

caso contrário, se (Fechar<dn) {

tendência=-1;

se (tendência == 1) mudançaOfTrend = 1;

//Print("tendência: "+tendência");

}

senão se (tendência===1) {

tendência=1;

changeOfTrend = 0;

}

senão se (tendência==-1) {

tendência=-1;

changeOfTrend = 0;

}

se (tendência0) {

bandeira=1;

//Print("bandeira: "+ bandeira");

}

senão {

bandeira=0;

//Print("flagh: "+ flag");

}

se (tendência>0 && tendência<0) {

flagh=1;

//Print("flagh: "+flagh");

}

senão {

flagh=0;

//Print("flagh: "+ flagh");

}

se (tendência>0 && dn<dn)

dn=dn;

if (trendup)

up=up;

se (bandeira===1)

up=medianPrice+(Multiplier*atr);

if (flagh===1)

dn=median Price(Multiplier*atr);

//-- Desenhe o indicador

se (tendência===1) {

TrendUp=dn;

se (changeOfTrend == 1) {

TrendUp = TrendDown;

changeOfTrend = 0;

}

}

senão se (tendência==-1) {

TrendDown=up;

se (changeOfTrend == 1) {

TrendDown = TrendUp;

changeOfTrend = 0;

}

}

if (trend===1 && trend====-1) {

UpBuffer = iLow(Símbolo(),0,i)-(3*Ponto);

DnBuffer = EMPTY_VALUE;

}

if (trend===-1 && trend====1) {

UpBuffer = EMPTY_VALUE;

DnBuffer = iHigh(Symbol(),0,i)+(3*Point);

}

}

WindowRedraw();

//----

retorno(0);

}

Você pode substituir :

(Alto+Baixo)/2

com

Fechar

 
mladen:
kenwa

De que funcionalidade do símbolo de auto-cheque você está falando? Não existe tal coisa nesse código.

Tudo que você tem que fazer é entrar o símbolo no campo de parâmetro apropriado e ele funcionará (em qualquer símbolo, desde que o nome do símbolo esteja correto) Use o indicador o fareastol fornecido, pois ele faz tudo o que você estava falando que você precisa dele

oi mladen,

vejo estes dentro:

if (ForSymbol1=="") ForSymbol1 = Symbol();

if (ForSymbol2==""") ForSymbol2 = Symbol();

if (ForSymbolSyn3a==""") ForSymbolSyn3a = Symbol();

if (ForSymbolSyn3b==""") ForSymbolSyn3b = Symbol();

if (ForSymbolSyn3c==""") ForSymbolSyn3c = Symbol();

algumas partes:

verificação vaziaSymbol(int limit, string ForSymbol, double& buffer[])

{

limite = MathMax(limite,MathMin(Bars-1,iCustom(ForSymbol,timeFrame,indicatorFileName, "returnBars",0,0)*timeFrame/Period()));

para (int i=limite; i>=0; i--)

{

int y = iBarShift(ForSymbol,TimeFrame,Time);

buffer = iCustom(ForSymbol,timeFrame,indicadorNome do arquivo, "calculateValue",MA_Period,MA_Method,CCI_Period,applied_price,",0,y);

}

}

não posso saber exatamente o que ele está fazendo, pois minha habilidade não pode saber seu propósito exato, mas pelo meu palpite bruto, parece que o código é auto-detectar se nós inserimos um símbolo externo, então mostraremos no gráfico, se nenhum for inserido, mostrará o gráfico Null local. então pensarei que se eu deixar intencionalmente várias linhas de entrada externas em branco fora (não preenchendo nada lá), o indicador mostrará o gráfico Null local repetidamente (pelo menos sobrepondo-se) várias vezes? também como o código se adapta aos símbolos internos predefinidos? não sei exatamente como fazer, mas tento, é como a maneira de anexar (para dessensibilizar a função/reconhecimento do símbolo de entrada externa)? ou como adaptar a modificação aos símbolos internos predefinidos?

a propósito, por que a versão que eu fiz antes da página 166 #1660, ainda repintar ao vivo? que razões básicas causam tal repintura? Obrigado pelos conselhos.

 
kenwa:
oi mladen,

vejo estes dentro:

if (ForSymbol1=="") ForSymbol1 = Symbol();

if (ForSymbol2==""") ForSymbol2 = Symbol();

if (ForSymbolSyn3a==""") ForSymbolSyn3a = Symbol();

if (ForSymbolSyn3b==""") ForSymbolSyn3b = Symbol();

if (ForSymbolSyn3c==""") ForSymbolSyn3c = Symbol();

algumas partes:

verificação vaziaSymbol(int limit, string ForSymbol, double& buffer[])

{

limite = MathMax(limite,MathMin(Bars-1,iCustom(ForSymbol,timeFrame,indicatorFileName, "returnBars",0,0)*timeFrame/Period()));

para (int i=limite; i>=0; i--)

{

int y = iBarShift(ForSymbol,TimeFrame,Time);

buffer = iCustom(ForSymbol,timeFrame,indicadorNome do arquivo, "calculateValue",MA_Period,MA_Method,CCI_Period,applied_price,",0,y);

}

}

não posso saber exatamente o que ele está fazendo, pois minha habilidade não pode saber seu propósito exato, mas pelo meu palpite bruto, parece que o código é auto-detectar se nós inserimos um símbolo externo, então mostraremos no gráfico, se nenhum for inserido, mostrará o gráfico Null local. então pensarei que se eu deixar intencionalmente várias linhas de entrada externas em branco fora (não preenchendo nada lá), o indicador mostrará o gráfico Null local repetidamente (pelo menos sobrepondo-se) várias vezes? também como o código se adapta aos símbolos internos predefinidos? não sei exatamente como fazer, mas tento, é como a maneira de anexar (para dessensibilizar a função/reconhecimento do símbolo de entrada externa)? ou como adaptar a modificação aos símbolos internos predefinidos?

a propósito, por que a versão que fiz antes da página 166 #1660, ainda pinta ao vivo? que razões básicas causam tal repintura? Obrigado pelos conselhos.

Você pode verificar o indicador neste post : https://www.mql5.com/en/forum/178416/page19 para ver como alguns controles adicionais podem ser feitos

 

para #1664, ler e baixar antes, eu não posso adaptar os códigos, muito avançados e complexos para mim.

 
kenwa:
para #1664, ler e baixar antes, eu não posso adaptar os códigos, muito avançados e complexos para mim.

Nem tudo pode ser escrito em duas linhas. Em alguns casos, é impossível

 
fareastol:
Olá Mladen

Em relação ao meu pedido de calcular POC e VA para uma faixa alvo com base em um determinado perfil de mercado, eu tentei o máximo possível. Infelizmente, eu só ganhei valor de POC. Obter valores VA altos/baixos está além da minha capacidade atual.

Além disso, no início da semana, o indicador original Sensor de Nível parece ter erro em seu código, causando uma péssima exibição como você pode ver na figura anexa. Não consigo entender qual a razão, apenas adivinhando que está relacionado a conflitos entre a exibição padrão MT4 e dados de menor intervalo de tempo (<W1).

Por favor, dê uma olhada e me dê conselhos para seguir em frente.

Muito obrigado,

fareastol

fareastol

Isso na tela está acontecendo porque há um intervalo de tempo no gráfico entre os dados da última sexta-feira e os dados do primeiro domingo ou segunda-feira e quando o horário xshift é adicionado aos horários da linha.

Uma solução possível é a desta versão: inverter a tela e em vez de exibi-la da direita para a esquerda para exibi-la da esquerda para a direita (como na figura). Até agora não foi encontrada uma solução para a exibição da direita para a esquerda.

Arquivos anexados:
 

Às vezes basta pensar um pouco (assim que terminei o post anterior, a idéia estava lá )

Aqui está a solução "da direita para a esquerda" (até onde eu testei, ela funciona bem agora)

Arquivos anexados:
 

Hi,

Calculei a linha de desvio padrão "à mão".

Agora quero desenhar um canal como o canal de desvio original a partir do metatrader.

Mas não sei como calcular o fator = 0,618 para minha linha de desvio normal para que funcione como o canal original ...OBJPROP_DEVIATION,0,618)

 

Olá, Mladen,

Você me lembra muitas coisas significativas e me motiva muito.

Obrigado a todos

fareastol