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

 

Colegas, estou um pouco confuso.

Você precisa usar o indicador para traçar uma linha entre dois pontos


   SetIndexShift(0, DRAW_SECTION);
   SetIndexBuffer(0, z1);

   z1[1]=1.5;
   z1[2]=EMPTY_VALUE;
   z1[3]=EMPTY_VALUE;
   z1[4]=EMPTY_VALUE;
   z1[5]=EMPTY_VALUE;
   z1[6]=1.4;

Não funciona assim, não é mesmo?
 
neoclassic >> :

Colegas, um pouco confusos.

Você precisa usar o indicador para traçar uma linha entre dois pontos

E você dá uma olhada na ajuda SetIndexShift. Função incorreta. O seu é SetIndexStyle.

PS: e se você traçar linhas usando a fórmula y=kx+b, então o indicador irá

é definido para cada dois pontos :-).

 
jartmailru >> :

E você pode dar uma olhada na ajuda SetIndexShift. Função incorreta. O seu é SetIndexStyle.

PS: e se você traçar linhas usando a fórmula y=kx+b, o indicador irá

definido para cada dois pontos :-).

É assim que acontece, mais de um indicador escrito, câmbio misturado com estilete :-) nenhum erro, eu relaxei.... obrigado :-)

 

Pessoal, vocês podem me ajudar a mudar o indicador para desenhar uma elipse junto com a parábola, eu quero comparar os resultados da EA. Parece-me que a elipse é mais adequada para a perda de carga do que a parábola. Alguém tem tal indicador. Baseado em elipses? Eu gostaria de comparar os resultados com os de uma parábola.

Arquivos anexados:
 
001 писал(а) >>

Pessoal, vocês podem me ajudar a mudar o indicador para desenhar uma elipse junto com a parábola, eu quero comparar os resultados da EA. Parece-me que a elipse é mais adequada para a perda de carga do que a parábola. Alguém tem tal indicador. Baseado em elipses? Agradecemos antecipadamente.

Tentei conectar este indicador como um indicador externo em meu Expert Advisor. Eu não entendo o que está errado.

Eu tenho as seguintes informações em meu indicador

Passo duplo externo=0,0513;
duplo externo Máximo=0,46;

Em meu Conselheiro Especialista:

degraus duplos externos=0,005;
dobro dos passos máximos externos=0,05;

double sarstop=iCustom(NULL,0, "ParabolicM",stepstop,maximumstepstop,0,0);

Como resultado:

2009.09.25 17:01:42 2001.09.24 09:00 EnveIn EURUSD,M30: sarstop = 0,8625

2009.09.25 17:01:42 2001.09.24 09:00 EnveIn EURUSD,M30: sarstop = 0,8625

2009.09.25 17:01:42 2001.09.24 09:00 EnveIn EURUSD,M30: sarstop = 0,8625

2009.09.25 17:01:42 2001.09.24 09:00 EnveIn EURUSD,M30: sarstop = 0,8625

Isso significa que a leitura não muda

 

Olá!


Tenho uma pergunta sobre a lógica do Expert Advisor e devido à falta de qualquer experiência de programação, estou apelando para aqueles que a entendem.

Tenho um código (encontrado em um fórum ocidental e não consigo lembrar o nome do autor, infelizmente), que deve registrar a interseção das linhas do indicador estocástico em quatro períodos de tempo. Se a linha principal for superior à linha de sinal em todos os períodos de tempo, o código para abrir a ordem é executado. Esta idéia é ótima, é claro, mas sua implementação causou muitos problemas. Depois de percorrê-la na história, vi que às vezes a ordem é aberta quando o evento é registrado em apenas um período de tempo. Não consigo entender qual pode ser o problema, uma vez que parece que as condições básicas estão em vigor.


Eu ficaria grato por qualquer ajuda!



double M1, S1, M2, S2, M3, S3, M4, S4;

string Sig;
string St;
double ticket;

int start()
{
M1=iStochastic(NULL,PERIOD_M15,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S1=iStochastic(NULL,PERIOD_M15,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);

M2=iStochastic(NULL,PERIOD_M30,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S2=iStochastic(NULL,PERIOD_M30,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);
M3=iStochastic(NULL,PERIOD_H1,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S3=iStochastic(NULL,PERIOD_H1,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);
M4=iStochastic(NULL,PERIOD_H4,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S4=iStochastic(NULL,PERIOD_H4,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);

St = "READY";

Sig = "NONE";

if(M1>S1, M2>S2 && M3>S3 && M4>S4)
{
Sig="LONG";
}
if(M1<S1, M2<S2 && M3<S3 && M4<S4)
{
Sig="SHORT";
}

if(St=="READY" && Sig=="LONG")
{
ticket=OrderSend(Symbol(),OP_BUY,LotSize,Ask,5,Bid-SL*Point,Bid+TP*Point,LongComment,Magic,0,Blue);
if(ticket>-1)
{
St="LONG ON";
}
}

if(St=="READY" && Sig=="SHORT")
{
ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,5,Ask+SL*Point,Ask-TP*Point,ShortComment,Magic,0,Red);
if(ticket>-1)
{
St="SHORT ON";
}
}

}

 
if-t >> :

Olá!

Tenho um código (encontrei-o em um dos fóruns ocidentais e não me lembro do nome do autor, infelizmente) que supostamente é ......

..... descobriu que às vezes um pedido se abre quando um evento se registra em apenas um período de tempo.

Será grato pela ajuda!



Talvez o problema seja esta estranha entrada :

if(M1>S1, M2>S2 && M3>S3 && M4>S4)
O que isso significa ? -
(M1>S1, M2>S2

Talvez, em vez de uma vírgula, tente o operador " && " ? (tanto para compra como para venda)

 
rid >> :

Talvez o problema seja esta estranha entrada :

O que isso significa ? -

Talvez, em vez de uma vírgula, tente colocar o operador " && " ? (tanto para compra como para venda)

Rid, muito obrigado por sua resposta! Cometi este erro enquanto reorganizava as variáveis (minha cabeça já está inchada e eu cometo erros primitivos). A variante original está correta:

if(M1>S1 && M2>S2 && M3>S3 && M4>S4)

Mas não funciona. Continuo pensando que talvez a variável St nem sempre tenha os valores certos? Mas na verdade, se a condição não for cumprida, o código não deve ser executado. Em geral, sou um programador como uma bailarina e não posso passar sem a ajuda de profissionais...


 

A propósito, tentou inserir uma impressão, mas as variáveis parecem obter os valores corretos.

 

Tentei escrever meu primeiro indicador, mas ele desenha apenas uma linha em vez de duas.

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
//---- buffers
double Buf_1[], Buf_2[];


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, Buf_1);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, Buf_2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    i, 
          Counted_bars=IndicatorCounted();
//----
i=Bars- Counted_bars-1;           // Индекс первого непосчитанного
   while( i>=0) 
      {  
       Buf_1[ i]= Close[ i]; 
       Buf_2[ i]= Open[ i];
       i--;
      }
 
//----
   return(0);
Razão: