Les erreurs typiques et la façon de les traiter dans l'environnement de négociation - page 8

 
fxsaber:

La recette, comme on dit, est universelle :

  1. Rencontrer un ordre au marché avec un ID nul - sortir immédiatement.
  2. MT5-OrderSend est réécrit pour retourner toujours un Result.deal non nul - le code source a été posté dans KB.
  3. Après chaque commande, envoyez ou mettez en veille à l'étape 1.
Avec cette approche, n'importe quel CT (à 100% absolu) fonctionnera.

Et ce n'est pas ce dont je parle ?

Les gens ont parfois une étrange perception de l'information :)

Seulement, il ne s'agit pas de sortir immédiatement de l'ordre avec un ID nul, mais de le traiter sur le même tick - une sorte d'attente prédéfinie.

Le reste est tout ce dont je parlais. Il s'avère que c'est le fond :))))

 

Réfléchir à l'adéquation de leurs TOR. Une situation réelle qui se produit tous les jours sur MT4

  1. Rien n'est ouvert.
  2. Vous avez placé une BuyLimit et ensuite aucun OrderSend.
  3. Après un certain temps, vous avez trouvé 3 positions d'achat et une limite d'achat.
  4. Après un certain temps, vous détectez 2 positions d'achat et une limite d'achat.
  5. Dans un moment, vous devez fermer 5 positions d'achat.
  6. De temps en temps, vous devez détecter 1 position de BUY.
  7. Après un certain temps, vous détectez le point 1.

C'est le plus facile. Par conséquent, le modèle proposé contient

// Находит позицию соответствующего типа
bool PositionsScan( const string Symb, const ENUM_POSITION_TYPE Type );
Eh bien, et quel niveau de résilience TC écrire et pour qui - chacun décide pour lui-même.
 
fxsaber:

  1. Rien n'a été ouvert.
  2. Vous définissez une BuyLimit et ensuite aucun OrderSend.
  3. Après un certain temps, vous avez 3 positions d'achat et une limite d'achat.
  4. Après un certain temps, vous avez 2 positions d'achat et une limite d'achat.
  5. Dans un moment, vous devez fermer 5 positions d'achat.
  6. De temps en temps, vous devez détecter 1 position de BUY.
  7. Après une certaine période de temps, vous détectez le point 1.

Donc BuyLimit est une position EA. Les autres sont manuels.

Tout TS peut distinguer ses propres positions de celles des autres.

La conversation portait sur leurs propres positions.

 
Artyom Trishkin:

La BuyLimit est donc celle fixée par le conseiller. Les autres sont manuels.

Toute TS peut distinguer la sienne de celle d'un autre.

La conversation portait sur leurs positions.

Rien de manuel ou par un autre conseiller expert. Une seule BuyLimit est exposée. Toutes les positions BUY mentionnées ont la même magie que BuyLimit.

 
fxsaber:

Rien de manuel ou par un autre conseiller. Une seule BuyLimit est définie. Toutes les positions BUY mentionnées ont le même chiffre magique que BuyLimit.

Donc - exécution partielle.

 
Artyom Trishkin:

Donc - performance partielle.

Juste ça.

 
fxsaber:

Influencez QB pour qu'elle cesse de poster du code avec des bogues, je pense que cela en vaudrait la peine.

 
Artyom Trishkin:

Seulement pour ne pas sortir immédiatement sur un ordre avec un ID nul, mais pour le traiter sur le même tick - une sorte d'attente programmée.

Oui, sortir immédiatement n' est pas une bonne solution.

 
Les commentaires non liés à ce sujet ont été déplacés vers "Toutes les questions des débutants sur MQL4, aide et discussion sur les algorithmes et les codes".
 
Ivan Ivanov:


2018.02.20 15:20:35.845 Transactions ordre #66745055 acheter 0.01 / 0.01 EURUSDeur au marché fait en 610.625 ms

2018.02.20 15:20:35.935 Transactions deal #5461453 buy 0.01 EURUSDeur at 1.23403 done (based on order #66745055)

2018.02.20 15:20:35.845 TestBUY (EURUSDeur,M15) retcode=10009 deal=0 order=66745055

Si la demande est satisfaite (10009), pourquoi deal=0 ?

Bonjour !

J'ai une question similaire pour tout le monde et surtout pour fxsaber.
Il semble que ce soit une question primitive, mais je n'arrive pas à y trouver de réponse.
Ici https://www.mql5.com/ru/forum/6343/page939 on m'a dit "Essayez de faire une recherche. fxsaber travaille sur ce problème depuis un moment. Ce qui a marché, je ne sais pas, ça ne m'intéresse pas." J'ai donc décidé de vous demander.

La question est la suivante. J'ai ouvert une position et je veux imprimer le contenu de MqlTradeResult:

        MqlTradeRequest request={0};
        MqlTradeResult  result={0};
        
        request.action   = TRADE_ACTION_DEAL;    // type of trade operation
        request.symbol   = Pair1;                // symbol
        request.volume   = lots;                 // volume of lot
        request.type     = oper;                 // order type
        request.price    = priceOpen;            // price for opening
        request.deviation= Slippage;             // allowed deviation from the price
        request.magic    = magic;   
 //============================================================     
        if(OrderSend(request,result))       
        Print ("retcode = " +IntegerToString (result.retcode) + "; ");        
        Print ("deal = " +IntegerToString (result.deal) + "; ");
        Print ("order = " +IntegerToString (result.order) + "; "); 
        Print ("volume = " +DoubleToString (result.volume) + "; ");  
        Print ("price = " +DoubleToString (result.price) + "; ");

retcode, order et volume sont imprimés, mais deal et price sont toujours des zéros.
S'il vous plaît, conseillez-moi ce que je fais mal et comment obtenir l'accès (au moins, l'imprimer d'abord) au contenu de la structure de résultat ?

Вопросы от начинающих MQL5 MT5 MetaTrader 5
Вопросы от начинающих MQL5 MT5 MetaTrader 5
  • 2018.10.29
  • www.mql5.com
Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000...
Raison: