Errores, fallos, preguntas - página 2734

 
Las pruebas tienen que hacerse correctamente y con mucho cuidado.

Además, es reproducible. Además, no es posible ejecutar el dll de otra persona sin compilarlo tú mismo desde el código fuente.
 

Buenas tardes a todos, me gustaría preguntar sobre lo siguiente

Soy un principiante, tal vez alguien pueda explicarme

Abrí una cuenta demo con diferentes operadores, no sólo en Rusia, me encontré con un problema: no puedo colocar lotes en el mercado, es decir, ¡puedo pero sólo al precio del mercado! ¡Sólo puedo poner lotes a precio de mercado!

¡Probablemente no sé nada!

Puedo ir a cualquier sitio por el mercado y me tomarán el pedido igualmente. Pero no puedo hacer eso con los terminales de divisas, ¡sólo puedo comprar a precio de mercado con un enorme diferencial!

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
, то позиции по каждому символу разрешается закрывать только в том порядке, в котором они были открыты — сначала самую старую, затем более новую и т.д. При попытке закрыть позиции в ином порядке будет получена ошибка. Уровень залоговых средств, при достижении которого происходит принудительное закрытие самой убыточной позиции (Stop Out...
 
el sitio web no funciona
 
Vladimir Pastushak:
el psc del sitio web no funciona
.
 
Alexey Viktorov:
.

Ya funciona.

 
Renat Fatkhullin:
Las pruebas tienen que hacerse correctamente y con mucho cuidado.

no se planificó ninguna prueba, sólo para evaluar las capacidades

OK, consideremos que de esta manera florida, usted ha rechazado, ofrecí las fuentes VS arriba

 

¡Buenas tardes!

Función de arrastre.

Me pueden decir que es lo que pasa, me da error 4756 en el probador de estrategias. Al ejecutarlo en el script, funciona.

int Tralling(int PointsTral=200)
  {
   MqlTradeRequest Request;
   MqlTradeResult Result;
   int PosTot, i, digits;
   string Symbols[]= {""};
   double SymbPt,sl,tp,
          PriceOpen[]= {0};
   i=0;
   PosTot= PositionsTotal();
   if(PosTot>0)
     {
      while(i<PosTot)
        {
         Symbols[i] = PositionGetSymbol(i);
         digits=(int)SymbolInfoInteger(Symbols[i],SYMBOL_DIGITS);
         if(PositionSelect(Symbols[i]))
           {
            PriceOpen[i] = PositionGetDouble(POSITION_PRICE_OPEN);
            SymbPt = SymbolInfoDouble(Symbols[i],SYMBOL_POINT);
            if(PositionGetInteger(POSITION_TYPE) == 0)
              {
               if(SymbolInfoDouble(Symbols[i],SYMBOL_BID) >= PriceOpen[i]+(SymbPt*PointsTral))
                 {
                  if(SymbolInfoDouble(Symbols[i],SYMBOL_BID)>PositionGetDouble(POSITION_SL)+(SymbPt*PointsTral))
                    {
                     sl=SymbolInfoDouble(Symbols[i],SYMBOL_BID)-(SymbPt*PointsTral);
                     tp=PositionGetDouble(POSITION_TP);
                     Request.action=TRADE_ACTION_SLTP;
                     Request.symbol = Symbols[i];
                     Request.sl=NormalizeDouble(sl,digits);
                     Request.tp=NormalizeDouble(tp,digits);
                     Request.position=PositionGetInteger(POSITION_TICKET);
                     if(!OrderSend(Request,Result))
                        Alert("Ошибка Треллинга ",GetLastError());
                    }
                 }
              }

            if(PositionGetInteger(POSITION_TYPE) == 1)
              {
               if(SymbolInfoDouble(Symbols[i],SYMBOL_ASK) <= PriceOpen[i]-(SymbPt*PointsTral))
                 {
                  if(SymbolInfoDouble(Symbols[i],SYMBOL_ASK)<PositionGetDouble(POSITION_SL)-(SymbPt*PointsTral))
                    {
                     sl=SymbolInfoDouble(Symbols[i],SYMBOL_ASK)+(SymbPt*PointsTral);
                     tp=PositionGetDouble(POSITION_TP);
                     Request.action=TRADE_ACTION_SLTP;
                     Request.symbol = Symbols[i];
                     Request.sl=NormalizeDouble(sl,digits);
                     Request.tp=NormalizeDouble(tp,digits);
                     Request.position=PositionGetInteger(POSITION_TICKET);
                     if(!OrderSend(Request,Result))
                        Alert("Ошибка Треллинга ",GetLastError());
                    }
                 }
              }

           }
         else
           {
            Alert("Не удалось выделить оредер по символу. ", Symbols[i], " Ошибка ", GetLastError());
           }
         i++;
        }
     }
   return (1);
  }

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Тикет позиции. Уникальное число, которое присваивается каждой вновь открытой позиции. Как правило, соответствует тикету ордера, в результате которого она была открыта, за исключением случаев изменения тикета в результате служебных операций на сервере. Например, начисления свопов переоткрытием позиции. Для нахождения ордера, которым была открыта...
 

¡Buenas tardes!

No encuentro el error. Es una parada de Tralling. Si lo tiro en el gráfico con el script, funciona. En el probador de estrategias, devuelve el error 4756 (No se puede enviar al servidor)

Por favor, ayúdenme.

int Tralling(int PointsTral=200)
  {
   MqlTradeRequest Reques;
   MqlTradeResult Result;
   int PosTot, i, digits;
   string Symbols;
   double SymbPt,sl,tp,
          PriceOpen;
   i=0;
   PosTot= PositionsTotal();
   if(PosTot>0)
     {
      while(i<PosTot)
        {
         Symbols = PositionGetSymbol(i);
         digits=(int)SymbolInfoInteger(Symbols,SYMBOL_DIGITS);
         if(PositionSelect(Symbols))
           {
            PriceOpen = PositionGetDouble(POSITION_PRICE_OPEN);
            SymbPt = SymbolInfoDouble(Symbols,SYMBOL_POINT);
            if(PositionGetInteger(POSITION_TYPE) == 0)
              {
               if(SymbolInfoDouble(Symbols,SYMBOL_BID) >= PriceOpen+(SymbPt*PointsTral))
                 {
                  if(SymbolInfoDouble(Symbols,SYMBOL_BID)>PositionGetDouble(POSITION_SL)+(SymbPt*PointsTral))
                    {
                     sl=SymbolInfoDouble(Symbols,SYMBOL_BID)-(SymbPt*PointsTral);
                     tp=PositionGetDouble(POSITION_TP);
                     Reques.action=TRADE_ACTION_SLTP;
                     Reques.symbol = Symbols;
                     Reques.position=PositionGetInteger(POSITION_TICKET);
                     Reques.sl=NormalizeDouble(sl,digits);
                     Reques.tp=NormalizeDouble(tp,digits);
                     if(!OrderSend(Reques,Result))
                        Alert("Ошибка Треллинга ",GetLastError());
                    }
                 }
              }

            if(PositionGetInteger(POSITION_TYPE) == 1)
              {
               if(SymbolInfoDouble(Symbols,SYMBOL_ASK) <= PriceOpen-(SymbPt*PointsTral))
                 {
                  if(SymbolInfoDouble(Symbols,SYMBOL_ASK)<PositionGetDouble(POSITION_SL)-(SymbPt*PointsTral))
                    {
                     sl=SymbolInfoDouble(Symbols,SYMBOL_ASK)+(SymbPt*PointsTral);
                     tp=PositionGetDouble(POSITION_TP);
                     Reques.action=TRADE_ACTION_SLTP;
                     Reques.symbol = Symbols;
                     Reques.position=PositionGetInteger(POSITION_TICKET);
                     Reques.sl=NormalizeDouble(sl,digits);
                     Reques.tp=NormalizeDouble(tp,digits);
                     if(!OrderSend(Reques,Result))
                        Alert("Ошибка Треллинга ",GetLastError());
                    }
                 }
              }

           }
         else
           {
            Alert("Не удалось выделить оредер по символу. ", Symbols[i], " Ошибка ", GetLastError());
           }
         i++;
        }
     }

   return (1);
  }
 
Igor Makanu:

no se han previsto pruebas, sólo una evaluación de la capacidad

OK, consideremos que de esta manera florida, usted ha rechazado, ofrecí las fuentes VS arriba

Has hecho una afirmación excepcional y no la has probado. Tampoco es la primera vez que publica un dll, lo cual está prohibido.

No veo el código fuente para la reproducción.

 
Renat Fatkhullin:

Ha hecho una afirmación excepcional y no la ha demostrado. Además, no es la primera vez que publica un dll, lo cual está prohibido.

No veo el código fuente para la reproducción.

¿Qué muestra la exclusividad de la declaración? Todo lo que veo es que la medición del rendimiento para el antiguo terminal dio muy buenos resultados, imho, como dicen - una cosa buena hecha para las edades.

Hoy lo he comprobado en PC y me ha dado los mismos resultados que MT4/MT5, lo he vuelto a comprobar en el portátil, tampoco he visto ninguna diferencia, la alta probabilidad de que en el fondo de algún servicio Win10 "mastique la unidad", no he configurado el tiempo de ejecución en el portátil, Win configuró el horario nocturno por defecto.

Por la noche todavía había el deseo de entender lo que la diferencia, hoy en un principio - dejar que funcione, no veo el código fuente no tiene sentido para hacer comentarios o cortar partes para comenzar la aclaración de la situación o la discusión, no quiero hacerlo.


De los errores de la nueva construcción:

no es una información correcta en el registro de la terminal:

2020.05.06 19:03:03.895 Terminal Windows 10 build 18363, Intel Core i3 M 380 @ 2.53GHz, 0 / 2 Gb de memoria, 149 / 237 Gb de disco, IE 11, UAC, GMT+4

Win free 920 MB de 2,97 GB en el administrador de tareas, las versiones anteriores tenían más información correcta del sistema