Afflitto dall'errore non ci sono operazioni commerciali - pagina 19

 

Eccomi qui, a comprare 1 quid con i miei soldi - e ad aspettare che salga.

Mi piace, ho comprato 1 sterlina in prestito, aspettando che cada.

Ho l'impressione che non tutti lo capiscano.

 
Ti rispondo sul tema: niente commercio. Beh, no, per niente.
 
Алексей Тарабанов:
Per rispondere all'argomento: non ci sono scambi. Beh, no, per niente.

c'è un delta tra l'acquisto e la vendita

muove il prezzo, è essenzialmente il prezzo di mercato, lascia che diventi un interesse aperto

il resto lo chiameremo l'attività sottostante, è nella borsa ed è fuori dal mercato e formato dalla procedura di compensazione

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

È incoraggiante.

Sei così intelligente finché non affronti il problema in prima persona...

 

Questo codice sarà rifiutato dal validatore

   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);

Il validatore dice 131 errore, volume sbagliato...

 

Buon pomeriggio, utenti del forum. Per favore consigliatemi, sto lottando con la convalida per mt5 per la seconda settimana. Mi dà un errore

test su EURUSD,H1 (hedging) 2019.04.16 22:00:00 failed cancel order #73 sell stop 0.6 EURUSD a 1.12685 sl: 1.12851 tp: 1.11503 [stop non valido]

2019.05.02 12:00:00 failed cancel order #136 sell stop 0.55 EURUSD a 1.11636 sl: 1.11814 tp: 1.10367 [Invalid stops]

2019.05.06 03:00:00 failed cancel order #147 sell stop 0.45 EURUSD a 1.11359 sl: 1.11578 tp: 1.09797 [stops non validi]

2019.05.06 08:00:00 failed cancel order #148 sell stop 0.5 EURUSD a 1.11447 sl: 1.11645 tp: 1.10036 [stop non valido]

2019.05.06 18:00:00 failed cancel order #151 sell stop 0.5 EURUSD a 1.11585 sl: 1.11783 tp: 1.10175 [stop non valido]

2019.05.08 14:00:00 failed cancel order #167 sell stop 0.6 EURUSD a 1.11772 sl: 1.11938 tp: 1.10593 [Invalid stops]

2019.05.09 21:00:00 failed cancel order #175 sell stop 0.45 EURUSD a 1.11921 sl: 1.12138 tp: 1.10377 [stop non valido]

2019.05.13 16:00:00 failed cancel order #181 sell stop 0.6 EURUSD at 1.12225 sl: 1.12390 tp: 1.11054 [Invalid stops] strategy tester report 5 total trades


Ho fatto tutti i controlli. La cosa strana è che solo sulla cancellazione dell'ordine Sell Stop. Rimuovo semplicemente il posizionamento dell'ordine Sell Stop dal codice.

Funziona. Quale può essere il 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 risolto, ma penso che sia un bug del validatore. Ha preso il prezzo a tick.bid e il prezzo OrderGetDouble(ORDER_PRICE_CURRENT).

E questo errore si applica solo agli ordini SellStop

 
Alexey Osipov:

Problema risolto, ma penso che sia un bug del validatore. Ha preso il prezzo a tick.bid e il prezzo OrderGetDouble(ORDER_PRICE_CURRENT).

E questo errore si applica solo agli ordini SellStop

Non lavoro con i livelli di stop da molto tempo, ma ricordo che aggiungevo sempre 1 pip solo a causa degli stop non validi. Prova ad aumentare i livelli di stop di un punto.
 

Nuova difficoltà:


Quando pubblica l'utilità, il tester dà

test on EURUSD,H1
strategy tester report not found

L'utilità non ha funzioni di trading.


Come superare una tale convalida?

 
Sergey Likho:

Nuova difficoltà:

Quando si pubblica l'utilità, il tester emette

L'utilità non ha funzioni di trading.

Come superare tale convalida?

Questo è un bug del validatore, aspetta che sia risolto...

Motivazione: