[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 1129

 

Por favor, explique por que nada é exibido na janela indicadora como resultado.

Código:

#janela_indicadora de propriedade_separarate_window
#property indicator_buffers 1
#indicador de propriedade_cores1 Vermelho
//---- buffers
duplo Buf_0[];

int init()
{
//---- indicadores

SetIndexBuffer(0,Buf_0);
SetIndexStyle(0,DRAW_LINE, STYLE_SOLID,2);
//----
retorno(0);
}

int start()
{
int i, counted_bars=IndicatorCounted();
i=Bars-counted_bars-1;


while(i>=0)
{
Buf_0[i]=Close[i]/Close[i+1];
i--;
}
retorno(0);
}
//+------------------------------------------------------------------+

 
Abzasc:
Onde ???? está exatamente certo?


Esta condição deve filtrar se (acima>=1|abaixo>=1), alertas, pelo menos um deles deve ser maior que zero, mas não é.

Aqui está

 
Dimka-novitsek:


Esta condição deve filtrar se (acima>==1|| abaixo>=1), os alertas, pelo menos um deles, devem ser maiores que zero, mas não são.

Aqui


int start()
{int y;
y= WindowFirstVisibleBar();Alert ("y",y);
for (y=1; y>=0;y--) // первое выражение 
{ double up=iFractals(Symbol(),PERIOD_M15,MODE_UPPER,y);
double down=iFractals(Symbol(),PERIOD_M15,MODE_LOWER,y);
if (up>=1||down>=1){
Alert("Previous upper fractal is:", up, " Previous lower fractal is:", down);Alert ("y",y);}}

return(0);
}
 
Galion:


Você acaba de dividir a janela do editor em duas partes :) OK, vamos esquecer o duplo clique. Você já definiu o destaque de sintaxe para os arquivos MQL4? Se não, então depois de abrir um arquivo com código MQL no editor você tem que pressionar Syntax - e no final da lista selecionar MQL4 - o destaque será exatamente o mesmo que no MetaEditor

 
Mas eu não entendo onde estou errado?
 
Não, mas ignorá-lo ou colocar y=1 nele não muda nada, eu verifiquei!
 
Dimka-novitsek:
Mas eu não entendo onde estou errado?

Removido o excesso.

int start()
{int y;
y= WindowFirstVisibleBar();Alert ("y",y);
// for (y=5;y>=0;y--)
//{ 
double up=iFractals(Symbol(),PERIOD_M15,MODE_UPPER,y);
double down=iFractals(Symbol(),PERIOD_M15,MODE_LOWER,y);
if (up>=1||down>=1){
Alert("Previous upper fractal is:", up, " Previous lower fractal is:", down);Alert ("y",y);}
//}
//----

//----
return(0);
}

e é assim.

É só isso?

 
dzhini:

Provavelmente eu não coloquei a pergunta corretamente. A negociação é feita em um período de uma hora e não se sabe quando uma negociação acontecerá, mas precisa ser feita durante o dia. Eu gostaria de tornar este recurso passível de troca. Talvez alguém tenha um pedaço de código assim?


Você não precisa procurar por um pedaço de código - você pode passar toda sua vida procurando por ele e não encontrar nada. Você deve procurar uma maneira de construir um fragmento de código por si mesmo. O código que lhe dei não é para cópia estúpida, mas para que você o entenda do começo ao fim, especialmente porque é muito simples. É assim que este código funciona. Ele analisa a lista de ordens de mercado e soma seu valor com as ordens históricas abertas hoje. Se a soma for maior que zero, as ordens já foram abertas hoje e a negociação não é permitida. Se você precisar de um interruptor que lhe permita levar em conta quantos pedidos podem ser abertos hoje, você pode adicioná-lo ao código com uma simples operação. Seu problema é que você não tem o algoritmo de seu programa, você não entende como e em que seqüência seu programa deve funcionar. Invente um algoritmo, caso contrário, sua cabeça ficará uma bagunça.

 
Aí está, falei com você e consegui tudo de uma só vez ))))) parecia afinado - você estava certo (eu não conseguia pular fora do meu algoritmo de solução de problemas). Obrigado por todas as dicas. Agora eu já descobri todas as opções propostas: qual funciona em quais casos.
 
dzhini:
Bem, falei com você e imediatamente entendi tudo )))) parecia afinado - você estava certo (eu não podia pular fora do meu algoritmo de solução de problemas). Obrigado por todas as dicas. Agora tenho todas as opções propostas: qual delas funciona em quais casos.

Observe que os ciclos de busca de pedidos que lhe mostrei não consideram o mestre do pedido - esta é uma característica tão grande pela qual a EA pode distinguir seus próprios pedidos de outros pedidos. Este é um número que pode ser atribuído a uma ordem quando ela é aberta por uma EA - todas as suas ordens têm o mesmo número (ou, se necessário, números diferentes gerados automaticamente). Se o comerciante abre pedidos manualmente, o número mágico é sempre igual a zero! Isto significa que se adicionarmos magia = 0 à EA, a EA interferirá nas negociações manuais do comerciante. Se você quiser que a EA deixe as ordens do comerciante intocadas e manipule apenas suas próprias ordens, você deve definir o assistente para um valor diferente de zero. Neste caso, o Consultor Especialista considerará todas as ordens que não tenham um magik como o de outra pessoa e não as tocará.