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

 

Deixe-me dar-lhe o essencial da idéia.

Você precisa encontrar ou identificar a primeira seta na história a partir da barra atual.

Não importa se é para cima ou para baixo.

(A) E depois salvar esta descoberta em uma variável ou em uma bandeira. Por exemplo, GlobalFlag =-1 (se a seta estiver para baixo) e +1 se estiver para cima.

Então o preço foi mais adiante e uma flecha é sorteada novamente.

Na EA, o ciclo de busca é iniciado sempre com um novo tick, certo?

O loop foi iniciado novamente e encontrou a seta que acabou de ser desenhada e salvou-a em uma variável ou bandeira, ou seja

ou seja, o item A foi executado.

Essa é a idéia.

Por que se preocupar com a bandeira e outras coisas?

Então esta bandeira, ou seja, onde a seta estará olhando, será usada com outro indicador para confirmar o sinal.

Por exemplo, GlobalFlag=+1 (seta para cima) e outro indicador está sinalizando para cima, isso significa que devemos entrar no mercado.

Ou seja, ambas as condições devem coincidir nos indicadores.


O que você acha deste código?

Ou seja, não preciso calcular em qual vela está a flecha, qual o preço, etc. O principal é consertar o fato

O principal é fixar a disponibilidade da flecha e sua direção.

Posso atribuir true e falce ???? em vez de +1 e -1 ou não?


double DataIndUP, DataIndDN;
int    i, GlobalFlag, nBars = 250 ;  // nBars = количество проверяемых баров вглубь истории

for (i=0; i<nBars; i++) 
{
   DataIndUP = iCustom(Symbol(),Period(),"Имя индюшонка", через запятую все параметры индюка , номер буфера стрелки вверх, i)
   DataIndDN = iCustom(Symbol(),Period(),"Имя индюшонка", через запятую все параметры индюка , номер буфера стрелки вниз, i)
   if (DataIndUP !=EMPTY_VALUE)     // или if (DataIndUP !=0) // найдена стрелка вверх
                                    // всё зависит от того, что выдаёт буфер при отсутствии стрелки 
                                    // нажмите Ctrl+D и посмотрите что вам в окне данных будет показано
      GlobalFlag=+1                 // присвоение значения +1(стрелка вверх)  переменной 
      Break;                        //выход из цикла, так как  нашлась последняя стрелка
if (DataIndDN !=EMPTY_VALUE)     // или if (DataIndDN !=0) // найдена стрелка вниз
                                    // всё зависит от того, что выдаёт буфер при отсутствии стрелки 
                                    // нажмите Ctrl+D и посмотрите что вам в окне данных будет показано
      GlobalFlag=-1                 // присвоение значения -1(стрелка вниз) переменной
      Break;                        //выход из цикла, так как  нашлась последняя стрелка
}
 
Tupen:


É um começo.


Assim, o ponto de entrada A -- venda e compra de estandes a 4 pips. 1 variante de comportamento - o preço desce, - fixamos o lucro em, digamos, 5 pontos a partir do ponto de entrada. - Se o preço subir, o número de pontos antes de fixar o lucro também mudará (um mínimo por enquanto), ou seja, o programa terá que fazer 4 pedidos de uma só vez, )) é possível programar isso?
 
Roman.:



Posto apagado por obscenidade profana

 
Vinin:

Posto apagado por obscenidade profana


Desculpe, generoso, não pude me ajudar. Alimentado com os contos do Bosque de Viena
 

Por favor, escreva um programa com 4 pedidos. Preciso ver a demonstração e ver a inversão

 
Tupen:

Por favor, escreva um programa com 4 pedidos. preciso olhar a demonstração e ver se consigo descobrir a opção pivô.


Veja o fio "Avalanche" - tudo foi cuidadosamente pensado lá fora com "tudo", inclusive as opções de reversão.

Não há necessidade de reinventar a roda. Tudo foi inventado pelas pessoas há muito tempo. Leia, analise, use e faça uso dele.

Você não chegará à bicicleta "it" (leia-se: a solução) tão cedo...

 

Você pode me dizer por que não há ciclicalidade? No testador, o Expert Advisor abre apenas dois negócios.

externo int F = 8; //período de jejum МА
Int S externo = 20; //período de MA lento
Lotes duplos externos = 0,1; // lote para pedido
int Slippage = 5; // slippage in pips.
int Magic = 123; // número trágico do Consultor Especialista
int ticketsell;
int ticketbuy;
int start()
{
duplo MAfast = iMA(NULL,0,F,0,MODE_SMA,PRICE_CLOSE,1);
duplo MAslow = iMA(NULL,0,S,0,MODE_SMA,PRICE_CLOSE,1);
// nenhum pedido com ticketell no terminal OU é fechado E o MA rápido é mais baixo que o lento, venda!
if ( (OrderSelect(ticketell,SELECT_BY_TICKET,MODE_TRADES) == falso ) && MAfast < MAslow )
{
// se já tivemos um pedido oposto, compre, vamos fechá-lo :
se ( OrderSelect(ticketbuy,SELECT_BY_TICKET,MODE_TRADES) == verdadeiro )
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, CLR_NONE);
OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,Magic,0,Red)
}
se ( (OrderSelect(ticketbuy,SELECT_BY_TICKET,MODE_TRADES) == falso ) && MAfast > MAslow )
{
se ( OrderSelect(ticketell,SELECT_BY_TICKET,MODE_TRADES) == verdadeiro )
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, CLR_NONE);
compra de bilhetes = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,Magic,0,Blue);
}
retorno(0);
}

 

Mirgha Tente isto

extern int F = 8; //период быстрой МА
extern int S = 20; //период медл.МА
extern double Lots = 0.1; // лот ордера
int Slippage = 5; // проскальзывание в пп.
int Magic = 123; // магический номер эксперта
int ticketsell;  
int ticketbuy;

int start()
{
   double MAfast = iMA(NULL,0,F,0,MODE_SMA,PRICE_CLOSE,1);
   double MAslow = iMA(NULL,0,S,0,MODE_SMA,PRICE_CLOSE,1); 
   
   ticketsell = -1;
   ticketbuy = -1;
   for (int i = 0; i < OrdersTotal(); i++)
   {
      OrderSelect( i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
      {
         if (OrderType() == OP_SELL) ticketsell = OrderTicket();
         if (OrderType() == OP_BUY)  ticketbuy  = OrderTicket();
      }
    }
   // ордера с тикетом ticketsell в терминале нету ИЛИ он закрылся И быстрая МА ниже медленной, продаем !
   if ( (OrderSelect(ticketsell,SELECT_BY_TICKET,MODE_TRADES) == false ) && MAfast < MAslow )
   {
      // если у нас при этом был противоположный ордер, бай, его закроем :
      if ( OrderSelect(ticketbuy,SELECT_BY_TICKET,MODE_TRADES) == true )
         OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, CLR_NONE);
      ticketsell = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,0,Magic,0,Red);
   } 
   if ( (OrderSelect(ticketbuy,SELECT_BY_TICKET,MODE_TRADES) == false ) && MAfast > MAslow )
   {
      if ( OrderSelect(ticketsell,SELECT_BY_TICKET,MODE_TRADES) == true )
         OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, CLR_NONE);
      ticketbuy = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,0,Magic,0,Blue);
   }
   return(0);
} 
 
Obrigado!
 

Minha pergunta permanece sem resposta.

Ainda assim, como posso filtrar o número de sinais recebidos do indicador? Por exemplo, o Expert Advisor aceita o sinal número três para começar a trabalhar, ou seja, os dois primeiros sinais são pulados, e o terceiro é aceito para ação. Como escrevi acima, tentei implementá-la com variáveis globais, mas ela não funciona....