[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 583

 
alsu:
O bilhete permanece como estava


????

Como posso verificar se o pedido está fechado ou não?

 
Cruc:

Muito obrigado pela recomendação, eu quase descobri, só não consigo lembrar se o pedido é acionado, o bilhete leva um valor de -10?
O bilhete não muda. Apenas o OrderCloseTime se torna maior que zero
 
ilunga:
O bilhete não muda. Só tem um OrderCloseTime maior que zero


E se uma parada ou lucro for acionada, ela também se torna menor que zero, se não estou enganado -1 ?

Como posso definir a condição corretamente? Por favor, informe.

 
Cruc:


E se uma parada ou lucro for acionada, será menos do que zero, se não estou enganado -1 ?

Como posso definir a condição corretamente? Por favor, me dê uma dica.

Não se tornará diferente, permanecerá o mesmo. As posições fechadas vão para a lista do histórico de negócios com as mesmas passagens.

Veja esta mesma lista de histórico de transações e procure o pedido lá.

 
artmedia70:

Por quê? Comente todas as bandeiras de uma só vez".

Aí mesmo:




não houve aumento no ADX, o que significa que a condição

// verificar se o ADX > 20, ou apenas o ADX ---- verificar a força de movimento.
se (x<20 && x0>20) {f3 = 1; }

não é atendida, mas o comércio é aberto

 
Ivn:


não houve aumento no ADX, ou seja, a condição

// verificar se há aumento de ADX > 20, ou apenas aumento de ADX ---- verificar se há força.
se (x<20 && x0>20) {f3 = 1; }

não é atendida e o comércio é aberto.

A julgar pelo comentário na captura de tela - você está controlando a barra zero para tomar decisões.

Isto não é bom... Em uma barra zero, os indicadores podem ir e voltar muitas vezes durante a formação da barra, criando assim sinais falsos (tagarelice).

Para evitar isso, verifique a primeira barra já formada.

 
Há muito tempo venho trabalhando nisto. Muitas vezes eu noto no gráfico que o preço parece estar atingindo um nível onde normalmente o alto ou o baixo da vela é quase igual ao do outro. Mas eu não sei como fazê-lo matematicamente. Estive cavando o fórum e o banco de dados por 3 dias, mas não consigo encontrar nada parecido.
 

Saudações!

Estou tentando exibir informações sobre uma vela anterior (barra não zerada) - vela em alta ou em baixa, tamanho de seu corpo e sombras e proporção de sombras em relação ao corpo da vela.

Mas não produz uma flor de pedra. Ela produz valores errados.

int start()
  {
   int counted_bars=IndicatorCounted();
   if (counted_bars<0) return(-1);        //---- check for possible errors
   if (counted_bars>0) counted_bars--;    //---- last counted bar will be recounted
   int limit=Bars-counted_bars;
   
   double kerzen_typ;                  //тип свечи
   string kerzen_name;                 //наименование свечи
   double kerzen_body;                 //размер тела свечи
   double kerzen_shadow_up;            //размер верхней тени
   double kerzen_shadow_down;          //размер нижней тени
   double kerzen_shadow2body_up;       //отношение верхней тени к размеру тела
   double kerzen_shadow2body_down;     //отношение нижней тени к размеру тела

//---- main loop
   for(int bar=0; bar<limit; bar++)
      {
//определение контрольной свечки - белая, черная или додж и сбор информации
   if (Close[bar]>Open[bar])
      {
         kerzen_typ=1;
         kerzen_name="бычья или белая свеча";
         kerzen_shadow_up=High[bar]-Close[bar];
         kerzen_shadow_down=Open[bar]-Low[bar];
         kerzen_body=Close[bar]-Open[bar];
      }
   if (Open[bar]>Close[bar])
      {
         kerzen_typ=-1;
         kerzen_name="медвежья или черная свеча";
         kerzen_shadow_up=High[bar]-Open[bar];
         kerzen_shadow_down=Close[bar]-Low[bar];
         kerzen_body=(Open[bar]-Close[bar]);
      }
   if (Open[bar]==Close[bar])
      {
         kerzen_typ=0;
         kerzen_name="додж";}  
         kerzen_shadow_up=High[bar]-Open[bar];
         kerzen_shadow_down=Close[bar]-Low[bar];
      }
//определение соотношения тени к телу свечки      
if (kerzen_body==0)
      {
         kerzen_shadow2body_up=kerzen_shadow_up;
         kerzen_shadow2body_down=kerzen_shadow_down;
         }
if (kerzen_body!=0)
      {
         kerzen_shadow2body_up=kerzen_shadow_up/kerzen_body;
         kerzen_shadow2body_down=kerzen_shadow_down/kerzen_body;
      }     
 
//---- done
   Comment  (
               "Контрольный бар типа ",kerzen_name,"\n",
               "Верхняя тень - ",kerzen_shadow_up*10000," в ",kerzen_shadow2body_up, " раз больше","\n",
               "Тело - ",kerzen_body*10000,"\n", 
               "Нижняя тень - ",kerzen_shadow_down*10000," в ",kerzen_shadow2body_down, " раз больше"
            );
   return(0);
  }
 
gabba:

Saudações!

Estou tentando exibir informações sobre uma vela anterior (barra não zerada) - vela em alta ou em baixa, tamanho de seu corpo e sombras e proporção de sombras em relação ao corpo da vela.

Mas não produz uma flor de pedra. Ela produz valores errados.


Por que preciso de um ciclo se eu tomar apenas 1 barra? Basta usar 1 em vez de "barra". Verifique apenas se há novas barras para que não tenha que recalcular tudo em cada tic.
 
Cruc:


E se uma parada ou lucro for acionada, ela irá abaixo de zero, se não estou enganado - -1 ?

Como posso definir a condição corretamente? Você pode me dar uma dica?

mais uma vez.

A variante mais simples (esquemática)

if (ticket > 0)
{
   OrderSelect(ticket, SELECT_BY_TICKET);
   if (OrderCloseTime() > 0)
   {
      // ордер закрылся
   }
   else
   {
      // ордер пока еще открыт
   }
}
else
{
   //первый запуск советника 
}
Razão: