Asesores Expertos: Puria method

 

Puria method:

El sistema comercial a base del método de Puria.

Puria method

Autor: Vladimir Karputov

 
Automated-Trading:

Método Puria:

Autor: Vladimir Karputov

Hola Vladimir Perdona por hacer una pregunta aquí, no puedo abrir MT-5 después de reinstalar Windows, porque no guardé mi contraseña cuando cambié mi cuenta de netting a hedge. ¿Podrías por favor decirme qué hacer? El login es conocido.

Gracias.

 
Shara1:

Hola Vladimir Perdon por hacer una pregunta aqui, no puedo abrir MT-5 despues de reinstalar Windows, porque no guarde mi contraseña cuando cambie mi cuenta de netting a hedge. ¿Podrías por favor decirme qué hacer? El login es conocido.

Gracias.

No hay nada que puedas hacer. Es cruel, pero es una buena vacuna para el futuro: las contraseñas y los nombres de usuario deben conservarse.
 
Vladimir Karputov:
No hay nada que hacer. Es cruel, pero es una buena vacuna para el futuro: las contraseñas y los nombres de usuario deben conservarse.

¿Así que tengo que descargar una nueva y registrarme?

¿Y si no tengo ya una demo en Admiralmarketing?

Gracias.

 
Hola Vladimir,

- "MinProfitStep (Mínimo paso de beneficio, en pips)"
- "MinProfitPercent (Coeficiente de toma de lote en "Paso mínimo de beneficio")".

Creo que estas funciones no funcionan eficientemente o no funcionan correctamente.
Sospecho que esta función está escrita para el tipo de cuenta Netting, y el código del EA no está diseñado para "Cuentas Hedge".

¿Puede comprobar si esta función funciona correctamente en cuentas de tipo "cobertura"? ?

Gracias

 
Edviao:
Hola, Vladimir,

- "MinProfitStep (Paso de ganancia mínima, en pips)"
- "MinProfitPercent (Coeficiente de toma de lotes en el "Paso de beneficio mínimo")"

Creo que estas funciones no funcionan eficientemente o no funcionan correctamente.
Sospecho que esta función está escrita para el tipo de cuenta Netting, y el código del EA no está diseñado para "Cuentas Hedge".

¿Puede comprobar si esta función funciona correctamente en cuentas de tipo "cobertura"? ?

Gracias

De la descripción de la EA:

No mantiene más de una posición en el mercado - por lo que puede ser recomendado tanto para cuentas de compensación como de cobertura.

- Así que debería funcionar en ambas cuentas. Aunque puede tener sus propios matices para netting - y yo no lo recomendaría para netting.

 
Hola Vladimir,
¿Tendría sentido añadir la siguiente función a este EA?

Gracias.

"TrailingFrequency = 10; (Trailing, en segundos (< "10" -> sólo en una nueva barra)"
 
Edviao:
Hola, Vladimir,
¿Tendría sentido añadir la siguiente función a este EA?

Gracias.

"TrailingFrequency = 10; (Trailing, en segundos (< "10" -> sólo en una nueva barra)"

No creo que esto sea una buena idea.

 
Vladimir Karputov:

No creo que sea una buena idea.

Gracias por compartir su opinión.

Estimado Vladimir,

Hice algunas mejoras de código para las funciones"MinProfitStep" y"MinProfitPercent".
Creo que con los nuevos códigos EA será capaz de obtener resultados más eficientes de estas funciones. Me encantaría que compartieras tu opinión, sugerencia o consejo sobre la actualización.

else
   if (ExtMinProfitStep > 0) 
   {
      int d=0;
      for(int i=PositionsTotal()-1; i>=0; --i){
         if(m_position.SelectByIndex(i)){ // selecciona la posición por el índice para acceder posteriormente a sus propiedades
            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 qué sirve?

   if(ExtMinProfitStep > 0)
     {
      int d=0;
      for(int i=PositionsTotal()-1; i>=0; --i)
        {
         if(m_position.SelectByIndex(i))  // selecciona la posición por el índice para acceder posteriormente a sus propiedades
           {
            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 qué no utilizar su método para una posición

PrecioDeApertura

Obtiene el precio de apertura de una posición


?

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

Hola Vladimir, disculpa el retraso en la respuesta.

Se trata de averiguar el último precio de cierre parcial.