Erreurs, bugs, questions - page 1863

 
kaus_bonus:

Je vais ajouter :

Dans le SD, nous avons affaire à...
 
Slawa:
Apparemment, je ne comprends pas quelque chose au HFT. Pour autant que je sache, lorsque vous négociez "très rapidement", vous ne vous souciez pas des transactions précédentes.

Le HFT a donné l'exemple d'un TS qui fait simplement beaucoup de transactions.

Vous pouvez exécuter une course sur une longue période de certains scalpeurs. L'essentiel est d'avoir beaucoup de transactions (des dizaines de milliers). Ensuite, les inconvénients de la mise en œuvre actuelle du travail avec l'histoire apparaîtront.


La situation actuelle est la suivante. S'il y a beaucoup d'offres, n'utilisez pas l'historique.

 
fxsaber:
Dans le SD...


c'est génial.

il suffit de supprimer l'utilisation de LAST price pour obtenir des résultats adéquats

 

Veuillez m'aider à trouver l'indentation minimale en points du prix d'ouverture de la position aux niveaux stop-loss et take-profit, afin de ne pas les placer trop près du prix d'ouverture et de ne pas rencontrer l'erreur 10016 (TRADE_RETCODE_INVALID_STOPS). J'ai essayé d'utiliser SymbolInfoInteger (voir le code ci-dessous), mais ce calcul renvoie 0. Si quelqu'un peut me donner une idée de comment le calculer correctement.

void OnStart()
  {
   long stopLevel;
   if(SymbolInfoInteger("EURUSD",SYMBOL_TRADE_STOPS_LEVEL,stopLevel))
      Print("stopLevel = ",stopLevel);
  }
 
Maxim Khrolenko:

Veuillez m'aider à trouver l'indentation minimale en points du prix d'ouverture de la position aux niveaux stop-loss et take-profit, afin de ne pas les placer trop près du prix d'ouverture et de ne pas rencontrer l'erreur 10016 (TRADE_RETCODE_INVALID_STOPS). J'ai essayé d'utiliser SymbolInfoInteger (voir le code ci-dessous), mais ce calcul renvoie 0. Si quelqu'un peut me donner une idée de comment le calculer correctement.


0 - aucune limite. Mais il existe aussi SYMBOL_SESSION_PRICE_LIMIT_MIN et SYMBOL_SESSION_PRICE_LIMIT_MAX.
 
fxsaber:

0 - il n'y a pas de limite. Mais il existe aussi SYMBOL_SESSION_PRICE_LIMIT_MIN et SYMBOL_SESSION_PRICE_LIMIT_MAX.
Hmm, dans ce cas, j'aimerais que SYMBOL_TRADE_STOPS_LEVEL fonctionne différemment. Si 0 est illimité, alors théoriquement, lorsque nous envoyons .PositionOpen(...) au serveur, nous pourrions définir des stops à 1 point (par 5 chiffres) du prix d'ouverture mais l'erreur TRADE_RETCODE_INVALID_STOPS apparaîtra à 100%. Je suis en panne jusqu'à présent.
 
Maxim Khrolenko:
Hmm, dans ce cas, j'aimerais que SYMBOL_TRADE_STOPS_LEVEL fonctionne différemment d'une manière ou d'une autre. Si 0 est illimité, alors théoriquement, lors de l'envoi de .PositionOpen(...) au serveur, on pourrait placer des stops à 1 pip (par 5 chiffres) du prix d'ouverture, mais l'erreur TRADE_RETCODE_INVALID_STOPS apparaîtrait ici à 100%. Je suis en panne jusqu'à présent.

Que pensez-vous de ça ?

 if(stoplevel==0) stoplevel=SymbolInfoInteger(symb,SYMBOL_SPREAD);
 
Quelque chose est encore arrivé au testeur - 1586. Conseiller expert pour la lecture
#include <MT4Orders.mqh>

// Metaquotes-Demo, RTS-6.17, 2017.04.07 - 2017.04.08, на основе реальных тиков, начальный баланс 100000
void OnTick()
{  
  static int Type = OP_BUY;

  MqlTick Tick;    
  
  if (OrderSelect(0, SELECT_BY_POS) && (OrderType() <= OP_SELL))
    OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0);    
  else if ((OrdersTotal() == 0) && SymbolInfoTick(_Symbol, Tick) && (Tick.bid != 0) && (Tick.ask != 0))
  {
    OrderSend(_Symbol, Type + OP_BUYLIMIT, 1, (Type == OP_BUY) ? Tick.ask : Tick.bid, 0, 0, 0);
    
    Type = OP_SELL - Type;
  }    
}

A chaque tick, soit il place une limite au prix actuel (à exécuter immédiatement), soit il ferme la position. C'est-à-dire qu'il devrait y avoir beaucoup de postes. Mais ce n'est pas le cas, car les limiteurs ont cessé de s'exécuter. Voici la fin du journal qui montre

2017.04.20 12:47:41.885 2017.04.07 10:00:00   sell limit 1.00 RTS-6.17 at 114060 (114060 / 114180 / 113770)
2017.04.20 12:47:41.885 2017.04.07 23:44:59   order canceled due end of test [#140  sell limit 1.00 RTS-6.17 at 114060]
2017.04.20 12:47:41.885 final balance 91195.12 RUR
2017.04.20 12:47:41.885 RTS-6.17,M1: 327182 ticks, 788 bars generated. Test passed in 0:00:00.218.

SellLimit a été fixé à Bid, mais il n'a jamais été exécuté.

En 1585, tout allait bien.

 
fxsaber:
Quelque chose a encore été fait au testeur - 1586.

Et je comprends que je me trompe, mais j'ai quand même l'impression d'une mauvaise approche de la sortie des builds. Auparavant, il n'y avait pas un nombre aussi important de rapports de bogues après la sortie d'une nouvelle version.

 

Je ne peux pas envoyer de réponse à la SR. Il hésite pendant une minute puis s'éteint.