[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 597
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
A boa tarde, continuando a aprender a codificar, pegou o exemplo EA do artigo da seção tutorial, substituiu o código do exemplo:
A um arbitrário para fins de treinamento:
Os ofícios não aparecem, você poderia me dizer qual é a razão, como consertar o código?Urain, obrigado, nunca deixo de me espantar com a lógica do mql, e se você tentar usar para(int i=1; para tentar, o script não simplificará - você poderia me dizer como formatá-lo, ainda não consigo sentir a lógica da linguagem, como definir o operador que move a matriz?
P. S. Eu declarei a matriz, por engano no roteiro do exemplo foi removido:
Diferenças de preços. Como consequência, diferentes, ao contrário, resultados indicadores.
#property indicator_buffers 2
#código de propriedade_cores1 azul
#indicador de propriedade_color2 Vermelho
int externo n = 20;
int exterior t3_período = 5;
duplo externo b = 0,618;
mBars int externo = 300;
Bars.Count = 0;
int i,t,c;
double Buf1[],Buf2[],CF_p[5001],CF_n[5001],Ch_p[5001],Ch_n[5001],k_n,k_p,ch_p,ch_n,cff_p,cff_n,
AcBars,t3,t32,A1,A2,b2,b3,c1,c2,c3,c4,e1,e2,e3,e4,e5,e6,n1,w1,w2,e12,e22,e32,e42,e52,e62;
//+------------------------------------------------------------------+
int init() {
SetIndexStyle(0, DRAW_LINE);
SetIndexBuffer(0, Buf1);
SetIndexStyle(1, DRAW_LINE);
SetIndexBuffer(1, Buf2);
retorno(0); }
//+------------------------------------------------------------------+
int start() {
limite int;
se (IndicatorCounted()<0) retorno(-1);
limite=Bars-IndicatorCounted();
if (Bars.Count>0 && limit>Bars.Count) limit=Bars.Count;
for(int i=0; i<limit; i++)
{
b2=b*b; b3=b2*b; c1=-b3; c2=(3*(b2+b3)); c3=-3*(2*b2+b3); c4=(1+3*b+b3+3*b2); n1=t3_período;
if(n1<1) n1=1; n1=1+0,5*(n1-1); w1=2/(n1+1); w2=1-w1;
if(AcBars==0) AcBars=Bars-mBars;
for(c=AcBars; c<=Bars-1; c +++) { i=Bars-1-c; {
if(Close[i]>Fechar[i+1]) { Ch_p[i]=Fechar[i]-Fechar[i+1]; CF_p[i]=Ch_p[i]+CF_p[i+1]; Ch_n[i]=0; CF_n[i]=0; }
senão { Ch_p[i]=0; CF_p[i]=0; Ch_n[i]=Fechar[i+1]-Fechar[i]; CF_n[i]=Ch_n[i]+CF_n[i+1]; }}}}
for(t=i+n; t>=i; t--) { ch_p=Ch_p[t]+ch_p; ch_n=Ch_n[t]+ch_n ; cff_p=CF_p[t]+cff_p; cff_n=CF_n[t]+cff_n; }
k_p=ch_p-cff_n; k_n=ch_n-cff_p;
A1=k_p; e1=w1*A1+w2*e1; e2=w1*e1+w2*e2; e3=w1*e2+w2*e3; e4=w1*e3+w2*e4;
e5=w1*e4+w2*e5; e6=w1*e5+w2*e6; t3=c1*e6+c2*e5+c3*e4+c4*e3; Buf1[i]=t3;
A2=k_n; e12=w1*A2+w2*e12; e22=w1*e12+w2*e22; e32=w1*e22+w2*e32; e42=w1*e32+w2*e42;
e52=w1*e42+w2*e52; e62=w1*e52+w2*e62; t32=c1*e62+c2*e52+c3*e42+c4*e32; Buf2[i]=t32;
AcBars=AcBars+1; ch_p=0; ch_n=0; cff_p=0; cff_n=0; }
}
retorno(0); }
Você pode me dizer onde o erro não está atualizando, o histórico é normal e o on-line não está
Boa tarde. Foi declarada uma matriz, o operador que move o índice da matriz foi definido, mas as ordens não estão sendo colocadas. Por favor, diga-me o que está errado.
TenteOrderSend, depois funciona...
Você já leu o helper MetaEditore padrão? Se não, leia o todo...
Boa tarde. Eu declarei uma matriz e defini o operador que move o índice da matriz, mas as ordens não são feitas. Por favor, informe o que está errado.
Preciso encontrar uma posição aberta que tenha a maior perda.
A questão é que preciso encontrar a posição com mais lucro do que a perdedora e fechá-la em contra-fechamento.
Talvez alguém tenha alguma experiência com isso, ou já enfrentou tal problema?
Tente OrderSend, depois funciona...
Você já leu o helper MetaEditore padrão? Se não, leia tudo...
De idade infantil para fazer uma pergunta sem ter abordado a ajuda e o yandex tem crescido. Há muitos Envios, mas as posições não se abrem: