[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

[Deleted]  

É 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'.

[Deleted]  

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().

[Excluído]  

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.