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

 
valenok2003:

na verdade é assim

impressão dá _dif = 0,01, mas_Lot = 0;

Provavelmente ajustado para

int _Lot; //então, cortará qualquer coisa menos de um

e deve ser definido para:

duplo _Lot;


 
forexnew:

Provavelmente ajustado para

int _Lot; //então cortará qualquer coisa menos de zero

e deve ser definido para:

duplo _Lot;



duplo _Lot;
duplo _Lot_BUY = 0;
duplo _Lot_SELL = 0;
duplo _Lot_BUYSTOP = 0;
duplo _Lot_SELLSTOP = 0;
 

aqui está outra construção

   if(_Lot_BUY > _Lot_SELL+_Lot_SELLSTOP) {
       _dif = _Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP);
      if(_Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP) >= 0.01) _Lot = 0.01;
      if(_Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP) >=  0.1) _Lot =  0.1; 
      if(_Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP) >=    1) _Lot =    1;   
      if(_Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP) >=   10) _Lot =   10; 

Print(_dif +" установка2 _Lot = "+_Lot+ "_Lot_BUY = "+_Lot_BUY+ "_Lot_BUYSTOP = "+_Lot_BUYSTOP+ "_Lot_SELL = "+_Lot_SELL+ "_Lot_SELLSTOP = "+_Lot_SELLSTOP);

      _Price = NormalizeDouble((Low [iLowest (Symbol(),TF_Cnt_Bar_for_Lock,MODE_LOW, _Bars_PP_OP_SELLSTOP,0)]- Dist_For_Boot*Point),Digits);
      if(Bid - _Price < Dist_For_Boot*Point) {
         _Bars_PP_OP_SELLSTOP *=2;
         _RESET_Bars_PP_OP_SELLSTOP = false;
      }
      if(set_order_sellstop(_Price, _Lot, _Txt_Lock+Comment_Order)!= -1) _RESET_Bars_PP_OP_SELLSTOP = true;
   }

não funciona assim, mas no exemplo a seguir funciona

   if(_Lot_BUY > _Lot_SELL+_Lot_SELLSTOP) {
       _dif = _Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP);
      //if(_Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP) >= 0.01) 
      _Lot = 0.01;
      if(_Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP) >=  0.1) _Lot =  0.1; 
      if(_Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP) >=    1) _Lot =    1;   
      if(_Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP) >=   10) _Lot =   10; 

Print(_dif +" установка2 _Lot = "+_Lot+ "_Lot_BUY = "+_Lot_BUY+ "_Lot_BUYSTOP = "+_Lot_BUYSTOP+ "_Lot_SELL = "+_Lot_SELL+ "_Lot_SELLSTOP = "+_Lot_SELLSTOP);

      _Price = NormalizeDouble((Low [iLowest (Symbol(),TF_Cnt_Bar_for_Lock,MODE_LOW, _Bars_PP_OP_SELLSTOP,0)]- Dist_For_Boot*Point),Digits);
      if(Bid - _Price < Dist_For_Boot*Point) {
         _Bars_PP_OP_SELLSTOP *=2;
         _RESET_Bars_PP_OP_SELLSTOP = false;
      }
      if(set_order_sellstop(_Price, _Lot, _Txt_Lock+Comment_Order)!= -1) _RESET_Bars_PP_OP_SELLSTOP = true;
   }
 

A seguinte mensagem aparece no log

0,01000000 ajuste2 _Lot = 0,00000000_Lot_BUY = 0,03000000_Lot_BUYSTOP = 0,00000000_Lot_SELLL = 0,00000000_Lot_SELLSTOP = 0,02000000
17:07:12 Expert_V3 GBPUSD,M1: quantidade de lotes inválidos para a função OrderSend

No entanto, enquanto faltavam 3 SELLSTOPs, ele definiu os dois primeiros sem problemas, mas tropeçou no terceiro.

Ou seja, porque não define o lote para 0,01, mesmo que calcule corretamente a variável _dif...

 
Roger:


Essa idéia é sua?

Só abrirá pedidos a partir do segundo. Nem mesmo a partir do segundo, mas a partir do terceiro.

Obrigado
 
Você pode informar se é possível determinar a hora de início da sessão de negociação (por exemplo, para Moscou é 10-35, etc.) ou apenas criar uma variável e escrever um valor na mesma? Isto é necessário para não fazer pedidos no início da sessão, mas para determinar a direção.
 
first_may:
Você pode informar se é possível determinar a hora de início da sessão de negociação (por exemplo, para Moscou é 10-35, etc.) ou apenas criar uma variável e escrever um valor na mesma? Isto é necessário para não fazer pedidos no início da sessão, mas para determinar a direção.
Horário das sessões de negociação Forex
 

Portanto, sugere-se utilizar apenas uma variável que armazene o início da sessão. Obrigado.
 
Além disso, o melhor indicador de sessão que já encontrei.
P.S.
Encontrei-o no banco de dados. https://www.mql5.com/ru/code/9313
Arquivos anexados:
 
Existe uma função de exemplo para trabalhar com datas, ou seja, para determinar a diferença entre duas datas, ela é maior que zero ou não?