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

 

É isso aí, funcionou. Parece que é porque eu estabeleço um buffer.

#property indicator_buffers 1

 

Você fez tudo corretamente. Eu verifiquei - ele sai como deveria (posso lhe dar uma captura de tela).

Eu acabei de acrescentar

#property  indicator_separate_window
#property  indicator_buffers 2
 

Помогите, плиз!!!

double Lots_simb[3];


if(( Lots_simb[0]*2)< Lots_simb[2]) // почему истина ?
{

Print("Lots_simb[0]*2=", Lots_simb[0]*2,"Lots_simb[2]=", Lots_simb[2]);
Open_Buy_otl( symb[0],( Lots_simb[2]/2- Lots_simb[0]));

return;

}

2009.07.10 06:57:09 newseason GBPJPY, M30: Lots_simb[0]*2=8.4  Lots_simb[2]=8.4
 
Cavalheiros do conhecimento, quando o registro no testador diz "Função não permitida em modo de teste", como sei qual função não é permitida?
 
Dimoncheg писал(а) >>
Cavalheiros, quando o registro no testador diz "Função não é permitida no modo teste", como posso saber qual função não é permitida?

Características e limitações dos testes de estratégias comerciais no MetaTrader 4'.

 

Olá, eu realmente preciso de ajuda! Quero fazer um EA baseado em um indicador. No início, como em qualquer indicador, existem estas linhas:

SetIndexBuffer(0,ExtBuffer);
SetIndexBuffer(1,ExtBull1Buffer);
SetIndexBuffer(2,ExtBull2Buffer);
SetIndexBuffer(3,ExtBull3Buffer);
SetIndexBuffer(4,ExtBull4Buffer);
SetIndexBuffer(5,ExtBull5Buffer);
SetIndexBuffer(6,ExtBull6Buffer);
SetIndexBuffer(7,ExtBull7Buffer);
Depois vem o corpo do programa (int start()...) onde as variáveis ExtBullBuffer são calculadas... Eu quero fazer um EA, então não preciso do SetIndexBuffer, mas se eu o remover, enquanto testando as variáveis ExtBullBuffer não são calculadas (para todos os prazos de testes, para todos os prazos ele gera 0, embora não seja verdade)... Você pode aconselhar o que fazer? Obrigado.

 
Levchik >> :

Olá, eu realmente preciso de ajuda! Quero fazer um EA baseado em um indicador. No início, como em qualquer indicador, existem estas linhas:

SetIndexBuffer(0,ExtBuffer);
Depois vem o corpo do programa (int start()...), que calcula as variáveis ExtBullBuffer... Eu quero fazer um EA, então não preciso do SetIndexBuffer, mas se eu o remover, enquanto testando as variáveis ExtBullBuffer não são calculadas (para todos os prazos de teste, para todos os prazos ele gera 0, embora não seja verdade)... Você pode aconselhar o que fazer? >> Obrigado.

Nos buffers indicadores, o buffer é inicializado automaticamente assim que você declara o buffer como indicador (não auxiliar),

em outros programas (não indicadores) buffers precisam ser inicializados com a função ArrayResize(ExtBullBuffer,Bars);

(se o buffer não for explicitamente nomeado duplo ExtBullBuffer[1000]; )

E a inicialização deve ser feita em função onde é suposto atribuir valores ao buffer. No seu caso, no início().

 

Olá a todos. Você pode me dizer como fixar o código do indicador, para que o bip não seja emitido uma vez, mas 10 vezes, ou como há um indicador onde o sinal até o próximo candelabro aparece. Ou seja, o sinal vai o tempo todo a vela em que ocorreu. Tenho um bom sinal, mas apenas uma vez... Infelizmente, não consigo ouvi-lo à noite(((( Agradeço antecipadamente o seu feedback.

#janela_do_cartão_indicador de propriedade
#property indicator_buffers 5
#Indicador de propriedade_color1 Amarelo
#largura_do_indicador de propriedade1 2
#indicador de propriedade_color2 SkyBlue
#largura_do_indicador de propriedade2 2
#indicador de propriedade_color3 Tomate
#largura_do_indicador de propriedade3 2

#indicador de propriedade_color4 Azul
#indicador de propriedade_color5 Vermelho
#largura_do_indicador de propriedade4 1
#largura_do_indicador de propriedade5 1

//---- parâmetros de entrada
preço interno externo = 0; //Aplicar ao preço(0-Fechar;1-Abrir;2-Alto;3-Baixo;4-Preço médio;5-Preço típico;6-Fecho ponderado)
comprimento externo int = 15; //Período do NonLagMA
deslocamento interno externo = 0; //DispLace ou Shift
filtro externo duplo PctFilter = 0; //Dinâmica filtro em decimal
nota de corda externa1 ="ligar Cor: ln=1 ln&dot=2; desligado=0";
cor exterior int = 2; //Switch of Color mode (1-color)
externo int ColorBarBack = 0; //Bar back para modo de cor
Desvio duplo externo = 0; / Desvio de Up/down
nota de corda externa2 ="ligar = 1; desligar = 0";
externo int AlertMode = 0; //box Alert switch (0 off,1-on)
Modo WarningMode int externo = 0; //Sound Warning switch(0 off,1-on)
externo int SendEmail = 0;
arquivo de som de corda externa = "news.wav";
//---- buffers indicadores
duplo MABuffer[];
duplo UpBuffer[];
duplo DnBuffer[];
dupla tendência[];
duplo Del[];
duplo AvgDel[];
double updbuffer[];
double dndbuffer[];

duplo alfa[];
int i, Phase, Len, Cycle=4;
Coeff duplo, beta, t, soma, peso, g;
pi duplo = 3,1415926535;
bool UpTrendAlert=falso, DownTrendAlert=falso;
//+------------------------------------------------------------------+
//| Função de inicialização do indicador personalizado |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(8);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,MABuffer);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,UpBuffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,DnBuffer);

SetIndexBuffer(5,tendência);
SetIndexBuffer(6,Del);
SetIndexBuffer(7,AvgDel);


SetIndexStyle(3,DRAW_ARROW); SetIndexArrow(3,159); SetIndexBuffer(3,updbuffer); SetIndexEmptyValue(3,EMPTY_VALUE);
SetIndexStyle(4,DRAW_ARROW); SetIndexArrow(4,159); SetIndexBuffer(4,dndbuffer); SetIndexEmptyValue(4,EMPTY_VALUE);


nome_curto_de_filtro;
//---- linha indicadora

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
//---- nome para DataWindow e subwindow do indicador
short_name="NonLagMA("+Length+")";
IndicatorShortName(short_name);
SetIndexLabel(0, "NonLagMA");
SetIndexLabel(1, "Para cima");
SetIndexLabel(2, "Dn");
//----
SetIndexShift(0,Displace);
SetIndexShift(1,Displace);
SetIndexShift(2,Displace);
SetIndexShift(3,Displace);
SetIndexShift(4,Deslocar);

SetIndexEmptyValue(0,EMPTY_VALUE);
SetIndexEmptyValue(1,EMPTY_VALUE);
SetIndexEmptyValue(2,EMPTY_VALUE);

SetIndexDrawBegin(0,Length*Cycle+Length+1);
SetIndexDrawBegin(1,Length*Cycle+Length+1);
SetIndexDrawBegin(2,Length*Cycle+Length+1);
//----

Coeff = 3*pi;
Fase = Comprimento-1;
Len = Comprimento*4 + Fase;
ArrayResize(alfa,Len);
Peso=0;

para (i=0;i<Len-1;i++)
{
se (i<=Fase-1) t = 1,0*i/(Fase 1);
senão t = 1,0 + (i-Phase+1)*(2,0*Ciclo-1,0)/(Ciclo*Comprimento-1,0);
beta = MathCos(pi*t);
g = 1,0/(Coeff*t+1);
se (t <= 0,5 ) g = 1;
alfa[i] = g * beta;
Peso += alfa[i];
}

retorno(0);
}

//+------------------------------------------------------------------+
//| NonLagMA_v7.1 |
//+------------------------------------------------------------------+
int start()
{
int i,shift, counted_bars=IndicatorCounted(),limit;
preço duplo;
se ( barras_contadas > 0 ) limite=barras_contadas_bars;
se ( counted_bars < 0 ) retornar(0);
se ( counted_bars ==0 ) limit=Bars-Len-1;
se ( barramentos_contados < 1 )

for(i=1;i<Length*Cycle+Length;i++)
{
MABuffer[Bars-i]=0;
UpBuffer[Bars-i]=0;
DnBuffer[Bars-i]=0;
}

for(shift=limite;shift>=0;shift--)
{
Soma = 0;
para (i=0;i<=Len-1;i++)
{
preço = iMA(NULL,0,1,0,3,Price,i+shift);
Soma += alfa[i]*preço;

}

se (Peso > 0) MABuffer[shift] = (1,0+Deviação/100)*Soma/Peso;


se (PctFilter>0)
{
Del[shift] = MathAbs(MABuffer[shift] - MABuffer[shift+1])

dobro sumdel=0;
for (i=0;i<=Length-1;i++) sumdel = sumdel+Del[shift+i];
AvgDel[shift] = somdel/comprimento;

duplo sumpow = 0;
para (i=0;i<=Length-1;i++) sumpow+=MathPow(Del[shift+i]-AvgDel[shift+i],2);
duplo StdDev = MathSqrt(sumpow/Length);

filtro duplo = PctFilter * StdDev;

if( MathAbs(MABuffer[shift]-MABuffer[shift+1]) < Filtro ) MABuffer[shift]=MABuffer[shift+1];
}
senão
Filtro=0;

se (Cor>0)
{
tendência[shift]= tendência[shift+1];
if (MABuffer[shift]-MABuffer[shift+1] > Filtro) trend[shift]= 1;
if (MABuffer[shift+1]-MABuffer[shift] > Filter) trend[shift]=-1;

updbuffer[shift] = EMPTY_VALUE; dndbuffer[shift] = EMPTY_VALUE;

se (tendência[shift]>0)
{
UpBuffer[shift] = MABuffer[shift];
if (trend[shift+ColorBarBack]<0) UpBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack];
DnBuffer[shift] = EMPTY_VALUE;
if (trend[shift+1]<0&Color>1) updbuffer[shift]= MABuffer[shift];
}
se (tendência[shift]<0)
{
DnBuffer[shift] = MABuffer[shift];
if (trend[shift+ColorBarBack]>0) DnBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack];
UpBuffer[shift] = EMPTY_VALUE;
if (trend[shift+1]>0&Color>1) dndbuffer[shift]= MABuffer[shift];

}
}
}
//----------
mensagem de corda;

se ( tendência[2]<0 && tendência[1]>0 && Volume[0]>1 && !UpTrendAlert)
{
Mensagem = ""+Símbolo()+" M "+Periodo()+" Sinal Não-LagMa para COMPRAR";
se ( AlertMode>0 ) Alerta (Mensagem);
se ( WarningMode>0 ) PlaySound(soundfile);
se ("SendEmail>0") SendMail("NonLagMa", "UpTrendAlert");
UpTrendAlert=verdadeiro; DownTrendAlert=falso;
}

se ( tendência[2]>0 && tendência[1]<0 && Volume[0]>1 && !DownTrendAlert)
{
Mensagem = ""+Símbolo()+" M "+Período()+" Sinal Não-LagMa para VENDA";
se ( AlertMode>0 ) Alerta (Mensagem);
se ( WarningMode>0 ) PlaySound(soundfile);
se ("SendEmail>0") SendMail("NonLagMa", "DownTrendAlert");
DownTrendAlert=verdadeiro; UpTrendAlert=falso;
}
//----
retorno(0);
}

 
E_mc2 >> :

Olá a todos. Favor avisar como fixar o código indyuka que o bip não é exibido uma vez, e depois 10 vezes, ou como há indyuki onde a sinalização até a próxima vela aparece. Ou seja, o sinal vai o tempo todo a vela em que ocorreu. Eu tenho um bom sinal, mas apenas uma vez... Infelizmente, às vezes não consigo ouvi-lo à noite(((( Agradeço antecipadamente a vocês que me ajudarão.

Para que você precisa dele? Conte-me mais sobre isso, talvez haja uma solução e você não saiba como fazer as perguntas certas para que as pessoas entendam.

No que você escreveu, eu tenho duas soluções, você o quê, duas ao mesmo tempo muito longas para escrever :)

..

A propósito, é melhor anexar códigos tão longos como um arquivo.

E para o código, há um botão especial SRC.