Trouble de l'erreur il n'y a pas d'opérations commerciales - page 19

 

Je suis là, j'achète 1 livre avec mon argent - et j'attends que ça monte.

J'aime ça, j'achète 1 livre en prêt, j'attends que ça tombe.

J'ai l'impression que tout le monde ne comprend pas cela.

 
Je répondrai sur le sujet : pas de commerce. Eh bien, non, pas du tout.
 
Алексей Тарабанов:
Pour répondre au sujet : il n'y a pas de métiers. Eh bien, non, pas du tout.

Il y a un delta entre l'achat et la vente.

il déplace le prix, c'est essentiellement le prix du marché, laissez-le devenir un intérêt ouvert.

le reste, nous l'appellerons l'actif sous-jacent, il est dans le stock et il est hors du marché et formé par la procédure de compensation.

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

C'est encourageant.

Vous êtes si intelligents jusqu'à ce que vous soyez confrontés au problème vous-même...

 

Ce code sera rejeté par le validateur

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

Le validateur indique 131 erreurs, mauvais volume...

 

Bonjour, utilisateurs du forum. S'il vous plaît, conseillez moi, j'ai du mal avec la validation pour mt5 pour la deuxième semaine. Cela me donne une erreur

test sur EURUSD,H1 (hedging) 2019.04.16 22:00:00 failed cancel order #73 sell stop 0.6 EURUSD at 1.12685 sl : 1.12851 tp : 1.11503 [Invalid stops]

2019.05.02 12:00:00 failed cancel order #136 sell stop 0.55 EURUSD at 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 at 1.11359 sl : 1.11578 tp : 1.09797 [Invalid stops]

2019.05.06 08:00:00 failed canceller order #148 sell stop 0.5 EURUSD at 1.11447 sl : 1.11645 tp : 1.10036 [Invalid stops]

2019.05.06 18:00:00 failed canceller order #151 sell stop 0.5 EURUSD at 1.11585 sl : 1.11783 tp : 1.10175 [Invalid stops]

2019.05.08 14:00:00 failed cancel order #167 sell stop 0.6 EURUSD at 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 at 1.11921 sl : 1.12138 tp : 1.10377 [Invalid stops]

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


J'ai fait toutes les vérifications. Ce qui est bizarre, c'est qu'il n'y a qu'en cas de suppression de l'ordre de vente stop. Je supprime simplement le placement de l'ordre Sell Stop du code.

Ça marche. Quel peut être le problème ?

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

Problème résolu, mais je pense que c'est un bug du validateur. Pris le prix au tick.bid et le prix OrderGetDouble(ORDER_PRICE_CURRENT).

Et cette erreur ne s'applique qu'aux ordres SellStop

 
Alexey Osipov:

Problème résolu, mais je pense que c'est un bug du validateur. Pris le prix au tick.bid et le prix OrderGetDouble(ORDER_PRICE_CURRENT).

Et cette erreur ne s'applique qu'aux ordres SellStop

Je n'ai pas travaillé avec les niveaux de stop depuis longtemps mais je me souviens avoir toujours ajouté 1 pip juste à cause des stops invalides. Essayez d'augmenter les niveaux d'arrêt d'un point.
 

Nouvelle difficulté :


Lors de la publication de l'utilitaire, le testeur donne

test on EURUSD,H1
strategy tester report not found

Le service public n'a pas de fonctions de négociation.


Comment passer une telle validation ?

 
Sergey Likho:

Nouvelle difficulté :

Lors de la publication de l'utilitaire, le testeur sort

Le service public n'a pas de fonctions de négociation.

Comment passer cette validation ?

C'est un bug du validateur, attendez qu'il soit corrigé...