El error es que no hay operaciones comerciales - página 19

 

Aquí estoy, comprando 1 libra con mi dinero - y esperando que suba.

Me gusta, compro 1 libra en préstamo, espero a que caiga.

Tengo la impresión de que no todo el mundo lo entiende.

 
Voy a responder sobre el tema: no hay comercio. Bueno, no, en absoluto.
 
Алексей Тарабанов:
Para responder al tema: no hay oficios. Bueno, no, en absoluto.

hay un delta entre la compra y la venta

mueve el precio, es esencialmente el precio del mercado, que se convierta en el interés abierto

el resto lo llamaremos activo subyacente, está en la bolsa y está fuera del mercado y formado por el procedimiento de compensación

 
Алексей Тарабанов:

Es alentador.

Eres tan inteligente hasta que te enfrentas al problema por ti mismo...

 

Este código será rechazado por el validador

   if(aTicket > 0)
      if(OrderSelect(aTicket, SELECT_BY_TICKET, MODE_TRADES))
         if(!OrderClose(aTicket, NormalizeDouble(OrderLots(), 2), NormalizeDouble(OrderType() == 0 ? Bid : Ask, Digits()), 30))
            return (false);

El validador dice error 131, volumen equivocado...

 

Buenas tardes, usuarios del foro. Por favor, aconsejen, estoy luchando con la validación para mt5 por segunda semana. Me da un error

test en EURUSD,H1 (hedging) 2019.04.16 22:00:00 falló la orden de cancelación #73 sell stop 0.6 EURUSD a 1.12685 sl: 1.12851 tp: 1.11503 [paradas inválidas].

2019.05.02 12:00:00 orden de cancelación fallida #136 vender stop 0,55 EURUSD a 1,11636 sl: 1,11814 tp: 1,10367 [Paradas no válidas]

2019.05.06 03:00:00 orden de cancelación fallida #147 vender stop 0,45 EURUSD a 1,11359 sl: 1,11578 tp: 1,09797 [Paradas no válidas]

2019.05.06 08:00:00 orden de cancelación fallida #148 vender stop 0.5 EURUSD a 1.11447 sl: 1.11645 tp: 1.10036 [Paradas no válidas]

2019.05.06 18:00:00 orden de cancelación fallida #151 vender stop 0.5 EURUSD a 1.11585 sl: 1.11783 tp: 1.10175 [Paradas no válidas]

2019.05.08 14:00:00 orden de cancelación fallida #167 vender stop 0,6 EURUSD a 1,11772 sl: 1,11938 tp: 1,10593 [Paradas no válidas]

2019.05.09 21:00:00 orden de cancelación fallida #175 vender stop 0,45 EURUSD a 1,11921 sl: 1,12138 tp: 1,10377 [Paradas no válidas]

2019.05.13 16:00:00 orden de cancelación fallida #181 vender stop 0.6 EURUSD a 1.12225 sl: 1.12390 tp: 1.11054 [stops inválidos] informe del probador de estrategias 5 operaciones totales


Hice todas las comprobaciones. Lo raro es que sólo en la eliminación de la orden Sell Stop. Simplemente elimino la colocación de la orden Sell Stop del código.

Funciona. ¿Cuál puede ser el problema?

bool sqDeletePendingOrder(ulong ticket) {
   Verbose(" Deleting pending order, ticket: " + IntegerToString(ticket));
   
   if(!OrderSelect(ticket)) return false;
   
   double order_price = OrderGetDouble(ORDER_PRICE_OPEN);
   
   ENUM_ORDER_TYPE orderType = (ENUM_ORDER_TYPE) OrderGetInteger(ORDER_TYPE);

   if(orderType == ORDER_TYPE_BUY || orderType == ORDER_TYPE_SELL) {
      Verbose("Trying to delete non-pending order");
      return(false);
   }

  MqlTick tick;

   GetLastError(); // clear the global variable.
   int error = 0;
   int retries = 0;
   bool result;
   
   double stops_level = (double)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_FREEZE_LEVEL);
   double freeze_level = (double)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL);  
   double level = MathMax(stops_level,freeze_level);
   
   while (true) {  
      
      if (!SymbolInfoTick(_Symbol,tick)) return(false);
 
      double spread = ((tick.ask-tick.bid)/_Point); 
      if (level<=0) level = spread*3;

      bool del = true;
     
      if(orderType == ORDER_TYPE_BUY_LIMIT){ //Ask-Open  OrderGetDouble(ORDER_PRICE_CURRENT)
         if((tick.ask-order_price)/_Point <= level){
            VerboseLog("Cannot delete of order with Ticket#:", IntegerToString(ticket));            
            del = false;
         } 
      }
      else if(orderType == ORDER_TYPE_SELL_LIMIT){ //Open - Bid
         if((order_price-tick.bid)/_Point <= level) {
            VerboseLog("Cannot delete of order with Ticket#:", IntegerToString(ticket));           
            del = false;
         } 
      }
      else if(orderType == ORDER_TYPE_BUY_STOP){ //Open - Ask
         if((order_price-tick.ask)/_Point <= level) {
            VerboseLog("Cannot delete of order with Ticket#:", IntegerToString(ticket));           
            del = false;
         }
      }
      else if(orderType == ORDER_TYPE_SELL_STOP){ //Bid - Open
         //Print("SELLSTOP: ",(tick.bid-order_price)/_Point," ;  ",level);
         if((tick.bid-order_price) <= level*_Point) {        
            VerboseLog("Cannot delete of order with Ticket#:", IntegerToString(ticket));           
            del = false;
         } 
      }
      if (IsTradeAllowed() && del == true) {
         result = OrderDelete(ticket);    // Удаление отложки  Trade.Delete(ticket)                             
         if(result) {
            Verbose("Order deleted successfuly");
            return(true);
         }
      }

      retries++;
      if(!sqProcessErrors(retries, GetLastError())) {
         return(false);
      }
   }
 return(false);
}
 

Problema resuelto, pero creo que es un error del validador. Toma el precio en tick.bid y el precio OrderGetDouble(ORDER_PRICE_CURRENT).

Y este error sólo se aplica a las órdenes SellStop

 
Alexey Osipov:

Problema resuelto, pero creo que es un error del validador. Toma el precio en tick.bid y el precio OrderGetDouble(ORDER_PRICE_CURRENT).

Y este error sólo se aplica a las órdenes SellStop

Hace tiempo que no trabajo con niveles de stop, pero recuerdo que siempre añadía 1 pip por culpa de los stops no válidos. Intenta aumentar los niveles de parada en un punto.
 

Nueva dificultad:


Al publicar la Utilidad, el probador da

test on EURUSD,H1
strategy tester report not found

La empresa no tiene ninguna función comercial.


¿Cómo pasar una validación de este tipo?

 
Sergey Likho:

Nueva dificultad:

Al publicar la Utilidad, el probador emite

La empresa no tiene ninguna función comercial.

¿Cómo pasar dicha validación?

Se trata de un error del validador, espere a que lo arreglen...

Razón de la queja: