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

 
Vinin >> :

Ele é exibido, logo após a tela. Faça-o em uma janela separada.

>> "em uma janela separada" - como?

 
splxgf >> :

Este é um fórum de programação, não um fórum elliotchiska. talvez você devesse ir para http://elliottwave.ru/

Este fórum discute estratégias comerciais e a onda de comércio Elliott

é também uma estratégia, não é?

 
dmmikl86 писал(а) >>

"em uma janela separada" - como?

#property indicator_separate_window
 
dmmikl86 >> :

>> "em uma janela separada" - como?

Você não pode colocar um cavalo no mesmo carrinho

Um cavalo e uma corça trêmula. (с)

Seu indicador inevitavelmente se desfaz, mesmo que seja exibido em uma janela separada. É muito inconveniente mostrar 1,5 para GPPUSD e 145,0 para GBPJPY no mesmo gráfico sem nenhum truque especial.

 

Boa noite! Estou tentando criar meu próprio EA... Fiz um EA semelhante a outro para a travessia e travessia de volta do MA...

Mas o fez com seus próprios parâmetros ... Abre posições apenas em uma direção e nem sequer as fecha...

Como acrescentar aqui uma função que se fecha quando uma linha é cruzada de volta.

Tudo em resumo, maestra ajuda!:-(

....

Quando a linha azul é cruzada, ela é comprada e quando cruza para baixo, fecha.

Ao cruzar a linha vermelha para cima, vender e ao cruzar para baixo, fechar.

Como você pode ver na foto, este sistema não funciona...

Ajude com o código um pouco...por favor!


extern double Lots               = 0.1;
double Points;
int init ()
  {
   Points = MarketInfo (Symbol(), MODE_POINT);
   return(0);
  }
int CalculateCurrentOrders(string symbol)
  {
   int buys=0, sells=0;
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect( i, SELECT_BY_POS, MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()== MAGICMA)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
   if( buys>0) return( buys);
   else       return(- sells);
  }
double LotsOptimized()
  {
   double lot= Lots;
   int    orders= HistoryTotal();  
   int    losses=0;                 
   lot=NormalizeDouble(AccountFreeMargin()*0.02/1000.0,1);
   if(3>0)
     {
      for(int i= orders-1; i>=0; i--)
        {
         if(OrderSelect( i, SELECT_BY_POS, MODE_HISTORY)==false) { Print("Error in history!"); break; }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
         //----
         if(OrderProfit()>0) break;
         if(OrderProfit()<0) losses++;
        }
      if( losses>1) lot=NormalizeDouble( lot- lot* losses/3,1);
     }
   if( lot<0.1) lot=0.1;
   return( lot);
  }
void CheckForOpen()
  {
double apglav1;
double apglav2;
double apsig1;
double apsig2;
int    res;
   if(Volume[0]>1) return;
   apglav1 =iCustom(NULL,0,"Caska",0,1); // первая линия на 1м баре
   apsig1 =iCustom(NULL,0,"Caska",1,1); // вторая линия на 1м баре   
   apglav2 =iCustom(NULL,0,"Caska",0,2); // первая линия на 2м баре
   apsig2 =iCustom(NULL,0,"Caska",1,2); // вторая линия на 2м баре
     if ( apglav2< apsig2 && apglav1> apsig1)
     {
      res=OrderSend(Symbol(),OP_BUY, LotsOptimized(),Ask,3,"", MAGICMA,0,Blue);
      return;
     }
     if ( apglav2> apsig2 && apglav1< apsig1)
     {
      res=OrderSend(Symbol(),OP_SELL, LotsOptimized(),Bid,3,"", MAGICMA,0,Red);
      return;
     }
  }
  void CheckForClose()
  {
double apglav1;
double apglav2;
double apsig1;
double apsig2;
   if(Volume[0]>1) return;
   apglav1 =iCustom(NULL,0,"Caska",0,1); // первая линия на 1м баре
   apsig1 =iCustom(NULL,0,"Caska",1,1); // вторая линия на 1м баре   
   apglav2 =iCustom(NULL,0,"Caska",0,2); // первая линия на 2м баре
   apsig2 =iCustom(NULL,0,"Caska",1,2); // вторая линия на 2м бар
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect( i, SELECT_BY_POS, MODE_TRADES)==false)        break;
      if(OrderMagicNumber()!= MAGICMA || OrderSymbol()!=Symbol()) continue;
      if(OrderType()==OP_BUY)
        {
        if( apglav2> apsig2 && apglav1< apsig1) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
        break;
        }
   if(OrderType()==OP_SELL)
        {
        if( apglav2< apsig2 && apglav1> apsig1) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
        break;
        }
}
}
void start()
  {
   if(Bars<100 || IsTradeAllowed()==false) return;
   if( CalculateCurrentOrders(Symbol())==0) CheckForOpen();
   else                                    CheckForClose();
  }
 

Os Ellioters estão sempre nos fóruns onde falam sobre comércio. Crie um fio e faça uma pergunta. E você pode fazer a pergunta aqui. Talvez eu responda ou outra pessoa o faça.

 
DDFedor >> :

tarde... o temporizador começou... >> "análise das ondas

A Sabluk também vai conseguir a proibição deste fio.

 
Ibiss >> :

Ao cruzar a linha azul para cima, comprar e ao cruzar para baixo, fechar.

Ao cruzar a linha vermelha para cima, vender e ao cruzar para baixo, fechar.

Como você pode ver na foto, este sistema não funciona.

Ajude com o código um pouco...por favor!


Parece estar tudo bem. (apenas um vislumbre).

Somente. Esta expressão

if(Volume[0]>1) voltar;

é melhor removê-lo. "Isto" só funciona corretamente no testador. E não vai funcionar em quase nenhum lugar online!

Melhor fazer um trabalho adequado sobre o Preço de Abertura.

 

Prezados usuários do fórum!

Eu escrevi um indicador e há um problema, a média móvel (Buf_2) não é desenhada, aqui está o código:

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red

extern int average=14;
//---- buffers
double Buf_1[], Buf_2[];


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, Buf_1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1, Buf_2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    i, 
          Counted_bars=IndicatorCounted();


//----
//====================================================================
// график тела с объемом
double sum_b=0.0;
i=Bars- Counted_bars-1;           // Индекс первого непосчитанного
   while( i>=0) 
      {  
       //----
       if (Close[ i]>Open[ i]) {
         sum_b = sum_b + (Close[ i]-Open[ i])*Volume[ i];
         Buf_1[ i]= sum_b;
         }
         
       if (Close[ i]<Open[ i]) {
         sum_b = sum_b - (Open[ i]-Close[ i])*Volume[ i];
         Buf_1[ i]= sum_b;
         }
         
       if (NormalizeDouble(Close[ i],Digits)==NormalizeDouble(Open[ i],Digits)) {
         Buf_1[ i] = Buf_1[ i-1];
         }
         
       i--;
       //----
      }
//====================================================================
// average
int n=0;
   while( i>=0) 
      {  
       //----
       while( n<= average){
         Buf_2[ i]= Buf_1[ i- n];
         n++;
         }
       
       i--;
       //----
      }

//----
   return(0);
  }
//+------------------------------------------------------------------+
Ajudar-me a entender qual é o problema?
 

Urain писал(а) >>

A Sabluk também vai conseguir a proibição deste ramo.

Sim, legal.

2 Oper. Em resumo, para comercializar puramente em ondas, você precisa ter um cérebro com o desempenho de um computador. Exatamente o cérebro com tal desempenho. Em outras palavras, este pode ser um caso de gráfico de um mês (com todas as conseqüências sobre B1 pelo menos). É apenas em um mês que um iniciante pode calcular todos os cenários possíveis, levando em conta todo o histórico que também deve estar disponível, de preferência desde o início da comercialização do instrumento. Ou, como alternativa, a resposta à pergunta - como você sabe como é a segunda onda (você perguntou)? QUALQUER reversão começa com a PRIMEIRA onda. Uma correção para a primeira é a segunda. Pegue a M15, nela você verá em detalhes o início do movimento, a correção para ela (a primeira e segunda ondas - a PATTERN) se você a fizer cem vezes (considere a reversão), então a resposta à sua pergunta está pronta. A única coisa a ser levada em conta é que o mercado muitas vezes desenha o padrão sem qualquer continuação, ou seja, se você já viu tal PATTERN, na realidade, mas não na história, ele pode ser considerado verdadeiro, somente depois que a tendência se desenvolve na mesma direção, muitas vezes o padrão quebra. Em geral, você tem que ter muitas condições para negociar em ondas.

Pessoalmente, eu não possuo algumas dessas características.

1. Eu não sou muito inteligente.

2. Muito tempo para dominar um assunto muito complicado.

3. Cotações desde o início do instrumento comercial.

Pensamento abstrato.

É necessário manter o padrão de ondas inteiras pelo menos por um ano em mente (que é onde se precisa de um cérebro) e não apenas mantê-lo, mas com variantes. Existem muitas variantes, assim como os tipos de correção. É como otimizar os parâmetros - você adicionou um parâmetro e dois valores, você tem duas vezes mais variantes, e se você adicionar cinco parâmetros e se você adicionar 1000 valores?

Bem, não temos cérebros suficientes para isso. E não há tempo suficiente. E não há citações suficientes.

E há muitas outras coisas. É muito mais fácil usar o TA clássico. Não funciona pior do que VA, embora pessoalmente eu sempre use a Análise de Ondas, já que gastei tanto tempo com ela. Mas a MAIOR parte-se muito bem sem a BA.

Razão: