Especialistas: Método Puria

 

Método Puria:

Um sistema de negociação baseado no método Puria.

Método Puria

Autor: Vladimir Karputov

 
Automated-Trading:

Método Puria:

Autor: Vladimir Karputov

Olá, Vladimir. Desculpe-me por fazer uma pergunta aqui, mas não consigo abrir o MT-5 depois de reinstalar o Windows, porque não salvei minha senha quando mudei minha conta de netting para hedge. Você poderia me dizer o que devo fazer? O login é conhecido.

Obrigado.

 
Shara1:

Olá, Vladimir. Desculpe-me por fazer uma pergunta aqui, mas não consigo abrir o MT-5 depois de reinstalar o Windows, porque não salvei minha senha quando mudei minha conta de netting para hedge. Você poderia me dizer o que devo fazer? O login é conhecido.

Obrigado.

Não há nada que você possa fazer. É cruel, mas é uma boa vacina para o futuro: as senhas e os logins devem ser mantidos.
 
Vladimir Karputov:
Não há nada a ser feito. É cruel, mas é uma boa vacina para o futuro: as senhas e os logins devem ser mantidos.

Então tenho que fazer o download de uma nova senha e me registrar?

E se eu ainda não tiver uma demonstração no Admiralmarketing?

Muito obrigado.

 
Olá Vladimir,

- "MinProfitStep (Etapa mínima de lucro, em pips)"
- "MinProfitPercent (Coeficiente de tomada de lote em "Etapa mínima de lucro")."

Acredito que essas funções não estejam funcionando de forma eficiente ou não estejam funcionando corretamente.
Suspeito que essa função tenha sido escrita para o tipo de conta Netting, e o código do EA não foi projetado para "contas Hedge".

Você pode verificar se essa função funciona corretamente em contas do tipo "hedge"? ?

Muito obrigado

 
Edviao:
Olá, Vladimir,

- "MinProfitStep (Etapa mínima de lucro, em pips)"
- "MinProfitPercent (Coeficiente de tomada de lote em "Etapa de lucro mínimo")"

Acredito que essas funções não estejam funcionando de forma eficiente ou correta.
Suspeito que essa função tenha sido escrita para o tipo de conta Netting, e o código do EA não foi projetado para "contas Hedge".

Você pode verificar se essa função funciona corretamente em contas do tipo "hedge"? ?

Agradecimentos

A partir da descrição do EA:

Não mantém mais de uma posição no mercado - portanto, pode ser recomendado tanto para contas de compensação quanto para contas de hedge.

- Portanto, ele deve funcionar em ambas as contas. Embora possa ter suas próprias nuances para compensação - e eu não o recomendaria para compensação.

 
Olá, Vladimir,
Faria sentido adicionar a seguinte função a esse EA?

Obrigado.

"TrailingFrequency = 10; (Trailing, em segundos (< "10" -> somente em uma nova barra)"
 
Edviao:
Olá, Vladimir,
Faria sentido adicionar a seguinte função a esse EA?

Obrigado.

"TrailingFrequency = 10; (Trailing, em segundos (< "10" -> somente em uma nova barra)"

Não acho que essa seja uma boa ideia.

 
Vladimir Karputov:

Não acho que seja uma boa ideia.

Obrigado por compartilhar sua opinião.

Prezado Vladimir,

Fiz algumas melhorias no código das funções"MinProfitStep" e"MinProfitPercent".
Acredito que, com os novos códigos, a EA poderá obter resultados mais eficientes com essas funções. Ficaria feliz se compartilhasse sua opinião, sugestão ou conselho sobre a atualização.

else
   if (ExtMinProfitStep > 0) 
   {
      int d=0;
      for(int i=PositionsTotal()-1; i>=0; --i){
         if(m_position.SelectByIndex(i)){ // seleciona a posição por índice para acesso posterior às suas propriedades
            if(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==m_magic) {
               if(m_position.PositionType() != POSITION_TYPE_BUY && m_position.PositionType() != POSITION_TYPE_SELL)
                  continue;
               
               int      ActSide = m_position.PositionType() == POSITION_TYPE_SELL ? -1: +1;
               ulong    ActTicket = m_position.Ticket();
               double   ActLot = m_position.Volume();
               double   LastOpenPrice = NormalizeDouble(m_position.PriceOpen(), _Digits);
                  
               if (!HistorySelectByPosition(m_position.Identifier()))
                  continue;
               
               if (HistoryDealsTotal() > 1){
                  ulong ActDealTicket = HistoryDealGetTicket(HistoryDealsTotal() - 1);
                  LastOpenPrice = NormalizeDouble(HistoryDealGetDouble(ActDealTicket, DEAL_PRICE), _Digits);
               }
               
               if (ActSide * (NormalizeDouble(m_position.PriceCurrent(), _Digits) - (LastOpenPrice + ActSide * ExtMinProfitStep)) >= 0){
                  double lot_check=LotCheck(ActLot*InpMinProfitPercent);
                  
                  if(lot_check>0.0)
                     m_trade.PositionClosePartial(ActTicket,lot_check);
               }
            }
         }
      }
   }
}
 

Para que serve isso?

   if(ExtMinProfitStep > 0)
     {
      int d=0;
      for(int i=PositionsTotal()-1; i>=0; --i)
        {
         if(m_position.SelectByIndex(i))  // seleciona a posição por índice para acesso posterior às suas propriedades
           {
            if(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==m_magic)
              {
               int      ActSide        = (m_position.PositionType()==POSITION_TYPE_SELL)?-1:1;
               ulong    ActTicket      = m_position.Ticket();
               double   ActLot         = m_position.Volume();
               double   LastOpenPrice  = NormalizeDouble(m_position.PriceOpen(),m_symbol.Digits());
               if(!HistorySelectByPosition(m_position.Identifier()))
                  continue;
               if(HistoryDealsTotal() > 1)
                 {
                  ulong ActDealTicket=HistoryDealGetTicket(HistoryDealsTotal()-1);
                  LastOpenPrice=NormalizeDouble(HistoryDealGetDouble(ActDealTicket, DEAL_PRICE),m_symbol.Digits());
                 }
               if(ActSide*(NormalizeDouble(m_position.PriceCurrent(),m_symbol.Digits())-(LastOpenPrice+ActSide*ExtMinProfitStep))>= 0)
                 {
                  double lot_check=LotCheck(ActLot*InpMinProfitPercent);
                  if(lot_check>0.0)
                     m_trade.PositionClosePartial(ActTicket,lot_check);
                 }
              }
           }
        }
     }

Por que não usar seu método para uma posição?

PriceOpen

Obtém o preço de abertura de uma posição


?

Документация по MQL5: Стандартная библиотека / Торговые классы / CPositionInfo / PriceOpen
Документация по MQL5: Стандартная библиотека / Торговые классы / CPositionInfo / PriceOpen
  • www.mql5.com
PriceOpen - CPositionInfo - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Olá Vladimir, desculpe-me pela resposta tardia.

Isso é para descobrir o último preço de fechamento parcial.