Problema con _Symbol en MultiCurrency EA

 

Te tengo una pregunta, espero que me puedan ayudar.

Si utilizamos _Symbol o Symbol () toma el símbolo de la grafica actual. Yo estoy creando un MultiCurrency. Hay algún parámetro como esos pero para indicar que aplique a cualquier symbolo y no al grafico actual? El problema lo tengo con mi trailing stop.

Les dejo el código.


Como pueden ver en SymbolInfoDouble tengo _Symbol y así solo me toma el par de la grafica actual.

int posTotal=PositionsTotal();
   for(int posIndex=posTotal-1; posIndex>=0; posIndex--)
     {
      ulong ticket=PositionGetTicket(posIndex);
      if(PositionSelectByTicket(ticket) && PositionGetInteger(POSITION_MAGIC)==MagicNumber)
        {
         if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
           {
            if(TrailingStop>0)
              {
               if(SymbolInfoDouble(_Symbol,SYMBOL_BID)-PositionGetDouble(POSITION_PRICE_OPEN)>MyPoint*TrailingStop)
                 {
                  if(PositionGetDouble(POSITION_SL)<SymbolInfoDouble(_Symbol,SYMBOL_BID)-MyPoint*TrailingStop)
                    {
                     trade.PositionModify(ticket,SymbolInfoDouble(_Symbol,SYMBOL_BID)-MyPoint*TrailingStop,PositionGetDouble(POSITION_TP));
                     return;
                    }
                 }
              }
           }

         if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
           {
            if(TrailingStop>0)
              {
               if(PositionGetDouble(POSITION_PRICE_OPEN)-SymbolInfoDouble(_Symbol,SYMBOL_ASK)>MyPoint*TrailingStop)
                 {
                  if(PositionGetDouble(POSITION_SL)>SymbolInfoDouble(_Symbol,SYMBOL_ASK)+MyPoint*TrailingStop)
                    {
                     trade.PositionModify(ticket,SymbolInfoDouble(_Symbol,SYMBOL_ASK)+MyPoint*TrailingStop,PositionGetDouble(POSITION_TP));
                     return;
                    }
                 }
              }
           }
        }
     }
 
LupusLunam:

Te tengo una pregunta, espero que me puedan ayudar.

Si utilizamos _Symbol o Symbol () toma el símbolo de la grafica actual. Yo estoy creando un MultiCurrency. Hay algún parámetro como esos pero para indicar que aplique a cualquier symbolo y no al grafico actual? El problema lo tengo con mi trailing stop.

Les dejo el código.


Como pueden ver en SymbolInfoDouble tengo _Symbol y así solo me toma el par de la grafica actual.

for(s=0;SymbolsTotal(true);s++){
  string SName=SymbolName(s,true);

Con esto puedes utilizar todos los símbolos en el MarketWatch.

 
Creo que le será muy útil a otros también.
 
David Diez #:

Con esto puedes utilizar todos los símbolos en el MarketWatch.

Gracias David. Intente anexarlo al código y no logre que resultara. Sera mucha molestia si podrías anexarlo al código que publique, así ya lo tengo y veo donde fue que no pude. Muchas gracias de verdad.

 
LupusLunam #:

Gracias David. Intente anexarlo al código y no logre que resultara. Sera mucha molestia si podrías anexarlo al código que publique, así ya lo tengo y veo donde fue que no pude. Muchas gracias de verdad.

Me pide declarar el valor "s"

 
LupusLunam #:

Gracias David. Intente anexarlo al código y no logre que resultara. Sera mucha molestia si podrías anexarlo al código que publique, así ya lo tengo y veo donde fue que no pude. Muchas gracias de verdad.

LupusLunam #:

Me pide declarar el valor "s"

Está todo aquí:

SymbolsTotal - Obtención de información de mercado - Manual de referencia de MQL5 - manual de usuario para el lenguaje del trading algorítmico/automático para MetaTrader 5

SymbolName - Obtención de información de mercado - Manual de referencia de MQL5 - manual de usuario para el lenguaje del trading algorítmico/automático para MetaTrader 5

Necesitarías hacer un bucle de símbolos en el que insertar tu código para poder trabajar con ellos, para este ejemplo serían todos los símbolos en Observación de mercado.

Si lo que necesitas es trabajar con una lista predefinida de instrumentos te sugiero que busques ejemplos en CodeBase.

 
alguien sabe como incorporare un símbolo a la lista que por defecto trae el programa?
 
ramon7709 #:

Teclas Control+U.

Razón de la queja: