[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 297

 
hoz:


Não há ideal! Eu apenas observo as pessoas que escrevem, por assim dizer, para uma visão geral. Às vezes encontro alguns truques que posso aprender com os outros. Às vezes vejo que o código não é legível de forma alguma. Como os tarasBY's, por exemplo. Não importa o quanto eu tente, não pode ser lido. Posso lê-lo em segmentos claros e depois bam! não consigo entender mais nada. E assim em muitos lugares.

Sou um amigo que me pediu para descompilar, e lá é mais fácil de entender do que os códigos do TarasBY. Talvez seja um pouco normal, mas duvido que muitos baixadores os entendam. Quem é inteligente demais para entendê-los, não fará o download... Então surge a questão porque colocá-los lá :)

Eu também não uso nada dele! Por que tentar fazer algo cegamente, você precisa deixar tudo claro, para quê. E a publicação é para publicidade, e se tudo estiver claro, eles farão o download e não encomendarão nada.
 
tara:
Eu meço meu tempo de acordo com o Tempo Médio de Greenwich.
Meu tempo é uma hora a menos que o do servidor e ainda vivo na Europa Central. E você deve ter mais três horas se o servidor for GMT. Estou indo para a cama. Tenha uma boa noite, sem explosões!
 

Agora eu estou dormindo. Boa noite.

O que eles dizem na Catalunha?

 
Buenas noches! Pero ahora ya es madrugada! Mas é tarde da noite!
 
GaryKa:
De jeito nenhum
Sim, é a proporção de dois logaritmos naturais. Agora veja a fórmula de "Substituição da base do logaritmo". Então o resultado é que esta expressão
é equivalente ao logaritmo decimal para bd_LOTSTEP. Na MQL não há uma função separada para o logaritmo decimal, portanto, esta conversão é utilizada.


Isto era o que eu estava dizendo. O código da minha língua... Acho que ou o programador não tem medo da matemática ou é uma espécie de proteção contra a leitura de código (só brincadeira). Não sei, minha opinião pessoal é que a matemática simplifica o algoritmo como a troca...caso, em vez de se.
 
rigonich:

Mostrar SetVLine();
 
Olá, tentei entender como inserir indicadores personalizados na EA. Compilado bem, mas escreve absolutamente

dados errados, por favor indique onde está o erro.




Eu inseri todos os códigos, exceto "copyright"

extern int PeriodP=12;
extern int TimeFrame=0;
double P_up0,P_up1,FrApPrise;
//+
+
//| expert initialization function |
//+
+
int init()
{
//


// return(0); } //+xml-ph-0016@deepl.in+
//| expert deinitialization function |
//+ +
int deinit()
}
//+
+ //| expert start function |
//+
+
int start()
{ //

P_up0=iCustom(Symbol(),Period(), "Price channel",PeriodP,0,0)
P_up1=iCustom(Symbol(),Period(), "rezerv-xrust",FrApPrise,0,0);
{Comment("show price channel=",P_up0,"\n", "show xrust=",P_up1);}
//


return(0);
}



usou dois indicadores 1)https://wwww.

mql5.com/pt/code/8908 https://www.mql5.com/ru/code/8318 Price channel.mq4

2)

Fractal_Level_Xrust_V2.mq4

favor ajudar, por que 1 programa e o outro não quer?
 
gyfto:

Era isso que eu estava dizendo. Condicionar minha linguagem... Acho que ou o programador não tem medo da matemática ou é uma espécie de proteção contra a leitura de código (só brincadeira). Não sei, minha opinião pessoal é que a matemática simplifica o algoritmo como a troca...caso, em vez de se.

Há uma falha nesse código. Aqui, retirado do contexto:


A questão é que a expressão

MathCeil(MathAbs(MathLog( 0.25 )/MathLog(10))) = 1

Portanto, o valor do lote será arredondado para uma casa decimal.


Continue lendo, porém, talvez ajude.

 

Um pequeno acréscimo à descrição da minha pergunta. Redefini o indicador de restrição, aqui está o código

#propriedade copyright "#Copyright © 2008, XrustSolution.#"
#link de propriedade "#xrust.ucoz.net

#janela_do_cartão_indicador de propriedade
TempoTempo interno externo=0;//Se=0, então o atual


fio externo FrApNam="Ap";//nome da linha correspondente ao Fractal ascendente.
fio externo FrDnNam="Dn";//nome da linha correspondente ao Fractal para baixo

//-----------------------------------------------------------------------------+
FrPrise duplo;
duplo FrApPrise=0,FrDnPrise=0;

//+----------------------------------------------------------------------------+
init(){

if(TimeFrame==0){TimeFrame=Periodo();}
IndicatorShortName("Factal_Level_Xrust "+TimeFrame);
FrApNam=StringConcatenate(FrApNam,TimeFrame);
FrDnNam=StringConcatenate(FrDnNam,TimeFrame);
retornar;}
void deinit(){
ObjectDelete(FrDnNam);
ObjectDelete(FrApNam);
Comentário(" ");
retornar;}
//+----------------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
limite int;
tmp duplo;
int i, j,k;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limite=barras_contadas_combarras;
//-----------------------------------------------------------------------------+

LineAp();
LineDn();
string FAP=DoubleToStr((FrApPrise),Dígitos);
string FDP=DoubleToStr((FrDnPrise),Dígitos);
int diap=MathRound((FrApPrise-FrDnPrise)/Point);
{Comentário("TimeFrame="+TimeFrame+
"\nApPrise111 ="+FAP+
"\nDnPrise ="+FDP+
"\nFractal Channel ="
+diap+"Ponto");}

retorno(0);
}
//-----------------------------------------------------------------------------+
// procura linha horizontal pelo nome redraws se o preço mudou |
//-----------------------------------------------------------------------------+
LineDn(){
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS));
FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
//Comentário(FrPrise);
if(ObjectFind(FrDnNam)==0){
if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){retorno;}}}}
FrDnPrise=FrPrise;
ObjectDelete(FrDnNam);

WindowRedraw();
retornar;}
//-----------------------------------------------------------------------------+
// procura por uma linha horizontal pelo nome, redraws se o preço mudou |
//-----------------------------------------------------------------------------+
LineAp(){
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS));
FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
if(ObjectFind(FrApNam)==0){
if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){retorno;}}}}
FrApPrise=FrPrise;
ObjectDelete(FrApNam);

WindowRedraw();
retornar;}
//-----------------------------------------------------------------------------+
//Quim Respeito e respeito!!! |
//+----------------------------------------------------------------------------+
//| Autor : Kim Igor V. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Versão : 07.10.2006 |
//| Descrição : Procure o fractal mais próximo. Retorna o nível de preço. |
//+----------------------------------------------------------------------------+
//| Parâmetros: |
//| sy - nome do instrumento ("" ou NULL - símbolo corrente) |
//| tf - cronograma ( 0 - TF atual) |
//| mode - fractal type (MODE_LOWER|MODE_UPPER) |
//+----------------------------------------------------------------------------+
double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) {
if (sy===""" || sy=="0") sy=Symbol();
duplo f=0;
int d=MarketInfo(sy, MODE_DIGITS), s;
if (d==0) if (StringFind(sy, "JPY"<0) d=4; else d=2;

para (s=2; s<100; s++) {
f=iFractals(sy, tf, mode, s);
se (f!=0) retornar(NormalizeDuplo(f, d))
}
Imprimir("FindNearFractal(): Fractal não encontrado");
retorno(0);
}

Só não preciso de linhas no gráfico, só preciso de dois números (um de cada um desses indicadores espirituais).

 
palomnik:

Uma pequena adição à descrição da minha pergunta: reelaborei o indicador de crise, aqui está o código

Se você quiser obter uma resposta, respeite as pessoas que lêem seus rabiscos.

O código deve ser inserido usando o botão SRC - está acima da caixa de edição do seu post, entre outras ferramentas de formatação.

Razão: