Erreurs, bugs, questions - page 872

 
Bonjour !
Lors de l'installation de Meta Trader 5, quel serveur Proxy dois-je installer ?
 
Vladon:

sur mt5 fonctionne.

Oui, cela fonctionne - calculer les erreurs du 01.10.20112 au 06.10.2012 sur l'euro/$.
Dossiers :
20121111.log  60 kb
 
mario065:
Oui, cela fonctionne - calculer les erreurs du 01.10.20112 au 06.10.2012 sur Euro/$.

qu'est-ce que tu veux dire ?

échec de la modification de l'achat 0.10 EURUSD sl : 1.29120, tp : 1.29370 -> sl : 1.29120, tp : 1.29370 [Arrêts invalides]

JF 0 Core 1 19:48:37 2012.10.03 16:20:27 Erreur de modification =4756

Stop Loss et Take Profit ne peuvent pas être modifiés en soi, c'est pourquoi il est dit stop erreur, pourquoi est-ce surprenant.

 
Vladon:

qu'est-ce que tu veux dire ?

échec de la modification de l'achat 0.10 EURUSD sl : 1.29120, tp : 1.29370 -> sl : 1.29120, tp : 1.29370 [Arrêts invalides]

JF 0 Core 1 19:48:37 2012.10.03 16:20:27 Erreur de modification =4756

Je dirais que le stoploss et le takeprofit ne peuvent pas être modifiés en soi, c'est pourquoi il est dit stop erreur, pourquoi est-ce surprenant.

Oui, et ce qui est écrit dans le code :
  if(PositionSelect(Symbol())){
    if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
      {
      if(MStop > 0)
       {
        if(NormalizeDouble(Bid - MStop,4) >= Open)
          if(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL) 
           {
            ModifyPosition(Symbol(),NormalizeDouble(Bid - MStop,4),TP);
           }
        }
      }
    if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
      {
      if(MStop > 0)
       { 
        if(NormalizeDouble(Ask + MStop,4) <= Open)
          if(SL == 0 || NormalizeDouble(Ask + MStop,4) <=SL) 
           {
            ModifyPosition(Symbol(),NormalizeDouble(Ask + MStop,4),TP);
           }
        }
      }
     } 
  }

changer le stop après 10 pips ou pas ?

Comment calculer que 10 pips sont chers si je précise quand changer le stop ?

if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)

s'il y a une position d'achat

si(MStop > 0)

Si MStop est supérieur à zéro

si(NormalizeDouble(Bid - MStop,4) >= Open)

Si le cours acheteur moins le prix MStop est supérieur au cours ouvert double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4)

qui est spécifié par 4 chiffres.

si(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL)

Si Stoploop = 0 ou Cours acheteur moins points pips supérieurs ou égaux au niveau de Stoploop.

Qu'est-ce qui n'est pas clair ?

Fonctionne bien sur MT4.

Je l'utilise sur MT5, c'est un pépin.

Sur MT5, j'en ai défini davantage grâce à StopLevel(SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL)). Toujours un problème.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5
 
mais des commentaires. Regardez par vous-même.
 
mario065:
Oui, et ce qui est écrit dans le code :

Faut-il modifier le stop après 10 pips ?

Alors comment calculer que 10 pips sont chers si j'ai spécifié quand changer le stop ?

if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)

s'il y a une position d'achat

si(MStop > 0)

Si MStop est supérieur à zéro

si(NormalizeDouble(Bid - MStop,4) >= Open)

Si le cours acheteur moins le prix MStop est supérieur au cours ouvert double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4)

qui est spécifié par 4 chiffres.

si(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL)

Si Stoploop = 0 ou Cours acheteur moins points pips supérieurs ou égaux au niveau de Stoploop.

Qu'est-ce qui n'est pas clair ?

Fonctionne bien sur MT4.

Je l'utilise sur MT5, c'est un pépin.

J'ai fait mes calculs et cela fonctionne bien sur MT4, j'ai défini plus de niveau de stop sur MT5 (SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL)). Toujours un problème.


if(NormalizeDouble(Bid - MStop,4) >= Open)
                                  ^^^^^^
                                Что за хрень?

if(SL == 0 || NormalizeDouble(Ask + MStop,4) <=SL) 
  ^^^^^^^^                 ^^^^^^^^^^^^^^
Почему не нормализовано? Нахрена это нормализовать?

 

C'est simple, c'est le mauvais niveau d'arrêt, à savoir un arrêt de moins que le minimum.

Qu'est-ce qu'il y a à ne pas comprendre ?

 
Vladon:

C'est simple, c'est le mauvais niveau d'arrêt, à savoir un arrêt de moins que le minimum.

Qu'est-ce qu'il y a à ne pas comprendre ?

Il a tout faux, car il y a plus de joints qu'il n'en faut.
 
Reshetov:

Bonjour Reshetov,

Pour vous, c'est "Qu'est-ce que c'est ?", pour moi, c'est le moment où je dois faire un appel à la fonction de modification.

Si vous aviez regardé le code, vous ne l'auriez pas écrit.

if(NormalizeDouble(Bid - MStop,4) >= Open)
                                  ^^^^^^
                                Что за хрень?

if(SL == 0 || NormalizeDouble(Ask + MStop,4) <=SL) 
  ^^^^^^^^                 ^^^^^^^^^^^^^^
Почему не нормализовано? Нахрена это нормализовать?

Le code le fait :

  double Bid  = NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_BID),4);
  double Ask  = NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_ASK),4);
  double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4);
  double SL   = NormalizeDouble(PositionGetDouble(POSITION_SL),4);
  double TP   = NormalizeDouble(PositionGetDouble(POSITION_TP),4);

État de la traduction :

input double MStop  = 0.001;
double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4);
if(NormalizeDouble(Bid - MStop,4) >= Open)

Si le prix sur Bid-MStop est supérieur ou égal au niveau d'ouverture de la position, alors il est possible d'appeler la fonction de modification - pas plus tôt.

De plus, ce n'est pas la bonne façon de procéder - c'est dans le code et cela doit être fait correctement :

if(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL)

La deuxième normalisation est juste au cas où, je pense qu'elle n'est pas mauvaise.

La condition elle-même (que vous avez reprise de la condition de vente positive) :

Si le stop loss est égal à zéro ou à l'offre moins 10 pips de plus ou d'égal au niveau du stop loss - alors nous pouvons appeler la fonction de modification.

Si le prix est plus élevé et que le stop loss est modifié, le prochain appel sera effectué après 10 pips, ce qui ne se produit pas à chaque tick.

C'est ce que j'ai écrit - je pense que c'est juste.

Je m'attendais à ce que vous me disiez si c'est bien ou mal, mon erreur ou un bug ?

 
mario065:

Bonjour Reshetov,

Pour vous, c'est "What the fuck ?", pour moi, c'est l'état dans lequel je dois faire un appel de fonction de modification.

...
Je pense que ce que Reshetov voulait dire, c'est que vous n'avez pas besoin de normaliser la variable pour if. Nous devrions normaliser la valeur du prix lorsque la commande est envoyée au serveur. Au lieu de NormalizeDouble(Bid - MStop,4), faites NormalizeDouble( (Bid- MStop),4).
Raison: