Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1475

 
MakarFX:

Eu o assinei.

Makar, pare de mexer com a cabeça do homem. Ele só precisa da variável de nível global e do preço atual.

input int      Points = 30;
double LoU;

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(Bid-LoU >= Points*_Point)
    {
     OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,"300",0);
     Print("---------------------КАЖДЫЙ ТИК ------Tick---------=     "    ,   Tick);
     LoU = Bid; // Здесь вместо Bid можно поставить любую цену
    }
  }

Assim, a cada tick a diferença do preço atual e o preço na variável LoU será verificado e se esta diferença for igual ou exceder 30 pontos - a condição é cumprida, a variável LoU terá um novo valor e a diferença será verificada com um valor diferente.

 
ANDREY:

Aqui está o seu código.

Mas, por alguma razão, não abre nenhuma ordem.

Está se abrindo para mim. Verifique o que diz o diário de bordo.


 

Bom dia!


Estou criando um indicador em uma janela separada. Quero definir a altura inicial da janela, por exemplo 100

Nós temos uma função padrão:

#property indicator_height  100
IndicatorSetInteger(INDICATOR_HEIGHT, 100)

Mas eles bloqueiam a mudança de altura do usuário, ela permanece sempre 100(((( E eu realmente preciso ser capaz de mudá-la manualmente depois


Alguma outra opção?) Até agora, encontrei uma maneirade simular através doWinAPI, que esticamos a janela com o mouse (e não tenho certeza do que posso fazer)

 

Faça-o:

IndicatorSetInteger(INDICATOR_HEIGHT, 100);
IndicatorSetInteger(INDICATOR_HEIGHT, 0);
 
alex_xss:

Bom dia!


Basta apagar

IndicatorSetInteger(INDICATOR_HEIGHT, 100)
 
Há aqui uma sutileza. Primeiro defina o tamanho e depois zere para liberar a fixação, o que não muda o tamanho. Não há outra forma de contornar isto.
 
Alexey Viktorov:

Makar, pare de mexer com a cabeça do homem. A variável de nível global e o preço atual são suficientes para ele.

Assim, a cada tick a diferença do preço atual e o preço na variável LoU será verificado e se esta diferença for igual ou exceder 30 pontos - a condição é cumprida, a variável LoU terá um novo valor e a diferença será verificada com um valor diferente.

Você está errado radicalmente.... Graças a Makar, eu ampliei significativamente e o mais importante, muito efetivamente meus horizontes em forex. Se não fosse por ele, não sei quando teria aprendido tantas coisas úteis para mim. Eu gostaria que houvesse mais desses "gerentes" neste fórum. Foi ele, e não outra pessoa, que me disse que a solução para meu problema é o uso do EventSetTimer(60).

E o que você aconselha, eu sabia disso há muito tempo e em meu código seu conselho estava presente desde o início.
 
Alexey Viktorov:

Makar, pare de mexer com a cabeça do homem. A variável de nível global e o preço atual são suficientes para ele.

Você nunca leu o tópico primeiro e aconselha o que já foi passado

 
MakarFX:

Você nunca leu o tópico primeiro e aconselha o que já foi feito

Concorde com você 100%.... sem ofensa para Alexei.....

 
MakarFX:

Funciona para mim. Verifique o que diz o registro


2021.05.20 06:30:45.176 GBPUSD,M1: 52255 tick events (1440 bars, 53255 bar states) processed in 0:00:00.000 (total time 0:00:05.906)
2021.05.20 06:30:45.163 2010.01.04 00:00:00  ×ÈÑÒÛÉ inputs: Points=30; 
2021.05.20 06:30:45.145 TestGenerator: spread set to 2
2021.05.20 06:30:45.145 TestGenerator: no connect to trade server, default environment will be applied