Erreurs, bugs, questions - page 619

 
-Alexey-:

Je suis actuellement en train d'écrire pour MT4 409 bild la fonction de nivellement d'arrêt minimum. Pour un ordre d'achat, le testeur considère que les valeurs minimales du Bid sont correctes, et pour un ordre d'achat à cours limité, le testeur considère que les valeurs minimales du Ask sont correctes. Logiquement, les opérations sont effectuées - comme pour un achat. Question - est-ce l'intention, ou devons-nous écrire au Conseil d'administration ?

il y a toujours eu, il y a et il y aura toujours un achat d'Ask.

Y a-t-il d'autres preuves que des mots ?

 
-Alexey-:

Maintenant, pour MT4 409 bild, la fonction de comptabilisation du niveau d'arrêt minimum est en cours d'écriture. Pour un ordre d'achat, le testeur considère que les valeurs minimales de Bid sont correctes et pour un ordre d'achat, le testeur considère que les valeurs minimales de Ask sont correctes. Logiquement, les opérations sont effectuées - comme pour un achat. Question - est-ce que c'est comme ça que ça doit se passer ou dois-je l'écrire dans le BOD ?

C'est logique en principe) le stop se déclenchera à Bid, le pendentif s'ouvrira à Ask.

sergeev:

J'ai toujours été, je suis et je serai toujours un client de Ask.

Pour les achats, la distance minimale par rapport à l'esclave est déterminée à partir de l'offre, d'aussi loin que je me souvienne, il en a toujours été ainsi).
 
sergeev:

il y a toujours eu, il y a et il y aura toujours un achat d'Ask.

Y a-t-il d'autres preuves que des mots ?


Dans les deux cas, l'opération est effectuée à partir de ASK, mais le niveau d'arrêt, d'après ce que j'ai compris, devrait être compté à partir de BID, parce qu'il fait référence à une opération de clôture de vente, ce qui est ce qui se passe dans le testeur pour un ordre BUY. Mais pour une raison quelconque, la LIMITE est calculée à partir de ASK pour un ordre d'ACHAT. Exemple :

bool first_run=true;
int init()
{
   return(0);
}
int deinit()
{
   return(0);
}
int start()
{
   if (first_run==true)
   {
      string _Symbol=Symbol();
      int _Digits=MarketInfo(_Symbol, MODE_DIGITS);
      double Point_size=MarketInfo(_Symbol, MODE_POINT);
      double Min_stop_distanse=MarketInfo(_Symbol, MODE_STOPLEVEL)*Point_size;
      double Min_freeze_distanse=MarketInfo(_Symbol, MODE_FREEZELEVEL)*Point_size;
      double Spread=MarketInfo(_Symbol, MODE_SPREAD)*Point_size;
      Print("Spread="+Spread);
      double _Order_price;
      double _Order_sl;
      double _Order_tp;
      double _Order_lot;
      _Order_lot=MarketInfo(_Symbol, MODE_MINLOT);
      /* highest accepted level for buy limit order */
      double _Upper_bound_for_buy_limit=NormalizeDouble(MarketInfo(_Symbol, MODE_ASK)-Min_stop_distanse, _Digits);
      /* defining orders price */
      _Order_price=_Upper_bound_for_buy_limit; /* ASK */
      _Order_sl=NormalizeDouble(_Order_price-Min_stop_distanse, _Digits); /* ASK-STOPLEVEL */
      _Order_tp=NormalizeDouble(_Order_price+Min_stop_distanse, _Digits); /* ASK+STOPLEVEL */
      /* sending buy limit order */
      OrderSend(_Symbol, OP_BUYLIMIT, _Order_lot, _Order_price, 0, _Order_sl, _Order_tp, NULL, 0, 0, Green);
      first_run=false;
   }
   return(0);
}

Résultat :

2012.01.08 14:39:04 2011.06.03 01:43 test EURUSD,M1 : Spread=0.00020000

2012.01.08 14:39:04 2011.06.03 01:43 test EURUSD,M1 : open #1 buy limit 0.01 EURUSD at 1.4478 sl : 1.4474 tp : 1.4482 ok

 
le code n'a pas été inséré correctement.
 
Swan:
Pour les achats, la distance minimale par rapport au sl est prise à partir de l'offre, d'aussi loin que je me souvienne, il en a toujours été ainsi).

Clarifiez d'abord.

Parle-t-on des arrêts dans les ordres d'achat ou des ordres d'achat en attente ?

 
sergeev:

le code n'a pas été inséré correctement.
Que faire maintenant ? :) J'ai surligné et appuyé sur "Code", mais c'est là...
 
-Alexey-:
Que faisons-nous maintenant ? :) Je pense que j'ai surligné et appuyé sur "code", mais c'est là...

vous pouvez supprimer le message et réessayer normalement. voulez-vous parler de cela ? ou de votre problème avec le niveau d'arrêt ?

 
sergeev:

vous pouvez supprimer le message et réessayer de manière normale. voulez-vous en parler ? ou de votre problème avec le chronomètre ?

Je l'ai eu avec le code. A propos des niveaux d'arrêt. Dois-je l'écrire dans le BOD ou est-il conçu de telle manière que le niveau stop d'un ordre BID est calculé à partir du ASK du prix de l'ordre. Si oui, pourquoi est-il considéré comme le contraire dans l'ordre de BUY ?
 
-Alexey-:
dans un ordre d'achat à cours limité, le stop/niveau de BID est calculé à partir du prix ASK de l'ordre. Si tel est le cas, pourquoi est-il considéré comme l'inverse dans l'ordre BUY ?


Commençons par l'ordre. L'école primaire.

А. Dans les ordres, les gens calculent le Stop Loss et le Take Profit à partir de leur prix d'ouverture. Il est clair que si vous voulez 100 points, vous devez clôturer en profit à 100 points du prix d'ouverture.

Б. Le réglage de SL/TP/STOP est affecté par ce que l'on appelle le niveau d'arrêt. C'est-à-dire que vous ne pouvez pas placer un stop loss/stackprofit/position plus proche que le StopLoss du PRIX D'EXECUTION.

Nous en tirons les conclusions suivantes.

1. Lorsque vous ouvrez un ordre au marché , vous devez définir le SL/TP en considérant le niveau du stop à partir du prix actuel auquel le stop est déclenché. Pour les baies, les stops se déclenchent au Bid, donc nous prenons en compte le niveau de stop du Bid actuel. C'est le SL/TP que vous mettez habituellement à partir de l'ouverture de l'ordre (parce que vous avez besoin de 100 points), mais assurez-vous de prendre en compte la position du Bid et la taille du niveau stop.

2. Lorsque vous ouvrez une offre de transaction, elle ne doit pas être plus proche que le niveau stop du prix auquel elle est déclenchée. C'est-à-dire que pour un Buy Stop/ Bail Out, nous mesurons le niveau du stop par rapport à l'Asc. C'est-à-dire que vous placez un ordre stop au prix que vous souhaitez, mais en tenant toujours compte de la distance du niveau stop par rapport à Ask.

Mais faites attention ! Si vous mettez un Stop Loss et un Take Profit dans un ordre Stop Loss, il est mesuré à partir du prix d'ouverture de l'ordre, pas à partir du Ask, mais à partir du prix d'ouverture de l'ordre ! Les prix actuels n'interfèrent pas avec ces deux ordres en attente (SL/TP). Ils ne sont gênés que par la distance qui les sépare du futur ordre déclenché. C'est-à-dire que vous fixez le SL/TP de l'ordre en tenant compte de la distance entre le niveau de stop et le prix d'ouverture de cet ordre. L'offre et la demande n'ont rien à voir avec cela.

Tu te souviens ?

 
sergeev:

Mais faites attention ! le stoploss et le takeprofit dans l'ordre en attente sont mesurés calmement à partir du prix d'ouverture de l'ordre ! !! pas à partir de l'Asc, mais à partir du prix d'ouverture de l'ordre ! Les prix actuels n'interfèrent pas avec ces deux ordres en attente (SL/TP). Ils ne sont gênés que par la distance qui les sépare du futur ordre déclenché. C'est-à-dire que vous fixez le SL/TP de l'ordre en tenant compte de la distance entre le niveau de stop et le prix d'ouverture de cet ordre. L'offre et la demande n'ont rien à voir avec cela.

C'est compris ?

Oui, je me souviens, mais je ne comprends pas. Il est clair qu'un ordre limite d'achat en attente est ouvert lorsque son niveau atteint le prix Ask. Par conséquent, à ce moment-là, le cours acheteur actuel se trouve à une distance inacceptable du SL (également exécuté au cours acheteur) mesuré plus tôt comme le prix d'exercice (c'est-à-dire le cours vendeur au moment de l'exécution) - niveau d'arrêt. La seule chose que vous pouvez essayer d'expliquer est que l'on ne sait pas à l'avance quel sera le prix d'exécution de l'offre au moment de l'exécution. Si c'est l'intention - ok, c'est clair, merci pour le post détaillé.
Raison: