Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 878

 
Artyom Trishkin:
Agora descreva por palavras o que descreveu graficamente. Usar alto, baixo, aberto, fechado.
Assim que o descreve por palavras, já escreveu os seus ToR :)
Tudo o que resta é substituir as construções verbais por código.
OK, vou fazer isso agora)
 

Tamanho da vela = alto[i] - baixo[i]

Sombra superior = alta[i] - aberta[i]

Corpo da vela = aberto[i] - fechado[i]

sombra inferior = fechar[i] - baixo[i]

A proporção do corpo do castiçal em relação ao seu tamanho - (alto[i] - baixo[i]) / (aberto[i] - fechado[i])

O tamanho da sombra curta não deve exceder algum limiar - ( fechar[i] - baixo[i]) <= fechar[i]

Orientação da vela - alto[i] > aberto[i] > fechado[i] > baixo[i]

 
Artyom Trishkin:

Estou a apostar com o rato.

  • Clique acima preço+Ctrl - Limite de Venda
  • Clique abaixo preço+Ctrl - Limite de compra
  • Clique acima de preço+Ctrl+Shift - Buy Stop
  • Clique abaixo preço+Ctrl+Shift - Sell Stop
Também se pode colocar BuyStopLimit e SellStopLimit com o shifft

É assim que se fazem encomendas no testador do MT5, no modo visual? Como são tratados os eventos? OnChartEvent() não funciona, certo?

 
Vladimir Karputov:

O provador funciona correctamente. O erro está na lógica do programa: dois símbolos são como duas vidas de pessoas diferentes (aqui "pessoa" é análogo a "símbolo"). E a segunda pessoa não tem de acordar ao mesmo tempo que a primeira ("acordar" é análogo a "nova barra a aparecer").

Portanto, é preciso esperar que apareça uma nova barra E no primeiro símbolo E no segundo.


Acrescentado: artigo"novo bar" manipulador de eventos

Obrigado pela resposta rápida. Vou pensar em como implementar tudo isto no modo multi-divisas.
 

Tal pergunta - a ordem pela qual as condições são listadas é importante para encontrar uma combinação de candelabros?

Exemplo:

    if(((high[i-1]-low[i-1]) < (high[i]-low[i])) && (open[i-1] >= Lower1[i]) && ((close[i-1]-open[i-1]) >= 3*(close[i]-open[i])) &&
      (close[i-1 <= Base[i]]) && (high[i-1] <= 0.5*(high[i]-close[i])) && (close[i-1] <= open[i]) && ((close[i]-open[i])<= 0.33*(high[i]-close[i])) &&
      ((close[i]-open[i]) >= (open[i]-low[i])) && (close[i] <= Base[i])) // когда пин-бар ниже, либо равен линии Base
 

Olá. Conta de compensação, quero contar quantas ordens de limite da mesma direcção se tornaram posições.

A função não calcula correctamente, porquê?

int CurrentPos_sell_nettin()
  {
  string symb=_Symbol;
   int    total       =0;  // Всего сделок в списке выбранной истории
   int    count       =0;  // Счетчик сделок по символу позиции
//--- Если история позиции получена
   for(int i=0; i<PositionsTotal(); i++)
     {
      ulong pt=PositionGetTicket(i);
      long ID=PositionGetInteger(POSITION_IDENTIFIER);
      if(PositionGetString(POSITION_SYMBOL)==symb && HistorySelect(PositionGetInteger(POSITION_TIME),TimeCurrent()+60))
        {
         //--- Получим количество сделок в полученном списке
         total=HistoryDealsTotal();
         //--- Пройдем по всем сделкам в полученном списке
         for(int i=0; i<total; i++)
           {
            ulong dt = HistoryDealGetTicket(i);
            long did = HistoryDealGetInteger(dt, DEAL_POSITION_ID);
            ENUM_DEAL_ENTRY in_out=HistoryDealGetInteger(dt,DEAL_ENTRY);
            if(did==pt && in_out==DEAL_ENTRY_IN)
              {
               if(m_position.PositionType()==POSITION_TYPE_SELL)
                 {
                  count++;
                 }
              }
           }
        }
     }
//---
   return(count);
  }
 
lil_lil:

Olá. Conta de compensação, quero contar quantas ordens de limite da mesma direcção se tornaram posições.

A função não conta correctamente, porquê?

Comece com HistorySelectByPosition. Então, só terá os ofícios envolvidos nessa posição.

 
clickaider:

Tal pergunta - a ordem pela qual as condições são listadas é importante para encontrar uma combinação de candelabros?

Exemplo:

Dêemuma vista de olhos ao exemplo - existem trinta padrões diferentes.

 
Artyom Trishkin:

Artyom, vou repetir a pergunta, por favor responda:

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Perguntas de principiantes MQL5 MT5 MetaTrader 5

Alexey Kozitsyn, 2018.06.03 15:39

É assim que se fazem encomendas no testador MT5, em modo visual? E como é que se processam os eventos? OnChartEvent() não funciona, certo?


 
Alexey Viktorov:

Comece com HistorySelectByPosition. Então, só terá os ofícios envolvidos nessa posição.

Obrigado.

O que está errado agora?

int CurrentPos_sell_nettin()
  {
   string symb=_Symbol;
   int    total       =0;  // Всего сделок в списке выбранной истории
   int    count       =0;  // Счетчик сделок по символу позиции
//--- Если история позиции получена

   for(int i=0; i<PositionsTotal(); i++)
     {
      ulong pt=PositionGetTicket(i);
      long ID=PositionGetInteger(POSITION_IDENTIFIER);
      if(PositionGetString(POSITION_SYMBOL)==symb && HistorySelect(PositionGetInteger(POSITION_TIME),TimeCurrent()+60))
        {
         if(PositionSelect(symb))
           {
            long pos_id=long(PositionGetInteger(POSITION_IDENTIFIER));

            if(pos_id>0)
              {
               if(HistorySelectByPosition(ulong(pos_id)))
                  total=HistoryDealsTotal();
               //--- Пройдем по всем сделкам в полученном списке
               for(int i=0; i<total; i++)
                 {
                  ulong dt = HistoryDealGetTicket(i);
                  long did = HistoryDealGetInteger(dt, DEAL_POSITION_ID);
                  ENUM_DEAL_ENTRY in_out=HistoryDealGetInteger(dt,DEAL_ENTRY);
                  if(did==pt && in_out==DEAL_ENTRY_IN)
                    {
                     if(m_position.PositionType()==POSITION_TYPE_SELL)
                       {
                        count++;
                       }
                    }
                 }
              }
           }
        }
     }
//---
   return(count);
  }
Razão: