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

 

Olá a todos os membros do fórum.

Algum conselho de pessoas conhecedoras? Eu tenho um EA que abre negociações em sinal indicador, como prescrever um contador de sinal programático, ou seja, após ter tirado lucro ou fechado uma ordem em um Trailing Stop, o EA pula os dois sinais seguintes e não abre negociações.

Agradecia a ajuda.

void CheckForOpen()
{
   int ticket, STOPLEVEL;
   double Price, SL, TP; 
   STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
   
   
   double AO = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_SENKOUSPANA,1); // верхняя граница облака 
   double BO = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_SENKOUSPANB,1); // нижняя граница облака 

      
   if(Volume[0]>1) return;

   if (AO>BO) // продажа
   {
   if (Open[1]>Close[1] && Close[1] < BO && Open[1]>BO) // продажа

     {
     Price = NormalizeDouble(Bid, Digits); // округляем до нужного нам числа цифр после запятой
     if(StopLoss >= STOPLEVEL)
          if(StopLoss > 0)
      {
       SL = Price + StopLoss*Point; // вычисляем стоплос
       SL = NormalizeDouble(SL, Digits); // округляем до нужного нам числа цифр после запятой
      }
       else SL = 0;

      if(TakeProfit > 0)
      {
       TP = Price - TakeProfit*Point;
       TP = NormalizeDouble(TP, Digits); 
      }
       else TP = 0;

      { 
      ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL,TP,"Pattern_1",Magic,0,Red);
      return;
      }
    }
    }
 
alexey1979621:

Olá a todos os membros do fórum.

Algum conselho de pessoas conhecedoras? Eu tenho um EA que abre negociações em sinal indicador, como prescrever um contador de sinal programático, ou seja, após ter tirado lucro ou fechado uma ordem em um Trailing Stop, o EA pula os dois sinais seguintes e não abre negociações.

Agradecia qualquer ajuda.


Não sei o que quero mas, por favor, aconselhe como implementá-lo.

E o que você quer dizer exatamente com "pular sinais"?

1) Um comércio virtual? como se abríssemos uma posição fictícia, monitorássemos, fechássemos também fictício ( Ilanim);

2) Tente usar o sinal após um certo período de tempo, um novo sinal poderá ser recebido em ХХХ minutos;

3) Avaliação do sinal após uma certa quantidade de barras? Um novo sinal pode ser recebido após as barras ХХХ;

..................

Além disso, quaisquer outros pedidos:

substituir a construção se(Volume[0]>1) voltar; nem sempre será acionado já em demonstração, muito menos real;

Não é possível sobreviver com uma condição a mais?

if (StopLoss >= STOPLEVEL)         //    if (StopLoss > STOPLEVEL) так не проще?
   if(StopLoss > 0)

a lógica não é correta, caso contrário, trata da segunda condição:

if (StopLoss >= STOPLEVEL)
   if (StopLoss > 0){
      SL = Price + StopLoss*Point; // вычисляем стоплос
      SL = NormalizeDouble(SL, Digits); // округляем до нужного нам числа цифр после запятой
   }
   else SL = 0;

e muito mais...

 
ALXIMIKS:


Eu quero algo que não sei o quê, mas me diga como implementá-lo.

O que você quer dizer exatamente com a falta de sinais?

1) Um comércio virtual? como se abríssemos uma posição fictícia, monitorássemos, fechássemos também fictícios ( Ilanim);

2) Tente usar o sinal após um certo período de tempo, um novo sinal poderá ser recebido em ХХХ minutos;

3) Avaliação do sinal após uma certa quantidade de barras? Um novo sinal pode ser recebido após as barras ХХХ;

..................

Além disso, quaisquer outros pedidos:

substituir a construção se(Volume[0]>1) voltar; nem sempre será acionado já em demonstração, muito menos real;

Não é possível sobreviver com uma condição a mais?

a lógica não é correta, caso contrário, trata da segunda condição:

e muito mais...

Sou um escritor novato, ou seja, estou chegando a tudo sozinho, o principal é que funciona. if(Volume[0]>1) funciona bem tanto no real como na demonstração, e no testador. Escrevi meus desejos muito claramente. Um acordo é aberto com base no sinal indicador (anexei a condição de abertura do acordo no código). Depois que a negociação anterior foi fechada em Take Profit e Trailing Stop, preciso pular 1 ou 2 ou 3 (parâmetro ajustável) sinais do indicador, ou seja, não abrir uma negociação. Não sei como prescrevê-lo de forma programática, é por isso que estou pedindo ajuda.
 

Bom dia a todos!) Recentemente me interessei pela MQL e agora me deparei com os primeiros problemas. A idéia é que a EA abra posições de acordo com a função, mas não queira fechá-las e, portanto, estas ordens de mercado sem paradas são colocadas até o final da sessão de teste. A questão é onde eu cometi meu erro.

Aqui está um fragmento próximo:

 if(Level >= 0.000100 && LevelXP>LevelXM && CountSell() > 0)
          {
               for(i=OrdersTotal()-1; i >= 0; i--)
               {
                   if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)
                   {
                       if(OrderMagicNumber() == Magic && OrderType() == OP_SELL)
                          OrderClose(OrderTicket(), OrderLots(), Ask, Slippage);
                   }
               }
          }
 
ElhoroS:

Bom dia a todos!) Recentemente me interessei pela MQL e enfrentei os primeiros problemas. A idéia é que a EA abra posições de acordo com a função, mas não queira fechá-las e, portanto, estas ordens de mercado sem nenhuma parada são colocadas até o final da sessão de teste. A pergunta é: onde é que eu errei?


1) Talvez o problema esteja nas condições finais (você o deu implicitamente)

2) Você só fechou OP_SELL neste código (você se lembrou de implementar as condições de compra? Certifique-se de que as condições de fechamento estejam corretas).

3) Ao verificar durante a força bruta, você não verifica o par de moedas e o período de tempo (por que eu deveria fazê-lo novamente?)

4) Não há verificação de solicitações (no Testador de Estratégia tudo deve estar bem, mas na demonstração ou na conta real - nem sempre)

5) Como declarou a Artemis artmedia70, MarketInfo(Symbol(),MODE_ASK) é melhor do queAsk - dá preços mais relevantes

 
ALXIMIKS:


5) Como Artemis declarou MarketInfo(Symbol(),MODE_ASK) será melhor do queAsk - preços mais relevantes serão dados

Não... o suficiente com a chamada de nomes...
 
artmedia70:
Nah... o suficiente com a chamada de nomes...


Sim, eu me lembro da última situação, Artyom, desculpe-me - ela ficou presa.
 
ALXIMIKS:

Sim, eu me lembro da situação passada, Artem, sinto muito - ela ficou presa.
Artyom+Femis=Artemis; Orgulhe-se, Artyom! É uma confissão! Desejo que você continue assim!
 
borilunad:
Artyom + Themis = Artemis; Sê orgulhoso, Artyom! É uma confissão! Desejo que você continue assim!
 
artmedia70:
De onde vêm as fotos e como você as faz? É verdade, estes personagens não representam Themis.